Il s'agit d'un passe-partout pour la construction d'un panneau d'administration Laravel 8.0 avisé avec le thème AdminLTE 3.0, Alpinejs 2.0, Livewire 2.0, pris en charge avec des tests et des branches de fonctionnalités facultatives.
Vous pouvez consulter ce dépôt. Je travaille activement sur Laravel Castra. Même idée, outils différents (Hotwire Turbo).
Parfois, les packages sont trop volumineux ou trop encombrants à utiliser. D'autres fois, le package n'a pas une fonctionnalité critique que vous recherchez et vous effectuez quelques hacks pour la contourner.
Ce qui vous manque, c'est d'avoir le contrôle sur le code, et maintenant vous l'avez ! Je n'aime pas la façon dont un nouvel utilisateur est ajouté. Aucun problème. Vous pouvez modifier le code comme bon vous semble. Plus besoin de bifurquer les paquets et de modifier leur code. L'idée est de créer des branches de fonctionnalités standards et de les rendre disponibles pour que d'autres puissent les fusionner dans leur branche principale.
Voici la liste des branches de fonctionnalités prises en charge. En les fusionnant dans master, vous débloquez de nouvelles fonctionnalités.
Après avoir installé Laravel, vous devez exécuter ces commandes :
git clone https://github.com/jcergolj/laravellte.git
composer install
cp .env.example .env
php artisan key:generate
npm install
npm run dev
composer cghooks update
php artisan migrate:fresh --seed
Soyons réalistes. Parfois, nous sommes négligents et nous ne prenons pas le plus grand soin du code. J'ai ajouté quelques packages utiles (n'est-ce pas ironique) pour alléger autant que possible le fardeau du développeur.
"php artisan insights --no-interaction --min-quality=90 --min-complexity=85 --min-architecture=90 --min-style=95"
Pour les actions CRUD, vous pouvez envisager d'utiliser la commande d'échafaudage de fichiers intégrée. Il génère des fichiers pour les actions Index, Créer, Afficher, Modifier et Supprimer comme ceci :
php artisan make:ltd-component bla --index --create --show --edit --delete
Vous pouvez omettre n’importe laquelle des options. Si vous le souhaitez, vous pouvez mettre à jour les fichiers stubs
à votre guise. Il y a des commentaires dans les fichiers échafaudés qui vous rappellent de modifier le code. Vous pouvez ensuite le trouver en tapant : index-review
, create-review
, show-review
, edit-review
, delete-review
. Les échafaudages d'usine et de modèle ne sont pas inclus dans cette commande.
Laravellte utilise un système d'autorisation basé sur les rôles et les autorisations. Seuls les utilisateurs dotés du rôle d'administrateur peuvent ajouter de nouveaux rôles et leur attribuer des autorisations.
Pour les nouvelles ressources, les autorisations sont ajoutées via PermissionsTableSeeder. Par convention, les principaux types d'autorisations sont index , create , edit , show et delete avec ressource au préfixe pluriel. Exemple : utilisateurs.index . Cela dit, vous êtes libre d’ajouter le vôtre. Cependant, vous devrez revoir/modifier le code.
Selon la convention, les noms de routes doivent être de ces types : index , create , edit , show et delete . Voir exemple.
Pour les composants livewire, la convention pour les nommer est la suivante : vous devez utiliser l'un de ces types suivi du nom de la ressource, puis du composant. Par exemple, IndexUserComponent Tous les composants Livewire doivent utiliser le trait HasLivewireAuth. Voici la mise en œuvre.
Lors de l'ajout d'une autorisation au rôle, il existe un fichier supplémentaire appeléowner_restricted . Si le champ restreint au propriétaire est vrai pour tout utilisateur de page d’index disposant de cette autorisation, il ne peut voir que ses propres ressources. Cependant, pour que cela fonctionne, la ressource doit avoir un fichierowner_id et un VisibleTo global attaché dans la méthode de démarrage.
Si le champ restreint du propriétaire est vrai pour les types show , edit et delete , l'utilisateur ne peut modifier que les ressources qui lui appartiennent.
Pour les types de création, la restriction du propriétaire est ignorée.
Au cœur de celui-ci se trouve ForRouteGate qui gère les autorisations. La mention honorable revient à Authorization Middleware.
Pour le rôle d'administrateur, les restrictions d'autorisations ne s'appliquent pas.
Sous licence MIT
Janez Cergolj | Horacio Degiorgi | Chris Thompson | Maduka Jayalath |