delboy1978uk / bone-doctrine
Bone框架的Doctrine功能
v2.0.3
2024-08-08 16:14 UTC
Requires
- php: ^8.2
- delboy1978uk/barnacle: ^2.3
- delboy1978uk/bone-console: ^1.4
- doctrine/data-fixtures: ^1.7
- doctrine/migrations: ^3.7
- doctrine/orm: ^3.1
- symfony/cache: ^7.0
Requires (Dev)
- codeception/codeception: ^5.1
- codeception/module-asserts: ^3.0
- codeception/module-phpbrowser: ^3.0
- roave/security-advisories: dev-latest
- dev-master
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.4
- v1.8.3
- v1.8.2
- v1.8.1
- v1.8.0
- v1.7.1
- v1.7.0
- v1.6.0
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.0
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.0
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-11-switch-to-attributes-for-v2
- dev-refactor
This package is auto-updated.
Last update: 2024-09-08 16:34:54 UTC
README
Bone框架的Doctrine功能
安装
通过composer安装
composer require delboy1978uk/bone-doctrine
##使用只需将包添加到Bone的模块配置中
<?php // use statements here use Bone\BoneDoctrine\BoneDoctrinePackage; return [ 'packages' => [ // packages here..., Bone\BoneDoctrine\BoneDoctrinePackage::class, ], // ... ];
您应该已经有一个config/bone-db.php
配置文件,因为它在Bone框架骨架项目中是标准配置。
<?php return [ 'db' => [ 'driver' => 'pdo_mysql', 'host' => 'mariadb', 'dbname' => 'awesome', 'user' => 'dbuser', 'password' => '[123456]', ], ];
您还必须设置代理、缓存和实体目录的路径。
<?php return [ // other paths here.... 'proxy_dir' => 'data/proxies/', 'cache_dir' => 'data/cache/', 'entity_paths' => [], ];
实体管理器
您可以在包注册类中获取并注入Doctrine\ORM\EntityManager
到您的类中
$entityManager = $c->get(EntityManager::class);
当然,您可以从那里查看Doctrine文档,请访问https://www.doctrine-project.org/
数据库迁移
Bone框架附带了vendor/bin/bone
命令,该命令实际上是针对Bone框架配置的Doctrine迁移。它不仅会扫描您的实体目录中的更改,还会扫描您所依赖的任何供应商包。
通过更新实体类上的Doctrine注解来更改您的数据库模式,然后运行
vendor/bin/bone migrant:diff vendor/bin/bone migrant:migrate
https://github.com/delboy1978uk/user是一个典型的示例,请查看实体文件夹以了解更多信息。有关详细信息,请参阅Doctrine Fixtures文档。
数据填充
您可以使用以下命令运行数据填充
vendor/bin/bone migrant:fixtures
在您的Bone框架配置中,添加一个fixtures.php并返回运行数据填充的类。
<?php /** * Returns a list of fixtures by classname, in the order of their execution */ use Fixtures\LoadUsers; return [ 'fixtures' => [ LoadUsers::class, ], ];
有关详细信息,请参阅Doctrine Fixtures文档。