Aller au contenu principal

SQLite avec Symfony

Stocker des données dans SQLite avec Symfony


1. Configurer la BD SQLite dans .env

Modifiez le fichier .env (ou .env.local) pour utiliser SQLite :

DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"

Symfony créera automatiquement le fichier data.db dans le dossier var/ s’il n’existe pas.


2. Installer le driver SQLite

Vérifiez que l’extension PHP pdo_sqlite est activée :

php -m | grep pdo_sqlite

Si absent, activez-la dans php.ini :

extension=pdo_sqlite

3. Créer une entité

Par exemple, pour créer l'entité Product, utilisez la commande :

php bin/console make:entity Product

Définissez vos champs (ex. name, price).


4. Créer la base de données et les tables

php bin/console doctrine:database:create
php bin/console make migration
php bin/console doctrine:migration:migrate

La commande doctrine:database:create crée le fichier .db pour SQLite (s'il n'existe pas).


5. Insérer des données via un contrôleur

Exemple dans un contrôleur :

<?php

namespace App\Controller;

use App\Entity\Product;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;

class ProductController extends AbstractController
{
public function createProduct(EntityManagerInterface $entityManager): Response
{
$product = new Product();
$product->setName('Example Product');
$product->setPrice(19.99);

$entityManager->persist($product);
$entityManager->flush();

return new Response('Produit enregistré !');
}
}

Avantages de SQLite avec Symfony

  • Pas de serveur à gérer.
  • Léger, idéal pour le développement ou les projets simples.
  • Parfait pour les applications standalone ou les PWA.
attention

SQLite ne supporte pas toutes les fonctionnalités des SGBD relationnels (ex. contraintes de clé étrangère par défaut, certaines fonctions SQL avancées). Vérifiez la compatibilité selon vos besoins.