コード例 #1
0
 /**
  * @param ResultCollection $results
  */
 public function check(ResultCollection $results)
 {
     $requiredExtensions = $this->_commandConfig['php']['required-extensions'];
     foreach ($requiredExtensions as $ext) {
         $result = $results->createResult();
         $result->setStatus(extension_loaded($ext) ? Result::STATUS_OK : Result::STATUS_ERROR);
         if ($result->isValid()) {
             $result->setMessage("<info>Required PHP Module <comment>{$ext}</comment> found.</info>");
         } else {
             $result->setMessage("<error>Required PHP Module {$ext} not found!</error>");
         }
     }
 }
コード例 #2
0
 /**
  * @param ResultCollection $results
  * @param \Mage_Core_Model_Store $store
  */
 public function check(ResultCollection $results, \Mage_Core_Model_Store $store)
 {
     $result = $results->createResult();
     $errorMessage = 'Wrong hostname configured. <info>Hostname must contain a dot</info>';
     $configValue = \Mage::getStoreConfig('web/unsecure/base_url', $store);
     $host = parse_url($configValue, PHP_URL_HOST);
     $isValid = strstr($host, '.');
     $result->setStatus($isValid ? Result::STATUS_OK : Result::STATUS_ERROR);
     if (!$isValid) {
         $result->setMessage('<error>Invalid Unsecure BaseURL <comment>Store: ' . $store->getCode() . '</comment> ' . $errorMessage . '</error>');
     } else {
         $result->setMessage('<info>Unsecure BaseURL of Store: <comment>' . $store->getCode() . '</comment> OK');
     }
 }
コード例 #3
0
ファイル: FilesCheck.php プロジェクト: iMi-digital/imi-conrun
 /**
  * @param ResultCollection $results
  */
 public function check(ResultCollection $results)
 {
     $files = $this->_commandConfig['filesystem']['files'];
     $contaoRoot = $this->_checkCommand->getApplication()->getContaoRootFolder();
     foreach ($files as $file => $comment) {
         $result = $results->createResult();
         if (file_exists($contaoRoot . DIRECTORY_SEPARATOR . $file)) {
             $result->setStatus(Result::STATUS_OK);
             $result->setMessage("<info>File <comment>" . $file . "</comment> found.</info>");
         } else {
             $result->setStatus(Result::STATUS_ERROR);
             $result->setMessage("<error>File " . $file . " not found!</error><comment> Usage: " . $comment . "</comment>");
         }
     }
 }
コード例 #4
0
 /**
  * @param ResultCollection $results
  */
 public function check(ResultCollection $results)
 {
     $result = $results->createResult();
     $dbAdapter = \Mage::getModel('core/resource')->getConnection('core_write');
     /**
      * Check Version
      */
     $mysqlVersion = $dbAdapter->fetchOne('SELECT VERSION()');
     if (version_compare($mysqlVersion, '4.1.20', '>=')) {
         $result->setStatus(Result::STATUS_OK);
         $result->setMessage("<info>MySQL Version <comment>{$mysqlVersion}</comment> found.</info>");
     } else {
         $result->setStatus(Result::STATUS_ERROR);
         $result->setMessage("<error>MySQL Version {$mysqlVersion} found. Upgrade your MySQL Version.</error>");
     }
 }
コード例 #5
0
 /**
  * @param ResultCollection $results
  * @param \Mage_Core_Model_Store $store
  */
 public function check(ResultCollection $results, \Mage_Core_Model_Store $store)
 {
     $result = $results->createResult();
     $errorMessage = 'Cookie Domain and Secure BaseURL (http) does not match';
     $cookieDomain = \Mage::getStoreConfig('web/cookie/cookie_domain', $store);
     if (!empty($cookieDomain)) {
         $isValid = strpos(parse_url($cookieDomain, PHP_URL_HOST), $cookieDomain);
         $result->setStatus($isValid ? Result::STATUS_OK : Result::STATUS_ERROR);
         if ($result->isValid()) {
             $result->setMessage('<info>Cookie Domain (secure) of Store: <comment>' . $store->getCode() . '</comment> OK');
         } else {
             $result->setMessage('<error>Cookie Domain (secure) <comment>Store: ' . $store->getCode() . '</comment> ' . $errorMessage . '</error>');
         }
     } else {
         $result->setMessage('<info>Cookie Domain (secure) of Store: <comment>' . $store->getCode() . '</comment> OK - No domain set');
     }
 }
