. */ namespace Doctrine\ORM\Tools\Console\Command; use Symfony\Component\Console\Input\InputArgument, Symfony\Component\Console\Input\InputOption, Symfony\Component\Console; /** * Validate that the current mapping is valid * * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @link www.doctrine-project.com * @since 1.0 * @author Benjamin Eberlei * @author Guilherme Blanco * @author Jonathan Wage * @author Roman Borschel */ class ValidateSchemaCommand extends Console\Command\Command { /** * @see Console\Command\Command */ protected function configure() { $this ->setName('orm:validate-schema') ->setDescription('Validate the mapping files.') ->setHelp(<<getHelper('em')->getEntityManager(); $validator = new \Doctrine\ORM\Tools\SchemaValidator($em); $errors = $validator->validateMapping(); $exit = 0; if ($errors) { foreach ($errors as $className => $errorMessages) { $output->write("[Mapping] FAIL - The entity-class '" . $className . "' mapping is invalid:\n"); foreach ($errorMessages as $errorMessage) { $output->write('* ' . $errorMessage . "\n"); } $output->write("\n"); } $exit += 1; } else { $output->write('[Mapping] OK - The mapping files are correct.' . "\n"); } if (!$validator->schemaInSyncWithMetadata()) { $output->write('[Database] FAIL - The database schema is not in sync with the current mapping file.' . "\n"); $exit += 2; } else { $output->write('[Database] OK - The database schema is in sync with the mapping files.' . "\n"); } return $exit; } }