Skip to content
Snippets Groups Projects
Commit 3b40eadf authored by Daniel Kurowski's avatar Daniel Kurowski
Browse files

Merge branch 'fix-scaffolding' into 'master'

Fix scaffolding

See merge request !16
parents 41957682 8c419f2d
No related branches found
No related tags found
1 merge request!16Fix scaffolding
Pipeline #36854 passed
......@@ -2,6 +2,7 @@
namespace Grifart\Tables\Scaffolding;
use Grifart\ClassScaffolder\Capabilities\Capability;
use Grifart\ClassScaffolder\Definition\ClassDefinition;
......@@ -29,19 +30,22 @@ final class Definitions implements \IteratorAggregate
);
}
public function getRowClass(): ClassDefinition
public function rowClassWith(Capability $capability, Capability ...$capabilities): self
{
return $this->rowClass;
$this->rowClass = $this->rowClass->with($capability, ...$capabilities);
return $this;
}
public function getModificationsClass(): ClassDefinition
public function modificationsClassWith(Capability $capability, Capability ...$capabilities): self
{
return $this->modificationsClass;
$this->modificationsClass = $this->modificationsClass->with($capability, ...$capabilities);
return $this;
}
public function getTableClass(): ClassDefinition
public function tableClassWith(Capability $capability, Capability ...$capabilities): self
{
return $this->tableClass;
$this->tableClass = $this->tableClass->with($capability, ...$capabilities);
return $this;
}
......
......@@ -39,45 +39,13 @@ final class Scaffolding
string $primaryKeyClass
): Definitions
{
return self::buildersForPgTable(
$pgReflector,
$mapper,
$schema,
$table,
$rowClassName,
$modificationsClassName,
$tableClassName,
$primaryKeyClass,
);
}
/**
* Usage:
* ```php
* $builders = Scaffolding::buildersForPgTable(...);
* $builders->getRowClass()->decorate(...);
* return $builders;
* ```
*/
public static function buildersForPgTable(
PostgresReflector $pgReflector,
TypeMapper $mapper,
string $schema,
string $tableClass,
string $rowClassName,
string $modificationsClassName,
string $tableClassName,
string $primaryKeyClass
): Definitions
{
$columnsNativeTypes = $pgReflector->retrieveColumnInfo($schema, $tableClass);
$columnsNativeTypes = $pgReflector->retrieveColumnInfo($schema, $table);
if (\count($columnsNativeTypes) === 0) {
throw new \LogicException('No columns found for given configuration. Does referenced table exist?');
}
$location = function(string $column) use ($schema, $tableClass): string {
return self::location($schema, $tableClass, $column);
$location = function(string $column) use ($schema, $table): string {
return self::location($schema, $table, $column);
};
$columnsPhpTypes = [];
......@@ -109,7 +77,7 @@ final class Scaffolding
$tableClass = (new ClassDefinition($tableClassName))
->with(new TableImplementation(
$schema,
$tableClass,
$table,
$primaryKeyClass,
$rowClassName,
$modificationsClassName,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment