Я использую это Сделки рЕПО в качестве основы для нового CLI PHP-проекта, использующего Eloquent в качестве ORM.
Когда вы создаете новый Eloquent capsule
у вас есть возможность setAsGlobal
что делает капсулу БД доступной из любого места в коде.
Означает ли это, что используется контейнер Laravel? Или это только влияет на объект БД?
Я использовал прыщ как контейнер, но если у Laravel уже есть контейнер, к которому я могу привязаться через Eloquent, это будет намного проще — я хочу привязать средство записи журнала, капсулу Eloquent и, возможно, объект настроек к глобальному контейнеру, чтобы я мог доступ к нему из любого места.
Нет, он не использует контейнер Laravels. Если вы посмотрите на метод в черту 🙁github.com)
public function setAsGlobal()
{
static::$instance = $this;
}
Вы можете видеть, что он просто устанавливает статическое свойство в классе, содержащем текущий экземпляр, поэтому он будет повторно использоваться для последующих вызовов.
Попробуйте это решение. Надеюсь, поможет.
https://gist.github.com/reinink/9112262
"require":
{
"illuminate/container": "4.0.*@dev",
}