wpjscc / schema-builder
Cycle ORM Schema Builder
Fund package maintenance!
cycle
Installs: 1
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 13
pkg:composer/wpjscc/schema-builder
Requires
- php: >=8.0
- wpjscc/database: ^2
- wpjscc/orm: 2.x-dev
- yiisoft/friendly-exception: ^1.1
Requires (Dev)
- phpunit/phpunit: ^9.5
- spiral/code-style: ^2.2
- spiral/tokenizer: ^2.8
- symfony/console: ^6.0 || ^7.0
- vimeo/psalm: ^5.12 || ^6.12
This package is auto-updated.
Last update: 2025-11-07 02:58:49 UTC
README
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
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.
License:
The MIT License (MIT). Please see LICENSE for more information. Maintained
by Spiral Scout.