Skip to content

Commit 4661798

Browse files
committed
refactor: bindings and tests
1 parent 2705dd7 commit 4661798

34 files changed

+560
-502
lines changed

composer.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@
2121
"cycle/database": "^2.4",
2222
"cycle/migrations": "^4.0",
2323
"cycle/orm": "^2.3",
24-
"laravel/framework": "*",
25-
"symfony/console": "^6.2",
2624
"cycle/schema-migrations-generator": "^2.1",
27-
"cycle/schema-renderer": "^1.2"
25+
"cycle/schema-renderer": "^1.2",
26+
"laravel/framework": "*",
27+
"spiral/attributes": "^3.1",
28+
"symfony/console": "^6.2"
2829
},
2930
"require-dev": {
3031
"ergebnis/composer-normalize": "^2.30",

composer.lock

Lines changed: 37 additions & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/cycle.php

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -167,38 +167,38 @@
167167
* null (default) - Will be used schema generators defined in bootloaders
168168
*/
169169
'generators' => [
170-
GeneratorLoader::GROUP_INDEX => [
171-
// Register embeddable entities
172-
Annotated\Embeddings::class,
173-
// Register annotated entities
174-
Annotated\Entities::class,
175-
// Register STI/JTI
176-
Annotated\TableInheritance::class,
177-
// Add @Table column declarations
178-
Annotated\MergeColumns::class,
179-
],
180-
GeneratorLoader::GROUP_RENDER => [
181-
// Re-declared table schemas (remove columns)
182-
Schema\Generator\ResetTables::class,
183-
// Generate entity relations
184-
Schema\Generator\GenerateRelations::class,
185-
// Generate changes from schema modifiers
186-
Schema\Generator\GenerateModifiers::class,
187-
// Make sure all entity schemas are correct
188-
Schema\Generator\ValidateEntities::class,
189-
// Declare table schemas
190-
Schema\Generator\RenderTables::class,
191-
// Declare relation keys and indexes
192-
Schema\Generator\RenderRelations::class,
193-
// Render all schema modifiers
194-
Schema\Generator\RenderModifiers::class,
195-
// Add @Table column declarations
196-
Annotated\MergeIndexes::class,
197-
],
198-
GeneratorLoader::GROUP_POSTPROCESS => [
199-
// Typecast non string columns
200-
Schema\Generator\GenerateTypecast::class,
201-
],
170+
// GeneratorLoader::GROUP_INDEX => [
171+
// // Register embeddable entities
172+
// Annotated\Embeddings::class,
173+
// // Register annotated entities
174+
// Annotated\Entities::class,
175+
// // Register STI/JTI
176+
// Annotated\TableInheritance::class,
177+
// // Add @Table column declarations
178+
// Annotated\MergeColumns::class,
179+
// ],
180+
// GeneratorLoader::GROUP_RENDER => [
181+
// // Re-declared table schemas (remove columns)
182+
// Schema\Generator\ResetTables::class,
183+
// // Generate entity relations
184+
// Schema\Generator\GenerateRelations::class,
185+
// // Generate changes from schema modifiers
186+
// Schema\Generator\GenerateModifiers::class,
187+
// // Make sure all entity schemas are correct
188+
// Schema\Generator\ValidateEntities::class,
189+
// // Declare table schemas
190+
// Schema\Generator\RenderTables::class,
191+
// // Declare relation keys and indexes
192+
// Schema\Generator\RenderRelations::class,
193+
// // Render all schema modifiers
194+
// Schema\Generator\RenderModifiers::class,
195+
// // Add @Table column declarations
196+
// Annotated\MergeIndexes::class,
197+
// ],
198+
// GeneratorLoader::GROUP_POSTPROCESS => [
199+
// // Typecast non string columns
200+
// Schema\Generator\GenerateTypecast::class,
201+
// ],
202202
],
203203
],
204204

