cycle/schema-builder

Cycle ORM 模式构建器

v2.9.0 2024-07-10 16:20 UTC

README

Latest Stable Version Build Status Scrutinizer Code Quality Codecov

Schema Builder 包提供了一种便捷的方式来配置你的 ORM 和数据库模式,通过 注释(属性) 或自定义生成器实现。

安装

composer require cycle/schema-builder

配置

use Cycle\Migrations;
use Cycle\Database;
use Cycle\Database\Config;

$dbal = new Database\DatabaseManager(new Config\DatabaseConfig([
    'default' => 'default',
    'databases' => [
        'default' => [
            'connection' => 'sqlite'
        ]
    ],
    'connections' => [
        'sqlite' => new Config\SQLiteDriverConfig(
            connection: new Config\SQLite\MemoryConnectionConfig(),
            queryCache: true,
        ),
    ]
]));

$registry = new \Cycle\Schema\Registry($dbal);

我们现在可以注册第一个实体,添加其列并链接到特定的表

use Cycle\Schema\Definition;

$entity = new Definition\Entity();

$entity
    ->setRole('user')
    ->setClass(User::class);

// add fields
$entity->getFields()
    ->set('id', (new Definition\Field())->setType('primary')->setColumn('id')->setPrimary(true))
    ->set('name', (new Definition\Field())->setType('string(32)')->setColumn('user_name'));

// register entity
$r->register($entity);

// associate table
$r->linkTable($entity, 'default', 'users');

你可以使用 Cycle\Schema\Compiler 立即生成 ORM 模式

use Cycle\Schema\Compiler;
$schema = (new Compiler())->compile($r);

$orm = $orm->with(schema: new \Cycle\ORM\Schema($schema));

有关 Schema builder 包的更多信息,请在此处

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 LICENSE。由 Spiral Scout 维护。