public function getAdapter()
 {
     if (null === $this->_adapter) {
         if (null !== ($defaultAdapter = Engine_Sanity::getDefaultDbAdapter())) {
             $this->_adapter = $defaultAdapter;
         }
     }
     return $this->_adapter;
 }
 public function getMessage()
 {
     $message = $this->_message;
     // Translation
     $translate = Engine_Sanity::getDefaultTranslator();
     if (null !== $translate) {
         $message = $translate->_($message);
     }
     foreach ($this->_values as $key => $value) {
         if (is_array($value)) {
             $value = join(', ', $value);
         } else {
             if (is_object($value) && method_exists($value, '__toString')) {
                 $value = $value->__toString();
             }
         }
         $message = str_replace("%{$key}%", (string) $value, $message);
     }
     return $message;
 }
 protected function _initTranslate()
 {
     // If in development, log untranslated messages
     $params = array('scan' => Zend_Translate_Adapter::LOCALE_FILENAME, 'logUntranslated' => true);
     $log = new Zend_Log();
     if (APPLICATION_ENV == 'development') {
         $log = new Zend_Log();
         $log->addWriter(new Zend_Log_Writer_Firebug());
     } else {
         $log->addWriter(new Zend_Log_Writer_Null());
     }
     $params['log'] = $log;
     $translate = new Zend_Translate('Csv', APPLICATION_PATH . '/install/languages', null, $params);
     Zend_Registry::set('Zend_Translate', $translate);
     Zend_Validate_Abstract::setDefaultTranslator($translate);
     Engine_Sanity::setDefaultTranslator($translate);
     Zend_Registry::set('Locale', new Zend_Locale());
     return $translate;
 }
 public function prepareAction()
 {
     // Skip
     $skip = $this->_getParam('skip');
     if (null !== $skip) {
         $this->_session->skipDiffErrorFiles = (bool) $skip;
         return $this->_helper->redirector->gotoRoute(array('action' => 'vfs'));
     }
     // Get navigation
     $this->view->installNavigation = $this->getInstallNavigation('prepare');
     // Clean cache
     $this->_packageManager->getCache()->clean();
     // Check for modifications to installer (to prevent problems)
     $this->_checkForModifications(true);
     // Get db
     if (Zend_Registry::isRegistered('Zend_Db') && ($db = Zend_Registry::get('Zend_Db')) instanceof Zend_Db_Adapter_Abstract) {
         Engine_Sanity::setDefaultDbAdapter($db);
     }
     // Get packages
     $this->view->transaction = $transaction = $this->_packageManager->decide((array) $this->_getParam('packages'), $this->_getParam('actions'));
     // Whoops, didn't select anything?
     if (!$transaction) {
         $this->view->selectError = true;
         return;
     }
     // Get dependencies
     $this->view->dependencies = $dependencies = $transaction->getDependencies();
     $dependencyError = false;
     foreach ($dependencies as $dependency) {
         $dependencyError |= $dependency->hasErrors();
     }
     $this->view->dependencyError = $dependencyError;
     // Get sanity
     $this->view->tests = $tests = $transaction->getTests();
     $this->view->testsMaxErrorLevel = $testsMaxErrorLevel = $tests->getMaxErrorLevel();
     $this->view->testsError = $testsError = $testsMaxErrorLevel >= 4;
     // Get file operations
     $this->view->fileOperations = $fileOperations = $transaction->getFileOperations();
     $diffError = false;
     foreach ($fileOperations as $fileOperation) {
         $diffError |= $fileOperation['error'];
     }
     $this->view->diffError = $diffError;
     // Check if we can install
     $this->view->prepareError = $prepareError = $dependencyError || $testsError || $diffError;
     $this->view->diffErrorOnly = $diffErrorOnly = !$dependencyError && !$testsError && $diffError;
     // Store the transaction in the cache
     $this->_saveTransaction($transaction);
 }
