Prado\Web\Services\TPageService::loadPageConfig PHP Метод

loadPageConfig() защищенный Метод

Collects configuration for a page.
protected loadPageConfig ( $config ) : TPageConfiguration
Результат TPageConfiguration
    protected function loadPageConfig($config)
    {
        $application = $this->getApplication();
        $pagePath = $this->getRequestedPagePath();
        if (($cache = $application->getCache()) === null) {
            $pageConfig = new TPageConfiguration($pagePath);
            if ($config !== null) {
                if ($application->getConfigurationType() == TApplication::CONFIG_TYPE_PHP) {
                    $pageConfig->loadPageConfigurationFromPhp($config, $application->getBasePath(), '');
                } else {
                    $pageConfig->loadPageConfigurationFromXml($config, $application->getBasePath(), '');
                }
            }
            $pageConfig->loadFromFiles($this->getBasePath());
        } else {
            $configCached = true;
            $currentTimestamp = array();
            $arr = $cache->get(self::CONFIG_CACHE_PREFIX . $this->getID() . $pagePath);
            if (is_array($arr)) {
                list($pageConfig, $timestamps) = $arr;
                if ($application->getMode() !== TApplicationMode::Performance) {
                    foreach ($timestamps as $fileName => $timestamp) {
                        if ($fileName === 0) {
                            $appConfigFile = $application->getConfigurationFile();
                            $currentTimestamp[0] = $appConfigFile === null ? 0 : @filemtime($appConfigFile);
                            if ($currentTimestamp[0] > $timestamp || $timestamp > 0 && !$currentTimestamp[0]) {
                                $configCached = false;
                            }
                        } else {
                            $currentTimestamp[$fileName] = @filemtime($fileName);
                            if ($currentTimestamp[$fileName] > $timestamp || $timestamp > 0 && !$currentTimestamp[$fileName]) {
                                $configCached = false;
                            }
                        }
                    }
                }
            } else {
                $configCached = false;
                $paths = explode('.', $pagePath);
                $configPath = $this->getBasePath();
                $fileName = $this->getApplication()->getConfigurationType() == TApplication::CONFIG_TYPE_PHP ? self::CONFIG_FILE_PHP : self::CONFIG_FILE_XML;
                foreach ($paths as $path) {
                    $configFile = $configPath . DIRECTORY_SEPARATOR . $fileName;
                    $currentTimestamp[$configFile] = @filemtime($configFile);
                    $configPath .= DIRECTORY_SEPARATOR . $path;
                }
                $appConfigFile = $application->getConfigurationFile();
                $currentTimestamp[0] = $appConfigFile === null ? 0 : @filemtime($appConfigFile);
            }
            if (!$configCached) {
                $pageConfig = new TPageConfiguration($pagePath);
                if ($config !== null) {
                    if ($application->getConfigurationType() == TApplication::CONFIG_TYPE_PHP) {
                        $pageConfig->loadPageConfigurationFromPhp($config, $application->getBasePath(), '');
                    } else {
                        $pageConfig->loadPageConfigurationFromXml($config, $application->getBasePath(), '');
                    }
                }
                $pageConfig->loadFromFiles($this->getBasePath());
                $cache->set(self::CONFIG_CACHE_PREFIX . $this->getID() . $pagePath, array($pageConfig, $currentTimestamp));
            }
        }
        return $pageConfig;
    }