Permalink
Browse files

[Command] Refactored some commands.

  • Loading branch information...
1 parent 6984897 commit 07f7ec73c5bf5960cb7b9899964cdd6803bf037e @willdurand willdurand committed Apr 7, 2012
View
@@ -11,8 +11,8 @@
namespace Propel\PropelBundle\Command;
use Propel\PropelBundle\Command\AbstractPropelCommand;
-use Propel\PropelBundle\Command\BuildModelCommand;
-use Propel\PropelBundle\Command\BuildSqlCommand;
+use Propel\PropelBundle\Command\ModelBuildCommand;
+use Propel\PropelBundle\Command\SqlBuildCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption;
@@ -52,7 +52,7 @@ protected function configure()
protected function execute(InputInterface $input, OutputInterface $output)
{
if (!$input->getOption('sql')) {
- $modelCommand = new BuildModelCommand();
+ $modelCommand = new ModelBuildCommand();
$modelCommand->setApplication($this->getApplication());
$modelCommand->execute($input, $output);
}
@@ -64,7 +64,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
}
if ($input->getOption('insert-sql')) {
- $insertCommand = new InsertSqlCommand();
+ $insertCommand = new SqlInsertCommand();
$insertCommand->setApplication($this->getApplication());
// By-pass the '--force' required option
View
@@ -21,7 +21,7 @@
/**
* @author Toni Uebernickel <tuebernickel@gmail.com>
*/
-class InitAclCommand extends InsertSqlCommand
+class InitAclCommand extends SqlInsertCommand
{
protected function configure()
{
@@ -30,22 +30,22 @@ protected function configure()
->addOption('force', null, InputOption::VALUE_NONE, 'Set this parameter to execute this action.')
->addOption('connection', null, InputOption::VALUE_OPTIONAL, 'Set this parameter to define a connection to use')
->setHelp(<<<EOT
-The <info>propel:init-acl</info> command connects to the database and executes all SQL statements required to setup the ACL database, it also generates the ACL model.
+The <info>%command.name%</info> command connects to the database and executes all SQL statements required to setup the ACL database, it also generates the ACL model.
- <info>php app/console propel:init-acl</info>
+ <info>php %command.full_name%</info>
The <info>--force</info> parameter has to be used to actually insert SQL.
The <info>--connection</info> parameter allows you to change the connection to use.
The default connection is the active connection (propel.dbal.default_connection).
EOT
)
- ->setName('propel:init-acl')
+ ->setName('propel:init:acl')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
- $this->writeSection($output, '[Propel] You are running the command: propel:init-acl');
+ $this->writeSection($output, '[Propel] You are running the command: propel:init:acl');
if ($input->getOption('verbose')) {
$this->additionalPhingArgs[] = 'verbose';
}
@@ -64,7 +64,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
// Prepare SQL directory
$sqlDirectory = $this->getSqlDir();
- $filesystem = new Filesystem();
+ $filesystem = new Filesystem();
$filesystem->remove($sqlDirectory);
$filesystem->mkdir($sqlDirectory);
@@ -91,6 +91,9 @@ protected function getFinalSchemas(KernelInterface $kernel)
protected function getSqlDir()
{
- return $this->getApplication()->getKernel()->getRootDir() . '/cache/' . $this->getApplication()->getKernel()->getEnvironment() . '/propel/acl/sql';
+ return sprintf('%s/cache/%s/propel/acl/sql',
+ $this->getApplication()->getKernel()->getRootDir(),
+ $this->getApplication()->getKernel()->getEnvironment()
+ );
}
-}
+}
@@ -15,12 +15,12 @@
use Symfony\Component\Console\Output\OutputInterface;
/**
- * BuildCommand.
+ * ModelBuildCommand.
*
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
* @author William DURAND <william.durand1@gmail.com>
*/
-class BuildModelCommand extends AbstractPropelCommand
+class ModelBuildCommand extends AbstractPropelCommand
{
/**
* @see Command
@@ -30,12 +30,12 @@ protected function configure()
$this
->setDescription('Build the Propel Object Model classes based on XML schemas')
->setHelp(<<<EOT
-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.
+The <info>%command.name%</info> command builds the Propel runtime model classes (ActiveRecord, Query, Peer, and TableMap classes) based on the XML schemas defined in all Bundles.
- <info>php app/console propel:build-model</info>
+ <info>php app/console %command.full_name%</info>
EOT
)
- ->setName('propel:build-model')
+ ->setName('propel:model:build')
;
}
@@ -46,7 +46,7 @@ protected function configure()
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
- $this->writeSection($output, '[Propel] You are running the command: propel:build-model');
+ $this->writeSection($output, '[Propel] You are running the command: propel:model:build');
if ($input->getOption('verbose')) {
$this->additionalPhingArgs[] = 'verbose';
@@ -21,12 +21,12 @@
use Propel\PropelBundle\Command\AbstractPropelCommand;
/**
- * BuildCommand.
+ * SqlBuildCommand.
*
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
* @author William DURAND <william.durand1@gmail.com>
*/
-class BuildSqlCommand extends AbstractPropelCommand
+class SqlBuildCommand extends AbstractPropelCommand
{
/**
* @see Command
@@ -36,12 +36,12 @@ protected function configure()
$this
->setDescription('Build the SQL generation code for all tables based on Propel XML schemas')
->setHelp(<<<EOT
-The <info>propel:build-sql</info> command builds the SQL table generation code based on the XML schemas defined in all Bundles.
+The <info>%command.name%</info> command builds the SQL table generation code based on the XML schemas defined in all Bundles.
- <info>php app/console propel:build-sql</info>
+ <info>php %command.full_name%</info>
EOT
)
- ->setName('propel:build-sql')
+ ->setName('propel:sql:build')
;
}
@@ -52,7 +52,7 @@ protected function configure()
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
- $this->writeSection($output, '[Propel] You are running the command: propel:build-sql');
+ $this->writeSection($output, '[Propel] You are running the command: propel:sql:build');
if ($input->getOption('verbose')) {
$this->additionalPhingArgs[] = 'verbose';
@@ -94,7 +94,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
$this->writeSection($output, array(
'[Propel] Error',
'',
- 'An error has occured during the "build-sql" task process. To get more details, run the command with the "--verbose" option.'
+ 'An error has occured during the "%command.name%" command process. To get more details, run the command with the "--verbose" option.'
), 'fg=white;bg=red');
}
}
@@ -16,11 +16,11 @@
use Symfony\Component\Console\Output\OutputInterface;
/**
- * InsertSqlCommand.
+ * SqlInsertCommand.
*
* @author William DURAND <william.durand1@gmail.com>
*/
-class InsertSqlCommand extends AbstractPropelCommand
+class SqlInsertCommand extends AbstractPropelCommand
{
/**
* @see Command
@@ -32,16 +32,16 @@ protected function configure()
->addOption('force', null, InputOption::VALUE_NONE, 'Set this parameter to execute this action.')
->addOption('connection', null, InputOption::VALUE_OPTIONAL, 'Set this parameter to define a connection to use')
->setHelp(<<<EOT
-The <info>propel:insert-sql</info> command connects to the database and executes all SQL statements found in <comment>app/propel/sql/*schema.sql</comment>.
+The <info>%command.name%</info> command connects to the database and executes all SQL statements found in <comment>app/propel/sql/*schema.sql</comment>.
- <info>php app/console propel:insert-sql</info>
+ <info>php %command.full_name%</info>
The <info>--force</info> parameter has to be used to actually insert SQL.
The <info>--connection</info> parameter allows you to change the connection to use.
The default connection is the active connection (propel.dbal.default_connection).
EOT
)
- ->setName('propel:insert-sql')
+ ->setName('propel:sql:insert')
;
}
@@ -55,7 +55,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
// Bad require but needed :(
require_once $this->getContainer()->getParameter('propel.path') . '/generator/lib/util/PropelSqlManager.php';
- $this->writeSection($output, '[Propel] You are running the command: propel:insert-sql');
+ $this->writeSection($output, '[Propel] You are running the command: propel:sql:insert');
if ($input->getOption('force')) {
if ($input->getOption('verbose')) {
@@ -71,12 +71,12 @@ protected function execute(InputInterface $input, OutputInterface $output)
if ($input->getOption('connection')) {
list($name, $config) = $this->getConnection($input, $output);
- $this->doInsertSql($manager, $output, $name);
+ $this->doSqlInsert($manager, $output, $name);
} else {
foreach ($connections as $name => $config) {
$output->writeln(sprintf('Use connection named <comment>%s</comment> in <comment>%s</comment> environment.',
$name, $this->getApplication()->getKernel()->getEnvironment()));
- $this->doInsertSql($manager, $output, $name);
+ $this->doSqlInsert($manager, $output, $name);
}
}
} else {
@@ -86,15 +86,15 @@ protected function execute(InputInterface $input, OutputInterface $output)
protected function getSqlDir()
{
- return $this->getApplication()->getKernel()->getRootDir(). DIRECTORY_SEPARATOR . 'propel'. DIRECTORY_SEPARATOR . 'sql';
+ return sprintf('%s/propel/sql', $this->getApplication()->getKernel()->getRootDir());
}
/**
* @param \PropelSqlManager $manager
* @param OutputInterface $output
* @param string $connectionName
*/
- protected function doInsertSql(\PropelSqlManager $manager, OutputInterface $output, $connectionName)
+ protected function doSqlInsert(\PropelSqlManager $manager, OutputInterface $output, $connectionName)
{
try {
$statusCode = $manager->insertSql($connectionName);
@@ -2,22 +2,6 @@
This is the official implementation of [Propel](http://www.propelorm.org/) in Symfony2.
-Currently supports:
-
- * Generation of model classes based on an XML schema (not YAML) placed under `BundleName/Resources/config/*schema.xml`.
- * Insertion of SQL statements.
- * Runtime autoloading of Propel and generated classes.
- * Propel runtime initialization through the XML configuration.
- * Migrations [Propel 1.6](http://www.propelorm.org/documentation/10-migrations.html).
- * Reverse engineering from [existing database](http://www.propelorm.org/cookbook/working-with-existing-databases.html).
- * Integration to the Symfony2 Profiler.
- * Load SQL, YAML and XML fixtures.
- * Create/Drop databases.
- * Integration with the Form component.
- * Integration with the Security component.
- * Propel ParamConverter can be used with Sensio Framework Extra Bundle.
- * Schema Inheritance
-
## Installation ##
* Clone this bundle in the `vendor/bundles/Propel` directory:
@@ -175,9 +159,9 @@ Call the application console with the `propel:build` command:
### Insert SQL ###
-Call the application console with the `propel:insert-sql` command:
+Call the application console with the `propel:sql:insert` command:
- > php app/console propel:insert-sql [--force]
+ > php app/console propel:sql:insert [--force]
Note that the `--force` option is needed to actually execute the SQL statements.
@@ -427,7 +411,7 @@ This will switch the provider to be the `AuditableAclProvider` of the `PropelBun
The auditing of this provider is set to a sensible default. It will audit all ACL failures but no success by default.
If you also want to audit successful authorizations, you need to update the auditing of the given ACL accordingly.
-After adding the provider, you only need to run the `propel:init-acl` command in order to get the model generated.
+After adding the provider, you only need to run the `propel:init:acl` command in order to get the model generated.
If you already got an ACL database, the schema of the `PropelBundle` is compatible with the default schema of Symfony2.
### Separate database connection for ACL ###
View
@@ -33,6 +33,7 @@ public function getContainer()
{
return new ContainerBuilder(new ParameterBag(array(
'kernel.debug' => false,
+ 'kernel.root_dir' => __DIR__ . '/../',
)));
}

2 comments on commit 07f7ec7

shouldn't propel:init:acl rather be propel:acl:init when following the new command structure? (propel:noun:verb)

Owner

willdurand replied Apr 8, 2012

Yes, it should. But, the Symfony2 command is init:acl, that's why I didn't use the same pattern.. I know, it's not so "consistent" then.

Please sign in to comment.