Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / lib / Doctrine / ORM / Tools / Console / Command / SchemaTool / AbstractCommand.php
1 <?php
2 /*
3  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
4  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
5  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
6  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
7  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
8  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
9  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
10  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
11  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
12  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
13  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14  *
15  * This software consists of voluntary contributions made by many individuals
16  * and is licensed under the MIT license. For more information, see
17  * <http://www.doctrine-project.org>.
18  */
19
20 namespace Doctrine\ORM\Tools\Console\Command\SchemaTool;
21
22 use Symfony\Component\Console\Input\InputInterface,
23     Symfony\Component\Console\Output\OutputInterface,
24     Symfony\Component\Console\Command\Command,
25     Doctrine\ORM\Tools\SchemaTool;
26
27 abstract class AbstractCommand extends Command
28 {
29     /**
30      * @param InputInterface $input
31      * @param OutputInterface $output
32      * @param SchemaTool $schemaTool
33      * @param array $metadatas
34      */
35     abstract protected function executeSchemaCommand(InputInterface $input, OutputInterface $output, SchemaTool $schemaTool, array $metadatas);
36
37     /**
38      * @see Console\Command\Command
39      */
40     protected function execute(InputInterface $input, OutputInterface $output)
41     {
42         $emHelper = $this->getHelper('em');
43
44         /* @var $em \Doctrine\ORM\EntityManager */
45         $em = $emHelper->getEntityManager();
46
47         $metadatas = $em->getMetadataFactory()->getAllMetadata();
48
49         if ( ! empty($metadatas)) {
50             // Create SchemaTool
51             $tool = new \Doctrine\ORM\Tools\SchemaTool($em);
52
53             $this->executeSchemaCommand($input, $output, $tool, $metadatas);
54         } else {
55             $output->write('No Metadata Classes to process.' . PHP_EOL);
56         }
57     }
58 }