Aller au contenu principal
Version: Canary 🚧

🏢 Approche Service

Introduction

À propos des services

Les services sont des classes simples que vous pouvez injecter dans vos controllers, dans d'autres services, qui peuvent vous permettre de découpler la logique et donc optimiser votre code source.

Vous pouvez aussi injecter des modèles dans vos services.

Utilisation

Création d'un service

Pour ajouter un service, rien de plus simple que d'utiliser la commande suivante :

php bow add:service UserService

Un service UserService sera créé par défaut dans le dossier app/Services. Nous allons ajouter la méthode suivante fetchAllUsers pour récupérer tous les utilisateurs enregistrés dans la base de données.

app/Services/UserService
namespace App\Services;

use App\Models\User;

class UserService
{
public function fetchAllUsers()
{
return User::all();
}
}

Utilisation du service

Pour utiliser le service, nous allons l'injecter là où nous voulons l'utiliser, dans notre cas dans un controller.

Lancez la commande suivante pour créer un nouveau controller :

php bow add:controller UserController

Dans le controller, nous allons maintenant injecter le service :

class UserController extends Controller
{
public function __construct(
private UserService $userService
) {}

public function showIndex()
{
$users = $this->userService->fetchAllUsers();

// do something
}
}

Il manque quelque chose ?

Si vous rencontrez des problèmes avec la documentation ou si vous avez des suggestions pour améliorer la documentation ou le projet en général, veuillez déposer une issue pour nous, ou envoyer un tweet mentionnant le compte Twitter @bowframework ou sur directement sur le github.