world-connect / laravel-boilerplate
It's a Laravel boilerplate to speed up the development process with all logic configured for auth, granting etc
Installs: 10
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 pailpour 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.phpque vous pouvez personnaliser. - 
Configurer la connexion à la base de données dans
.envsi 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 
.envavec 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.