当前位置: 首页>>代码示例>>PHP>>正文


PHP Phing::shutdown方法代码示例

本文整理汇总了PHP中Phing::shutdown方法的典型用法代码示例。如果您正苦于以下问题:PHP Phing::shutdown方法的具体用法?PHP Phing::shutdown怎么用?PHP Phing::shutdown使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Phing的用法示例。


在下文中一共展示了Phing::shutdown方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: execute

 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     try {
         $args = $this->preparePhingArgs($input, $output);
         $phingClasspath = $this->getContainer()->getParameter('rhapsody_phing.phing_classpath');
         $phingHome = $this->getContainer()->getParameter('rhapsody_phing.phing_home');
         if ($output->getVerbosity() == OutputInterface::VERBOSITY_VERBOSE) {
             $commandline = 'phing ' . implode(' ', $args);
             $output->writeln('Executing Phing with: ' . $commandline);
         }
         //require_once('phing/Phing.php');
         \Phing::startup();
         \Phing::setProperty('rhapsody_phing.home', $phingHome);
         \Phing::fire($args);
         \Phing::shutdown();
     } catch (ConfigurationException $x) {
         Phing::printMessage($x);
         exit(-1);
     } catch (Exception $x) {
         exit(1);
     }
 }
开发者ID:rhapsody-project,项目名称:phing-bundle,代码行数:25,代码来源:PhingCommand.php

示例2: ini_set

    ini_set('include_path', PHP_CLASSPATH);
} else {
    if (!defined('PHP_CLASSPATH')) {
        define('PHP_CLASSPATH', get_include_path());
    }
}
require_once 'phing/Phing.php';
try {
    /* Setup Phing environment */
    Phing::startup();
    // Set phing.home property to the value from environment
    // (this may be NULL, but that's not a big problem.)
    Phing::setProperty('phing.home', getenv('PHING_HOME'));
    // Grab and clean up the CLI arguments
    $args = isset($argv) ? $argv : $_SERVER['argv'];
    // $_SERVER['argv'] seems to not work (sometimes?) when argv is registered
    array_shift($args);
    // 1st arg is script name, so drop it
    // Invoke the commandline entry point
    Phing::fire($args);
    // Invoke any shutdown routines.
    Phing::shutdown();
} catch (ConfigurationException $x) {
    Phing::printMessage($x);
    exit(-1);
    // This was convention previously for configuration errors.
} catch (Exception $x) {
    // Assume the message was already printed as part of the build and
    // exit with non-0 error code.
    exit(1);
}
开发者ID:umesecke,项目名称:phing,代码行数:31,代码来源:phing.php

示例3: propelGen

 /**
  * Run propel phing commands
  *
  * @param string $cmd	phing target
  * @param array $argv arguments
  * @return string
  */
 public static function propelGen($cmd = '', $argv = array())
 {
     $autoloader = App::getInstance()->autoloader;
     $generatorBase = dirname(dirname(dirname($autoloader->findFile('AbstractPropelDataModelTask'))));
     $buildXml = $generatorBase . '/build.xml';
     $projectPath = \Curry\App::getInstance()['projectPath'] . '/propel';
     $argv[] = '-logger';
     $argv[] = 'phing.listener.AnsiColorLogger';
     $argv[] = '-f';
     $argv[] = $buildXml;
     $argv[] = '-Dproject.dir=' . $projectPath;
     if ($cmd) {
         $argv[] = $cmd;
     }
     $cwd = getcwd();
     $stream = fopen("php://temp", 'r+');
     $outputStream = new OutputStream($stream);
     Phing::setOutputStream($outputStream);
     Phing::setErrorStream($outputStream);
     Phing::startup();
     Phing::fire($argv);
     rewind($stream);
     $content = stream_get_contents($stream);
     Phing::shutdown();
     chdir($cwd);
     if (extension_loaded('apc')) {
         @apc_clear_cache();
     }
     return $content;
 }
开发者ID:bombayworks,项目名称:currycms,代码行数:37,代码来源:DatabaseHelper.php

示例4: getModels

  protected function getModels($databaseManager, $verbose = false)
  {
    Phing::startup(); // required to locate behavior classes...
    Phing::shutdown(); // restores error_reporting
    $schemas = sfFinder::type('file')
      ->name('*schema.xml')
      ->follow_link()
      ->in(sfConfig::get('sf_config_dir'));
    if (!$schemas)
    {
      throw new sfCommandException('You must create a schema.yml or schema.xml file.');
    }
    $ads = array();

    foreach ($schemas as $schema)
    {
      if ($verbose)
      {
        $this->logSection('schema', sprintf('  Parsing schema "%s"', $schema), null, 'COMMENT');
      }
      $dom = new DomDocument('1.0', 'UTF-8');
      $dom->load($schema);
      //$this->includeExternalSchemas($dom, sfConfig::get('sf_config_dir'));
      $xmlParser = new XmlToAppData(new DefaultPlatform(), '');
      $generatorConfig = $this->getGeneratorConfig();
      $generatorConfig->setBuildConnections($this->getConnections($databaseManager));
      $xmlParser->setGeneratorConfig($generatorConfig);

      $ad = $xmlParser->parseString($dom->saveXML(), $schema);
      $ads[] = $ad;
      $nbTables = $ad->getDatabase(null, false)->countTables();
      if ($verbose)
      {
        $this->logSection('schema', sprintf('  %d tables processed successfully', $nbTables), null, 'COMMENT');
      }
    }
    if (count($ads)>1) {
      $ad = array_shift($ads);
      $ad->joinAppDatas($ads);
      //$ad = $this->joinDataModels($ads);
      //$this->dataModels = array($ad);
    } else {
      $ad = $ads[0];
    }
    $ad->doFinalInitialization();
    return $ad;
  }