コード例 #6
0
 /**
  * @param ResultCollection $results
  */
 public function check(ResultCollection $results)
 {
     $result = $results->createResult();
     $filePath = 'app/etc/local.xml';
     $defaultUnsecureBaseURL = (string) \Mage::getConfig()->getNode('default/' . \Mage_Core_Model_Store::XML_PATH_UNSECURE_BASE_URL);
     $http = new \Varien_Http_Adapter_Curl();
     $http->setConfig(array('timeout' => $this->_verificationTimeOut));
     $http->write(\Zend_Http_Client::POST, $defaultUnsecureBaseURL . $filePath);
     $responseBody = $http->read();
     $responseCode = \Zend_Http_Response::extractCode($responseBody);
     $http->close();
     if ($responseCode === 200) {
         $result->setStatus(Result::STATUS_ERROR);
         $result->setMessage("<error>{$filePath} can be accessed from outside!</error>");
     } else {
         $result->setStatus(Result::STATUS_OK);
         $result->setMessage("<info><comment>{$filePath}</comment> cannot be accessed from outside.</info>");
     }
 }
コード例 #7
0
 /**
  * @param ResultCollection $results
  */
 public function check(ResultCollection $results)
 {
     $result = $results->createResult();
     $dbAdapter = \Mage::getModel('core/resource')->getConnection('core_write');
     $engines = $dbAdapter->fetchAll('SHOW ENGINES');
     $innodbFound = false;
     foreach ($engines as $engine) {
         if (strtolower($engine['Engine']) == 'innodb') {
             $innodbFound = true;
             break;
         }
     }
     $result->setStatus($innodbFound ? Result::STATUS_OK : Result::STATUS_ERROR);
     if ($innodbFound) {
         $result->setMessage("<info>Required MySQL Storage Engine <comment>InnoDB</comment> found.</info>");
     } else {
         $result->setMessage("<error>Required MySQL Storage Engine \"InnoDB\" not found!</error>");
     }
 }
コード例 #8
0
 /**
  * @param \Symfony\Component\Console\Input\InputInterface $input
  * @param \Symfony\Component\Console\Output\OutputInterface $output
  * @return int|void
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $this->_config = $this->getCommandConfig();
     $this->detectContao($output);
     if ($this->initContao()) {
         $results = new ResultCollection();
         foreach ($this->_config['checks'] as $checkGroup => $checkGroupClasses) {
             $results->setResultGroup($checkGroup);
             foreach ($checkGroupClasses as $checkGroupClass) {
                 $this->_invokeCheckClass($results, $checkGroupClass);
             }
         }
         if ($input->getOption('format')) {
             $this->_printTable($input, $output, $results);
         } else {
             $this->_printResults($output, $results);
         }
     }
 }
コード例 #9
0
 /**
  * @param ResultCollection $results
  */
 public function check(ResultCollection $results)
 {
     $result = $results->createResult();
     $bytecopdeCacheExtensions = $this->_commandConfig['php']['bytecode-cache-extensions'];
     $bytecodeCacheExtensionLoaded = false;
     $bytecodeCacheExtension = null;
     foreach ($bytecopdeCacheExtensions as $ext) {
         if (extension_loaded($ext)) {
             $bytecodeCacheExtension = $ext;
             $bytecodeCacheExtensionLoaded = true;
             break;
         }
     }
     $result->setStatus($bytecodeCacheExtensionLoaded ? Result::STATUS_OK : Result::STATUS_WARNING);
     if ($result->isValid()) {
         $result->setMessage("<info>Bytecode Cache <comment>{$bytecodeCacheExtension}</comment> found.</info>");
     } else {
         $result->setMessage("<error>No Bytecode-Cache found!</error> <comment>It's recommended to install anyone of " . implode(', ', $bytecopdeCacheExtensions) . ".</comment>");
     }
 }