SQLite avec Symfony
Stocker des données dans SQLite avec Symfony

Petite vérification
Avant de commencer, vérifiez si vous savez...
- ouvrir le fichier
src/Repository/PlayerRepository.phpet retrouver la méthodefindPlayersByCategory()que vous avez complétée lors du TP précédent - repérer, dans cette méthode, comment le paramètre
categoryest transmis à la requête SQL sans concaténer directement sa valeur dans la chaîne (protection contre les injections SQL) - exécuter cette méthode (depuis un contrôleur ou une route de test) et vérifier que
fetchAllAssociative()retourne bien un tableau de résultats
📌 Réponse attendue
Vous devez être connecté pour voir le contenu.
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.dbdans le dossiervar/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:createcrée le fichier.dbpour 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.