cycle/schema-builder
Cycle ORM Schema Builder lets you define and configure your ORM and database schema programmatically using annotations or custom generators. Register entities, map fields and columns, link tables, then compile the schema for Cycle ORM.
Schema Builder package provides a convenient way to configure your ORM and Database schema via annotations (attributes) or custom generators.
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);
We can now register our first entity, add its columns and link to a specific table:
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');
You can generate ORM schema immediately using Cycle\Schema\Compiler:
use Cycle\Schema\Compiler;
$schema = (new Compiler())->compile($r);
$orm = $orm->with(schema: new \Cycle\ORM\Schema($schema));
You can find more information about Schema builder package here.
The MIT License (MIT). Please see LICENSE for more information. Maintained
by Spiral Scout.
How can I help you explore Laravel packages today?