Prado\Web\UI\TClientScriptManager::registerPradoScriptInternal PHP Метод

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

Registers a Prado javascript library to be loaded.
protected registerPradoScriptInternal ( $name )
    protected function registerPradoScriptInternal($name)
    {
        // $this->checkIfNotInRender();
        if (!isset($this->_registeredScripts[$name])) {
            if (self::$_scripts === null) {
                $packageFile = Prado::getFrameworkPath() . DIRECTORY_SEPARATOR . self::PACKAGES_FILE;
                list($folders, $packages, $deps) = (include $packageFile);
                self::$_scriptsFolders = $folders;
                self::$_scripts = $deps;
                self::$_scriptsPackages = $packages;
            }
            if (isset(self::$_scripts[$name])) {
                $this->_registeredScripts[$name] = true;
            } else {
                throw new TInvalidOperationException('csmanager_pradoscript_invalid', $name);
            }
            if (($packages = array_keys($this->_registeredScripts)) !== array()) {
                $packagesUrl = array();
                $isDebug = $this->getApplication()->getMode() === TApplicationMode::Debug;
                foreach ($packages as $p) {
                    foreach (self::$_scripts[$p] as $dep) {
                        foreach (self::$_scriptsPackages[$dep] as $script) {
                            if (!isset($this->_expandedScripts[$script])) {
                                list($base, $subPath) = $this->getScriptPackageFolder($script);
                                list($path, $baseUrl) = $this->getPackagePathUrl($base);
                                $this->_expandedScripts[$script] = true;
                                if ($isDebug) {
                                    if (!in_array($url = $baseUrl . '/' . $subPath, $packagesUrl)) {
                                        $packagesUrl[] = $url;
                                    }
                                } else {
                                    if (!in_array($url = $baseUrl . '/min/' . $subPath, $packagesUrl)) {
                                        if (!is_file($filePath = $path . '/min/' . $subPath)) {
                                            $dirPath = dirname($filePath);
                                            if (!is_dir($dirPath)) {
                                                mkdir($dirPath, PRADO_CHMOD, true);
                                            }
                                            file_put_contents($filePath, TJavaScript::JSMin(file_get_contents($base . '/' . $subPath)));
                                            chmod($filePath, PRADO_CHMOD);
                                        }
                                        $packagesUrl[] = $url;
                                    }
                                }
                            }
                        }
                    }
                }
                foreach ($packagesUrl as $url) {
                    $this->registerScriptFile($url, $url);
                }
            }
        }
    }