Make phpstan happier

This commit is contained in:
Greyscale 2020-09-01 05:15:02 +02:00
parent 13311415dd
commit 93b295d5da
19 changed files with 65 additions and 108 deletions

View file

@ -59,8 +59,6 @@ abstract class AbstractModel implements ModelInterface, \Serializable
{
$array = [];
$transformer = new CaseTransformer(new Format\StudlyCaps(), new Format\StudlyCaps());
foreach ($this->getListOfProperties() as $dbField => $property) {
$currentValue = $this->{$property};
if ($currentValue instanceof \DateTime) {
@ -183,12 +181,6 @@ abstract class AbstractModel implements ModelInterface, \Serializable
return false;
}
public function getListOfProperties(): array
{
// @todo make this into an interface entry
throw new \Exception('getListOfProperties in Abstract Model should never be used.');
}
/**
* Returns whether or not the data has been modified inside this model.
*/

View file

@ -7,7 +7,7 @@ use Benzine\Controllers\Abstracts\CrudController as AbstractCrudController;
{% include '_overwrite_warning.twig' %}
abstract class Base{{ class_name }}Controller extends AbstractCrudController
abstract class AbstractBase{{ class_name }}Controller extends AbstractCrudController
{
public const RESPONSIBLE_MODEL = '{{ class_name }}';

View file

@ -1,9 +1,7 @@
<?php
namespace {{ namespace }}\Controllers;
use {{ namespace }}\Controllers\Base\Base{{ class_name }}Controller;
class {{ class_name }}Controller extends Base{{ class_name }}Controller
class {{ class_name }}Controller extends Base\AbstractBase{{ class_name }}Controller
{
}

View file

@ -15,7 +15,7 @@ use Carbon\Carbon as DateTime;
{% include '_overwrite_warning.twig' %}
{% set existingMethods = [] %}
abstract class Base{{ class_name }}Model extends AbstractModel implements ModelInterface
abstract class AbstractBase{{ class_name }}Model extends AbstractModel implements ModelInterface
{
// Declare what fields are available on this object
{% for column in columns %}

View file

@ -14,7 +14,7 @@ use Benzine\Exceptions\BenzineException;
{% include '_overwrite_warning.twig' %}
abstract class Base{{ class_name }}TableGateway extends AbstractTableGateway implements TableGatewayInterface
abstract class AbstractBase{{ class_name }}TableGateway extends AbstractTableGateway implements TableGatewayInterface
{
protected $table = '{{ table }}';
protected string $model = Models\{{ class_name }}Model::class;

View file

@ -1,7 +1,7 @@
<?php
namespace {{ namespace }}\Models;
class {{ class_name }}Model extends Base\Base{{ class_name }}Model
class {{ class_name }}Model extends Base\AbstractBase{{ class_name }}Model
{
}

View file

@ -1,7 +1,7 @@
<?php
namespace {{ namespace }}\TableGateways;
class {{ class_name }}TableGateway extends Base\Base{{ class_name }}TableGateway
class {{ class_name }}TableGateway extends Base\AbstractBase{{ class_name }}TableGateway
{
}

View file

@ -8,20 +8,20 @@ use {{ namespace }}\Models\{{ class_name }}Model;
use {{ namespace }}\TableGateways;
use {{ namespace }}\TableGateways\{{ class_name }}TableGateway;
use Gone\UUID\UUID;
use Benzine\Tests\BaseTestCase;
use Benzine\Tests\AbstractBaseTestCase;
{% set existingMethods = [] %}
/**
* @covers \{{ namespace }}\Models\{{ class_name }}Model
* @covers \{{ namespace }}\Models\Base\Base{{ class_name }}Model
* @covers \{{ namespace }}\Models\Base\AbstractBase{{ class_name }}Model
* @covers \{{ namespace }}\TableGateways\{{ class_name}}TableGateway
* @covers \{{ namespace }}\TableGateways\Base\Base{{ class_name}}TableGateway
* @covers \{{ namespace }}\TableGateways\Base\AbstractBase{{ class_name}}TableGateway
*
* @group generated
* @group models
* @internal
*/
class {{ class_name }}Test extends BaseTestCase
class {{ class_name }}Test extends AbstractBaseTestCase
{
protected {{ class_name }}Model $testInstance;
protected {{ class_name }}TableGateway$testTableGateway;

View file

@ -13,7 +13,7 @@ use Benzine\ORM\Interfaces\ServiceInterface as ServiceInterface;
{% include '_overwrite_warning.twig' %}
abstract class Base{{ class_name }}Service extends AbstractService implements ServiceInterface
abstract class AbstractBase{{ class_name }}Service extends AbstractService implements ServiceInterface
{
// Related Objects Table Gateways
{% for related_object in related_objects_shared|sort|unique %}

View file

@ -1,7 +1,7 @@
<?php
namespace {{ namespace }}\Services;
class {{ class_name }}Service extends Base\Base{{ class_name }}Service
class {{ class_name }}Service extends Base\AbstractBase{{ class_name }}Service
{
}

View file

@ -8,21 +8,21 @@ use {{ namespace }}\Services;
use {{ namespace }}\Models\{{ class_name }}Model;
use Laminas\Db\Sql\Select;
use Laminas\Db\Sql\Where;
use Benzine\Tests\BaseTestCase;
use Benzine\Tests\AbstractBaseTestCase;
/**
* @covers \{{ namespace }}\Models\{{ class_name }}Model
* @covers \{{ namespace }}\Models\Base\Base{{ class_name }}Model
* @covers \{{ namespace }}\Models\Base\AbstractBase{{ class_name }}Model
* @covers \{{ namespace }}\Services\{{ class_name }}Service
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service
* @covers \{{ namespace }}\TableGateways\{{ class_name }}TableGateway
* @covers \{{ namespace }}\TableGateways\Base\Base{{ class_name }}TableGateway
* @covers \{{ namespace }}\TableGateways\Base\AbstractBase{{ class_name }}TableGateway
*
* @group generated
* @group services
* @internal
**/
class {{ class_name }}Test extends BaseTestCase
class {{ class_name }}Test extends AbstractBaseTestCase
{
protected Services\{{ class_name }}Service ${{ variable_name }}Service;
protected {{ class_name }}TableGateway ${{ variable_name }}TableGateway;
@ -61,7 +61,7 @@ class {{ class_name }}Test extends BaseTestCase
}
/**
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getNewModelInstance
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getNewModelInstance
*/
public function testGetNewModelInstance()
{
@ -73,7 +73,7 @@ class {{ class_name }}Test extends BaseTestCase
/**
* @large
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getAll
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getAll
*/
public function testGetAll()
{
@ -85,7 +85,7 @@ class {{ class_name }}Test extends BaseTestCase
}
/**
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getRandom
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getRandom
*/
public function testGetRandom()
{
@ -100,7 +100,7 @@ class {{ class_name }}Test extends BaseTestCase
/**
* @depends testGetRandom
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getByField
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getByField
*/
public function testGetByPrimaryKeys({{ class_name }}Model $random)
{
@ -128,7 +128,7 @@ class {{ class_name }}Test extends BaseTestCase
}
/**
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getMockObject
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getMockObject
*/
public function testGetMockObject()
{
@ -140,7 +140,7 @@ class {{ class_name }}Test extends BaseTestCase
/**
* @depends testGetRandom
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getByField
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getByField
*/
public function testGetByField({{ class_name }}Model $random)
{
@ -163,7 +163,7 @@ class {{ class_name }}Test extends BaseTestCase
/**
* @depends testGetRandom
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::countByField
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::countByField
*/
public function testCountByField({{ class_name }}Model $random)
{
@ -183,7 +183,7 @@ class {{ class_name }}Test extends BaseTestCase
/**
* @depends testGetRandom
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getManyByField
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getManyByField
*/
public function testGetManyByField({{ class_name }}Model $random)
{
@ -229,7 +229,7 @@ class {{ class_name }}Test extends BaseTestCase
/**
* @depends testGetRandom
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getManyMatching
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getManyMatching
*/
public function testGetManyMatching({{ class_name }}Model $random)
{
@ -255,7 +255,7 @@ class {{ class_name }}Test extends BaseTestCase
/**
* @depends testGetRandom
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getMatching
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getMatching
*/
public function testGetMatching({{ class_name }}Model $random)
{
@ -277,7 +277,7 @@ class {{ class_name }}Test extends BaseTestCase
{% for column in columns %}
{% if column.getFieldSanitised == 'id' %}
/**
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getById
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getById
* @depends testGetRandom
*/
public function testGetById({{ class_name }}Model $random)
@ -286,7 +286,7 @@ class {{ class_name }}Test extends BaseTestCase
}
/**
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::deleteById
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::deleteById
*/
public function testDeleteById()
{
@ -309,7 +309,7 @@ class {{ class_name }}Test extends BaseTestCase
{% endif %}
{% endfor %}
/**
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::deleteByField
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::deleteByField
*/
public function testDeleteByField()
{
@ -328,7 +328,7 @@ class {{ class_name }}Test extends BaseTestCase
/**
* @depends testDeleteByField
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::deleteByField
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::deleteByField
* @param {{ class_name }}Model[] $allDeleted
*/
public function testDeleteByFieldVerify(array $allDeleted)
@ -343,7 +343,7 @@ class {{ class_name }}Test extends BaseTestCase
}
/**
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getTermPlural
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getTermPlural
*/
public function testGetTermPlural()
{
@ -351,7 +351,7 @@ class {{ class_name }}Test extends BaseTestCase
}
/**
* @covers \{{ namespace }}\Services\Base\Base{{ class_name }}Service::getTermSingular
* @covers \{{ namespace }}\Services\Base\AbstractBase{{ class_name }}Service::getTermSingular
*/
public function testGetTermSingular()
{

View file

@ -17,7 +17,9 @@ use Camel\Format;
use DirectoryIterator;
use Gone\Twig\InflectionExtension;
use Gone\Twig\TransformExtension;
use Laminas\Db\Metadata\Object\TableObject;
use Laminas\Stdlib\ConsoleHelper;
use Symfony\Component\Filesystem\Filesystem;
use Twig\Environment as TwigEnvironment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
@ -267,7 +269,7 @@ class Laminator
public function makeLaminator()
{
$models = $this->makeModelSchemas();
echo 'Removing core generated files...';
echo 'Removing core generated files ... ';
$this->removeCoreGeneratedFiles();
echo "[DONE]\n";
@ -287,9 +289,7 @@ class Laminator
foreach ($this->databases->getAll() as $dbName => $database) {
/** @var Database $database */
echo "Database: {$dbName}\n";
/**
* @var \Zend\Db\Metadata\Object\TableObject[]
*/
/** @var TableObject $tables */
$tables = $database->getMetadata()->getTables();
echo 'Collecting '.count($tables)." entities data.\n";
@ -377,10 +377,10 @@ class Laminator
'tests/',
];
foreach ($generatedPaths as $generatedPath) {
if (file_exists($generatedPath)) {
if ((new Filesystem())->exists($generatedPath)) {
foreach (new DirectoryIterator($generatedPath) as $file) {
if (!$file->isDot() && 'php' == $file->getExtension()) {
unlink($file->getRealPath());
(new Filesystem())->remove($file->getRealPath());
}
}
}
@ -409,23 +409,23 @@ class Laminator
//\Kint::dump($model->getRenderDataset());
if (in_array('Models', $this->getBenzineConfig()->getLaminatorTemplates(), true)) {
$this->renderToFile(true, "src/Models/Base/Base{$model->getClassName()}Model.php", 'Models/basemodel.php.twig', $model->getRenderDataset());
$this->renderToFile(true, "src/Models/Base/AbstractBase{$model->getClassName()}Model.php", 'Models/basemodel.php.twig', $model->getRenderDataset());
$this->renderToFile(false, "src/Models/{$model->getClassName()}Model.php", 'Models/model.php.twig', $model->getRenderDataset());
$this->renderToFile(true, "tests/Models/Generated/{$model->getClassName()}Test.php", 'Models/tests.models.php.twig', $model->getRenderDataset());
$this->renderToFile(true, "src/TableGateways/Base/Base{$model->getClassName()}TableGateway.php", 'Models/basetable.php.twig', $model->getRenderDataset());
$this->renderToFile(true, "src/TableGateways/Base/AbstractBase{$model->getClassName()}TableGateway.php", 'Models/basetable.php.twig', $model->getRenderDataset());
$this->renderToFile(false, "src/TableGateways/{$model->getClassName()}TableGateway.php", 'Models/table.php.twig', $model->getRenderDataset());
}
// "Service" suite
if (in_array('Services', $this->getBenzineConfig()->getLaminatorTemplates(), true)) {
$this->renderToFile(true, "src/Services/Base/Base{$model->getClassName()}Service.php", 'Services/baseservice.php.twig', $model->getRenderDataset());
$this->renderToFile(true, "src/Services/Base/AbstractBase{$model->getClassName()}Service.php", 'Services/baseservice.php.twig', $model->getRenderDataset());
$this->renderToFile(false, "src/Services/{$model->getClassName()}Service.php", 'Services/service.php.twig', $model->getRenderDataset());
$this->renderToFile(true, "tests/Services/Generated/{$model->getClassName()}Test.php", 'Services/tests.service.php.twig', $model->getRenderDataset());
}
// "Controller" suite
if (in_array('Controllers', $this->getBenzineConfig()->getLaminatorTemplates(), true)) {
$this->renderToFile(true, "src/Controllers/Base/Base{$model->getClassName()}Controller.php", 'Controllers/basecontroller.php.twig', $model->getRenderDataset());
$this->renderToFile(true, "src/Controllers/Base/AbstractBase{$model->getClassName()}Controller.php", 'Controllers/basecontroller.php.twig', $model->getRenderDataset());
$this->renderToFile(false, "src/Controllers/{$model->getClassName()}Controller.php", 'Controllers/controller.php.twig', $model->getRenderDataset());
}
@ -452,54 +452,21 @@ class Laminator
{
$output = $this->twig->render($template, $data);
$path = $this->getWorkPath().'/'.$path;
//printf(" > Writing %d bytes to %s", strlen($output), $path);
if (!file_exists(dirname($path))) {
mkdir(dirname($path), 0777, true);
if (!(new Filesystem())->exists(dirname($path))) {
(new Filesystem())->mkdir(dirname($path), 0777);
}
if (!file_exists($path) || $overwrite) {
if (!(new Filesystem())->exists($path) || $overwrite) {
//printf(" [Done]" . PHP_EOL);
file_put_contents($path, $output);
(new Filesystem())->dumpFile($path, $output);
}
//printf(" [Skip]" . PHP_EOL);
// Make permissions match the expected owners/groups/perms
chown($path, $this->expectedFileOwner);
//chgrp($path, $this->expectedFileGroup);
chmod($path, $this->expectedPermissions);
(new Filesystem())->chown($path, $this->expectedFileOwner);
//(new Filesystem())->chgrp($path, $this->expectedFileGroup);
(new Filesystem())->chmod($path, $this->expectedPermissions);
return $this;
}
private function removePHPVCRCassettes($outputPath)
{
if (file_exists($outputPath.'/tests/fixtures')) {
$cassettesDir = new DirectoryIterator($outputPath.'/tests/fixtures/');
foreach ($cassettesDir as $cassette) {
if (!$cassette->isDot()) {
if ('.cassette' == substr($cassette->getFilename(), -9, 9)) {
unlink($cassette->getPathname());
}
}
}
}
return $this;
}
private function runScript($path = null, $script)
{
$output = null;
if ($path) {
$execLine = "cd {$path} && ".$script;
} else {
$execLine = $script;
}
echo "Running: \n";
echo " > {$execLine}\n";
exec($execLine, $output);
$output = implode("\n", $output);
echo $output;
return $output;
}
}

View file

@ -11,9 +11,9 @@ use Benzine\ORM\Tests\TableGateways;
use Benzine\ORM\Tests\TableGateways\UsersTableGateway;
use Carbon\Carbon;
use Gone\UUID\UUID;
use Benzine\Tests\BaseTestCase;
use Benzine\Tests\AbstractBaseTestCase;
class DateTimeFieldsTest extends BaseTestCase
class DateTimeFieldsTestAbstract extends AbstractBaseTestCase
{
/** @var AbstractModel[] */
private $entititesToCleanUp = [];

View file

@ -8,7 +8,7 @@ use Benzine\ORM\Tests\Models\BlogPostsModel;
use Benzine\ORM\Tests\TableGateways;
use Benzine\ORM\Tests\TableGateways\BlogPostsTableGateway;
use Gone\UUID\UUID;
use Benzine\Tests\BaseTestCase;
use Benzine\Tests\AbstractBaseTestCase;
/**
* @covers \Benzine\ORM\Tests\Models\BlogPostsModel
@ -20,7 +20,7 @@ use Benzine\Tests\BaseTestCase;
* @group models
* @internal
*/
class BlogPostsTest extends BaseTestCase
class BlogPostsTestAbstract extends AbstractBaseTestCase
{
protected BlogPostsModel $testInstance;
protected BlogPostsTableGateway$testTableGateway;

View file

@ -8,7 +8,7 @@ use Benzine\ORM\Tests\Models\MigrationsModel;
use Benzine\ORM\Tests\TableGateways;
use Benzine\ORM\Tests\TableGateways\MigrationsTableGateway;
use Gone\UUID\UUID;
use Benzine\Tests\BaseTestCase;
use Benzine\Tests\AbstractBaseTestCase;
/**
* @covers \Benzine\ORM\Tests\Models\MigrationsModel
@ -20,7 +20,7 @@ use Benzine\Tests\BaseTestCase;
* @group models
* @internal
*/
class MigrationsTest extends BaseTestCase
class MigrationsTestAbstract extends AbstractBaseTestCase
{
protected MigrationsModel $testInstance;
protected MigrationsTableGateway$testTableGateway;

View file

@ -8,7 +8,7 @@ use Benzine\ORM\Tests\Models\UsersModel;
use Benzine\ORM\Tests\TableGateways;
use Benzine\ORM\Tests\TableGateways\UsersTableGateway;
use Gone\UUID\UUID;
use Benzine\Tests\BaseTestCase;
use Benzine\Tests\AbstractBaseTestCase;
/**
* @covers \Benzine\ORM\Tests\Models\UsersModel
@ -20,7 +20,7 @@ use Benzine\Tests\BaseTestCase;
* @group models
* @internal
*/
class UsersTest extends BaseTestCase
class UsersTestAbstract extends AbstractBaseTestCase
{
protected UsersModel $testInstance;
protected UsersTableGateway$testTableGateway;

View file

@ -8,7 +8,7 @@ use Benzine\ORM\Tests\Services;
use Benzine\ORM\Tests\Models\BlogPostsModel;
use Laminas\Db\Sql\Select;
use Laminas\Db\Sql\Where;
use Benzine\Tests\BaseTestCase;
use Benzine\Tests\AbstractBaseTestCase;
/**
* @covers \Benzine\ORM\Tests\Models\BlogPostsModel
@ -22,7 +22,7 @@ use Benzine\Tests\BaseTestCase;
* @group services
* @internal
**/
class BlogPostsTest extends BaseTestCase
class BlogPostsTestAbstract extends AbstractBaseTestCase
{
protected Services\BlogPostsService $blogPostsService;
protected BlogPostsTableGateway $blogPostsTableGateway;

View file

@ -8,7 +8,7 @@ use Benzine\ORM\Tests\Services;
use Benzine\ORM\Tests\Models\MigrationsModel;
use Laminas\Db\Sql\Select;
use Laminas\Db\Sql\Where;
use Benzine\Tests\BaseTestCase;
use Benzine\Tests\AbstractBaseTestCase;
/**
* @covers \Benzine\ORM\Tests\Models\MigrationsModel
@ -22,7 +22,7 @@ use Benzine\Tests\BaseTestCase;
* @group services
* @internal
**/
class MigrationsTest extends BaseTestCase
class MigrationsTestAbstract extends AbstractBaseTestCase
{
protected Services\MigrationsService $migrationsService;
protected MigrationsTableGateway $migrationsTableGateway;

View file

@ -8,7 +8,7 @@ use Benzine\ORM\Tests\Services;
use Benzine\ORM\Tests\Models\UsersModel;
use Laminas\Db\Sql\Select;
use Laminas\Db\Sql\Where;
use Benzine\Tests\BaseTestCase;
use Benzine\Tests\AbstractBaseTestCase;
/**
* @covers \Benzine\ORM\Tests\Models\UsersModel
@ -22,7 +22,7 @@ use Benzine\Tests\BaseTestCase;
* @group services
* @internal
**/
class UsersTest extends BaseTestCase
class UsersTestAbstract extends AbstractBaseTestCase
{
protected Services\UsersService $usersService;
protected UsersTableGateway $usersTableGateway;