本文整理汇总了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);
}
}
示例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);
}
示例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;
}
示例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;
}
示例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);
//.........这里部分代码省略.........