stwarog / fuel-fixtures-generator
fuel fixtures package 的生成器
1.0.0
2022-02-16 19:41 UTC
Requires
- php: 7.4.* || 8.*
- stwarog/fuel-fixtures: ^1.2
Requires (Dev)
- phpstan/phpstan: ^0.12.85
- phpstan/phpstan-phpunit: ^0.12.18
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: *
- twig/twig: ^3.3
This package is auto-updated.
Last update: 2024-09-17 01:09:59 UTC
README
这是一个帮助生成 Fuel Fixture 包实现 的包。
开发
make start # starts the local env make check # calls all tests including statis analysis make cs make phpstan make unit make integration
使用方法
# The best approach is using some DI container implementation and fetch the service from there: use Stwarog\FuelFixturesGenerator\{Config as FixtureGeneratorConfig, Factory as FixtureChunkFactory, FixtureFactory, FuelAwareNameGenerator, NameGenerator, Renderer\Engine, Renderer\Engine as FixtureGeneratorViewEngine, Renderer\File, Renderer\Service as Generator, Renderer\Storage}; # e.g. entry configuration return [ NameGenerator::class => fn(Container $c) => new FuelAwareNameGenerator($c->get(FixtureGeneratorConfig::class)), Storage::class => fn(Container $c) => new File(), FixtureChunkFactory::class => fn(Container $c) => new FixtureFactory( $c->get(NameGenerator::class), $c->get(FixtureGeneratorConfig::class) ), // Adapter for Twig of Fixture Generator Engine FixtureGeneratorViewEngine::class => function (Container $c): Engine { return new class ($c->get(TwigViewRenderer::class)) implements FixtureGeneratorViewEngine { private ViewRendererContract $renderer; public function __construct(TwigViewRenderer $renderer) { $this->renderer = $renderer; } public function render(string $fileName, array $params = []): string { return $this->renderer->render('fixture.twig', $params); } }; }, FixtureGeneratorConfig::class => function (Container $c): FixtureGeneratorConfig { return new class () implements FixtureGeneratorConfig { public function getNameSpace(): string { return 'Tests\Fixtures'; } public function storagePath(): string { return APPPATH . 'tests/fixtures/'; } public function outputTemplate(): string { return 'fixture.twig'; } }; }, Generator::class => fn(Container $c) => new Generator( $c->get(FixtureChunkFactory::class), $c->get(FixtureGeneratorViewEngine::class), $c->get(Storage::class), $c->get(FixtureGeneratorConfig::class), ), ];
重要
此包需要一些模板引擎。在集成测试中可以找到一个使用 Twig 的示例。
目前没有在 CLI 中实现使用,因为 Fuel 自动加载系统非常具有挑战性。请获取服务并调用方法以生成文件。