Outils pour utilisateurs

Outils du site


symfony4:services

Services

Les services sont des classes

Placer les classes de services dans un dossier /src/Service.

Par exemple : /src/Service/MonService.php :

<?php
 
namespace App\Service;
 
class MonService {
 
    public function __construct(...) {
        //...
    }
 
    public function ...(...) {
        //...
    }
 
}

Utilisation du service dans un contrôleur

Utiliser l'injection de dépendances pour obtenir automatiquement une instance de notre service.

<?php
 
namespace App\Controller;
 
use App\Service\MonService;
 
class MonControleur extends AbstractController {
 
    public function uneFonction(MonService $monService) {
 
        //...
 
        $monService->...(...);
 
        //...
    }
 
}

Utiliser un service dans un service

Si notre service doit faire appel à un autre service, utiliser l'injection de dépendances au niveau du constructeur du service, et stocker l'instance dans une variable privée.

<?php
 
namespace App\Service;
 
use App\Service\AutreService;
 
class MonService {
 
    private $autreService;
 
    public function __construct(AutreService $autreService) {
 
        $this->autreService = $autreService;
 
        //...
 
    }
 
    public function ...(...) {
 
        $this->autreService->...(...);
 
        //...
 
    }
 
}
symfony4/services.txt · Dernière modification: 2019/08/11 05:02 par marclebrun