/** * Save to filename * * @param string $code * @return string filename */ public function saveCode($code) { $config = APPLICATION_PATH . '/modules/install/configs/checks.yaml'; require_once 'Zend/Config/Yaml.php'; require_once 'Core/Config/Yaml.php'; $result = new Core_Config_Yaml($config); $requirements = $result->toArray(); do { $filename = APPLICATION_PATH . '/../' . $requirements['directories']['cache_dir'] . '/' . uniqid() . '.php'; } while (is_file($filename)); file_put_contents($filename, '<?php /*' . PHP_EOL . PHP_EOL . $code . PHP_EOL); return $filename; }
/** * Requirements action */ public function requirementsAction() { $config = APPLICATION_PATH . '/modules/install/configs/checks.yaml'; $isValid = true; $rootDirectory = realpath(APPLICATION_PATH . '/../'); $result = new Core_Config_Yaml($config); $requirements = $result->toArray(); $this->view->requirements = $requirements; $resources = $this->_store->config->production->resources; $resources->session->save_path = APPLICATION_PATH . '/../' . $requirements['directories']['session_dir']; $directories = array(); //check directories foreach ($requirements['directories'] as $directory) { $info = array(); $info['path'] = $rootDirectory . '/' . $directory; $info['exists'] = file_exists($info['path']); $info['writable'] = $info['exists'] && is_writable($info['path']); if (!$info['writable']) { $isValid = false; } $directories[$directory] = $info; } $this->view->directories = $directories; //remove postfix $phpVersion = PHP_VERSION; $this->view->phpversion = $phpVersion; $this->view->minPhpVersion = $requirements['minPhpVersion']; $isValidPhpVersion = false; //check PHP version if (version_compare($phpVersion, $requirements['minPhpVersion'], '>=')) { $isValidPhpVersion = true; } $this->view->isValidPhpVersion = $isValidPhpVersion; if (!$isValidPhpVersion) { $isValid = false; } $this->view->isValid = $isValid; $phpOptions = array(); //check PHP options foreach ($requirements['phpOptions'] as $option => $val) { $phpOptions[$option] = $val; if (ini_get($option) == $val['desired']) { $phpOptions[$option]['check'] = true; } else { $phpOptions[$option]['check'] = false; } } $this->view->phpOptions = $phpOptions; //check PHP extensions $phpExtensions = array(); foreach ($requirements['extensions'] as $ext => $desc) { $phpExtensions[$ext] = $desc; if (in_array($ext, get_loaded_extensions())) { $phpExtensions[$ext]['check'] = true; } else { $phpExtensions[$ext]['check'] = false; } } $this->view->phpExtensions = $phpExtensions; if ($this->_request->isPost() && $isValid) { $this->_store->progress['install-index-requirements'] = true; foreach ($this->_store->progress as $route => $status) { if (!$status) { $this->_store->progress[$route] = null; $this->_helper->redirector->gotoRoute(array(), $route); } } $this->_helper->redirector->gotoRoute(array(), 'install-index-finish'); } $this->view->currentPage = 'install-index-requirements'; }