Advertisement
Guest User

Untitled

a guest
Oct 8th, 2024
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.77 KB | None | 0 0
  1. <?php
  2. declare(strict_types=1);
  3.  
  4. require __DIR__ . '/vendor/autoload.php';
  5.  
  6. class CidHolder {
  7.     public function __construct(public readonly int|string $cid)
  8.     {
  9.     }
  10. }
  11.  
  12. class SomeDependency {}
  13.  
  14. class MyService {
  15.     private string|int $cid;
  16.  
  17.     public function __construct(
  18.         CidHolder $cidHolder,
  19.         private readonly SomeDependency $dependency
  20.     ) {
  21.         $this->cid = $cidHolder->cid;
  22.     }
  23. }
  24.  
  25. $containerBuilder = new \DI\ContainerBuilder();
  26. $containerBuilder->useAutowiring(true);
  27. $containerBuilder->addDefinitions([
  28.     CidHolder::class => \DI\factory(function () {
  29.        return new CidHolder($_SESSION['client']['cid'] ?? 'unknown');
  30.     }),
  31. ]);
  32.  
  33. $container = $containerBuilder->build();
  34.  
  35. var_dump($container->get(MyService::class));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement