Rarst\Meadow\Core::__construct PHP Метод

__construct() публичный Метод

public __construct ( array $values = [] )
$values array
    public function __construct($values = array())
    {
        $defaults['twig.options'] = array();
        $defaults['twig.directories'] = array();
        $defaults['twig.loader'] = function ($meadow) {
            // this needs to be lazy or theme switchers and alike explode it
            $stylesheet_dir = get_stylesheet_directory();
            $template_dir = get_template_directory();
            $calculated_dirs = array($stylesheet_dir, $template_dir, plugin_dir_path(__DIR__) . 'twig');
            // enables explicit inheritance from parent theme in child
            if ($stylesheet_dir !== $template_dir) {
                $calculated_dirs[] = dirname($template_dir);
            }
            $directories = array_unique(array_merge($calculated_dirs, $meadow['twig.directories']));
            return new \Twig_Loader_Filesystem($directories);
        };
        $defaults['twig.undefined_function'] = array(__CLASS__, 'undefined_function');
        $defaults['twig.undefined_filter'] = array(__CLASS__, 'undefined_filter');
        $defaults['twig.environment'] = function ($meadow) {
            $environment = new \Twig_Environment($meadow['twig.loader'], $meadow['twig.options']);
            $meadow_extension = new Extension();
            $environment->addExtension($meadow_extension);
            $environment->registerUndefinedFunctionCallback($meadow['twig.undefined_function']);
            $environment->registerUndefinedFilterCallback($meadow['twig.undefined_filter']);
            if (defined('WP_DEBUG') && WP_DEBUG) {
                $debug_extension = new \Twig_Extension_Debug();
                $environment->addExtension($debug_extension);
                $environment->enableDebug();
            }
            return $environment;
        };
        $defaults['hierarchy'] = function () {
            return new Template_Hierarchy();
        };
        parent::__construct(array_merge($defaults, $values));
    }