kurl/ silex-doctrine-migrations-provider
Silex 的 doctrine 迁移提供者
0.3.2
2020-03-23 11:51 UTC
Requires
- php: ^5.6|^7.0
- doctrine/dbal: ^2.2
- doctrine/migrations: ^1.5
- pimple/pimple: ^3.0
- silex/api: ^2.0
- symfony/console: ^2.3 | ^3.0
- symfony/http-foundation: 3.4.35
Requires (Dev)
- doctrine/orm: ^2.2
- phpunit/phpunit: ^5.7
- silex/silex: ^2.0
This package is auto-updated.
Last update: 2024-08-30 01:08:45 UTC
README
Silex 2.x 或 Pimple 3.x 的 doctrine 迁移服务提供者。
安装
通过 Composer 安装提供者
composer require kurl/silex-doctrine-migrations-provider
使用
参数
以下是您可以为提供者配置的配置参数
migrations.directory
:迁移所在的目录。必需。migrations.namespace
:迁移类的作用域。必需。migrations.name
:迁移套件的名称。默认为 "Migrations"。migrations.table_name
:数据库迁移表。默认为migration_versions
。
服务
服务提供者注册以下服务,您可以使用这些服务
migrations.em_helper_set
:Doctrine ORM 实体管理器辅助集。如果您已注册了orm.em
服务(假设来自 `DoctrineServiceProvider`),则会注册。migrations.commands
:一组 Symfony 命令实例。您可以使用它们添加到自己的控制台应用程序中。
还有几个其他服务,提供者内部使用,并且它们被公开,以便您可以通过 Pimple 的懒加载来扩展或覆盖它们
migrations.output_writer
:在 Doctrine 迁移配置中使用的Doctrine\DBAL\Migrations\OutputWriter
实例。migrations.configuration
:在控制台命令中使用的Doctrine\DBAL\Migrations\Configuration\Configuration
实例。migrations.command_names
:命令名称数组。您可以将自己的命令添加到此处,以便懒加载到migrations.commands
中。
您可以按照以下方式注册提供者并配置它
<?php $app->register( new \Kurl\Silex\Provider\DoctrineMigrationsProvider(), array( 'migrations.directory' => __DIR__ . '/../path/to/migrations', 'migrations.name' => 'Acme Migrations', 'migrations.namespace' => 'Acme\Migrations', 'migrations.table_name' => 'acme_migrations', ) );
Silex
您可以将 Symfony\Component\Console\Application
的一个可选实例传递给提供者的构造函数。或者,您可以将控制台应用程序的实例设置为 $app['console']
。如果提供者可以找到控制台应用程序实例,则它可以为您注册命令和辅助集。
提供者实现了 `Silex\Api\BootableProviderInterface`,因此如果您使用提供者与 Silex 一起使用,则启动应用程序将为您注册命令
<?php $console = new \Symfony\Component\Console\Application(); $app->register( new \Kurl\Silex\Provider\DoctrineMigrationsProvider($console), array( 'migrations.directory' => __DIR__ . '/../path/to/migrations', 'migrations.namespace' => 'Acme\Migrations', ) ); $app->boot(); $console->run();
Pimple
如果您使用提供者与 Pimple 一起使用,而不使用 Silex,那么您需要自己注册辅助集和命令到您的控制台应用程序中。由于提供者已经注册了所有必需的服务,因此这使得操作变得非常简单
<?php $console = new \Symfony\Component\Console\Application(); $app->register( new \Kurl\Silex\Provider\DoctrineMigrationsProvider(), array( 'migrations.directory' => __DIR__ . '/../path/to/migrations', 'migrations.namespace' => 'Acme\Migrations', ) ); // Register helper set and commands from the `DoctrineMigrationsProvider` $console->setHelperSet($app['migrations.em_helper_set']); $console->addCommands($app['migrations.commands']); $console->run();
代码覆盖率报告
$ bin/phpunit --coverage-html build/coverage --coverage-clover build/logs/clover.xml --log-junit build/logs/phpunit.xml