delboy1978uk/bone-doctrine

Bone框架的Doctrine功能

v2.0.3 2024-08-08 16:14 UTC

README

Latest Stable Version Total Downloads License
build status Code Coverage Scrutinizer Code Quality

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文档。