Skip to content

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 decimal et 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-boutique

create-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 migrate

Construire 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 packages

Aucun 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 ?