> For the complete documentation index, see [llms.txt](https://akyos.gitbook.io/book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://akyos.gitbook.io/book/symfony/un-code-propre/services.md).

# Services

Vos services doivent faire office de logique métier.

Ici, nous allons reprendre la structure des Entités pour ne pas se perdre dans les fonctionnalités. Vous pouvez donc vous retrouvez avec :&#x20;

* `App\Service\CarService`
* `App\Service\Car\ModelService`

{% hint style="warning" %}
Vous devez impérativement vous référer à ces Services avant de réaliser votre fonction. Il se peut qu'elle existe déjà.
{% endhint %}

> Mais Lilian ? Il y a une fonction qui existe et la boucle qui me permettrait de faire ce que je veux est en plein milieu... Je peux copier coller et arranger comme je veux ?
>
> \-- **NON**&#x20;

Lorsque vous rencontrez ce cas, découper la fonction initiale et refaite une fonction simplement pour la boucle que vous voulez extraire en la nommant clairement.

### Évolution d'une petite fonction

Si vous voulez faire évoluer une petite fonction, faite attention à regarder où elle est utilisé. Faite en sorte que ce que vous voulez développez soit logique par rapport au reste du projet et ce que la fonction offre déjà.

### Requêtes à la BDD

Tous ce qui est liaisons à la BDD doivent se situé au niveau des [repositories](/book/symfony/un-code-propre/repositories.md) et non ici. Si vous n'avez pas de traitements PHP à appliquer aux données, il ne faut pas faire de fonction. Référez vous aux repositories.
