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

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

Creates a page instance based on requested page path.
protected createPage ( $pagePath ) : TPage
Результат TPage the requested page instance
    protected function createPage($pagePath)
    {
        $path = $this->getBasePath() . DIRECTORY_SEPARATOR . strtr($pagePath, '.', DIRECTORY_SEPARATOR);
        $hasTemplateFile = is_file($path . self::PAGE_FILE_EXT);
        $hasClassFile = is_file($path . Prado::CLASS_FILE_EXT);
        if (!$hasTemplateFile && !$hasClassFile) {
            throw new THttpException(404, 'pageservice_page_unknown', $pagePath);
        }
        if ($hasClassFile) {
            $className = basename($path);
            $namespacedClassName = static::PAGE_NAMESPACE_PREFIX . str_replace('.', '\\', $pagePath);
            if (!class_exists($className, false) && !class_exists($namespacedClassName, false)) {
                include_once $path . Prado::CLASS_FILE_EXT;
            }
            if (!class_exists($className, false)) {
                $className = $namespacedClassName;
            }
        } else {
            $className = $this->getBasePageClass();
            Prado::using($className);
            if (($pos = strrpos($className, '.')) !== false) {
                $className = substr($className, $pos + 1);
            }
        }
        if (!class_exists($className, false) || $className !== 'TPage' && !is_subclass_of($className, 'TPage')) {
            throw new THttpException(404, 'pageservice_page_unknown', $pagePath);
        }
        $page = Prado::createComponent($className);
        $page->setPagePath($pagePath);
        if ($hasTemplateFile) {
            $page->setTemplate($this->getTemplateManager()->getTemplateByFileName($path . self::PAGE_FILE_EXT));
        }
        return $page;
    }