Bonjour

je travaille sur un projet laravel cote front et backoffice et j aimerai savoir est ce qu il y a meuilleur procedure de :

Controller/admin/
                                    Posts.php
                                    Members.php

Controller/front/
                                    Posts.php
                                    Users.php 

Controller/lib/
                                    Front.php
                                    Back.php

Controller/main/Core.php    

Je veux que les contrôleurs qui existent dans le dossier controller/admin héritent du contrôleur Back.php et que les autres de contrôleur/front héritent du contrôleur front.php afin de faire des traitements séparés dans les constructeurs Back.php et front.php comme l'initialisation des variables, l'appel des données, log des actions ...
et les deux contrôleurs "Back.php, front.php" héritent également d'un contrôleur Controller/main/Core.php qui me servira de faire des traitements communs de deux parties "back/front". et Core.php hérite du contrôleur principal de laravel.

ma question est de savoir s'il existe une meilleure pratique pour cette logique.

3 réponses


Bonjour.
En ce qui concerne les controllers des dossiers admin et front je les comprends, mais en quoi consistent ceux du dossier lib ?
Sinon, je te conseille de nommer les dossiers concernant les namespaces en CamelCase, soit par exemple Admin au lieu de admin.
Pour ce qui est de la structure, je verrai plutôt quelque chose comme ceci:

  • Admin
    • BackController (extends Core)
    • PostsController (extends BackController)
    • UsersController (extends BackController)
  • FrontController (extends Core)
  • PostsController (extends FrontController)
  • UsersController (extends FrontController)

Hello,

Je comprends ta stratégie, mais je pense qu'elle est mauvaise. Pourquoi l'est-elle tu me diras ? Eh bien c'est simple, tu es en train de séparer des contrôleurs basés sur des droits d'utilisateurs. Je ne connais pas le contexte de ton application, genre web, api, mais pour moi ce que tu fais est une mauvaise pratique.

Au lieu de détacher le frontend, de l'admin, tu devrais faire des domaines d'application. Dont un domaine "admin" si vraiment le contrôleur d'admin fait des choses différentes.
Exemple :

  • Admin
  • Blog
  • Community
  • Core (Genre là où tu mets toutes les choses communes à ton application)

Si tu n'as pas à gérer des actions vraiment différentes, tu peux très bien créer des actions dans le même contrôleur, avec une route différente, et y foutre une policy ou une gate, qui permettra de bloquer l'utilisateur s'il n'est pas admin de ton application.

Med-
Auteur

si j ai bien compris les controlleurs dans les domaines Admin, Blog et Community vont heriter d un controlleur dans dossier Core .
et qui pense tuc de mettre en place 2 middleware pour Backoffice et Frontoffice pour faire les traitements