- Images docker pour MariaDB, PostgreSQL, et Redis (configurable dans le
.manala.yaml
) - Symfony 5.2
- Knp Doctrine extensions & Fixtures
- API Platform
- TailwindCSS (mode JIT) et le plugin pour les formulaires
- Webpack Encore, Babel, TypeScript, Vue, JSX
- Symfony UX (Stimulus Bridge)
- PHPStan, PHP-CS-Fixer, PHP_CodeSniffer, Rector, ESLint, Prettier
- PHPUnit, phpspec, Cypress, Jest (avec le support de Vue & JSX)
- Hooks de pré-commit via Husky et lint-staged
- Sentry (PHP et JS) configuré
- GitHub Actions et Dependabot (auto-approve & auto-merge) configurés
- Cliquer sur le bouton
Use this template
- Éditer le fichier
README_APP.md
:- Modifier les badges GitHub Actions
- Modifier les liens d'accès à l'application en local, pre-prod et prod
- Remplacer le fichier
README.md
par le fichierREADME_APP.md
- Modifier le contenu de la variable
APP_ENV
du fichier.env
Sur un OS Debian ou Ubuntu, il est recommandé d'utiliser le PPA ondrej/php qui permet d'installer facilement plusieurs versions de PHP. Il est également possible d'utiliser phpenv ou brew.
Pour le PPA ondrej/php :
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
install_php() {
VERSION=$1
sudo apt install php$VERSION \
php$VERSION-{zip,opcache,acpu,xdebug,fpm} \
php$VERSION-{pgsql,mysql} \
php$VERSION-{intl,curl,mbstring,xml,gd}
}
install_php 7.4
install_php 8.0
symfony php
et symfony composer
au lieu de php
et composer
directement pour plusieurs raisons :
symfony php
utilise la version de PHP requise par le projet grâce au fichier.php-version
, donc pas de soucis de versions- grâce à son intégration Docker, il est capable
de créer des variables d'environnement à la volée (ex :
DATABASE_APP_URL
,REDIS_URL
) en fonction des containers Docker allumés. Ce qui est nécessaire pour installer les dépendances, faire booter Symfony, etc...
L'extension XDebug est activée par défaut après son installation. Il n'est pas souhaitable que XDebug soit tout le temps activé pour des raisons de performances.
Pour désactiver XDebug pour toutes les versions de PHP et pour toutes les SAPI (CLI, FPM, ...), lancer sudo phpdismod -v ALL -s ALL xdebug
.
Pour activer XDebug sur un projet, il faut modifier le php.ini
du projet et y rajouter les lignes suivantes :
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
Pour vérifier si XDebug est bien activé, lancer symfony php-fpm -i | grep xdebug
et plusieurs lignes devraient s'afficher.
Sur un OS Debian, Ubuntu ou macOS, il est recommandé d'utiliser nvm qui permet d'installer et utiliser très simplement plusieurs versions de Node.js. Suivre les étapes d'installation via https://github.com/nvm-sh/nvm#installing-and-updating.
Il faudra ensuite lancer nvm use
dans le dossier du projet pour automatiquement utiliser la bonne version de Node.js (renseignéee dans
le fichier .nvmrc
).
L'installation de yarn
se fait via un npm intall --global yarn
.
Pour ceux utilisant zsh, il est possible d'utiliser le plugin
qui permet d'automatiquement lancer nvm use
lorsqu'un fichier .nvmrc
est détecté.
Ouvrir les paramètres et se rendre dans Appareance & Behavior > System Settings > HTTP Proxy
:
- Cocher
Auto-detect proxy settings
- Cocher
Automatic proxy configuration URL
et remplir avechttp://127.0.0.1:7080/proxy.pac
On va tester si PHP et le serveur Symfony sont parfaitement configurés pour faire fonctionner XDebug :
- Se rendre sur
Run > Web Server Debug Validation
- Cocher
Local Web Server or Shared Folder
- Path to create validation script : sélectionner le chemin public de l'application
- Url to validation script : l'URL d'accès à l'application
- Puis cliquer sur
Validate
Dans le navigateur :
- Installer l'extension XDebug Helper
- Sur l'interface de configuration de l'extension :
- IDE Key : sélectionner
PhpStorm
- IDE Key : sélectionner
- Dans PHPStorm, cliquer sur le bouton
Start Listening for PHP Debug Connections
- Dans le navigateur, activer le debug XDebug et naviguer sur une page de l'application
Si tout s'est bien passé, PHPStorm réagit à la connexion entrante et le débugguer s'affiche.