From d70e663fdaeddf73464aa4322972216c9036334c Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Mon, 20 Jul 2026 18:34:08 +0700 Subject: [PATCH 1/2] Bump to StructArmed 0.15 and enable MustBeFinalRule --- composer.json | 2 +- structarmed.php | 6 ++++++ tests/_support/Config/Registrar.php | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index d621181c3..3b5d23822 100644 --- a/composer.json +++ b/composer.json @@ -29,7 +29,7 @@ "codeigniter4/settings": "^2.1" }, "require-dev": { - "boundwize/structarmed": "0.14.16", + "boundwize/structarmed": "0.15.1", "codeigniter/phpstan-codeigniter": "^2.0", "codeigniter4/devkit": "^1.3", "codeigniter4/framework": ">=4.3.5 <4.5.0 || ^4.5.1", diff --git a/structarmed.php b/structarmed.php index aab05444b..b2ab30dcc 100644 --- a/structarmed.php +++ b/structarmed.php @@ -5,8 +5,13 @@ use Boundwize\StructArmed\Architecture; use Boundwize\StructArmed\Preset\Preset; use Boundwize\StructArmed\Preset\Presets\Psr4Preset; +use Boundwize\StructArmed\Rule\Rules\Class_\MustBeFinalRule; return Architecture::define() + ->rule( + 'source.must_be_final', + new MustBeFinalRule(layer: 'tests'), + ) ->skip([ Psr4Preset::CLASSES_MUST_MATCH_COMPOSER => [ __DIR__ . '/src/Database/Migrations', @@ -14,6 +19,7 @@ ]) ->cacheDirectory(is_dir('/tmp') ? '/tmp/structarmed' : null) ->withPreset(Preset::PSR4()) + ->layer('tests', __DIR__ . '/tests') ->layerPattern('Model', '/^CodeIgniter\\\\Shield\\\\.*Model$/') ->layerPattern('Controller', '/^CodeIgniter\\\\Shield\\\\Controllers\\\\.*$/') ->layerPattern('Config', '/^CodeIgniter\\\\Shield\\\\Config\\\\.*$/', '/^.*Services$/') diff --git a/tests/_support/Config/Registrar.php b/tests/_support/Config/Registrar.php index 3e9661c24..86a5e04e3 100644 --- a/tests/_support/Config/Registrar.php +++ b/tests/_support/Config/Registrar.php @@ -18,7 +18,7 @@ * * Provides a basic registrar class for testing BaseConfig registration functions. */ -class Registrar +final class Registrar { /** * DB config array for testing purposes. @@ -27,7 +27,7 @@ class Registrar * * @psalm-suppress RedundantCondition */ - protected static $dbConfig = [ + private static $dbConfig = [ 'MySQLi' => [ 'DSN' => '', 'hostname' => '127.0.0.1', From bae76dd5ae3c53bd4c6db6982aab1dd97a999015 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Mon, 20 Jul 2026 18:36:17 +0700 Subject: [PATCH 2/2] chore: update rule key --- structarmed.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/structarmed.php b/structarmed.php index b2ab30dcc..f4b4a47bd 100644 --- a/structarmed.php +++ b/structarmed.php @@ -9,7 +9,7 @@ return Architecture::define() ->rule( - 'source.must_be_final', + 'tests.must_be_final', new MustBeFinalRule(layer: 'tests'), ) ->skip([