protected function showTime(sfTimer $timer, $message = 'Time : ', $afterMessage = "\n\n") { $timer->addTime(); $this->log(''); $this->logSection($message, date('i:s', (int) $timer->getElapsedTime())); $this->log(''); $this->log(''); }
public function runTest($methodName, $nbTest = self::NB_TEST) { $this->clearCache(); $timer = new sfTimer(); $this->beginTransaction(); for ($i = 0; $i < $nbTest; $i++) { $this->{$methodName}($i); } $this->commit(); $t = $timer->getElapsedTime(); return $t * 1000; }
/** * Compiles LESS file to CSS * * @param string $lessFile a LESS file * * @return boolean true if succesfully compiled & false in other way */ public function compile($lessFile) { // Creates timer $timer = new sfTimer(); // Gets CSS file path $cssFile = $this->getCssPathOfLess($lessFile); sfLESSUtils::createFolderIfNeeded($cssFile); // Is file compiled $isCompiled = false; // If we check dates - recompile only really old CSS if (self::getConfig()->isCheckDates()) { try { $d = new sfLESSDependency(sfConfig::get('sf_web_dir'), sfConfig::get('app_sf_less_plugin_check_dependencies', false)); $shouldCompile = !is_file($cssFile) || $d->getMtime($lessFile) > filemtime($cssFile); } catch (Exception $e) { $shouldCompile = false; } } else { $shouldCompile = true; } if ($shouldCompile) { $buffer = $this->callLesscCompiler($lessFile, $cssFile); if ($buffer !== false) { $isCompiled = $this->writeCssFile($cssFile, $buffer) !== false; } } // Adds debug info to debug array self::$results[] = array('lessFile' => $lessFile, 'cssFile' => $cssFile, 'compTime' => $timer->getElapsedTime(), 'isCompiled' => $isCompiled); return $isCompiled; }
extract(create_doctrine_test_tree($t)); print_test_tree($t); $t->info(' 3.1 - Adding some Permissions for testing'); $c1 = new sfGuardPermission(); $c1->name = 'c1'; $c1->save(); $c2 = new sfGuardPermission(); $c2->name = 'c2'; $c2->save(); $rt->link('Permissions', array($c1->id, $c2->id)); $rt->save(); $t->info(' 3.2 - Creating the menu object.'); $timer = new sfTimer(); $menu = $rt->createMenu(); $timer->addTime(); $t->info(sprintf('### Menu created from db in %s sec (%s nodes/min)', round($timer->getElapsedTime(), 4), floor(8 * 60 / $timer->getElapsedTime()))); $t->info(' 3.3 - Running tests on the created menu object'); $t->is(get_class($menu), 'ioMenuItem', 'The menu rt has the correct class'); $t->is(count($menu->getChildren()), 2, 'The menu rt has 2 children'); $t->is(array_keys($menu->getChildren()), array('Parent 1', 'Parent 2')); $t->is($menu->getAttributes(), array('class' => 'root'), 'The menu rt has the correct attributes array'); $t->is($menu->getCredentials(), array('c1', 'c2'), 'The menu rt has the correct credentials array'); $t->is(count($menu['Parent 1']->getChildren()), 3, 'pt1 has 3 children.'); $t->is(array_keys($menu['Parent 1']->getChildren()), array('Child 1', 'Child 2', 'Child 3'), 'pt1\'s children are array(Child 1, Child 2, Child 3)'); $t->is(count($menu['Parent 2']->getChildren()), 1, 'pt2 has 1 child.'); $t->is(array_keys($menu['Parent 2']->getChildren()), array('Child 4'), 'pt2\'s children are array(Child 4)'); $t->info(' 3.4 - Compare the created meno to that of the menu from create_test_tree(). They should be identical.'); $arr = create_test_tree($t); $matchingMenu = $arr['menu']; // update its credentials to match $matchingMenu->setCredentials(array('c1', 'c2'));
/** * @see Connection::executeQuery() */ public function executeQuery($sql, $fetchmode = null) { $this->lastExecutedQuery = $sql; $this->numQueriesExecuted++; $elapsedTime = 0; if (sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled')) { $sqlTimer = sfTimerManager::getTimer('Database'); $timer = new sfTimer(); } $retval = $this->childConnection->executeQuery($sql, $fetchmode); if (sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled')) { $sqlTimer->addTime(); $elapsedTime = $timer->getElapsedTime(); } $this->log(sprintf("executeQuery(): [%.2f ms] %s", $elapsedTime * 1000, $sql)); return $retval; }
/** * RSS list of latest created documents. */ public function executeLatest() { $timer = new sfTimer('executeLatest'); $this->documents = Document::getLastDocs($this->__(' :') . ' '); $this->setLayout(false); $this->setCacheControl(3600); c2cActions::statsdTiming('document.executeLatest', $timer->getElapsedTime('executeLatest')); }
/** * Executes this filter. * * @param sfFilterChain The filter chain * * @throws <b>sfInitializeException</b> If an error occurs during view initialization. * @throws <b>sfViewException</b> If an error occurs while executing the view. */ public function execute($filterChain) { // get the context and controller $context = $this->getContext(); $controller = $context->getController(); // get the current action instance $actionEntry = $controller->getActionStack()->getLastEntry(); $actionInstance = $actionEntry->getActionInstance(); // get the current action information $moduleName = $context->getModuleName(); $actionName = $context->getActionName(); // get the request method $method = $context->getRequest()->getMethod(); $viewName = null; $statsdPrefix = c2cActions::statsdPrefix($moduleName, $actionName); if (sfConfig::get('sf_cache')) { // get current uri adapted for cache $uri = MyCacheFilter::getCurrentCacheUri(); // best way would be to modify uri (and not the whole cache management system) // but we have no way to extend getCurrentInternalUri method in sfRouting class just for cache if (null !== $context->getResponse()->getParameter($uri . '_action', null, 'symfony/cache')) { // action in cache, so go to the view $viewName = sfView::SUCCESS; } } if (!$viewName) { if (($actionInstance->getRequestMethods() & $method) != $method) { // this action will skip validation/execution for this method // get the default view $viewName = $actionInstance->getDefaultView(); } else { // set default validated status $validated = true; // get the current action validation configuration $validationConfig = $moduleName . '/' . sfConfig::get('sf_app_module_validate_dir_name') . '/' . $actionName . '.yml'; // load validation configuration // do NOT use require_once if (null !== ($validateFile = sfConfigCache::getInstance()->checkConfig(sfConfig::get('sf_app_module_dir_name') . '/' . $validationConfig, true))) { // create validator manager $validatorManager = new sfValidatorManager(); $validatorManager->initialize($context); require $validateFile; // process validators $validated = $validatorManager->execute(); } // process manual validation $validateToRun = 'validate' . ucfirst($actionName); $manualValidated = method_exists($actionInstance, $validateToRun) ? $actionInstance->{$validateToRun}() : $actionInstance->validate(); // action is validated if: // - all validation methods (manual and automatic) return true // - or automatic validation returns false but errors have been 'removed' by manual validation $validated = $manualValidated && $validated || $manualValidated && !$validated && !$context->getRequest()->hasErrors(); // register fill-in filter if (null !== ($parameters = $context->getRequest()->getAttribute('fillin', null, 'symfony/filter'))) { $this->registerFillInFilter($filterChain, $parameters); } if ($validated) { if (sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled')) { $timer = sfTimerManager::getTimer(sprintf('Action "%s/%s"', $moduleName, $actionName)); } // execute the action $statsdTimer = new sfTimer(); $actionInstance->preExecute(); c2cActions::statsdTiming('execution.action.preExecute', $statsdTimer->getElapsedTime(), $statsdPrefix); $statsdTimer = new sfTimer(); $viewName = $actionInstance->execute(); c2cActions::statsdTiming('execution.action.execute', $statsdTimer->getElapsedTime(), $statsdPrefix); if ($viewName == '') { $viewName = sfView::SUCCESS; } $statsdTimer = new sfTimer(); $actionInstance->postExecute(); c2cActions::statsdTiming('execution.action.postExecute', $statsdTimer->getElapsedTime(), $statsdPrefix); if (sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled')) { $timer->addTime(); } } else { if (sfConfig::get('sf_logging_enabled')) { $this->context->getLogger()->info('{sfFilter} action validation failed'); } // validation failed $handleErrorToRun = 'handleError' . ucfirst($actionName); $viewName = method_exists($actionInstance, $handleErrorToRun) ? $actionInstance->{$handleErrorToRun}() : $actionInstance->handleError(); if ($viewName == '') { $viewName = sfView::ERROR; } } } } if ($viewName == sfView::HEADER_ONLY) { $context->getResponse()->setHeaderOnly(true); // execute next filter $filterChain->execute(); } else { if ($viewName != sfView::NONE) { if (sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled')) { $timer = sfTimerManager::getTimer(sprintf('View "%s" for "%s/%s"', $viewName, $moduleName, $actionName)); } // get the view instance $statsdTimer = new sfTimer(); $viewInstance = $controller->getView($moduleName, $actionName, $viewName); c2cActions::statsdTiming("execution.view.{$viewName}.getView", $statsdTimer->getElapsedTime(), $statsdPrefix); $statsdTimer = new sfTimer(); $viewInstance->initialize($context, $moduleName, $actionName, $viewName); c2cActions::statsdTiming("execution.view.{$viewName}.initialize", $statsdTimer->getElapsedTime(), $statsdPrefix); $statsdTimer = new sfTimer(); $viewInstance->execute(); c2cActions::statsdTiming("execution.view.{$viewName}.execute", $statsdTimer->getElapsedTime(), $statsdPrefix); // render the view and if data is returned, stick it in the // action entry which was retrieved from the execution chain $statsdTimer = new sfTimer(); $viewData = $viewInstance->render(); c2cActions::statsdTiming("execution.view.{$viewName}.render", $statsdTimer->getElapsedTime(), $statsdPrefix); if (sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled')) { $timer->addTime(); } if ($controller->getRenderMode() == sfView::RENDER_VAR) { $actionEntry->setPresentation($viewData); } else { // execute next filter $filterChain->execute(); } } } }
public function parseFiles($files) { $this->log('Starting to process '.count($files).' files').PHP_EOL; $timer = new sfTimer(); // if the version has changed and we are not doing a full rebuild; force one if (($this->existing_xml) && ($this->existing_xml->documentElement->getAttribute('version') != DocBlox_Abstract::VERSION) && (!$this->isForced())) { $this->log('Version of DocBlox has changed since the last build; forcing a full re-build'); $this->setForced(true); } // convert patterns to regex's foreach($this->ignore_patterns as &$pattern) { $pattern = $this->convertToPregCompliant($pattern); } // $this->log('Time1: '.round($timer->getElapsedTime(),4).'s').PHP_EOL; $dom = new DOMDocument('1.0', 'utf-8'); $dom->loadXML('<project version="'.DocBlox_Abstract::VERSION.'"></project>'); foreach ($files as $file) { // check if the file is in an ignore pattern, if so, skip it foreach($this->ignore_patterns as $pattern) { if (preg_match('/^'.$pattern.'$/', $file)) { $this->log('-- File "'.$file.'" matches ignore pattern, skipping'); continue 2; } } $xml = $this->parseFile($file); if ($xml === false) { continue; } $dom_prop = new DOMDocument(); $dom_prop->loadXML(trim($xml)); $xpath = new DOMXPath($dom_prop); $qry = $xpath->query('/*'); for ($i = 0; $i < $qry->length; $i++) { $dom->documentElement->appendChild($dom->importNode($qry->item($i), true)); } } // collect all packages and store them in the XML // TODO: the subpackages should be collected and stored as well! $this->log('Collecting all packages'); $xpath = new DOMXPath($dom); $packages = array(); $qry = $xpath->query('//class/docblock/tag[@name="package"]|//file/docblock/tag[@name="package"]'); for ($i = 0; $i < $qry->length; $i++) { $package_name = $qry->item($i)->nodeValue; if (isset($packages[$package_name])) { continue; } $packages[$package_name] = array(); $qry2 = $xpath->query('//docblock/tag[@name="package" and .="'.$qry->item($i)->nodeValue.'"]/../tag[@name="subpackage"]'); for ($i2 = 0; $i2 < $qry2->length; $i2++) { $packages[$package_name][] = $qry2->item($i2)->nodeValue; } $packages[$package_name] = array_unique($packages[$package_name]); // create package XMl and subpackages $node = new DOMElement('package'); $dom->documentElement->appendChild($node); $node->setAttribute('name', $package_name); foreach ($packages[$package_name] as $subpackage) { $node->appendChild(new DOMElement('subpackage', $subpackage)); } } $this->log('Collecting all namespaces'); $xpath = new DOMXPath($dom); $namespaces = array(); $qry = $xpath->query('//@namespace'); for ($i = 0; $i < $qry->length; $i++) { if (isset($namespaces[$qry->item($i)->nodeValue])) { continue; } $namespaces[$qry->item($i)->nodeValue] = true; } $namespaces = $this->generateNamespaceTree(array_keys($namespaces)); $this->generateNamespaceElements($namespaces, $dom->documentElement); $this->log('Collecting all marker types'); foreach ($this->getMarkers() as $marker) { $node = new DOMElement('marker', strtolower($marker)); $dom->documentElement->appendChild($node); } $dom->formatOutput = true; $xml = $dom->saveXML(); $this->log('--'); $this->log('Elapsed time to parse all files: '.round($timer->getElapsedTime(), 2).'s'); $this->log('Peak memory usage: '.round(memory_get_peak_usage() / 1024 / 1024, 2).'M'); return $xml; }
<?php /* * This file is part of the symfony package. * (c) 2004-2006 Fabien Potencier <*****@*****.**> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ require_once __DIR__ . '/../../bootstrap/unit.php'; $t = new lime_test(6); $t->diag('sfTimer starting and stopping'); $timer = new sfTimer(); $timer->addTime(); sleep(1); $timer->addTime(); $t->is($timer->getCalls(), 2, '->getCalls() returns the amount of addTime() calls'); $t->ok($timer->getElapsedTime() > 0, '->getElapsedTime() returns a value greater than zero. No precision is tested by the unit test to avoid false alarms'); $t->diag('sfTimerManager'); $timerA = sfTimerManager::getTimer('timerA'); $timerB = sfTimerManager::getTimer('timerB'); $t->isa_ok($timerA, 'sfTimer', '::getTimer() returns an sfTimer instance'); $timers = sfTimerManager::getTimers(); $t->is(count($timers), 2, '::getTimers() returns an array with the timers created by the timer manager'); $t->is($timers['timerA'], $timerA, '::getTimers() returns an array with keys being the timer name'); sfTimerManager::clearTimers(); $t->is(count(sfTimerManager::getTimers()), 0, '::clearTimers() empties the list of the timer instances');
/** * Executes list action, adding ratings from routes linked to outings */ public function executeList() { // redirect to user outings list if connected and if myoutings criteria is set if ($this->getUser()->isConnected() && $this->getRequestParameter('myoutings')) { sfLoader::loadHelpers(array('Pagination')); $user_id = $this->getUser()->getId(); $this->redirect(_addUrlParameters(_getBaseUri(), array('myoutings'), array('users' => $user_id))); } // TODO something to do if outings where filtered on route ratings? parent::executeList(); $format = $this->format; if (in_array('cond', $format) && !in_array('json', $format)) { $this->setTemplate('conditions'); if (in_array('full', $format)) { $this->setPageTitle($this->__('conditions and comments')); } else { $this->setPageTitle($this->__('recent conditions')); } } $nb_results = $this->nb_results; if ($nb_results == 0) { return; } $show_images = $this->show_images; $timer = new sfTimer(); $outings = $this->query->execute(array(), Doctrine::FETCH_ARRAY); c2cActions::statsdTiming('pager.getResults', $timer->getElapsedTime()); $timer = new sfTimer(); $outings = Outing::getAssociatedCreatorData($outings); // retrieve outing creator names c2cActions::statsdTiming('outing.getAssociatedCreatorData', $timer->getElapsedTime()); $timer = new sfTimer(); $outings = Outing::getAssociatedRoutesData($outings); // retrieve associated route ratings c2cActions::statsdTiming('outing.getAssociatedRoutesData', $timer->getElapsedTime()); if (!in_array('list', $format)) { $timer = new sfTimer(); $outings = Language::getTheBestForAssociatedAreas($outings); c2cActions::statsdTiming('language.getTheBestForAssociatedAreas', $timer->getElapsedTime()); } // add images infos if ($show_images) { $timer = new sfTimer(); Image::addAssociatedImages($outings, 'oi'); c2cActions::statsdTiming('image.addAssociatedImages', $timer->getElapsedTime()); } Area::sortAssociatedAreas($outings); $this->items = Language::parseListItems($outings, 'Outing', !$show_images); }
$menu2 = $menu->slice(0, 5); $t->is(array_keys($menu2->getChildren()), array('c1', 'c2', 'c3', 'c4'), 'slice 0, 5'); $menu2 = $menu->slice("c1", "c5"); $t->is(array_keys($menu2->getChildren()), array('c1', 'c2', 'c3', 'c4'), 'slice c1, c5'); $menu2 = $menu->slice(0, 2); $t->is($menu2->render(), '<ul class="menu"><li class="first">c1<ul class="menu_level_1"><li class="first">gc1</li><li class="last">gc2</li></ul></li><li class="last">c2</li></ul>', 'proper rendering after slice'); $t->info('12 - Test split'); extract($menu->split(1)); $t->is(array(array_keys($primary->getChildren()), array_keys($secondary->getChildren())), array(array('c1'), array('c2', 'c3', 'c4')), 'split 1'); extract($menu->split("c1")); $t->is(array(array_keys($primary->getChildren()), array_keys($secondary->getChildren())), array(array('c1'), array('c2', 'c3', 'c4')), 'split c1'); extract($menu->split(2)); $t->is(array(array_keys($primary->getChildren()), array_keys($secondary->getChildren())), array(array('c1', 'c2'), array('c3', 'c4')), 'split 2'); extract($menu->split("c2")); $t->is(array(array_keys($primary->getChildren()), array_keys($secondary->getChildren())), array(array('c1', 'c2'), array('c3', 'c4')), 'split c2'); extract($menu->split(4)); $t->is(array(array_keys($primary->getChildren()), array_keys($secondary->getChildren())), array(array('c1', 'c2', 'c3', 'c4'), array()), 'split 4'); extract($menu->split("c4")); $t->is(array(array_keys($primary->getChildren()), array_keys($secondary->getChildren())), array(array('c1', 'c2', 'c3', 'c4'), array()), 'split c4'); extract($menu->split(5)); $t->is(array(array_keys($primary->getChildren()), array_keys($secondary->getChildren())), array(array('c1', 'c2', 'c3', 'c4'), array()), 'split 5'); extract($menu->split("c5")); $t->is(array(array_keys($primary->getChildren()), array_keys($secondary->getChildren())), array(array('c1', 'c2', 'c3', 'c4'), array()), 'split c5'); extract($menu->split(2)); $t->ok($primary['c1']->getParent() !== $secondary['c3']->getParent(), 'primary->c1 and secondary->c3 have two distinct fathers'); $t->is($primary->render(), '<ul class="menu"><li class="first">c1<ul class="menu_level_1"><li class="first">gc1</li><li class="last">gc2</li></ul></li><li class="last">c2</li></ul>', 'proper rendering of primary after slice'); $t->is($secondary->render(), '<ul class="menu"><li class="first">c3</li><li class="last">c4</li></ul>', 'proper rendering of secondary after slice'); // used for benchmarking $timer->addTime(); $t->info('Test completed in ' . $timer->getElapsedTime());
/** * Executes list action */ public function executeList() { parent::executeList(); $nb_results = $this->nb_results; if ($nb_results == 0) { return; } $timer = new sfTimer(); $summits = $this->query->execute(array(), Doctrine::FETCH_ARRAY); c2cActions::statsdTiming('pager.getResults', $timer->getElapsedTime()); $timer = new sfTimer(); Document::countAssociatedDocuments($summits, 'sr', true); c2cActions::statsdTiming('document.countAssociatedDocuments', $timer->getElapsedTime()); Area::sortAssociatedAreas($summits); $this->items = Language::parseListItems($summits, 'Summit'); }
/** * Executes list action */ public function executeList() { parent::executeList(); $nb_results = $this->nb_results; if ($nb_results == 0) { return; } $timer = new sfTimer(); $sites = $this->query->execute(array(), Doctrine::FETCH_ARRAY); c2cActions::statsdTiming('pager.getResults', $timer->getElapsedTime()); $timer = new sfTimer(); Parking::addAssociatedParkings($sites, 'pt'); // add associated parkings infos to $sites c2cActions::statsdTiming('parking.addAssociatedParkings', $timer->getElapsedTime()); $timer = new sfTimer(); Document::countAssociatedDocuments($sites, 'to', true); c2cActions::statsdTiming('document.countAssociatedDocuments', $timer->getElapsedTime()); Area::sortAssociatedAreas($sites); $this->items = Language::parseListItems($sites, 'Site'); }
function persist_menu(lime_test $t, ioDoctrineMenuItem $rt, ioMenuItem $menu) { $timer = new sfTimer(); $rt->persistFromMenuArray($menu->toArray()); $timer->addTime(); $rt->refresh(true); $t->info(sprintf('### Menu took %s to persist (%s nodes/min)', round($timer->getElapsedTime(), 4), floor(8 * 60 / $timer->getElapsedTime()))); }
/** * Executes list action, adding parkings linked to routes */ public function executeList() { parent::executeList(); $nb_results = $this->nb_results; if ($nb_results == 0) { return; } $timer = new sfTimer(); $routes = $this->query->execute(array(), Doctrine::FETCH_ARRAY); c2cActions::statsdTiming('pager.getResults', $timer->getElapsedTime()); // if they are criterias on the summit (snam, srnam, salt, styp) // we might have only some of the associated summits and not the 'best one' (ticket #337) // so we must add a new request to get the summits, display the best one and add a note to explain that the // other summit is associated // FIXME would be nice to put all in a single request (before), but I didn't manage to do it // TODO not working right now //if ($this->hasRequestParameter('snam') || $this->hasRequestParameter('srnam') || // $this->hasRequestParameter('salt') || $this->hasRequestParameter('styp')) //{ // $routes = Route::addBestSummitName($routes, ''); //} $timer = new sfTimer(); Parking::addAssociatedParkings($routes, 'pr'); // add associated parkings infos to $routes c2cActions::statsdTiming('parking.addAssociatedParkings', $timer->getElapsedTime()); $timer = new sfTimer(); Document::countAssociatedDocuments($routes, 'ro', true); // number of associated outings c2cActions::statsdTiming('document.countAssociatedDocuments', $timer->getElapsedTime()); Area::sortAssociatedAreas($routes); $this->items = Language::parseListItems($routes, 'Route'); }
/** * Compiles LESS file to CSS * * @param string $lessFile a LESS file * @return boolean true if succesfully compiled & false in other way */ public function compile($lessFile) { // Creates timer $timer = new sfTimer(); // Gets CSS file path $cssFile = self::getCssPathOfLess($lessFile); // Checks if path exists & create if not if (!is_dir(dirname($cssFile))) { mkdir(dirname($cssFile), 0777, true); } // Is file compiled $isCompiled = false; // If we check dates - recompile only really old CSS if ($this->isCheckDates()) { if (!is_file($cssFile) || filemtime($lessFile) > filemtime($cssFile)) { $isCompiled = $this->callCompiler($lessFile, $cssFile); } } else { $isCompiled = $this->callCompiler($lessFile, $cssFile); } // Adds debug info to debug array self::$results[] = array('lessFile' => $lessFile, 'cssFile' => $cssFile, 'compTime' => $timer->getElapsedTime(), 'isCompiled' => $isCompiled); return $isCompiled; }
/** * @see Connection::executeUpdate() **/ public function executeUpdate($sql) { $this->lastExecutedQuery = $sql; $this->numQueriesExecuted++; $boolLog = sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled') || nyProfiler::getInstance()->isStarted(); $elapsedTime = 0; if ($boolLog) { $sqlTimer = sfTimerManager::getTimer('Database'); $timer = new sfTimer(); } // endif $intResult = $this->childConnection->executeUpdate($sql); if ($boolLog) { $sqlTimer->addTime(); $elapsedTime = $timer->getElapsedTime(); } // endif $this->log(sprintf("{sfCreole} executeUpdate(): [%.2f ms] %s", $elapsedTime * 1000, $sql), true); return $intResult; }
protected function execute($arguments = array(), $options = array()) { $definitions = $this->getDefinition(); $timer = new sfTimer(); $succeeded = array(); $targets = $this->getOption('targets', array_keys($definitions)); foreach ((array) $definitions as $k => $v) { if (!in_array($k, $targets)) { continue; } $timer->startTimer(); $defaultOptions = array_merge($this->options, array('name' => $k, 'dir' => $this->basePath, 'required_rules' => array(), 'configuration' => $this->configuration, 'dispatcher' => new sfEventDispatcher(), 'formatter' => $this->formatter)); $v = array_merge(array('options' => $defaultOptions), $v); if (!isset($v['options']['required_rules'])) { $v['options']['required_rules'] = array(); } $requiredRules = (array) $v['options']['required_rules']; if (!empty($requiredRules) && array_diff($requiredRules, $succeeded)) { $this->logSection('upgrade', 'Passed ' . $k, null, 'ERROR'); continue; } $this->logSection('upgrade', 'Processing ' . $k); if (isset($v['file']) && is_file($v['file'])) { require_once $v['file']; } if (class_exists($v['strategy'])) { $className = $v['strategy']; } else { $className = 'opUpgrade' . $v['strategy'] . 'Strategy'; } opApplicationConfiguration::registerZend(); try { // disable Doctrine profiling sfConfig::set('sf_debug', false); $strategy = new $className($v['options']); $strategy->run(); $succeeded[] = $k; } catch (Exception $e) { $this->logBlock($e->getMessage(), 'ERROR'); } opApplicationConfiguration::unregisterZend(); $this->logSection('upgrade', sprintf('Processed %s (%.2f sec)', $k, $timer->addTime())); } $this->logSection('upgrade', sprintf('Completed Upgrading (%.2f sec)', $timer->getElapsedTime())); $this->logSection('upgrade', sprintf('The %.2f MB memory allocated', round(memory_get_peak_usage(true) / 1048576, 2))); }
else { echo 'The chosen output format does not support different search methods'.PHP_EOL; } } // enable verbose mode if the flag was set if ($opts->getOption('verbose')) { $writer->setLogLevel(Zend_Log::DEBUG); } } catch (Exception $e) { // if the message actually contains anything, show it. if ($e->getMessage()) { echo $e->getMessage() . PHP_EOL . PHP_EOL; } // show help message and exit the application echo $opts->getUsageMessage(); exit; } // start the transformation process echo 'Starting transformation of files (this could take a while depending upon the size of your project)'.PHP_EOL; echo 'The theme '.$writer->getTheme().' was used.'.PHP_EOL; $writer->execute(); echo 'Finished transformation in '.round($timer->getElapsedTime(), 2).' seconds'.PHP_EOL;