Aller au contenu principal

Installation

Prérequis

Avant d'installer Weaver ORM, vérifiez que votre environnement satisfait les exigences minimales :

PrérequisVersion
PHP8.4 ou supérieur
Symfony7.0 ou supérieur
doctrine/dbal4.0 (installé automatiquement)
Base de donnéesMySQL 8.0+ / PostgreSQL 14+ / SQLite 3.35+

Étape 1 — Installation via Composer

docker compose exec app composer require weaver/orm

Cela installe :

  • weaver/orm — le mapper principal, le query builder et l'unité de travail
  • weaver/orm-bundle — le bundle Symfony (enregistré automatiquement par Symfony Flex)
  • doctrine/dbal ^4.0 — utilisé comme couche de connexion et d'abstraction de schéma (pas Doctrine ORM)
Docker

Toutes les commandes de cette documentation supposent que vous exécutez à l'intérieur d'un conteneur Docker. Adaptez le nom du service (app) pour correspondre à votre docker-compose.yml.

Étape 2 — Enregistrement du bundle

Si vous utilisez Symfony Flex, le bundle est enregistré automatiquement. Sinon, ajoutez-le manuellement à config/bundles.php :

<?php
// config/bundles.php

return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
// ... autres bundles ...
Weaver\ORM\Bundle\WeaverOrmBundle::class => ['all' => true],
];

Étape 3 — Création du fichier de configuration

Créez config/packages/weaver.yaml avec une configuration de connexion minimale :

# config/packages/weaver.yaml
weaver_orm:
connection:
driver: pdo_pgsql
url: '%env(DATABASE_URL)%'

mapper_paths:
- '%kernel.project_dir%/src/Mapper'

migrations_path: '%kernel.project_dir%/migrations/weaver'
migrations_namespace: 'App\Migrations\Weaver'

Ajoutez l'URL de base de données à votre fichier .env (ou .env.local pour les surcharges locales) :

DATABASE_URL="postgresql://app:secret@db:5432/app?serverVersion=16&charset=utf8"

Étape 4 — Vérification de l'installation

docker compose exec app bin/console weaver:info

Résultat attendu :

Weaver ORM — version 1.0.0
Connection: pdo_pgsql (connected)
Mapper paths: src/Mapper (0 mappers found)
Migrations: migrations/weaver (0 migrations)

Pilotes de base de données supportés

PiloteBase de données
pdo_pgsqlPostgreSQL 14+
pdo_mysqlMySQL 8.0+ / MariaDB 10.6+
pdo_sqliteSQLite 3.35+
pyrosqlPyroSQL (analytique, optimisé en lecture)

Paquets optionnels

PyroSQL (réplica de lecture analytique)

docker compose exec app composer require weaver/pyrosql-adapter

Active un moteur analytique haute performance en cours de processus comme connexion secondaire pour les requêtes à forte lecture et les rapports.

Mappeur de documents MongoDB

docker compose exec app composer require mongodb/mongodb

Nécessite l'extension PHP ext-mongodb. Active AbstractDocumentMapper pour le stockage orienté document aux côtés du mappeur relationnel.

Intégration Symfony Messenger

docker compose exec app composer require symfony/messenger

Active le patron outbox et la publication d'événements de domaine asynchrones depuis les hooks du cycle de vie des entités.

Mise en cache des résultats de requêtes

docker compose exec app composer require symfony/cache

Active ->cache(ttl: 60) sur les chaînes du query builder pour stocker les résultats hydratés dans un pool de cache PSR-6.