Laravel IoC вне Laravel

Я использую это Сделки рЕПО в качестве основы для нового CLI PHP-проекта, использующего Eloquent в качестве ORM.

Когда вы создаете новый Eloquent capsule у вас есть возможность setAsGlobal что делает капсулу БД доступной из любого места в коде.

Означает ли это, что используется контейнер Laravel? Или это только влияет на объект БД?

Я использовал прыщ как контейнер, но если у Laravel уже есть контейнер, к которому я могу привязаться через Eloquent, это будет намного проще — я хочу привязать средство записи журнала, капсулу Eloquent и, возможно, объект настроек к глобальному контейнеру, чтобы я мог доступ к нему из любого места.

3

Решение

Нет, он не использует контейнер Laravels. Если вы посмотрите на метод в черту 🙁github.com)

public function setAsGlobal()
{
static::$instance = $this;
}

Вы можете видеть, что он просто устанавливает статическое свойство в классе, содержащем текущий экземпляр, поэтому он будет повторно использоваться для последующих вызовов.

1

Другие решения

Попробуйте это решение. Надеюсь, поможет.

https://gist.github.com/reinink/9112262

"require":
{
"illuminate/container": "4.0.*@dev",
}
0

По вопросам рекламы [email protected]