开发者ID:nurhidayatullah,项目名称:inventory,代码行数:47,代码来源:sfPropelBaseTask.class.php

示例5: execute

  /**
   * @see sfTask
   */
  protected function execute($arguments = array(), $options = array())
  {
    $databaseManager = new sfDatabaseManager($this->configuration);
    $connections = $this->getConnections($databaseManager);

    $this->logSection('propel', 'Reading databases structure...');
    $ad = new AppData();
    $totalNbTables = 0;
    foreach ($connections as $name => $params)
    {
      if ($options['verbose'])
      {
        $this->logSection('propel', sprintf('  Connecting to database "%s" using DSN "%s"', $name, $params['dsn']), null, 'COMMENT');
      }
      $pdo = $databaseManager->getDatabase($name)->getConnection();
      $database = new Database($name);
      $platform = $this->getPlatform($databaseManager, $name);
      $database->setPlatform($platform);
      $database->setDefaultIdMethod(IDMethod::NATIVE);
      $parser = $this->getParser($databaseManager, $name, $pdo);
      $parser->setMigrationTable($options['migration-table']);
      $parser->setPlatform($platform);
      $nbTables = $parser->parse($database);
      $ad->addDatabase($database);
      $totalNbTables += $nbTables;
      if ($options['verbose'])
      {
        $this->logSection('propel', sprintf('  %d tables imported from database "%s"', $nbTables, $name), null, 'COMMENT');
      }
    }
    if ($totalNbTables) {
      $this->logSection('propel', sprintf('%d tables imported from databases.', $totalNbTables));
    } else {
      $this->logSection('propel', 'Database is empty');
    }

    $this->logSection('propel', 'Loading XML schema files...');
    Phing::startup(); // required to locate behavior classes...
    Phing::shutdown(); // restores error_reporting
    $this->schemaToXML(self::DO_NOT_CHECK_SCHEMA, 'generated-');
    $this->copyXmlSchemaFromPlugins('generated-');
    $appData = $this->getModels($databaseManager, $options['verbose']);
    $this->logSection('propel', sprintf('%d tables defined in the schema files.', $appData->countTables()));
    $this->cleanup($options['verbose']);

    if ($excludePatterns = $appData->getGeneratorConfig()->getBuildProperty('migrationExcludes'))
    {
      $excludePatterns = array_map('trim', explode(',', $excludePatterns));
      $excludePatterns = array_map(array('sfGlobToRegex', 'glob_to_regex'), $excludePatterns);

      foreach (array_merge($ad->getDatabases(), $appData->getDatabases()) as $database)
      {
        foreach ($database->getTables() as $table)
        {
          foreach ($excludePatterns as $pattern)
          {
            if (preg_match($pattern, $table->getName()))
            {
              $table->setSkipSql(true);
            }
          }
        }
      }
    }

    $this->logSection('propel', 'Comparing databases and schemas...');
    $manager = new PropelMigrationManager();
    $manager->setConnections($connections);
    $migrationsUp = array();
    $migrationsDown = array();
    foreach ($ad->getDatabases() as $database) {
      $name = $database->getName();
      if ($options['verbose'])
      {
        $this->logSection('propel', sprintf('  Comparing database "%s"', $name), null, 'COMMENT');
      }

      if (!$appData->hasDatabase($name)) {
        // FIXME: tables present in database but not in XML
        continue;
      }
      $databaseDiff = PropelDatabaseComparator::computeDiff($database, $appData->getDatabase($name));

      if (!$databaseDiff) {
        if($options['verbose']) {
          $this->logSection('propel', sprintf('  Same XML and database structures for datasource "%s" - no diff to generate', $name), null, 'COMMENT');
        }
        continue;
      }

      $this->logSection('propel', sprintf('Structure of database was modified in datasource "%s": %s', $name, $databaseDiff->getDescription()));
      if ($options['verbose'])
      {
        $this->logBlock($databaseDiff, 'COMMENT');
      }
      $platform = $this->getPlatform($databaseManager, $name);
      $migrationsUp[$name] = $platform->getModifyDatabaseDDL($databaseDiff);
//.........这里部分代码省略.........
开发者ID:nurhidayatullah,项目名称:inventory,代码行数:101,代码来源:sfPropelDiffTask.class.php


注:本文中的Phing::shutdown方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。