Просмотр поста

.
reaper

FROSTY!?, В Pimple нет ничего сложного. Во первых нужно понять, что это обычный контейнер для объектов. Он может содержать в себе всё что угодно. Эти объекты так же называют службами/сервисами.
С помощью share() сохраняем объект в контейнере. Причем объект не будет создан сразу а только после того, как мы обратимся к нему напрямую.
Пример:

$c = new \Pimple();
$c['serive'] = $c->share(function ($c) {
   return new \StdClass();
});  // Объект еще не создан
$c['service']; // В этом момент вызывается конструктор класса \StdClass


В новых версиях нет нужды оборачивать функцию в share. Пишешь просто $c['service'] = function ($c) {}

Есть еще возможность при каждом обращении создавать новый экземпляр через \\Pimple::factory()
Можно просто что-нибудь записать в него $pimple['some_value'] = true;
Если нужно сохранить функцию, то юзаешь protect()
И т.д. в доке всё хорошо описано.