j-ben87 / data-bundle
允许通过命令行加载固定数据集。
Requires
- php: >=5.5.9
- doctrine/data-fixtures: ^1.2
- nelmio/alice: ^2.1
- symfony/symfony: ^3.0
Requires (Dev)
- symfony/phpunit-bridge: ^3.0
This package is auto-updated.
Last update: 2024-09-06 07:29:13 UTC
README
安装
使用composer安装
composer require j-ben87/data-bundle
在您的 app/AppKernel.php
中注册包
public function registerBundles() { $bundles = [ // ... new JBen87\DataBundle\DataBundle(), ]; // ... }
配置
该包公开以下配置
# app/config/config.yml data: culture: fr_FR # required - used to generate localized data with Faker fixtures_dir: "%kernel.root_dir%/data/fixtures" # default value - directory where datasets fixtures files are located datasets: fake: files: - "user.yml" - "address.yml" processors: # optional - white list some processors (default to all if empty) - "@app.data_fixtures.processor.user" providers: # optional - white list some providers (default to all if empty) other: files: - "..."
基本用法
命令
该包提供了一个与 DoctrineFixturesBundle 类似的命令,用于使用 Alice 和 Faker 加载您的固定数据集。
Usage: bin/console data:fixtures:load <dataset> [options] Arguments: dataset The dataset to load. Options: --append Append the data fixtures instead of deleting all data from the database first. --purge-with-truncate Purge data by using a database-level TRUNCATE statement
数据集
要加载您的固定数据集,您首先需要创建一个 数据集。
数据集由以下两部分组成
- 一个包含
yml
固定数据文件的目录,这些文件将由 Alice 加载 - 一个引用要加载的文件的
Dataset
服务(顺序很重要)
注意:如果您使用配置来定义数据集,则 Dataset
服务将自动为您处理。
定义
您需要做的只是按照您希望它们处理的顺序,在配置中列出要加载的固定数据文件。
# app/config/config.yml data: datasets: fake: files: - "user.yml" - "..."
固定数据文件
默认情况下,包含数据集固定数据的文件位于 app/data/fixtures
,但 这可以配置。
# app/data/fixtures/fake/user.yml AppBundle\Entity\User: user_{1..10}: firstname: <firstName()> lastname: <lastName()> email: <email()> password: <password()>
就是这样,您可以开始使用了!
高级用法
提供者 & 处理器
您可以使用与注册 Dataset
相同的命令来注册您的提供者
- 提供者必须标记为
data.provider
- 处理器必须标记为
data.processor
services: app.data_fixtures.provider.custom: class: AppBundle\DataFixtures\Provider\CustomProvider public: false tags: - { name: data.provider } app.data_fixtures.processor.user: class: AppBundle\DataFixtures\Processor\User public: false tags: - { name: data.processor }
它们将自动可用并用于编写和处理固定数据。
注意:您可以在 配置 中为数据集白名单一些提供者或处理器。
数据集
如果您不能或不想使用配置来定义数据集,您也可以手动创建它们。
在您的项目中某个位置创建一个 Dataset
类。它必须实现 JBen87\DataBundle\Dataset\DatasetInterface
。或者它也可以扩展基本类 JBen87\DataBundle\Dataset\Dataset
。
// src/AppBundle/DataFixtures/Dataset/FakeDataset.php use JBen87\DataBundle\Dataset\Dataset; class FakeDataset extends Dataset { /** * @inheritDoc */ public function getFiles() { return [ 'user.yml', ]; } }
要使用命令注册,它还必须声明为一个带有标记 data.dataset
的服务。可选标记属性 alias
可以用来设置数据集名称。
重要:如果没有提供,则数据集名称将从服务id猜测(例如,服务 app.data_fixtures.dataset.fake
的名称将是 fake
)。
services: app.data_fixtures.dataset.fake: class: AppBundle\DataFixtures\Dataset\FakeDataset public: false tags: - { name: data.dataset }
贡献
欢迎拉取请求。
感谢 所有已经贡献的人。
在MIT许可证下发布