diff --git a/.gitignore b/.gitignore index 961285c..f02dfc8 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ patch.php test.php var vendor +.codex diff --git a/README.md b/README.md index be00c64..2cb2087 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ $payload = $signed->decode($token); ```bash composer install -composer test +composer ic:tests ``` diff --git a/docs/benchmark.rst b/docs/benchmark.rst index 68df448..b61e734 100644 --- a/docs/benchmark.rst +++ b/docs/benchmark.rst @@ -12,14 +12,14 @@ Run via Composer: .. code-block:: bash - composer benchmark + composer ic:benchmark Other useful variants: .. code-block:: bash - composer bench:quick - composer bench:chart + composer ic:bench:quick + composer ic:bench:chart What it measures ---------------- diff --git a/src/DI/Resolver/ParameterResolver.php b/src/DI/Resolver/ParameterResolver.php index 0c93590..9976322 100644 --- a/src/DI/Resolver/ParameterResolver.php +++ b/src/DI/Resolver/ParameterResolver.php @@ -221,13 +221,7 @@ public function setClassResolverInstance(ClassResolver $classResolver): void */ private function alreadyExist(string $className, array $parameters): bool { - foreach ($parameters as $value) { - if ($value instanceof $className) { - return true; - } - } - - return false; + return array_any($parameters, fn($value) => $value instanceof $className); } private function applyEnvOverride(string $fqcn): string diff --git a/src/DI/Resolver/Repository.php b/src/DI/Resolver/Repository.php index 5fd868c..2ef8ae5 100644 --- a/src/DI/Resolver/Repository.php +++ b/src/DI/Resolver/Repository.php @@ -1083,13 +1083,7 @@ private function isSafeCachedDefinitionValue(mixed $value): bool return false; } - foreach ($value as $item) { - if (!$this->isSafeCachedDefinitionValue($item)) { - return false; - } - } - - return true; + return array_all($value, fn($item) => $this->isSafeCachedDefinitionValue($item)); } /** diff --git a/tests/Container/AttributeResolutionTest.php b/tests/Container/AttributeResolutionTest.php index 8ef8a56..9174e78 100644 --- a/tests/Container/AttributeResolutionTest.php +++ b/tests/Container/AttributeResolutionTest.php @@ -6,6 +6,8 @@ use Infocyph\InterMix\Tests\Fixture\LogicOnlyAttr; use Infocyph\InterMix\Tests\Fixture\LogicOnlyAttrResolver; use Infocyph\InterMix\Tests\Fixture\LogicOnlyTarget; +use Infocyph\InterMix\Tests\Fixture\MethodAttr; +use Infocyph\InterMix\Tests\Fixture\MethodAttrResolver; use Infocyph\InterMix\Tests\Fixture\MethodTarget; use Infocyph\InterMix\Tests\Fixture\MixedAttributeExample; @@ -53,6 +55,10 @@ ExampleAttr::class, ExampleAttrResolver::class, ); + $c->attributeRegistry()->register( + MethodAttr::class, + MethodAttrResolver::class, + ); /* 3️⃣ Bind a container definition that Infuse will pick up */ $c->definitions()->bind('api_key', 'XYZ123'); diff --git a/tests/Fixture/MethodAttrResolver.php b/tests/Fixture/MethodAttrResolver.php index fd6d779..8540e52 100644 --- a/tests/Fixture/MethodAttrResolver.php +++ b/tests/Fixture/MethodAttrResolver.php @@ -13,10 +13,15 @@ public function resolve( Reflector $target, Container $container ): null { - // Log, side-effect, or simply acknowledge fwrite( STDERR, - "[TEST] {$attributeInstance->message} on {$target->getName()} in {$container::class}\n" + '[TEST] ' + . $attributeInstance->message + . ' on ' + . $target->getName() + . ' in ' + . $container::class + . "\n" ); return null; diff --git a/tests/Fixture/MethodTarget.php b/tests/Fixture/MethodTarget.php index 30c371f..ff24058 100644 --- a/tests/Fixture/MethodTarget.php +++ b/tests/Fixture/MethodTarget.php @@ -6,6 +6,7 @@ class MethodTarget { public array $result; + #[MethodAttr('send')] #[ExampleAttr] public function send( #[Inject('api_key')] string $override,