world-connect / laravel-boilerplate
It's a Laravel boilerplate to speed up the development process with all logic configured for auth, granting etc
Installs: 7
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:project
pkg:composer/world-connect/laravel-boilerplate
Requires
- php: ^8.2
- laravel/framework: ^12.0
- laravel/sanctum: ^4.0
- laravel/tinker: ^2.10.1
- opcodesio/log-viewer: ^3.19
- spatie/laravel-permission: ^6.21
Requires (Dev)
- fakerphp/faker: ^1.23
- laravel/pail: ^1.2.2
- laravel/pint: ^1.24
- laravel/sail: ^1.41
- mockery/mockery: ^1.6
- mrmarchone/laravel-auto-crud: ^1.6
- nunomaduro/collision: ^8.6
- pestphp/pest: ^3.8
- pestphp/pest-plugin-laravel: ^3.2
- reliese/laravel: ^1.4
README
Un boilerplate Laravel prêt à l'emploi avec système d'authentification complet et gestion des rôles et permissions.
🚀 Commandes utiles
Développement
# Démarrer l'environnement de développement composer dev # Exécuter les tests composer test # Lancer l'analyse de code avec Pint ./vendor/bin/pint
Base de données
# Exécuter les migrations php artisan migrate # Exécuter les seeders php artisan db:seed # Rafraîchir la base de données et réexécuter les seeders php artisan migrate:fresh --seed
Génération de code
# Générer un nouveau contrôleur php artisan make:controller NomDuControleur # Générer un nouveau modèle avec migration php artisan make:model NomDuModele -m # Générer un nouveau service php artisan make:service NomDuService # Générer un CRUD complet pour un modèle existant php artisan make:crud NomDuModele
Commande make:crud
La commande make:crud
génère automatiquement un contrôleur CRUD complet pour un modèle existant avec les fonctionnalités suivantes :
- Méthodes CRUD complètes (index, store, show, update, destroy)
- Gestion des erreurs avec try/catch
- Réponses JSON structurées
- Validation des données
- Routes API RESTful
Options :
{model}
: (Optionnel) Nom du modèle pour lequel générer le CRUD. Si non spécifié, une liste des modèles disponibles sera affichée.
Exemple :
# Générer un CRUD pour le modèle User
php artisan make:crud User
Fonctionnalités :
- Vérification de l'existence du modèle
- Demande de confirmation avant d'écraser un contrôleur existant
- Détection automatique des routes existantes pour éviter les doublons
- Messages d'erreur et de succès en français
- Journalisation complète des erreurs dans
storage/logs/laravel.log
- Gestion sécurisée des erreurs sans exposer de détails sensibles
- Structure de réponse standardisée :
{ "success": true, "message": "Message de succès", "data": {}, "errors": [] }
Journalisation des erreurs :
- Toutes les erreurs sont automatiquement enregistrées avec :
- Message d'erreur détaillé
- Contexte de la requête (données, utilisateur, etc.)
- Stack trace pour le débogage
- Horodatage précis
- Les erreurs sont classées par type d'opération (création, lecture, mise à jour, suppression)
- Les messages d'erreur utilisateur sont génériques pour la sécurité
Bonnes pratiques :
- Vérifiez régulièrement les fichiers de logs dans
storage/logs/
- Configurez un système de surveillance des logs pour les environnements de production
- Utilisez la commande
php artisan pail
pour surveiller les logs en temps réel
📦 Packages inclus
Principaux
- Laravel Sanctum - Authentification API légère
- Spatie Laravel Permission - Gestion des rôles et permissions
- Laravel Tinker - Console interactive pour Laravel
Développement
- Laravel Sail - Environnement de développement Docker
- Laravel Pint - Outil de formatage de code
- Pest PHP - Framework de test élégant
- Reliese Laravel - Génération de code pour les modèles
- Laravel Pail - Outil de journalisation en temps réel
🔄 Utilisation de Reliese Laravel
Reliese Laravel est un outil puissant pour générer automatiquement du code à partir de votre base de données. Voici comment l'utiliser :
Configuration initiale
-
Publier la configuration :
php artisan vendor:publish --provider="Reliese\Coders\CodersServiceProvider"
Ceci créera un fichier
config/models.php
que vous pouvez personnaliser. -
Configurer la connexion à la base de données dans
.env
si ce n'est pas déjà fait.
Génération des modèles
Pour générer les modèles à partir de votre base de données :
php artisan code:models
Options utiles :
--table=nom_table
: Générer un modèle spécifique--schema=nom_schema
: Spécifier un schéma de base de données--connection=ma_connexion
: Utiliser une connexion spécifique--suffix=
: Ajouter un suffixe aux noms de modèles--namespace=
: Définir l'espace de noms personnalisé
Personnalisation des modèles
Les modèles générés incluent des fonctionnalités avancées :
- Relations automatiquement détectées
- Casts pour les types de colonnes
- Règles de validation
- Configuration des champs remplissables (fillable)
Mise à jour des modèles
Pour mettre à jour les modèles existants sans écraser vos modifications :
php artisan code:models --ignore=updated_at,created_at
Configuration avancée
Personnalisez config/models.php
pour :
- Définir des espaces de noms personnalisés
- Configurer le format des noms de modèles
- Définir des relations personnalisées
- Configurer les types de retour PHPDoc
Bonnes pratiques
- Versionnez toujours vos modèles générés
- Utilisez les modèles de base (BaseModel) pour personnaliser le comportement
- Consultez la documentation officielle pour des fonctionnalités avancées
Tests
- Pest PHP - Framework de test élégant
- Mockery - Création de mocks pour les tests
- Faker - Génération de données de test
Fonctionnalités
-
Authentification
- Connexion/Déconnexion
- Gestion des jetons d'API avec Laravel Sanctum
- Protection des routes API
-
Gestion des Utilisateurs
- CRUD complet des utilisateurs
- Attribution de rôles aux utilisateurs
- Gestion des profils utilisateurs
-
Gestion des Rôles et Permissions
- Création et gestion des rôles
- Attribution de permissions aux rôles
- Vérification des permissions dans les contrôleurs
-
Sécurité
- Protection CSRF
- Validation des données
- Hachage des mots de passe
Prérequis
- PHP 8.2 ou supérieur
- Composer
- Base de données (MySQL/PostgreSQL/SQLite)
- Node.js et NPM (pour les assets frontend)
Installation
-
Cloner le dépôt
git clone [URL_DU_REPO] cd nom-du-projet
-
Installer les dépendances PHP
composer install
-
Installer les dépendances NPM
npm install npm run dev
-
Configurer l'environnement
cp .env.example .env php artisan key:generate
-
Configurer la base de données
- Créer une base de données
- Mettre à jour le fichier
.env
avec les informations de connexion
-
Exécuter les migrations et les seeders
php artisan migrate --seed
Ceci créera :
- Un utilisateur administrateur par défaut
- Des rôles de base (admin, user)
- Des permissions de base
Utilisation
Démarrer le serveur de développement
php artisan serve
Endpoints API
Authentification
POST /api/login
- Connexion utilisateurPOST /api/logout
- Déconnexion utilisateur (nécessite authentification)
Utilisateurs
GET /api/users
- Lister tous les utilisateursPOST /api/users
- Créer un nouvel utilisateurGET /api/users/{id}
- Afficher un utilisateurPUT/PATCH /api/users/{id}
- Mettre à jour un utilisateurDELETE /api/users/{id}
- Supprimer un utilisateur
Rôles et Permissions
GET /api/roles
- Lister tous les rôlesPOST /api/roles
- Créer un nouveau rôleGET /api/roles/{id}
- Afficher un rôlePUT/PATCH /api/roles/{id}
- Mettre à jour un rôleDELETE /api/roles/{id}
- Supprimer un rôlePUT/PATCH /api/roles/{role}/permissions
- Attribuer des permissions à un rôle
Utilisation avec Postman
Une collection Postman est disponible dans le dossier laravel-auto-crud
pour tester facilement les endpoints de l'API.
Structure du Projet
app/
├── Http/
│ ├── Controllers/ # Contrôleurs de l'application
│ ├── Requests/ # Classes de validation
│ └── Resources/ # Transformateurs de données
├── Models/ # Modèles Eloquent
├── Providers/ # Fournisseurs de services
└── Services/ # Logique métier
config/ # Fichiers de configuration
database/
├── migrations/ # Migrations de base de données
├── seeders/ # Données initiales
└── factories/ # Usines de test
routes/ # Définitions des routes
Sécurité
- Tous les mots de passe sont hachés avec Bcrypt
- Protection contre les attaques CSRF
- Validation des entrées utilisateur
- Gestion des erreurs sécurisée
Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE
pour plus d'informations.
Contribution
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.