2010-10-28 14:41:03 +02:00
< ? php
2011-02-14 22:31:28 +01:00
namespace Propel\PropelBundle\Command ;
2010-10-28 14:41:03 +02:00
2011-02-14 22:31:28 +01:00
use Propel\PropelBundle\Command\PhingCommand ;
2010-10-28 14:41:03 +02:00
use Symfony\Component\Console\Input\InputInterface ;
use Symfony\Component\Console\Output\OutputInterface ;
/**
* BuildCommand .
*
* @ author Fabien Potencier < fabien . potencier @ symfony - project . com >
2011-03-25 16:24:34 +01:00
* @ author William DURAND < william . durand1 @ gmail . com >
2010-10-28 14:41:03 +02:00
*/
class BuildModelCommand extends PhingCommand
{
/**
* @ see Command
*/
protected function configure ()
{
$this
-> setDescription ( 'Build the Propel Object Model classes based on XML schemas' )
-> setHelp ( <<< EOT
2011-02-02 02:05:36 +01:00
The < info > propel : build - model </ info > command builds the Propel runtime model classes ( ActiveRecord , Query , Peer , and TableMap classes ) based on the XML schemas defined in all Bundles .
2010-10-28 14:41:03 +02:00
2011-02-02 02:05:36 +01:00
< info > php app / console propel : build - model </ info >
2010-10-28 14:41:03 +02:00
EOT
)
-> setName ( 'propel:build-model' )
;
}
/**
* @ see Command
*
* @ throws \InvalidArgumentException When the target directory does not exist
*/
protected function execute ( InputInterface $input , OutputInterface $output )
{
2011-05-30 17:03:08 +02:00
if ( $input -> getOption ( 'verbose' )) {
$this -> additionalPhingArgs [] = 'verbose' ;
}
2010-10-28 14:41:03 +02:00
$this -> callPhing ( 'om' );
2011-04-13 17:01:55 +02:00
foreach ( $this -> tempSchemas as $schemaFile => $schemaDetails ) {
2011-04-19 14:13:08 +02:00
$output -> writeln ( sprintf ( 'Built Model classes for bundle <info>%s</info> from <comment>%s</comment>.' , $schemaDetails [ 'bundle' ], $schemaDetails [ 'path' ]));
2011-04-13 17:01:55 +02:00
}
}
2010-10-28 14:41:03 +02:00
}