leandrofull / service-container
Service Container
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/leandrofull/service-container
README
-
PHP 8.2
-
Reflection API Extension
composer require leandrofull/service-container
php tests/run
use LeandroFull\Test\Assert; use LeandroFull\ServiceContainer\ServiceContainer; interface UserRepository { } class RealUserRepository implements UserRepository { } abstract class Controller { public function __construct(protected readonly UserRepository $userRepository) {} } class HomeController extends Controller { public function index(UserRepository $userRepository): void { Assert::same(RealUserRepository::class, $userRepository::class); } } $container = new ServiceContainer(); $controller = $container->get(HomeController::class); Assert::same(null, $controller); $container->set(UserRepository::class, fn(): UserRepository => new RealUserRepository()); $controller = $container->get(HomeController::class); Assert::same(HomeController::class, $controller::class); $container->invoke($controller, 'index');
Result:
Assertions: 3
Ok: 3
OK!