miaou-corp / fixture-loader-bundle
使用 Doctrine 管理 Nelmio Alice 固定数据。
1.0.0
2018-11-04 18:16 UTC
Requires
- php: >=7.1.0
- nelmio/alice: ^3.2
- symfony/finder: ~2.8|~3.0|~4.0
Requires (Dev)
- doctrine/orm: ^2.4
- symfony/config: ~2.8|~3.0|~4.0
- symfony/dependency-injection: ~2.8|~3.0|~4.0
- symfony/http-kernel: ~2.8|~3.0|~4.0
- symfony/phpunit-bridge: ^4.0
This package is not auto-updated.
Last update: 2024-09-20 07:34:09 UTC
README
本扩展使用 Nelmio/Alice 生成固定数据。
使用 Symfony Flex 的应用程序
打开命令行,进入您的项目目录并执行
$ composer require --dev miaou-corp/fixture-loader-bundle
不使用 Symfony Flex 的应用程序
步骤 1:下载扩展
打开命令行,进入您的项目目录并执行以下命令以下载此扩展的最新稳定版本
$ composer require --dev miaou-corp/fixture-loader-bundle
此命令要求您全局安装 Composer,请参阅 Composer 文档中的安装章节。
步骤 2:启用扩展
然后,通过将其添加到项目 app/AppKernel.php
文件中注册的扩展列表来启用该扩展
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { //... if (in_array($this->getEnvironment(), ['dev', 'test'], true)) { //... $bundles[] = new Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle(); $bundles[] = new MiaouCorp\Bundle\FixtureLoaderBundle\MiaouCorpFixtureLoaderBundle(); } } // ... }
步骤 3:配置扩展
# config_test.yml # Do not use production database ! # SQLite in memory is recommended for tests speed. doctrine: dbal: url: 'sqlite:///:memory:' miaoucorp_fixture_loader: # This is where you fixture files are stored. directory: /path/to/directory # Default to: '%kernel.project_dir%/tests/Resources/fixtures'
重要提示:每次加载固定数据文件时,都会 删除并重建 数据库模式,因此 请勿在生产环境中使用...
使用方法
在 WebTestCase
中
$client = static::createClient(); // You might want to do this if you do multiple request on a single test // As kernel is rebooted on each request, so your database and fixtures will be lost. $client->disableReboot(); // Or static::$kernel->getContainer for a KernelTestCase $client->getContainer()->get('miaoucorp.fixture_loader')->loadFile('my-fixture-file.yaml'); $client->request('GET', '/some-path'); // To keep some fixture in memory for later use: // Where "user_1" is the fixture key. $fixtures = $client->getContainer()->get('miaoucorp.fixture_loader') ->loadFile('my-fixture-file.yaml', ['user_1']); $userId = $fixtures['user_1']->getId();