# PrestaShop Service Container for Modules This repository includes the service container from Symfony that you can use in your PrestaShop Module. ## Pre-requisites You should install this library only on a PrestaShop environment and with PHP 5.6.0 minimum. ## Installation ``` composer require prestashop/module-lib-service-container ``` When this project is successfully added to your dependencies, you can add the new ServiceContainer to your module and use it. ## Usage To use this library, it's simple : - First, declare your new service Container in your root module PHP file (like mymodule.php at your root project folder) : ``` /** * @var ServiceContainer */ private $serviceContainer; ``` - And instantiate it in the constructor with the module name and its local path : ``` $this->serviceContainer = new ServiceContainer($this->name, $this->getLocalPath()); ``` - You can add a new function on your root module PHP file, like getService, to retrieve your service name in the new service container : ``` /** * @param string $serviceName * * @return mixed */ public function getService($serviceName) { return $this->serviceContainer->getService($serviceName); } ``` - Then, you have to declare your service in the services.yml file. You must declare your services in the config/ folder. We split the services in two folders in the config : /front and /admin folders. So the tree should be like : ``` /mymodule /config /front services.yml /admin services.yml common.yml ``` - Of course, you can include a common file, with common services that are use in front and admin project by an import in the services.yml file : ``` imports: - { resource: ../common.yml } ``` Now you can add your services in the services.yml like you were in a Symfony project ;)