src/Bridge/Laravel/Console/Commands/ORM/Generators/ShowChanges.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function run(Registry $registry): Registry
3636
if ($registry->hasTable($e)) {
3737
$table = $registry->getTableSchema($e);
3838

39-
dump($table->getComparator());
39+
// dump($table->getComparator());
4040

4141
if ($table->getComparator()->hasChanges()) {
4242
$key = $registry->getDatabase($e) . ':' . $registry->getTable($e);

src/Bridge/Laravel/Console/Commands/ORM/MigrateCommand.php

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,19 @@
66

77
use Cycle\Migrations\State;
88
use Cycle\Schema\Generator\Migrations\GenerateMigrations;
9+
use Cycle\Schema\Registry;
10+
use Illuminate\Container\Container;
11+
use Illuminate\Contracts\Container\BindingResolutionException;
912
use Symfony\Component\Console\Command\Command;
1013
use WayOfDev\Cycle\Bridge\Laravel\Console\Commands\Migrations\AbstractCommand;
1114
use WayOfDev\Cycle\Bridge\Laravel\Console\Commands\Migrations\MigrateCommand as DatabaseMigrateCommand;
1215
use WayOfDev\Cycle\Bridge\Laravel\Console\Commands\ORM\Generators\ShowChanges;
13-
use WayOfDev\Cycle\Contracts\GeneratorLoader;
14-
use WayOfDev\Cycle\Contracts\SchemaCompiler;
15-
use WayOfDev\Cycle\Schema\Generators\GeneratorsFactory;
16+
use WayOfDev\Cycle\Bridge\Laravel\Providers\Registrators\RegisterSchema;
17+
use WayOfDev\Cycle\Contracts\CacheManager as CacheManagerContract;
18+
use WayOfDev\Cycle\Contracts\Config\Repository as Config;
19+
use WayOfDev\Cycle\Schema\Compiler;
20+
21+
use function array_merge;
1622

1723
/**
1824
* See original spiral framework commands.
@@ -26,8 +32,17 @@ final class MigrateCommand extends AbstractCommand
2632

2733
protected $description = 'Generate ORM schema migrations.';
2834

29-
public function handle(GeneratorsFactory $generatorsFactory, SchemaCompiler $schemaCompiler, GenerateMigrations $generateMigrations): int
30-
{
35+
/**
36+
* @throws BindingResolutionException
37+
*/
38+
public function handle(
39+
Container $app,
40+
RegisterSchema $bootloader,
41+
Registry $registry,
42+
Config $config,
43+
GenerateMigrations $migrations,
44+
CacheManagerContract $cache
45+
): int {
3146
if (! $this->migrator->isConfigured()) {
3247
$this->migrator->configure();
3348
}
@@ -40,19 +55,17 @@ public function handle(GeneratorsFactory $generatorsFactory, SchemaCompiler $sch
4055
}
4156
}
4257

43-
$diff = new ShowChanges($this->output);
44-
45-
$generators = $generatorsFactory
46-
->add(GeneratorLoader::GROUP_POSTPROCESS, $diff);
58+
$schemaCompiler = Compiler::compile(
59+
$registry,
60+
array_merge($bootloader->getGenerators($app, $config), [
61+
$diff = new ShowChanges($this->output),
62+
])
63+
);
4764

48-
$schemaCompiler->compile($generators->get());
65+
$schemaCompiler->toMemory($cache);
4966

5067
if ($diff->hasChanges()) {
51-
$generators = $generatorsFactory
52-
->without()
53-
->add(GeneratorLoader::GROUP_POSTPROCESS, $generateMigrations);
54-
55-
$schemaCompiler->compile($generators->get());
68+
(new \Cycle\Schema\Compiler())->compile($registry, [$migrations]);
5669

5770
if ($this->option('run')) {
5871
$this->call(DatabaseMigrateCommand::class, ['--force' => true]);

0 commit comments

Comments
 (0)