. */ namespace Doctrine\ORM\Tools\Console\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Doctrine\ORM\Tools\SchemaValidator; /** * Command to 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 Command { /** * {@inheritdoc} */ protected function configure() { $this ->setName('orm:validate-schema') ->setDescription('Validate the mapping files.') ->setHelp(<<getHelper('em')->getEntityManager(); $validator = new SchemaValidator($em); $errors = $validator->validateMapping(); $exit = 0; if ($errors) { foreach ($errors as $className => $errorMessages) { $output->writeln("[Mapping] FAIL - The entity-class '" . $className . "' mapping is invalid:"); foreach ($errorMessages as $errorMessage) { $output->writeln('* ' . $errorMessage); } $output->writeln(''); } $exit += 1; } else { $output->writeln('[Mapping] OK - The mapping files are correct.'); } if (!$validator->schemaInSyncWithMetadata()) { $output->writeln('[Database] FAIL - The database schema is not in sync with the current mapping file.'); $exit += 2; } else { $output->writeln('[Database] OK - The database schema is in sync with the mapping files.'); } return $exit; } }