" " conatiner ( )?
<?php
class SomeController
{
public function __construct($container)
{
$this->service1 = $contanier->get('service1);
}
//...
}
, , , , ServiceLocator, - .
, , :
class SomeController
{
public function __construct($service1)
{
$this->service1 = $service1;
}
}
:
$container['controller'] = function($c) {
return SomeController($c['service1']);
}
, , , , :
1) - ,
<?php
class ProxyService
{
private $actualService;
public function __construct()
{
$this->actualService = null;
}
private function initialize()
{
$this->actualService = new Service1();
}
private function isInitialized()
{
return $this->actualService === null;
}
public function someActionOnThisService()
{
if (!$this->isInitalized()) {
$this->initalize();
}
$this->actualService->someActionOnThisService();
}
- . -,
2)
, .
Paul M. Jones ( Aura Framework) MVC-Refinement, IMHO , .
, , - (, , : , ).