| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | <?phpnamespace PhpOffice\PhpSpreadsheet;use PhpOffice\PhpSpreadsheet\Calculation\Calculation;use PhpOffice\PhpSpreadsheet\Chart\Renderer\IRenderer;use PhpOffice\PhpSpreadsheet\Collection\Memory;use Psr\SimpleCache\CacheInterface;class Settings{    /**     * Class name of the chart renderer used for rendering charts     * eg: PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph.     *     * @var string     */    private static $chartRenderer;    /**     * Default options for libxml loader.     *     * @var int     */    private static $libXmlLoaderOptions = null;    /**     * The cache implementation to be used for cell collection.     *     * @var CacheInterface     */    private static $cache;    /**     * Set the locale code to use for formula translations and any special formatting.     *     * @param string $locale The locale code to use (e.g. "fr" or "pt_br" or "en_uk")     *     * @return bool Success or failure     */    public static function setLocale($locale)    {        return Calculation::getInstance()->setLocale($locale);    }    /**     * Identify to PhpSpreadsheet the external library to use for rendering charts.     *     * @param string $rendererClass Class name of the chart renderer     *    eg: PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph     *     * @throws Exception     */    public static function setChartRenderer($rendererClass)    {        if (!is_a($rendererClass, IRenderer::class, true)) {            throw new Exception('Chart renderer must implement ' . IRenderer::class);        }        self::$chartRenderer = $rendererClass;    }    /**     * Return the Chart Rendering Library that PhpSpreadsheet is currently configured to use.     *     * @return null|string Class name of the chart renderer     *    eg: PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph     */    public static function getChartRenderer()    {        return self::$chartRenderer;    }    /**     * Set default options for libxml loader.     *     * @param int $options Default options for libxml loader     */    public static function setLibXmlLoaderOptions($options)    {        if ($options === null && defined('LIBXML_DTDLOAD')) {            $options = LIBXML_DTDLOAD | LIBXML_DTDATTR;        }        self::$libXmlLoaderOptions = $options;    }    /**     * Get default options for libxml loader.     * Defaults to LIBXML_DTDLOAD | LIBXML_DTDATTR when not set explicitly.     *     * @return int Default options for libxml loader     */    public static function getLibXmlLoaderOptions()    {        if (self::$libXmlLoaderOptions === null && defined('LIBXML_DTDLOAD')) {            self::setLibXmlLoaderOptions(LIBXML_DTDLOAD | LIBXML_DTDATTR);        } elseif (self::$libXmlLoaderOptions === null) {            self::$libXmlLoaderOptions = true;        }        return self::$libXmlLoaderOptions;    }    /**     * Sets the implementation of cache that should be used for cell collection.     *     * @param CacheInterface $cache     */    public static function setCache(CacheInterface $cache)    {        self::$cache = $cache;    }    /**     * Gets the implementation of cache that should be used for cell collection.     *     * @return CacheInterface     */    public static function getCache()    {        if (!self::$cache) {            self::$cache = new Memory();        }        return self::$cache;    }}
 |