Bonjour,
D'une façon générale, un service devrait être créé dés lors que des traitements peuvent être appelé de plusieurs points de ton application (ex: un traitement par lot qui pourrait être appelé par ligne de commande (via cron) ou manuellement par une action d'un controller).
Par ailleurs en créant des services, on crée avant tout des classes, ce qui permet d'écrire des tests unitaires.
plus concrètement:
- Sur un site web j'ai un bloc en colonne de droite présent sur toutes les pages du site qui affiche le résultat d'un flux rss. Dois-je utiliser un service pour parser ce flux et "stocker" les informations dans la classe du service ?
Et si ce flux est caché pendant 1h ?
à priori le plus simple pour faire cela serait d'utiliser un render d'une action de controller :
http://symfony.com/doc/2.0/book/templating.html#index-8
qui peut éventuellement être mis en cache grâce à ESI
http://symfony.com/doc/2.0/book/http...-side-includes
Donc ton action va récupérer le flux RSS, le parse et le renvoit dans une template twig.
Tu peux tout à fait passer par un service pour cela (en lui injectant le service twig) mais rien ne t'y oblige.
- Sur une page je dois afficher la liste de tous les départements Français. Ces départements sont contenus dans un fichier xml. Dois-je créer un service pour
parser le fichier xml ?
Je dirais que oui il serait plutôt conseillé de passer par un service, afin d'avoir une façon normalisé de récupérer la liste des départements
$container->get('dpt_provider')->getList()
l'intéret serait surtout à terme de gérer un cache sur cette liste de dpt (le parsing d'un xml reste quelque chose d'assez couteux en ressource et tu pourrais avoir besoin d'optimiser cette partie)
Partager