From 634d88d5e68001b9dfcdc39e71a64bf7469052ce Mon Sep 17 00:00:00 2001 From: Romain Neutron Date: Tue, 28 May 2013 19:33:09 +0200 Subject: [PATCH 1/4] Rename doctrine utility to developer, add Sqlite Regeneration command --- bin/{doctrine => developer} | 19 +++++++- builder.php | 5 ++ .../Command/Developer/RegenerateSqliteDb.php | 46 +++++++++++++++++++ 3 files changed, 68 insertions(+), 2 deletions(-) rename bin/{doctrine => developer} (75%) create mode 100644 lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php diff --git a/bin/doctrine b/bin/developer similarity index 75% rename from bin/doctrine rename to bin/developer index 83f4511b84..5e97b7aa1f 100755 --- a/bin/doctrine +++ b/bin/developer @@ -9,9 +9,12 @@ * file that was distributed with this source code. */ +use Alchemy\Phrasea\CLI; +use Alchemy\Phrasea\Core\Version; +use Alchemy\Phrasea\Command\Developer\RegenerateSqliteDb; + use Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper; use Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper; -use Alchemy\Phrasea\CLI; // DBAL Commands use Doctrine\DBAL\Tools\Console\Command\RunSqlCommand; use Doctrine\DBAL\Tools\Console\Command\ImportCommand; @@ -34,7 +37,17 @@ use Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand; require_once __DIR__ . '/../vendor/autoload.php'; try { - $cli = new CLI("Phraseanet Doctrine Console"); + $cli = new CLI(" + ___ ___ _ _ ___ __ __ ___ ___ ___ ____ __ __ __ ___ +( \( _)( )( )( _)( ) / \( ,\( _)( ,) (_ _)/ \ / \( ) / __) + ) ) )) _) \\// ) _) )(__( () )) _/ ) _) ) \ )( ( () )( () ))(__ \__ \ +(___/(___) (__) (___)(____)\__/(_) (___)(_)\_) (__) \__/ \__/(____)(___/ + + Phraseanet Copyright (C) 2004 Alchemy + This program comes with ABSOLUTELY NO WARRANTY. + This is free software, and you are welcome to redistribute it + under certain conditions; type `about:license' for details.\n\n" + . ' Phraseanet Developer Tools ', Version::getName() . ' ' . Version::getNumber()); $helpers = array( 'db' => new ConnectionHelper($cli['EM']->getConnection()), @@ -46,6 +59,8 @@ try { $helperSet->set($helper, $name); } + $cli->command(new RegenerateSqliteDb('phrasea:regenerate-sqlite')); + $cli['console']->addCommands(array( // DBAL Commands new RunSqlCommand(), diff --git a/builder.php b/builder.php index 58ad297548..26170572e1 100755 --- a/builder.php +++ b/builder.php @@ -25,6 +25,11 @@ $finder ->name('.gitmodules') ->name('.gitignore') ->name('check_cs.php') + ->name('bin/behat') + ->name('bin/developer') + ->name('bin/doctrine.php') + ->name('bin/doctrine') + ->name('bin/phpunit') ->name('cleaner.php') ->name('build-env.sh') ->name('phpunit.xml.dist') diff --git a/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php b/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php new file mode 100644 index 0000000000..b74efe3af6 --- /dev/null +++ b/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php @@ -0,0 +1,46 @@ +rename($source, $target); + + try { + $dbsParams = $this->container['phraseanet.configuration']->getConnexions(); + $dbParams = $dbsParams['test_connexion']; + + $dbParams['path'] = $source; + + $config = Setup::createYAMLMetadataConfiguration(array(__DIR__ . '/../../../../conf.d/Doctrine'), true); + $em = EntityManager::create($dbParams, $config); + + $metadatas = $em->getMetadataFactory()->getAllMetadata(); + + $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($em); + + $schemaTool->createSchema($metadatas); + } catch (\Exception $e) { + $fs->rename($target, $source); + throw $e; + } + + $fs->remove($target); + + return 0; + } +} From 0973843d55742bd74f3c9af644909a59025aaf28 Mon Sep 17 00:00:00 2001 From: Romain Neutron Date: Tue, 28 May 2013 19:35:19 +0200 Subject: [PATCH 2/4] Update Sqlite regeneration command name and title --- bin/developer | 2 +- .../Phrasea/Command/Developer/RegenerateSqliteDb.php | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bin/developer b/bin/developer index 5e97b7aa1f..4ba8a54cc3 100755 --- a/bin/developer +++ b/bin/developer @@ -59,7 +59,7 @@ try { $helperSet->set($helper, $name); } - $cli->command(new RegenerateSqliteDb('phrasea:regenerate-sqlite')); + $cli->command(new RegenerateSqliteDb()); $cli['console']->addCommands(array( // DBAL Commands diff --git a/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php b/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php index b74efe3af6..3aaf5708f0 100644 --- a/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php +++ b/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php @@ -11,6 +11,13 @@ use Symfony\Component\Filesystem\Filesystem; class RegenerateSqliteDb extends Command { + public function __construct() + { + parent::__construct('phraseanet:regenerate-sqlite'); + + $this->setDescription("Update the sqlite 'tests/db-ref.sqlite' database with current database definition."); + } + public function doExecute(InputInterface $input, OutputInterface $output) { $fs = new Filesystem(); From 2f58f990918a78ac0d150acdee07aa38ab4b9713 Mon Sep 17 00:00:00 2001 From: Romain Neutron Date: Tue, 28 May 2013 19:36:32 +0200 Subject: [PATCH 3/4] Update namespaces --- .../Phrasea/Command/Developer/RegenerateSqliteDb.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php b/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php index 3aaf5708f0..b7799b1272 100644 --- a/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php +++ b/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php @@ -3,10 +3,11 @@ namespace Alchemy\Phrasea\Command\Developer; use Alchemy\Phrasea\Command\Command; +use Doctrine\ORM\Tools\Setup; +use Doctrine\ORM\Tools\SchemaTool; +use Doctrine\ORM\EntityManager; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -use Doctrine\ORM\Tools\Setup; -use Doctrine\ORM\EntityManager; use Symfony\Component\Filesystem\Filesystem; class RegenerateSqliteDb extends Command @@ -38,7 +39,7 @@ class RegenerateSqliteDb extends Command $metadatas = $em->getMetadataFactory()->getAllMetadata(); - $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($em); + $schemaTool = new SchemaTool($em); $schemaTool->createSchema($metadatas); } catch (\Exception $e) { From 37c7c19912e3a0a05fd292a1fb5effa0f719f07c Mon Sep 17 00:00:00 2001 From: Romain Neutron Date: Tue, 28 May 2013 20:02:35 +0200 Subject: [PATCH 4/4] Update Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1368f2eaef..8372c3fbb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ - Add `Link` header in permalink resources HTTP responses. - Global speed improvement on report. - Upload now monitors number of files transmitted. + - Add bin/developer console for developement purpose. * 3.7.12 (2013-05-13)