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

.
L!MP

AlkatraZ, Ну ты весьма сложную реализацию сервис локатора взял. Впринципе серв.локатор это реестр с явным интерфейсом (и содержимым) который может как хранить инстанции, так и отвечать за их инициализацию.

По этому, если отбросить всю шелуху с LimbToolkit связаную с композицией ("смешиванием" нескольких локаторов), то все сведется к:

class Locator {
private $request;
function setRequest(\IRequest $object) {
$this->request = $object;
}
function getRequest() {
if (is_null($this->request))
$this->request = new \Request;
return $this->request;
}

Locator::instance()->getRequest()->...