Give.php 872 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace Illuminate\Container\Attributes;
  3. use Attribute;
  4. use Illuminate\Contracts\Container\Container;
  5. use Illuminate\Contracts\Container\ContextualAttribute;
  6. #[Attribute(Attribute::TARGET_PARAMETER)]
  7. class Give implements ContextualAttribute
  8. {
  9. /**
  10. * Provide a concrete class implementation for dependency injection.
  11. *
  12. * @param string $class
  13. * @param array|null $params
  14. */
  15. public function __construct(
  16. public string $class,
  17. public array $params = [],
  18. ) {
  19. }
  20. /**
  21. * Resolve the dependency.
  22. *
  23. * @param self $attribute
  24. * @param \Illuminate\Contracts\Container\Container $container
  25. * @return mixed
  26. */
  27. public static function resolve(self $attribute, Container $container): mixed
  28. {
  29. return $container->make($attribute->class, $attribute->params);
  30. }
  31. }