delboy1978uk /
bone-doctrine
| 1 | <?php |
||
| 2 | |||
| 3 | namespace Bone\BoneDoctrine; |
||
| 4 | |||
| 5 | use Barnacle\Container; |
||
| 6 | use Barnacle\Exception\NotFoundException; |
||
| 7 | use Barnacle\RegistrationInterface; |
||
| 8 | use Bone\BoneDoctrine\Command\LoadFixturesCommand; |
||
| 9 | use Bone\Console\CommandRegistrationInterface; |
||
| 10 | use Bone\Console\ConsoleApplication; |
||
| 11 | use Doctrine\Common\Cache\Psr6\DoctrineProvider; |
||
|
0 ignored issues
–
show
|
|||
| 12 | use Doctrine\DBAL\Connection; |
||
| 13 | use Doctrine\DBAL\DriverManager; |
||
| 14 | use Doctrine\Migrations\Configuration\Configuration; |
||
| 15 | use Doctrine\Migrations\Configuration\EntityManager\ExistingEntityManager; |
||
| 16 | use Doctrine\Migrations\Configuration\Migration\ExistingConfiguration; |
||
| 17 | use Doctrine\Migrations\DependencyFactory; |
||
| 18 | use Doctrine\Migrations\Metadata\Storage\TableMetadataStorageConfiguration; |
||
| 19 | use Doctrine\Migrations\Tools\Console\Command\DoctrineCommand; |
||
| 20 | use Doctrine\Migrations\Tools\Console\Command\DiffCommand; |
||
| 21 | use Doctrine\Migrations\Tools\Console\Command\DumpSchemaCommand; |
||
| 22 | use Doctrine\Migrations\Tools\Console\Command\ExecuteCommand; |
||
| 23 | use Doctrine\Migrations\Tools\Console\Command\GenerateCommand; |
||
| 24 | use Doctrine\Migrations\Tools\Console\Command\LatestCommand; |
||
| 25 | use Doctrine\Migrations\Tools\Console\Command\ListCommand; |
||
| 26 | use Doctrine\Migrations\Tools\Console\Command\MigrateCommand; |
||
| 27 | use Doctrine\Migrations\Tools\Console\Command\RollupCommand; |
||
| 28 | use Doctrine\Migrations\Tools\Console\Command\StatusCommand; |
||
| 29 | use Doctrine\Migrations\Tools\Console\Command\SyncMetadataCommand; |
||
| 30 | use Doctrine\Migrations\Tools\Console\Command\VersionCommand; |
||
| 31 | use Doctrine\ORM\EntityManager; |
||
| 32 | use Doctrine\ORM\EntityManagerInterface; |
||
| 33 | use Doctrine\ORM\ORMSetup; |
||
| 34 | use Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand; |
||
| 35 | use Doctrine\ORM\Tools\Console\Command\InfoCommand; |
||
| 36 | use Doctrine\ORM\Tools\Console\Command\MappingDescribeCommand; |
||
| 37 | use Doctrine\ORM\Tools\Console\Command\RunDqlCommand; |
||
| 38 | use Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand; |
||
| 39 | use Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand; |
||
| 40 | use Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand; |
||
| 41 | use Doctrine\ORM\Tools\Console\ConsoleRunner; |
||
| 42 | use Doctrine\ORM\Tools\Console\EntityManagerProvider\SingleManagerProvider; |
||
| 43 | use Symfony\Component\Console\Helper\QuestionHelper; |
||
| 44 | use Symfony\Component\Cache\Adapter\FilesystemAdapter; |
||
| 45 | |||
| 46 | class BoneDoctrinePackage implements RegistrationInterface, CommandRegistrationInterface |
||
| 47 | { |
||
| 48 | /** |
||
| 49 | * @param Container $c |
||
| 50 | * @throws \Doctrine\ORM\ORMException |
||
| 51 | */ |
||
| 52 | 5 | public function addToContainer(Container $c) |
|
| 53 | { |
||
| 54 | /** @var EntityManager $em */ |
||
| 55 | |||
| 56 | 5 | if (!$c->has('cache_dir')) { |
|
| 57 | 1 | throw new NotFoundException('please set cache_dir in your config'); |
|
| 58 | } |
||
| 59 | |||
| 60 | 4 | if (!$c->has('db')) { |
|
| 61 | 1 | throw new NotFoundException('please set db connection details in your config'); |
|
| 62 | } |
||
| 63 | |||
| 64 | 3 | if (!$c->has('entity_paths')) { |
|
| 65 | 1 | throw new NotFoundException('please set entity_paths in your config'); |
|
| 66 | } |
||
| 67 | |||
| 68 | 2 | if (!$c->has('proxy_dir')) { |
|
| 69 | 1 | throw new NotFoundException('please set proxy_dir in your config'); |
|
| 70 | } |
||
| 71 | |||
| 72 | 1 | $credentials = $c->get('db'); |
|
| 73 | 1 | $entityPaths = $c->get('entity_paths'); |
|
| 74 | 1 | $proxyDir =$c->get('proxy_dir'); |
|
| 75 | 1 | $cacheDir = $c->get('cache_dir'); |
|
| 76 | 1 | $isDevMode = $c->has('devMode') ? $c->get('devMode') : false; |
|
| 77 | 1 | $cachePool = new FilesystemAdapter('', 60, $cacheDir); |
|
| 78 | 1 | $config = ORMSetup::createAttributeMetadataConfiguration($entityPaths, $isDevMode, $proxyDir, $cachePool); |
|
| 79 | 1 | $config->setProxyNamespace('DoctrineProxies'); |
|
| 80 | 1 | $config->setQueryCache($cachePool); |
|
| 81 | 1 | $connection = DriverManager::getConnection($credentials, $config); |
|
| 82 | 1 | $entityManager = new EntityManager($connection, $config); |
|
| 83 | |||
| 84 | 1 | $c[EntityManager::class] = $entityManager; |
|
| 85 | 1 | $c[EntityManagerInterface::class] = $entityManager; |
|
| 86 | } |
||
| 87 | |||
| 88 | /** |
||
| 89 | * @param Container $container |
||
| 90 | * @return array |
||
| 91 | */ |
||
| 92 | 1 | public function registerConsoleCommands(Container $container): array |
|
| 93 | { |
||
| 94 | /** @var EntityManager $em $em */ |
||
| 95 | 1 | $em = $container->get(EntityManager::class); |
|
| 96 | 1 | $app = $container->get(ConsoleApplication::class); |
|
| 97 | 1 | $migrationsDir = 'data/migrations'; |
|
| 98 | 1 | $meta = new TableMetadataStorageConfiguration(); |
|
| 99 | 1 | $meta->setTableName('Migration'); |
|
| 100 | 1 | $configuration = new Configuration(); |
|
| 101 | 1 | $configuration->addMigrationsDirectory('Migrations', $migrationsDir); |
|
| 102 | 1 | $configuration->setMetadataStorageConfiguration($meta); |
|
| 103 | |||
| 104 | 1 | $configLoader = new ExistingConfiguration($configuration); |
|
| 105 | 1 | $emLoader = new ExistingEntityManager($em); |
|
| 106 | 1 | $dependencyFactory = DependencyFactory::fromEntityManager($configLoader, $emLoader); |
|
| 107 | 1 | $emProvider = new SingleManagerProvider($em); |
|
| 108 | |||
| 109 | 1 | $diff = new DiffCommand($dependencyFactory); |
|
| 110 | 1 | $dump = new DumpSchemaCommand($dependencyFactory); |
|
| 111 | 1 | $exec = new ExecuteCommand($dependencyFactory); |
|
| 112 | 1 | $gen = new GenerateCommand($dependencyFactory); |
|
| 113 | 1 | $latest = new LatestCommand($dependencyFactory); |
|
| 114 | 1 | $list = new ListCommand($dependencyFactory); |
|
| 115 | 1 | $migrate = new MigrateCommand($dependencyFactory); |
|
| 116 | 1 | $rollup = new RollupCommand($dependencyFactory); |
|
| 117 | 1 | $status = new StatusCommand($dependencyFactory); |
|
| 118 | 1 | $sync = new SyncMetadataCommand($dependencyFactory); |
|
| 119 | 1 | $ver = new VersionCommand($dependencyFactory); |
|
| 120 | 1 | $dropDb = new DropCommand($emProvider); |
|
| 121 | 1 | $createDb = new CreateCommand($emProvider); |
|
| 122 | 1 | $validate = new ValidateSchemaCommand($emProvider); |
|
| 123 | 1 | $proxy = new GenerateProxiesCommand($emProvider); |
|
| 124 | 1 | $info = new InfoCommand($emProvider); |
|
| 125 | 1 | $mappingDescribe = new MappingDescribeCommand($emProvider); |
|
| 126 | 1 | $runDql = new RunDqlCommand($emProvider); |
|
| 127 | 1 | $fixtures = new LoadFixturesCommand($em, $container->has('fixtures') ? $container->get('fixtures') : []); |
|
| 128 | |||
| 129 | 1 | $diff->setName('migrant:diff'); |
|
| 130 | 1 | $createDb->setName('migrant:create'); |
|
| 131 | 1 | $dropDb->setName('migrant:drop'); |
|
| 132 | 1 | $dump->setName('migrant:dump'); |
|
| 133 | 1 | $exec->setName('migrant:execute'); |
|
| 134 | 1 | $gen->setName('migrant:generate'); |
|
| 135 | 1 | $info->setName('migrant:info'); |
|
| 136 | 1 | $latest->setName('migrant:latest'); |
|
| 137 | 1 | $list->setName('migrant:list'); |
|
| 138 | 1 | $mappingDescribe->setName('migrant:describe'); |
|
| 139 | 1 | $migrate->setName('migrant:migrate'); |
|
| 140 | 1 | $runDql->setName('migrant:run-dql'); |
|
| 141 | 1 | $rollup->setName('migrant:rollup'); |
|
| 142 | 1 | $status->setName('migrant:status'); |
|
| 143 | 1 | $sync->setName('migrant:sync'); |
|
| 144 | 1 | $validate->setName('migrant:validate'); |
|
| 145 | 1 | $ver->setName('migrant:version'); |
|
| 146 | 1 | $proxy->setName('migrant:generate-proxies'); |
|
| 147 | |||
| 148 | |||
| 149 | 1 | $commands = [$createDb, $dropDb, $diff, $dump, $exec, $gen, $info, $latest, $list, $mappingDescribe, $migrate, $rollup, $runDql, $status, $sync, $validate, $ver, $proxy, $fixtures]; |
|
| 150 | |||
| 151 | /** @var DoctrineCommand $command */ |
||
| 152 | 1 | foreach ($commands as $command) { |
|
| 153 | 1 | $name = $command->getName(); |
|
| 154 | 1 | $name = str_replace(array('migrations:', 'orm:'), '', $name); |
|
| 155 | 1 | $command->setName($name); |
|
| 156 | } |
||
| 157 | |||
| 158 | 1 | return $commands; |
|
| 159 | } |
||
| 160 | } |
||
| 161 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths