Принцип открытости/закрытости — принцип объектно-ориентированного программирования, устанавливающий следующее положение: «программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения»; это означает, что такие сущности могут позволять менять свое поведение без изменения их исходного кода.
class Controller
{
protected $request;
public function show(\Symfony\Component\HttpFoundation\Request $request)
{
$this->request = $request;
}
/**
* @return Response
*/
public function show(){
//....
}
}
use League\Container\Container;
use League\Container\ReflectionContainer;
$container = new Container();
// Auto-wiring
$container->delegate(new ReflectionContainer());
$container->share(\Symfony\Component\HttpFoundation\Request::class, \Symfony\Component\HttpFoundation\Request::createFromGlobals());
/**
* service providers
*/
$response = $container->get(Controller::class)->show();