DependencyInjection.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace ModulesGarden\ProxmoxAddon\Core\DependencyInjection;
  3. /**
  4. * Class DependencyInjection
  5. * @package ModulesGarden\ProxmoxAddon\Core\DependencyInjection
  6. */
  7. class DependencyInjection
  8. {
  9. /**
  10. * @param null $className
  11. * @param null $methodName
  12. * @param bool $canClone
  13. * @return mixed
  14. */
  15. public static function get($className = null, $methodName = null, $canClone = true)
  16. {
  17. if ($methodName)
  18. {
  19. return Container::getInstance()->call("$className@$methodName");
  20. }
  21. return Container::getInstance()->make($className);
  22. }
  23. /**
  24. * @param null $className
  25. * @param null $methodName
  26. * @param bool $canClone
  27. * @return mixed
  28. */
  29. public static function create($className = null, $methodName = null, $canClone = true)
  30. {
  31. if ($methodName)
  32. {
  33. return Container::getInstance()->call("$className@$methodName");
  34. }
  35. return Container::getInstance()->make($className);
  36. }
  37. /**
  38. * @param null $className
  39. * @param null $methodName
  40. * @return mixed
  41. */
  42. public static function call($className = null, $methodName = null)
  43. {
  44. if ($methodName)
  45. {
  46. return Container::getInstance()->call("$className@$methodName");
  47. }
  48. return Container::getInstance()->make($className);
  49. }
  50. }