From 5831044afd0283d2fd306216a2fc07935daec977 Mon Sep 17 00:00:00 2001 From: "John Paul E. Balandan, CPA" Date: Fri, 28 Aug 2026 22:39:37 +0800 Subject: [PATCH] refactor: fix the remaining fixable `assign.propertyType` and `phpdoc.propertyType` errors --- app/Controllers/BaseController.php | 4 + system/Controller.php | 2 + system/RESTful/BaseResource.php | 2 + system/Session/Handlers/FileHandler.php | 4 +- tests/system/ControllerTest.php | 3 +- tests/system/Honeypot/HoneypotTest.php | 23 +++- tests/system/Models/EventsModelTest.php | 130 +++++++++--------- .../system/RESTful/ResourceControllerTest.php | 32 +++-- .../system/RESTful/ResourcePresenterTest.php | 32 +++-- tests/system/Session/SessionTest.php | 2 +- .../phpstan-baseline/assign.propertyType.neon | 22 +-- utils/phpstan-baseline/loader.neon | 2 +- .../phpstan-baseline/property.phpDocType.neon | 22 +-- 13 files changed, 132 insertions(+), 148 deletions(-) diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index ab45a7710be9..6f86f9254ed1 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -3,6 +3,8 @@ namespace App\Controllers; use CodeIgniter\Controller; +use CodeIgniter\HTTP\CLIRequest; +use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; @@ -28,6 +30,8 @@ abstract class BaseController extends Controller // protected $session; /** + * @param CLIRequest|IncomingRequest $request + * * @return void */ public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) diff --git a/system/Controller.php b/system/Controller.php index e4516383c08c..2fdb5d5a59a6 100644 --- a/system/Controller.php +++ b/system/Controller.php @@ -74,6 +74,8 @@ class Controller /** * Constructor. * + * @param CLIRequest|IncomingRequest $request + * * @return void * * @throws HTTPException|RedirectException diff --git a/system/RESTful/BaseResource.php b/system/RESTful/BaseResource.php index 638f46becbbe..e5ff13e1abdb 100644 --- a/system/RESTful/BaseResource.php +++ b/system/RESTful/BaseResource.php @@ -42,6 +42,8 @@ abstract class BaseResource extends Controller /** * Constructor. * + * @param CLIRequest|IncomingRequest $request + * * @return void */ public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) diff --git a/system/Session/Handlers/FileHandler.php b/system/Session/Handlers/FileHandler.php index f5e9261af0f4..a985b5f89793 100644 --- a/system/Session/Handlers/FileHandler.php +++ b/system/Session/Handlers/FileHandler.php @@ -24,8 +24,6 @@ class FileHandler extends BaseHandler { /** * Where to save the session files to. - * - * @var string */ protected $savePath; @@ -68,7 +66,7 @@ public function __construct(SessionConfig $config, string $ipAddress) { parent::__construct($config, $ipAddress); - if ($this->savePath !== '') { + if (is_string($this->savePath) && $this->savePath !== '') { $this->savePath = rtrim($this->savePath, '/\\'); ini_set('session.save_path', $this->savePath); } else { diff --git a/tests/system/ControllerTest.php b/tests/system/ControllerTest.php index 2ca26f9aa15c..ee6d0604ba99 100644 --- a/tests/system/ControllerTest.php +++ b/tests/system/ControllerTest.php @@ -16,7 +16,6 @@ use CodeIgniter\Config\Factories; use CodeIgniter\HTTP\Exceptions\RedirectException; use CodeIgniter\HTTP\IncomingRequest; -use CodeIgniter\HTTP\Request; use CodeIgniter\HTTP\Response; use CodeIgniter\HTTP\SiteURI; use CodeIgniter\HTTP\UserAgent; @@ -44,7 +43,7 @@ final class ControllerTest extends CIUnitTestCase /** * Current request. */ - private Request $request; + private IncomingRequest $request; /** * Current response. diff --git a/tests/system/Honeypot/HoneypotTest.php b/tests/system/Honeypot/HoneypotTest.php index 8ed9f2756064..0f0ba51f9d52 100644 --- a/tests/system/Honeypot/HoneypotTest.php +++ b/tests/system/Honeypot/HoneypotTest.php @@ -61,8 +61,11 @@ protected function setUp(): void $superglobals->setServer('REQUEST_METHOD', 'POST'); $superglobals->setPost($this->config->name, 'hey'); - $this->request = service('request', null, false); - $this->response = service('response'); + $this->request = service('request', null, false); + + $response = service('response'); + $this->assertInstanceOf(Response::class, $response); + $this->response = $response; } public function testAttachHoneypot(): void @@ -106,7 +109,10 @@ public function testAttachHoneypotAndContainerWithCSP(): void $config = new App(); $config->CSPEnabled = true; Factories::injectMock('config', 'App', $config); - $this->response = service('response', $config, false); + + $response = service('response', $config, false); + $this->assertInstanceOf(Response::class, $response); + $this->response = $response; $this->config = new HoneypotConfig(); $this->honeypot = new Honeypot($this->config); @@ -125,7 +131,10 @@ public function testNotAttachHoneypotWithCSP(): void $config = new App(); $config->CSPEnabled = true; Factories::injectMock('config', 'App', $config); - $this->response = service('response', $config, false); + + $response = service('response', $config, false); + $this->assertInstanceOf(Response::class, $response); + $this->response = $response; $this->config = new HoneypotConfig(); $this->honeypot = new Honeypot($this->config); @@ -189,7 +198,11 @@ public function testHoneypotFilterAfter(): void $uri = 'admin/foo/bar'; $this->response->setBody('
'); - $this->response = $filters->run($uri, 'after'); + + $response = $filters->run($uri, 'after'); + $this->assertInstanceOf(Response::class, $response); + $this->response = $response; + $this->assertStringContainsString($this->config->name, (string) $this->response->getBody()); } diff --git a/tests/system/Models/EventsModelTest.php b/tests/system/Models/EventsModelTest.php index 4c6b2640723a..82e49952c7a2 100644 --- a/tests/system/Models/EventsModelTest.php +++ b/tests/system/Models/EventsModelTest.php @@ -23,17 +23,19 @@ #[Group('DatabaseLive')] final class EventsModelTest extends LiveModelTestCase { - /** - * @var EventModel - */ - protected $model; - protected function setUp(): void { parent::setUp(); $this->createModel(EventModel::class); } + private function model(): EventModel + { + $this->assertInstanceOf(EventModel::class, $this->model); + + return $this->model; + } + public function testInsertEvent(): void { $data = [ @@ -43,9 +45,9 @@ public function testInsertEvent(): void 'deleted' => 0, ]; - $this->model->insert($data); - $this->assertTrue($this->model->hasToken('beforeInsert')); - $this->assertTrue($this->model->hasToken('afterInsert')); + $this->model()->insert($data); + $this->assertTrue($this->model()->hasToken('beforeInsert')); + $this->assertTrue($this->model()->hasToken('afterInsert')); } public function testUpdateEvent(): void @@ -57,106 +59,106 @@ public function testUpdateEvent(): void 'deleted' => 0, ]; - $id = $this->model->insert($data); + $id = $this->model()->insert($data); - $this->model->update($id, $data); - $this->assertTrue($this->model->hasToken('beforeUpdate')); - $this->assertTrue($this->model->hasToken('afterUpdate')); + $this->model()->update($id, $data); + $this->assertTrue($this->model()->hasToken('beforeUpdate')); + $this->assertTrue($this->model()->hasToken('afterUpdate')); } public function testDeleteEvent(): void { - $this->model->delete(1); - $this->assertTrue($this->model->hasToken('beforeDelete')); - $this->assertTrue($this->model->hasToken('afterDelete')); + $this->model()->delete(1); + $this->assertTrue($this->model()->hasToken('beforeDelete')); + $this->assertTrue($this->model()->hasToken('afterDelete')); } public function testFindEvent(): void { - $this->model->find(1); - $this->assertTrue($this->model->hasToken('beforeFind')); - $this->assertTrue($this->model->hasToken('afterFind')); + $this->model()->find(1); + $this->assertTrue($this->model()->hasToken('beforeFind')); + $this->assertTrue($this->model()->hasToken('afterFind')); } public function testBeforeFindReturnsData(): void { - $this->model->beforeFindReturnData = true; + $this->model()->beforeFindReturnData = true; - $result = $this->model->find(1); - $this->assertTrue($this->model->hasToken('beforeFind')); + $result = $this->model()->find(1); + $this->assertTrue($this->model()->hasToken('beforeFind')); $this->assertSame('foobar', $result); } public function testBeforeFindReturnDataPreventsAfterFind(): void { - $this->model->beforeFindReturnData = true; - $this->model->find(1); - $this->assertFalse($this->model->hasToken('afterFind')); + $this->model()->beforeFindReturnData = true; + $this->model()->find(1); + $this->assertFalse($this->model()->hasToken('afterFind')); } public function testFindEventSingletons(): void { // afterFind - $this->model->first(); - $this->assertTrue($this->model->eventData['singleton']); + $this->model()->first(); + $this->assertTrue($this->model()->eventData['singleton']); - $this->model->find(1); - $this->assertTrue($this->model->eventData['singleton']); + $this->model()->find(1); + $this->assertTrue($this->model()->eventData['singleton']); - $this->model->find(); - $this->assertFalse($this->model->eventData['singleton']); + $this->model()->find(); + $this->assertFalse($this->model()->eventData['singleton']); - $this->model->findAll(); - $this->assertFalse($this->model->eventData['singleton']); + $this->model()->findAll(); + $this->assertFalse($this->model()->eventData['singleton']); // beforeFind - $this->model->beforeFindReturnData = true; + $this->model()->beforeFindReturnData = true; - $this->model->first(); - $this->assertTrue($this->model->eventData['singleton']); + $this->model()->first(); + $this->assertTrue($this->model()->eventData['singleton']); - $this->model->find(1); - $this->assertTrue($this->model->eventData['singleton']); + $this->model()->find(1); + $this->assertTrue($this->model()->eventData['singleton']); - $this->model->find(); - $this->assertFalse($this->model->eventData['singleton']); + $this->model()->find(); + $this->assertFalse($this->model()->eventData['singleton']); - $this->model->findAll(); - $this->assertFalse($this->model->eventData['singleton']); + $this->model()->findAll(); + $this->assertFalse($this->model()->eventData['singleton']); } public function testAllowCallbacksFalsePreventsTriggers(): void { - $this->model->allowCallbacks(false)->find(1); - $this->assertFalse($this->model->hasToken('afterFind')); + $this->model()->allowCallbacks(false)->find(1); + $this->assertFalse($this->model()->hasToken('afterFind')); } public function testAllowCallbacksTrueFiresTriggers(): void { - $this->setPrivateProperty($this->model, 'allowCallbacks', false); - $this->model->allowCallbacks(true)->find(1); - $this->assertTrue($this->model->hasToken('afterFind')); + $this->setPrivateProperty($this->model(), 'allowCallbacks', false); + $this->model()->allowCallbacks(true)->find(1); + $this->assertTrue($this->model()->hasToken('afterFind')); } public function testAllowCallbacksResetsAfterTrigger(): void { - $this->model->allowCallbacks(false)->find(1); - $this->model->delete(1); + $this->model()->allowCallbacks(false)->find(1); + $this->model()->delete(1); - $this->assertFalse($this->model->hasToken('afterFind')); - $this->assertTrue($this->model->hasToken('afterDelete')); + $this->assertFalse($this->model()->hasToken('afterFind')); + $this->assertTrue($this->model()->hasToken('afterDelete')); } public function testAllowCallbacksUsesModelProperty(): void { - $this->setPrivateProperty($this->model, 'allowCallbacks', false); - $this->setPrivateProperty($this->model, 'tempAllowCallbacks', false); // Was already set by the constructor + $this->setPrivateProperty($this->model(), 'allowCallbacks', false); + $this->setPrivateProperty($this->model(), 'tempAllowCallbacks', false); // Was already set by the constructor - $this->model->find(1); - $this->model->delete(1); + $this->model()->find(1); + $this->model()->delete(1); - $this->assertFalse($this->model->hasToken('afterFind')); - $this->assertFalse($this->model->hasToken('afterDelete')); + $this->assertFalse($this->model()->hasToken('afterFind')); + $this->assertFalse($this->model()->hasToken('afterDelete')); } public function testInvalidEventException(): void @@ -168,11 +170,11 @@ public function testInvalidEventException(): void 'deleted' => 0, ]; - $this->setPrivateProperty($this->model, 'beforeInsert', ['anotherBeforeInsertMethod']); + $this->setPrivateProperty($this->model(), 'beforeInsert', ['anotherBeforeInsertMethod']); $this->expectException(DataException::class); $this->expectExceptionMessage('"anotherBeforeInsertMethod" is not a valid Model Event callback.'); - $this->model->insert($data); + $this->model()->insert($data); } public function testInsertBatchEvent(): void @@ -192,9 +194,9 @@ public function testInsertBatchEvent(): void ], ]; - $this->model->insertBatch($data); - $this->assertTrue($this->model->hasToken('beforeInsertBatch')); - $this->assertTrue($this->model->hasToken('afterInsertBatch')); + $this->model()->insertBatch($data); + $this->assertTrue($this->model()->hasToken('beforeInsertBatch')); + $this->assertTrue($this->model()->hasToken('afterInsertBatch')); } public function testUpdateBatchEvent(): void @@ -210,8 +212,8 @@ public function testUpdateBatchEvent(): void ], ]; - $this->model->updateBatch($data, 'name'); - $this->assertTrue($this->model->hasToken('beforeUpdateBatch')); - $this->assertTrue($this->model->hasToken('afterUpdateBatch')); + $this->model()->updateBatch($data, 'name'); + $this->assertTrue($this->model()->hasToken('beforeUpdateBatch')); + $this->assertTrue($this->model()->hasToken('afterUpdateBatch')); } } diff --git a/tests/system/RESTful/ResourceControllerTest.php b/tests/system/RESTful/ResourceControllerTest.php index 05c3a3e02ffb..70081b5ee3f9 100644 --- a/tests/system/RESTful/ResourceControllerTest.php +++ b/tests/system/RESTful/ResourceControllerTest.php @@ -51,11 +51,6 @@ final class ResourceControllerTest extends CIUnitTestCase { private CodeIgniter $codeigniter; - /** - * @var RouteCollection - */ - protected $routes; - #[WithoutErrorHandler] protected function setUp(): void { @@ -67,14 +62,21 @@ protected function setUp(): void Services::injectMock('superglobals', new Superglobals()); } + private function routes(): RouteCollection + { + $this->assertInstanceOf(RouteCollection::class, $this->routes); + + return $this->routes; + } + private function createCodeigniter(): void { service('superglobals')->setServer('SERVER_PROTOCOL', 'HTTP/1.1'); // Inject mock router. $this->routes = service('routes'); - $this->routes->resource('work', ['controller' => '\\' . Worker::class]); - Services::injectMock('routes', $this->routes); + $this->routes()->resource('work', ['controller' => '\\' . Worker::class]); + Services::injectMock('routes', $this->routes()); $config = new App(); $this->codeigniter = new MockCodeIgniter($config); @@ -107,7 +109,7 @@ public function testResourceGet(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $error = json_decode($output)->messages->error; @@ -129,7 +131,7 @@ public function testResourceGetNew(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $error = json_decode($output)->messages->error; @@ -152,7 +154,7 @@ public function testResourceGetEdit(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $error = json_decode($output)->messages->error; @@ -174,7 +176,7 @@ public function testResourceGetOne(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $error = json_decode($output)->messages->error; @@ -195,7 +197,7 @@ public function testResourcePost(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $error = json_decode($output)->messages->error; @@ -217,7 +219,7 @@ public function testResourcePatch(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $error = json_decode($output)->messages->error; @@ -239,7 +241,7 @@ public function testResourcePut(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $error = json_decode($output)->messages->error; @@ -261,7 +263,7 @@ public function testResourceDelete(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $error = json_decode($output)->messages->error; diff --git a/tests/system/RESTful/ResourcePresenterTest.php b/tests/system/RESTful/ResourcePresenterTest.php index 7e002d8e48b7..8f691c57296b 100644 --- a/tests/system/RESTful/ResourcePresenterTest.php +++ b/tests/system/RESTful/ResourcePresenterTest.php @@ -45,11 +45,6 @@ final class ResourcePresenterTest extends CIUnitTestCase { private CodeIgniter $codeigniter; - /** - * @var RouteCollection - */ - protected $routes; - #[WithoutErrorHandler] protected function setUp(): void { @@ -61,14 +56,21 @@ protected function setUp(): void Services::injectMock('superglobals', new Superglobals()); } + private function routes(): RouteCollection + { + $this->assertInstanceOf(RouteCollection::class, $this->routes); + + return $this->routes; + } + private function createCodeigniter(): void { service('superglobals')->setServer('SERVER_PROTOCOL', 'HTTP/1.1'); // Inject mock router. $this->routes = service('routes'); - $this->routes->presenter('work', ['controller' => '\\' . Worker2::class]); - Services::injectMock('routes', $this->routes); + $this->routes()->presenter('work', ['controller' => '\\' . Worker2::class]); + Services::injectMock('routes', $this->routes()); $config = new App(); $this->codeigniter = new MockCodeIgniter($config); @@ -97,7 +99,7 @@ public function testResourceGet(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $this->assertSame(lang('RESTful.notImplemented', ['index']), $output); @@ -119,7 +121,7 @@ public function testResourceShow(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $this->assertStringContainsString(lang('RESTful.notImplemented', ['show']), (string) $output); @@ -140,7 +142,7 @@ public function testResourceNew(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $this->assertStringContainsString(lang('RESTful.notImplemented', ['new']), (string) $output); @@ -161,7 +163,7 @@ public function testResourceCreate(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $this->assertStringContainsString(lang('RESTful.notImplemented', ['create']), (string) $output); @@ -183,7 +185,7 @@ public function testResourceRemove(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $this->assertStringContainsString(lang('RESTful.notImplemented', ['remove']), (string) $output); @@ -205,7 +207,7 @@ public function testResourceDelete(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $this->assertStringContainsString(lang('RESTful.notImplemented', ['delete']), (string) $output); @@ -228,7 +230,7 @@ public function testResourceEdit(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $this->assertStringContainsString(lang('RESTful.notImplemented', ['edit']), (string) $output); @@ -250,7 +252,7 @@ public function testResourceUpdate(): void $this->createCodeigniter(); ob_start(); - $this->codeigniter->run($this->routes); + $this->codeigniter->run($this->routes()); $output = ob_get_clean(); $this->assertStringContainsString(lang('RESTful.notImplemented', ['update']), (string) $output); diff --git a/tests/system/Session/SessionTest.php b/tests/system/Session/SessionTest.php index e405325501d5..91ed72173097 100644 --- a/tests/system/Session/SessionTest.php +++ b/tests/system/Session/SessionTest.php @@ -667,7 +667,7 @@ public function testInvalidSameSite(): void $this->expectExceptionMessage(lang('Cookie.invalidSameSite', ['Invalid'])); $config = new CookieConfig(); - $config->samesite = 'Invalid'; + $config->samesite = 'Invalid'; // @phpstan-ignore assign.propertyType (Testing rejection of an invalid SameSite value) Factories::injectMock('config', CookieConfig::class, $config); diff --git a/utils/phpstan-baseline/assign.propertyType.neon b/utils/phpstan-baseline/assign.propertyType.neon index 51c177310b90..9685a21060ff 100644 --- a/utils/phpstan-baseline/assign.propertyType.neon +++ b/utils/phpstan-baseline/assign.propertyType.neon @@ -1,4 +1,4 @@ -# total 7 errors +# total 1 error parameters: ignoreErrors: @@ -6,23 +6,3 @@ parameters: message: '#^Property CodeIgniter\\CodeIgniter\:\:\$request \(CodeIgniter\\HTTP\\CLIRequest\|CodeIgniter\\HTTP\\IncomingRequest\|null\) does not accept CodeIgniter\\HTTP\\RequestInterface\.$#' count: 1 path: ../../system/CodeIgniter.php - - - - message: '#^Property CodeIgniter\\Controller\:\:\$request \(CodeIgniter\\HTTP\\CLIRequest\|CodeIgniter\\HTTP\\IncomingRequest\) does not accept CodeIgniter\\HTTP\\RequestInterface\.$#' - count: 1 - path: ../../system/Controller.php - - - - message: '#^Property CodeIgniter\\Honeypot\\HoneypotTest\:\:\$response \(CodeIgniter\\HTTP\\Response\) does not accept CodeIgniter\\HTTP\\RequestInterface\|CodeIgniter\\HTTP\\ResponseInterface\|string\|null\.$#' - count: 1 - path: ../../tests/system/Honeypot/HoneypotTest.php - - - - message: '#^Property CodeIgniter\\Honeypot\\HoneypotTest\:\:\$response \(CodeIgniter\\HTTP\\Response\) does not accept CodeIgniter\\HTTP\\ResponseInterface\.$#' - count: 3 - path: ../../tests/system/Honeypot/HoneypotTest.php - - - - message: '#^Property Config\\Cookie\:\:\$samesite \(''''\|''Lax''\|''None''\|''Strict''\) does not accept ''Invalid''\.$#' - count: 1 - path: ../../tests/system/Session/SessionTest.php diff --git a/utils/phpstan-baseline/loader.neon b/utils/phpstan-baseline/loader.neon index 63afcc1d175c..290d2f74e5a8 100644 --- a/utils/phpstan-baseline/loader.neon +++ b/utils/phpstan-baseline/loader.neon @@ -1,4 +1,4 @@ -# total 42 errors +# total 24 errors includes: - argument.type.neon diff --git a/utils/phpstan-baseline/property.phpDocType.neon b/utils/phpstan-baseline/property.phpDocType.neon index 00ab948073fd..8d3e1007949e 100644 --- a/utils/phpstan-baseline/property.phpDocType.neon +++ b/utils/phpstan-baseline/property.phpDocType.neon @@ -1,4 +1,4 @@ -# total 7 errors +# total 3 errors parameters: ignoreErrors: @@ -16,23 +16,3 @@ parameters: message: '#^PHPDoc type CodeIgniter\\HTTP\\URI of property CodeIgniter\\HTTP\\IncomingRequest\:\:\$uri is not the same as PHPDoc type CodeIgniter\\HTTP\\URI\|null of overridden property CodeIgniter\\HTTP\\OutgoingRequest\:\:\$uri\.$#' count: 1 path: ../../system/HTTP/IncomingRequest.php - - - - message: '#^PHPDoc type string of property CodeIgniter\\Session\\Handlers\\FileHandler\:\:\$savePath is not the same as PHPDoc type array\\|string of overridden property CodeIgniter\\Session\\Handlers\\BaseHandler\:\:\$savePath\.$#' - count: 1 - path: ../../system/Session/Handlers/FileHandler.php - - - - message: '#^PHPDoc type Tests\\Support\\Models\\EventModel of property CodeIgniter\\Models\\EventsModelTest\:\:\$model is not the same as PHPDoc type CodeIgniter\\Model of overridden property CodeIgniter\\Models\\LiveModelTestCase\:\:\$model\.$#' - count: 1 - path: ../../tests/system/Models/EventsModelTest.php - - - - message: '#^PHPDoc type CodeIgniter\\Router\\RouteCollection of property CodeIgniter\\RESTful\\ResourceControllerTest\:\:\$routes is not the same as PHPDoc type CodeIgniter\\Router\\RouteCollection\|null of overridden property CodeIgniter\\Test\\CIUnitTestCase\:\:\$routes\.$#' - count: 1 - path: ../../tests/system/RESTful/ResourceControllerTest.php - - - - message: '#^PHPDoc type CodeIgniter\\Router\\RouteCollection of property CodeIgniter\\RESTful\\ResourcePresenterTest\:\:\$routes is not the same as PHPDoc type CodeIgniter\\Router\\RouteCollection\|null of overridden property CodeIgniter\\Test\\CIUnitTestCase\:\:\$routes\.$#' - count: 1 - path: ../../tests/system/RESTful/ResourcePresenterTest.php