🏢 Approche Service
Introduction
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
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.
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.