fzed51 / instance-resolver
Resolver d'instance, auto link
v2.1.0
2022-11-15 21:50 UTC
Requires
- php: ^8.1
- psr/container: ^1.0
Requires (Dev)
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.3
- pimple/pimple: ^3.2
- squizlabs/php_codesniffer: ^3.5
README
Usage
use InstanceResolver\ResolverClass; class A { public $prop = 0; } class B extends A { public $prop = 0; } class C { public function __construct(A $a){} } class D { public function __construct($x){} } $resolver = new ResolverClass($container); $a = $resolver(A::class); $b = $resolver(B::class); $c = $resolver(C::class); $d = $resolver(D::class); // throw new InstanceResolver\Exception\UnresolvedParameter // --> le paramètre $x ne peut pas être résolu $e = $resolver('E'); // throw new InstanceResolver\Exception\UnresolvedClass // --> la classe E n'existe pas et n'a pas été trouvé par l'autoloader
Pour déclarer les dépendance dans le Container, il faut utiliser les nom de classe complet.
TODO
version 1.0
- résoudre le problème de namespace
- coriger tout les tests
- faire l'ébauche de la doc
- publier la version 1.0