habeuk / symfony-starter
Starter Symfony 8.1 pour mes projets (API + JWT + Mailer + AI)
Requires
- php: >=8.4
- ext-ctype: *
- ext-iconv: *
- doctrine/doctrine-bundle: ^3.3
- doctrine/doctrine-migrations-bundle: ^4.0
- doctrine/orm: ^3.7
- habeuk/ai-agent-bundle: 1.x-dev
- habeuk/debug: dev-3x
- habeuk/file-uploader-bundle: 1.x-dev
- habeuk/habeuk_base_symfony: 1.x-dev
- habeuk/url-alias-bundle: 1.x-dev
- lexik/jwt-authentication-bundle: ^3.2
- nelmio/cors-bundle: ^2.6
- phpdocumentor/reflection-docblock: ^6.0
- phpstan/phpdoc-parser: ^2.3
- symfony/apache-pack: *
- symfony/asset: 8.1.*
- symfony/console: 8.1.*
- symfony/doctrine-messenger: 8.1.*
- symfony/dotenv: 8.1.*
- symfony/expression-language: 8.1.*
- symfony/flex: ^2
- symfony/form: 8.1.*
- symfony/framework-bundle: 8.1.*
- symfony/http-client: 8.1.*
- symfony/intl: 8.1.*
- symfony/mailer: 8.1.*
- symfony/mime: 8.1.*
- symfony/monolog-bundle: ^3.0|^4.0
- symfony/notifier: 8.1.*
- symfony/object-mapper: 8.1.*
- symfony/process: 8.1.*
- symfony/property-access: 8.1.*
- symfony/property-info: 8.1.*
- symfony/rate-limiter: 8.1.*
- symfony/reprise: ^1.3
- symfony/runtime: 8.1.*
- symfony/security-bundle: 8.1.*
- symfony/serializer: 8.1.*
- symfony/stimulus-bundle: ^3.5
- symfony/string: 8.1.*
- symfony/translation: 8.1.*
- symfony/twig-bundle: 8.1.*
- symfony/uid: 8.1.*
- symfony/ux-turbo: ^3.5
- symfony/validator: 8.1.*
- symfony/web-link: 8.1.*
- symfony/yaml: 8.1.*
- symfonycasts/verify-email-bundle: *
- twig/extra-bundle: ^2.12|^3.0
- twig/twig: ^2.12|^3.0
Requires (Dev)
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.3
- phpstan/phpstan-doctrine: ^2.0
- phpstan/phpstan-strict-rules: ^2.1
- phpstan/phpstan-symfony: ^2.1
- phpunit/phpunit: ^13.4
- symfony/browser-kit: 8.1.*
- symfony/css-selector: 8.1.*
- symfony/debug-bundle: 8.1.*
- symfony/maker-bundle: ^1.0
- symfony/stopwatch: 8.1.*
- symfony/web-profiler-bundle: 8.1.*
Suggests
None
Provides
None
Conflicts
README
Voici un README.md complet et professionnel pour votre projet habeuk/symfony-starter, prêt à être publié sur Packagist/GitHub. Il couvre l'installation, la configuration, l'utilisation, et les informations de licence.
# Habeuk Symfony Starter [](https://packagist.org/packages/habeuk/symfony-starter) [](https://packagist.org/packages/habeuk/symfony-starter) [](https://packagist.org/packages/habeuk/symfony-starter) Un squelette Symfony prêt à l'emploi, maintenu par [Habeuk](https://habeuk.com). Ce starter inclut une configuration de base, des dépendances essentielles et une structure de projet prête pour le développement d'applications web modernes. ## Sommaire - [Prérequis](#prérequis) - [Installation](#installation) - [Configuration](#configuration) - [Utilisation](#utilisation) - [Structure du projet](#structure-du-projet) - [Tests](#tests) - [Contribuer](#contribuer) - [Sécurité](#sécurité) - [Licence](#licence) ## Prérequis Avant de commencer, assurez-vous que votre environnement dispose de : - **PHP 8.2 ou supérieur** (avec les extensions `ctype`, `iconv`, `intl`, `pdo`, `pdo_mysql`, `tokenizer`, `xml`, `mbstring`) - **Composer 2.x** - **Symfony CLI** (recommandé, mais optionnel) - **MySQL 8.0+** ou **PostgreSQL 14+** (selon votre configuration) - **Node.js 18+** et **npm** (si vous utilisez les assets front-end) ## Installation Créez un nouveau projet à partir de ce starter : ```bash composer create-project habeuk/symfony-starter mon-projet
Puis placez-vous dans le dossier du projet :
cd mon-projet
Si vous utilisez Symfony CLI, vous pouvez lancer le serveur de développement :
symfony serve
Sinon, avec le serveur PHP intégré :
php -S localhost:8000 -t public
L'application est accessible à l'adresse http://localhost:8000.
Configuration
Variables d'environnement
Copiez le fichier d'exemple et adaptez les valeurs à votre environnement :
cp .env .env.local
Éditez .env.local pour configurer :
APP_ENV: environnement (dev,prod,test)APP_SECRET: clé secrète de l'applicationDATABASE_URL: chaîne de connexion à la base de donnéesMAILER_DSN: configuration du transport de mail
Exemple de DATABASE_URL pour MySQL :
DATABASE_URL="mysql://user:password@127.0.0.1:3306/mon_projet?serverVersion=8.0&charset=utf8mb4"
Base de données
Créez la base de données et exécutez les migrations :
php bin/console doctrine:database:create php bin/console doctrine:migrations:migrate
Assets front-end
Si le projet utilise Webpack Encore ou Vite, installez les dépendances et compilez les assets :
npm install npm run build
Utilisation
Commandes utiles
# Vider le cache php bin/console cache:clear # Créer une entité Doctrine php bin/console make:entity # Créer un contrôleur php bin/console make:controller # Créer une migration php bin/console make:migration # Exécuter les migrations php bin/console doctrine:migrations:migrate # Lancer les tests php bin/phpunit
Développement
Le starter est fourni avec le pack de développement Symfony (symfony/debug-pack, symfony/profiler-pack). Le profiler est accessible en environnement dev à l'adresse / _profiler (sans l'espace).
Structure du projet
mon-projet/
├── bin/ # Exécutables (console, phpunit)
├── config/ # Configuration Symfony (packages, routes, services)
├── migrations/ # Migrations Doctrine
├── public/ # Racine web (index.php, assets)
├── src/ # Code source PHP (Controller, Entity, Repository, ...)
├── templates/ # Templates Twig
├── tests/ # Tests PHPUnit
├── translations/ # Fichiers de traduction
├── var/ # Cache et logs
├── vendor/ # Dépendances Composer
├── .env # Variables d'environnement par défaut
├── .env.local # Variables d'environnement locales (non versionné)
├── composer.json
└── README.md
Tests
Le starter inclut PHPUnit. Pour lancer la suite de tests :
php bin/phpunit
Pour un rapport de couverture (si Xdebug est installé) :
php bin/phpunit --coverage-html var/coverage
Contribuer
Les contributions sont les bienvenues. Pour contribuer :
- Forkez le dépôt
- Créez une branche pour votre fonctionnalité (
git checkout -b feature/ma-fonctionnalite) - Commitez vos changements (
git commit -m 'Ajout de ma fonctionnalité') - Poussez la branche (
git push origin feature/ma-fonctionnalite) - Ouvrez une Pull Request
Merci de respecter les standards de code Symfony (PSR-12) et de lancer les tests avant de soumettre une PR.
Sécurité
Si vous découvrez une vulnérabilité de sécurité, merci de ne pas ouvrir une issue publique. Contactez directement l'équipe à l'adresse security@habeuk.com pour permettre une correction avant divulgation.
Licence
Ce projet est distribué sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Maintenu par Habeuk — pour toute question, ouvrez une issue ou contactez-nous à contact@habeuk.com.
### Points à adapter avant publication
1. **Le nom du package** : vérifiez que `habeuk/symfony-starter` correspond bien au nom déclaré dans votre `composer.json`.
2. **Les prérequis** : ajustez la version de PHP (8.2, 8.3, 8.4 ?) et les extensions selon ce que votre starter utilise réellement.
3. **La licence** : le README mentionne MIT, mais vérifiez que c'est bien la licence du projet (le fichier `LICENSE` doit exister à la racine).
4. **Les liens** : remplacez `https://habeuk.com` et `contact@habeuk.com` par les URLs et adresses réelles.
5. **Les commandes** : si votre starter utilise Vite au lieu de Webpack Encore, ou si la base est PostgreSQL au lieu de MySQL, adaptez les exemples en conséquence.
6. **Le badge Packagist** : les badges ne fonctionneront qu'une fois le package publié sur Packagist. Tant que ce n'est pas le cas, vous pouvez les retirer ou les laisser (ils afficheront « not found »).
Une fois ce README en place, pensez à ajouter un fichier `LICENSE` (MIT, par exemple) et, si ce n'est pas déjà fait, à déclarer le package sur [Packagist](https://packagist.org/packages/submit) pour que `composer create-project habeuk/symfony-starter` fonctionne pour tout le monde.