Apparence
Démarrage
En cours de finalisation
La distribution publique (composer create-project) et le pipeline de release sont en cours de mise en place. Cette page décrit la cible ; certaines étapes évoluent encore.
Prérequis
- PHP 8.4+ et Composer 2
- MariaDB / MySQL pour la production (colonnes
decimalet JSON) — SQLite suffit pour découvrir - Redis (queues via Horizon) et Meilisearch (recherche) pour une boutique complète
- Node 20+ pour les assets front
Créer un projet
sh
composer create-project slab/slab ma-boutiquecreate-project prépare le projet : il copie .env.example → .env et génère la clé d'application. Les migrations ne sont pas lancées — à vous de configurer votre base d'abord.
Configurer la base, puis migrer
Renseignez vos identifiants dans .env (DB_CONNECTION, DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD), puis créez le schéma — tables du cœur et des packages installés :
sh
php artisan migrateConstruire les assets front
sh
npm install
npm run build # production
# ou : npm run dev (développement, avec HMR)Activer des features
Les features optionnelles s'ajoutent par Composer ; chacune s'auto-enregistre et apporte ses migrations :
sh
composer require slab/carrier # transport
composer require slab/payment # paiement
composer require slab/promotion # promotions
php artisan migrate # crée les tables des nouveaux packagesAucun flag à activer : package installé = feature active.
Votre première extension
Le réflexe de base : tout s'étend depuis le boot() d'un service provider. Par exemple, envoyer une notification à chaque commande, dans app/Providers/AppServiceProvider.php :
php
use Illuminate\Support\Facades\Event;
use Slab\Framework\Core\Order\Events\OrderPlaced;
public function boot(): void
{
Event::listen(OrderPlaced::class, function (OrderPlaced $event) {
// $event->order : la commande tout juste passée
});
}C'est exactement le geste que vous répéterez pour tout le reste — voir Étendre Slab.
Et ensuite ?
- Architecture — comprendre la pile que vous venez d'installer.
- Étendre Slab — les mécaniques d'extension.
- Créer un package — empaqueter une feature réutilisable.