Skip to content

Repository files navigation

Cycle ORM - Schema Builder

Latest Stable VersionBuild StatusScrutinizer Code QualityCodecov

Schema Builder package provides a convenient way to configure your ORM and Database schema via annotations (attributes) or custom generators.

Installation

composer require cycle/schema-builder

Configuration

useCycle\Migrations;
useCycle\Database;
useCycle\Database\Config;
$dbal = newDatabase\DatabaseManager(newConfig\DatabaseConfig([
'default' => 'default',
'databases' => [
'default' => [
'connection' => 'sqlite'
]
],
'connections' => [
'sqlite' => newConfig\SQLiteDriverConfig(
connection: newConfig\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:

useCycle\Schema\Definition;
$entity = newDefinition\Entity();
$entity
->setRole('user')
->setClass(User::class);
// add fields$entity->getFields()
->set('id', (newDefinition\Field())->setType('primary')->setColumn('id')->setPrimary(true))
->set('name', (newDefinition\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:

useCycle\Schema\Compiler;
$schema = (newCompiler())->compile($r);
$orm = $orm->with(schema: new \Cycle\ORM\Schema($schema));

You can find more information about Schema builder package here.

License:

The MIT License (MIT). Please see LICENSE for more information. Maintained by Spiral Scout.

About

Declarative schema generation for Cycle ORM

Topics

Resources

Code of conduct

Contributing

Stars

15 stars

Watchers

6 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages