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.