diff --git a/src/Abstracts/Model.php b/src/Abstracts/AbstractModel.php similarity index 99% rename from src/Abstracts/Model.php rename to src/Abstracts/AbstractModel.php index 6974360..38374da 100644 --- a/src/Abstracts/Model.php +++ b/src/Abstracts/AbstractModel.php @@ -6,7 +6,7 @@ use Benzine\ORM\Interfaces\ModelInterface; use Camel\CaseTransformer; use Camel\Format; -abstract class Model implements ModelInterface, \Serializable +abstract class AbstractModel implements ModelInterface, \Serializable { protected array $_primary_keys = []; protected array $_autoincrement_keys = []; diff --git a/src/Abstracts/Service.php b/src/Abstracts/AbstractService.php similarity index 84% rename from src/Abstracts/Service.php rename to src/Abstracts/AbstractService.php index 8c44199..cc88856 100644 --- a/src/Abstracts/Service.php +++ b/src/Abstracts/AbstractService.php @@ -7,21 +7,21 @@ use Laminas\Db\ResultSet\ResultSet; use Laminas\Db\Sql; use Laminas\Db\Sql\Select; -abstract class Service +abstract class AbstractService { - abstract public function getNewModelInstance(): Model; + abstract public function getNewModelInstance(): AbstractModel; abstract public function getTermPlural(): string; abstract public function getTermSingular(): string; - abstract public function getNewTableGatewayInstance(): TableGateway; + abstract public function getNewTableGatewayInstance(): AbstractTableGateway; /** * @param null|array|\Closure[] $wheres * @param null|Sql\Expression|string $order * - * @return Model[] + * @return AbstractModel[] */ public function getAll( int $limit = null, @@ -30,7 +30,7 @@ abstract class Service $order = null, string $orderDirection = null ) { - /** @var TableGateway $tableGateway */ + /** @var AbstractTableGateway $tableGateway */ $tableGateway = $this->getNewTableGatewayInstance(); list($matches, $count) = $tableGateway->fetchAll( $limit, @@ -54,13 +54,13 @@ abstract class Service * @param null|string $distinctColumn * @param null|array|\Closure[] $wheres * - * @return Model[] + * @return AbstractModel[] */ public function getDistinct( string $distinctColumn, array $wheres = null ) { - /** @var TableGateway $tableGateway */ + /** @var AbstractTableGateway $tableGateway */ $tableGateway = $this->getNewTableGatewayInstance(); list($matches, $count) = $tableGateway->fetchDistinct( $distinctColumn, @@ -85,7 +85,7 @@ abstract class Service public function countAll( array $wheres = null ) { - /** @var TableGateway $tableGateway */ + /** @var AbstractTableGateway $tableGateway */ $tableGateway = $this->getNewTableGatewayInstance(); return $tableGateway->getCount($wheres); @@ -119,11 +119,11 @@ abstract class Service return new TabularData\Table($this); } - abstract public function getByField(string $field, $value, $orderBy = null, $orderDirection = Select::ORDER_ASCENDING): ?Model; + abstract public function getByField(string $field, $value, $orderBy = null, $orderDirection = Select::ORDER_ASCENDING): ?AbstractModel; abstract public function getManyByField(string $field, $value, int $limit = null, $orderBy = null, $orderDirection = Select::ORDER_ASCENDING): ?array; abstract public function countByField(string $field, $value): int; - abstract public function getRandom(): ?Model; + abstract public function getRandom(): ?AbstractModel; } diff --git a/src/Abstracts/TableGateway.php b/src/Abstracts/AbstractTableGateway.php similarity index 96% rename from src/Abstracts/TableGateway.php rename to src/Abstracts/AbstractTableGateway.php index ce155a3..532f092 100644 --- a/src/Abstracts/TableGateway.php +++ b/src/Abstracts/AbstractTableGateway.php @@ -15,8 +15,9 @@ use Laminas\Db\Sql\Predicate; use Laminas\Db\Sql\Predicate\PredicateInterface; use Laminas\Db\Sql\Select; use Laminas\Db\Sql\Where; +use Laminas\Db\TableGateway\TableGateway; -abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway +abstract class AbstractTableGateway extends TableGateway { protected string $model; protected $table; @@ -51,7 +52,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway /** * @return null|array|\ArrayObject */ - public function save(Model $model) + public function save(AbstractModel $model) { // @todo check $model->isDirty() to quick-reject a save operation on a non-dirty record $model->__pre_save(); @@ -66,7 +67,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway } try { - /** @var Model $oldModel */ + /** @var AbstractModel $oldModel */ $oldModel = $this->select($pk)->current(); if ($pkIsBlank || !$oldModel) { $pk = $this->saveInsert($model); @@ -101,7 +102,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway /** * @return null|int */ - public function saveInsert(Model $model) + public function saveInsert(AbstractModel $model) { switch ($this->getSql()->getAdapter()->getDriver()->getDatabasePlatformName()) { case 'Postgresql': @@ -154,7 +155,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway /** * @return int */ - public function saveUpdate(Model $model, Model $oldModel) + public function saveUpdate(AbstractModel $model, AbstractModel $oldModel) { return $this->update( $model->__toRawArray(), @@ -175,9 +176,9 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway } /** - * @param array $data - * @param null $where - * @param array|Model $oldData + * @param array $data + * @param null $where + * @param AbstractModel|array $oldData * * @return int */ @@ -417,7 +418,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway * @param array|string $order * @param int $offset * - * @return null|array|\ArrayObject|Model + * @return null|AbstractModel|array|\ArrayObject */ public function fetchRow($where = null, $order = null, $offset = null) { @@ -485,7 +486,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway public function getPrimaryKeys(): array { - /** @var Model $oModel */ + /** @var AbstractModel $oModel */ $oModel = $this->getNewMockModelInstance(); return array_keys($oModel->getPrimaryKeys()); @@ -493,7 +494,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway public function getAutoIncrementKeys(): array { - /** @var Model $oModel */ + /** @var AbstractModel $oModel */ $oModel = $this->getNewMockModelInstance(); return array_keys($oModel->getAutoIncrementKeys()); @@ -546,7 +547,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway /** * @param $id * - * @return null|Model + * @return null|AbstractModel */ public function getById($id) { @@ -715,7 +716,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway return null; } for ($i = 0; $i < $resultSet->count(); ++$i) { - /** @var Model $row */ + /** @var AbstractModel $row */ $row = $resultSet->current(); if ($row->hasPrimaryKey()) { $id = implode('-', $row->getPrimaryKeys()); @@ -729,7 +730,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway return $results; } - public function getNewModelInstance(array $data = []): Model + public function getNewModelInstance(array $data = []): AbstractModel { $model = $this->model; @@ -737,7 +738,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway } /** - * @return Model[] + * @return AbstractModel[] */ public function getBySelect(Select $select): array { @@ -751,7 +752,7 @@ abstract class TableGateway extends \Laminas\Db\TableGateway\TableGateway } /** - * @return Model[] + * @return AbstractModel[] */ public function getBySelectRaw(Select $select): array { diff --git a/src/Entities/Entity.php b/src/Entities/AbstractEntity.php similarity index 59% rename from src/Entities/Entity.php rename to src/Entities/AbstractEntity.php index ef0d8ef..1275a76 100644 --- a/src/Entities/Entity.php +++ b/src/Entities/AbstractEntity.php @@ -2,6 +2,6 @@ namespace Benzine\ORM\Entities; -abstract class Entity +abstract class AbstractEntity { } diff --git a/src/Entities/Column.php b/src/Entities/Column.php index d04252f..22fb58e 100644 --- a/src/Entities/Column.php +++ b/src/Entities/Column.php @@ -2,7 +2,7 @@ namespace Benzine\ORM\Entities; -class Column extends Entity +class Column extends AbstractEntity { protected $columnName; } diff --git a/src/Entities/Table.php b/src/Entities/Table.php index 3479f33..565ec3d 100644 --- a/src/Entities/Table.php +++ b/src/Entities/Table.php @@ -2,12 +2,10 @@ namespace Benzine\ORM\Entities; -class Table extends Entity +class Table extends AbstractEntity { - /** @var string */ - protected $tableName; - /** @var Column */ - protected $columns; + protected string $tableName; + protected Column $columns; public function getTableName() { @@ -23,13 +21,4 @@ class Table extends Entity return $this; } - - public function addColumn(string $name, array $options): self - { - $this->columns[] = $column = (new Column()) - ->setOptions($options) - ; - - return $this; - } } diff --git a/src/Generator/templates/Models/basemodel.php.twig b/src/Generator/templates/Models/basemodel.php.twig index 1a4008e..8feda1a 100644 --- a/src/Generator/templates/Models/basemodel.php.twig +++ b/src/Generator/templates/Models/basemodel.php.twig @@ -7,7 +7,7 @@ use {{ namespace }}\TableGateways; use {{ namespace }}\Services; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; -use Benzine\ORM\Abstracts\Model as AbstractModel; +use Benzine\ORM\Abstracts\AbstractModel; use Benzine\ORM\Interfaces\ModelInterface as ModelInterface; use Benzine\App as App; use Carbon\Carbon as DateTime; diff --git a/src/Generator/templates/Models/basetable.php.twig b/src/Generator/templates/Models/basetable.php.twig index b4b9637..599befb 100644 --- a/src/Generator/templates/Models/basetable.php.twig +++ b/src/Generator/templates/Models/basetable.php.twig @@ -6,8 +6,8 @@ use {{ namespace }}\Models; use {{ namespace }}\TableGateways; use Faker\Generator; use Laminas\Db\ResultSet\ResultSet; -use Benzine\ORM\Abstracts\Model; -use Benzine\ORM\Abstracts\TableGateway as AbstractTableGateway; +use Benzine\ORM\Abstracts\AbstractModel; +use Benzine\ORM\Abstracts\AbstractTableGateway; use Benzine\ORM\Connection; use Benzine\ORM\Interfaces\TableGatewayInterface as TableGatewayInterface; use Benzine\Exceptions\BenzineException; @@ -135,7 +135,7 @@ abstract class Base{{ class_name }}TableGateway extends AbstractTableGateway imp * * @return Models\{{ class_name }}Model */ - public function save(Model $model): Models\{{ class_name }}Model + public function save(AbstractModel $model): Models\{{ class_name }}Model { return parent::save($model); } diff --git a/src/Generator/templates/Services/baseservice.php.twig b/src/Generator/templates/Services/baseservice.php.twig index e5f16d9..fc1964b 100644 --- a/src/Generator/templates/Services/baseservice.php.twig +++ b/src/Generator/templates/Services/baseservice.php.twig @@ -8,7 +8,7 @@ use Laminas\Db\Sql\Expression; use Laminas\Db\Sql\Select; use Laminas\Db\Sql\Predicate; use Laminas\Db\Sql\Where; -use Benzine\ORM\Abstracts\Service as AbstractService; +use Benzine\ORM\Abstracts\AbstractService; use Benzine\ORM\Interfaces\ServiceInterface as ServiceInterface; {% include '_overwrite_warning.twig' %} diff --git a/src/Migrations/Migration.php b/src/Migrations/AbstractMigration.php similarity index 75% rename from src/Migrations/Migration.php rename to src/Migrations/AbstractMigration.php index bedd666..930776a 100644 --- a/src/Migrations/Migration.php +++ b/src/Migrations/AbstractMigration.php @@ -2,9 +2,7 @@ namespace Benzine\ORM\Migrations; -use Phinx\Migration\AbstractMigration; - -abstract class Migration extends AbstractMigration +abstract class AbstractMigration extends \Phinx\Migration\AbstractMigration { protected array $defaultRelationshipOptions = [ 'delete' => 'NO_ACTION', diff --git a/src/Migrations/AbstractSeed.php b/src/Migrations/AbstractSeed.php new file mode 100644 index 0000000..790fc31 --- /dev/null +++ b/src/Migrations/AbstractSeed.php @@ -0,0 +1,7 @@ +service = $service; $this->setName(get_class($service)); diff --git a/src/TabularData/TableRow.php b/src/TabularData/TableRow.php index f8f834c..3416d99 100644 --- a/src/TabularData/TableRow.php +++ b/src/TabularData/TableRow.php @@ -2,24 +2,24 @@ namespace Benzine\ORM\TabularData; -use Benzine\ORM\Abstracts\Model; -use Benzine\ORM\Abstracts\Service; +use Benzine\ORM\Abstracts\AbstractModel; +use Benzine\ORM\Abstracts\AbstractService; class TableRow { private array $data = []; - /** @var Model[] */ + /** @var AbstractModel[] */ private array $related; - public function __construct(Model $model) + public function __construct(AbstractModel $model) { foreach ($model->getPropertyMeta() as $field => $options) { $this->data[$field] = $model->__get($field); if (isset($options['service'])) { - /** @var Service $service */ + /** @var AbstractService $service */ $service = $options['service']; - /** @var Model $relatedEntity */ + /** @var AbstractModel $relatedEntity */ $relatedEntity = $service->getByField($field, $this->data[$field]); $this->related[$field] = $relatedEntity; } diff --git a/test/Migrations/20200821163200_test_table_structure.php b/test/Migrations/20200821163200_test_table_structure.php index a6f19488..11a90b8 100644 --- a/test/Migrations/20200821163200_test_table_structure.php +++ b/test/Migrations/20200821163200_test_table_structure.php @@ -1,9 +1,9 @@