/**
  * @param ResultCollection       $results
  * @param StoreInterface $store
  *
  */
 public function check(ResultCollection $results, StoreInterface $store)
 {
     $result = $results->createResult();
     $typedParams = array('result' => $result, 'store' => $store);
     $paramValues = $this->getParamValues($store, $typedParams);
     $name = 'checkSettings';
     $method = new \ReflectionMethod($this, $name);
     $parameters = $method->getParameters();
     $arguments = array();
     foreach ($parameters as $parameter) {
         $paramName = $parameter->getName();
         $paramClass = $parameter->getClass();
         // create named parameter from type-hint if applicable
         if ($paramClass) {
             foreach ($typedParams as $object) {
                 if ($paramClass->isSubclassOf(get_class($object))) {
                     $paramValues[$paramName] = $object;
                     break;
                 }
             }
         }
         // use named parameter, otherwise null
         $paramValues += array($paramName => null);
         $arguments[] = $paramValues[$paramName];
     }
     call_user_func_array(array($this, $name), $arguments);
 }
 /**
  * @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>");
         }
     }
 }
 /**
  * @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');
     }
 }
Exemple #4
0
 /**
  * @param ResultCollection $results
  */
 public function check(ResultCollection $results)
 {
     /** @var $resourceModel Mage_Core_Model_Resource */
     $resourceModel = Mage::getModel('core/resource');
     /** @var $dbAdapter Varien_Db_Adapter_Interface|false */
     $dbAdapter = $resourceModel->getConnection('core_write');
     $result = $results->createResult();
     if (!$dbAdapter instanceof Varien_Db_Adapter_Interface) {
         $result->setStatus($result::STATUS_ERROR);
         $result->setMessage("<error>Mysql Version: Can not check. Unable to obtain resource connection 'core_write'.</error>");
     } else {
         $this->checkImplementation($result, $dbAdapter);
     }
 }
Exemple #5
0
 /**
  * @param ResultCollection $results
  */
 public function check(ResultCollection $results)
 {
     $files = $this->_commandConfig['filesystem']['files'];
     $magentoRoot = $this->_checkCommand->getApplication()->getMagentoRootFolder();
     foreach ($files as $file => $comment) {
         $result = $results->createResult();
         if (file_exists($magentoRoot . 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>");
         }
     }
 }
Exemple #6
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>");
     }
 }
 /**
  * @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 Unsecure 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 (unsecure) of Store: <comment>' . $store->getCode() . '</comment> OK');
         } else {
             $result->setMessage('<error>Cookie Domain (unsecure) <comment>Store: ' . $store->getCode() . '</comment> ' . $errorMessage . '</error>');
         }
     } else {
         $result->setMessage('<info>Cookie Domain (unsecure) of Store: <comment>' . $store->getCode() . '</comment> OK - No domain set');
     }
 }
 /**
  * @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>");
     }
 }
Exemple #9
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>");
     }
 }
Exemple #10
0
 /**
  * @param ResultCollection $results
  */
 public function check(ResultCollection $results)
 {
     $folders = $this->_commandConfig['filesystem']['folders'];
     $magentoRoot = $this->_checkCommand->getApplication()->getMagentoRootFolder();
     foreach ($folders as $folder => $comment) {
         $result = $results->createResult();
         if (file_exists($magentoRoot . '/' . $folder)) {
             $result->setStatus(Result::STATUS_OK);
             $result->setMessage("<info>Folder <comment>" . $folder . "</comment> found.</info>");
             if (!is_writeable($magentoRoot . '/' . $folder)) {
                 $result->setStatus(Result::STATUS_ERROR);
                 $result->setMessage("<error>Folder " . $folder . " is not writeable!</error><comment> Usage: " . $comment . "</comment>");
             }
         } else {
             $result->setStatus(Result::STATUS_ERROR);
             $result->setMessage("<error>Folder " . $folder . " not found!</error><comment> Usage: " . $comment . "</comment>");
         }
     }
 }
 /**
  * @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>");
     }
 }
 /**
  * @param ResultCollection $results
  */
 public function check(ResultCollection $results)
 {
     $result = $results->createResult();
     $dbAdapter = $this->resource->getConnection();
     if (!$dbAdapter instanceof AdapterInterface) {
         $result->setStatus(Result::STATUS_ERROR);
         $result->setMessage("<error>Mysql Version: Can not check. Unable to obtain resource connection 'core_write'.</error>");
         return;
     }
     /**
      * 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>");
     }
 }
Exemple #13
0
 /**
  * @param ResultCollection $results
  * @param string $context
  * @param string $checkGroupClass
  */
 private function _markCheckWarning(ResultCollection $results, $context, $checkGroupClass)
 {
     $result = $results->createResult();
     $result->setMessage('<error>No ' . $context . ' configured to run store check:</error> <comment>' . basename($checkGroupClass) . '</comment>');
     $result->setStatus($result::STATUS_WARNING);
     $results->addResult($result);
 }