示例#5
0
文件: Sanity.php 项目: robeendey/ce
 public static function setDefaultDbAdapter(Zend_Db_Adapter_Abstract $dbAdapter)
 {
     self::$_defaultDbAdapter = $dbAdapter;
 }
示例#6
0
文件: Abstract.php 项目: robeendey/ce
 public function getTests()
 {
     // No resultant package
     $targetPackage = $this->getTargetPackage();
     if (!$targetPackage) {
         return false;
     }
     // No tests
     $tests = $targetPackage->getTests();
     if (empty($tests)) {
         return false;
     }
     // Make battery
     $battery = new Engine_Sanity(array('name' => $targetPackage->getKey()));
     foreach ($tests as $test) {
         $battery->addTest($test->toArray());
     }
     return $battery;
 }
 public function dbSanityAction()
 {
     // Leave if not ready
     if (empty($this->_session->mysql)) {
         return $this->_helper->redirector->gotoRoute(array('action' => 'db-info'));
     }
     // Connect
     try {
         $config = $this->dbFormToConfig($this->_session->mysql);
         $adapter = Zend_Db::factory($config['adapter'], $config['params']);
         $adapter->getServerVersion();
     } catch (Exception $e) {
         $this->view->error = 'Adapter Error: ' . $e->getMessage();
         if (APPLICATION_ENV == 'development') {
             echo $e;
         }
         return;
     }
     // Run sanity
     $this->view->test = $test = new Engine_Sanity(array('tests' => array(array('type' => 'MysqlServer', 'name' => 'MySQL 4.1', 'adapter' => $adapter, 'minVersion' => '4.1'), array('type' => 'MysqlEngine', 'name' => 'MySQL InnoDB Storage Engine', 'adapter' => $adapter, 'engine' => 'innodb'))));
     $test->run();
     $this->view->maxErrorLevel = $maxErrorLevel = $test->getMaxErrorLevel();
     $this->_session->db_sanity = array('maxErrorLevel' => $maxErrorLevel);
 }
 public function sanityAction()
 {
     // Get db
     if (Zend_Registry::isRegistered('Zend_Db') && ($db = Zend_Registry::get('Zend_Db')) instanceof Zend_Db_Adapter_Abstract) {
         Engine_Sanity::setDefaultDbAdapter($db);
     }
     // Get packages
     $packages = $this->_packageManager->listInstalledPackages();
     // Get dependencies
     $this->view->dependencies = $dependencies = $this->_packageManager->depend();
     // Get tests
     $this->view->tests = $tests = new Engine_Sanity();
     $packageIndex = array();
     foreach ($packages as $package) {
         $packageTests = $package->getTests();
         // No tests
         if (empty($packageTests)) {
             continue;
         }
         $packageIndex[$package->getKey()] = $package;
         // Make battery
         $battery = new Engine_Sanity(array('name' => $package->getKey()));
         foreach ($packageTests as $test) {
             $battery->addTest($test->toArray());
         }
         $tests->addTest($battery);
     }
     $this->view->packageIndex = $packageIndex;
     $tests->run();
 }
 public function getEmptyMessage()
 {
     $translate = Engine_Sanity::getDefaultTranslator();
     if ($translate) {
         return $translate->_($this->_emptyMessage);
     } else {
         return $this->_emptyMessage;
     }
 }
示例#10
0
文件: Manager.php 项目: robeendey/ce
 public function test($transaction)
 {
     // Verify transaction
     $transaction = $this->_verifyTransaction($transaction);
     // Check registry for db adapter
     if (Zend_Registry::isRegistered('Zend_Db') && ($db = Zend_Registry::get('Zend_Db')) instanceof Zend_Db_Adapter_Abstract) {
         Engine_Sanity::setDefaultDbAdapter($db);
     }
     // Make tests
     $batteries = new Engine_Sanity();
     foreach ($transaction as $operation) {
         $battery = $operation->getTests();
         if ($battery) {
             $batteries->addTest($battery);
         }
         unset($operation);
     }
     $batteries->run();
     return $batteries;
 }