Database.php 792 B

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. namespace Illuminate\Container\Attributes;
  3. use Attribute;
  4. use Illuminate\Contracts\Container\Container;
  5. use Illuminate\Contracts\Container\ContextualAttribute;
  6. use UnitEnum;
  7. #[Attribute(Attribute::TARGET_PARAMETER)]
  8. class Database implements ContextualAttribute
  9. {
  10. /**
  11. * Create a new class instance.
  12. */
  13. public function __construct(public UnitEnum|string|null $connection = null)
  14. {
  15. }
  16. /**
  17. * Resolve the database connection.
  18. *
  19. * @param self $attribute
  20. * @param \Illuminate\Contracts\Container\Container $container
  21. * @return \Illuminate\Database\Connection
  22. */
  23. public static function resolve(self $attribute, Container $container)
  24. {
  25. return $container->make('db')->connection($attribute->connection);
  26. }
  27. }