Remise à niveau Symfony3: slides

This commit is contained in:
wpetit 2017-12-14 22:14:18 +01:00
parent ccb80c82e7
commit a130fab2f8
1 changed files with 83 additions and 5 deletions

View File

@ -1,4 +1,4 @@
<style>pre, table { font-size: 0.7em !important; }</style> <style>pre, table { font-size: 0.6em !important; }</style>
# Remise à niveau Symfony3 # Remise à niveau Symfony3
## William Petit - S.C.O.P. Cadoles ## William Petit - S.C.O.P. Cadoles
@ -939,6 +939,14 @@ class Comment
``` ```
--- ---
## Exercice: relation `many to many`
Créer une entité "SocialUser" ayant un attribut "friends" qui est une collection de "SocialUser".
Tester l'ajout de relation et vérifier que la relation est bien bidirectionnelle comme on le souhaiterait dans le cas de la conception d'un réseau social.
---
## Les évènements Doctrine et Symfony (1) ## Les évènements Doctrine et Symfony (1)
### Création du `Listener` ### Création du `Listener`
@ -1040,6 +1048,14 @@ services:
--- ---
## Création et traitement de formulaires (4)
### Événements et formulaires dynamiques
Source: https://symfony.com/doc/current/form/events.html
---
## Validation des données (1) ## Validation des données (1)
### Installer le composant `validator` ### Installer le composant `validator`
@ -1068,7 +1084,7 @@ class MyEntity
public $name; public $name;
} }
``` ```
Les différentes validations pré-existantes: `NotBlank`, `Blank`, `NotNull`, `IsNull`, `isTrue`, `IsFalse`, `Email`, `Url`... Les différentes validations pré-existantes: `NotBlank`, `Blank`, `NotNull`, `IsNull`, `IsTrue`, `IsFalse`, `Email`, `Url`...
Voir http://symfony.com/doc/3.4/validation.html#supported-constraints Voir http://symfony.com/doc/3.4/validation.html#supported-constraints
@ -1101,13 +1117,75 @@ if ( count($errors) > 0 ) {
# Mise en production # Mise en production
## Gestion des environnements ## Configuration de Nginx
## Cache applicatif ## Déploiement
--- ---
## Gestion des environnements ## Configuration de Nginx
```
server {
server_name myapp.fr www.myapp.fr;
root /var/www/myapp/web;
location / {
try_files $uri /app.php$is_args$args;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass unix:/var/run/php7.1-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
# Permet d'empecher les URL du type "http://myapp/index.php/sub-path"
internal;
}
location ~ \.php$ {
return 404;
}
error_log /var/log/nginx/myapp.log;
access_log /var/log/nginx/myapp.log;
}
```
---
## Déploiement de l'application
### Checklist après le déploiement d'une nouvelle version
1. Vérifier que l'environnement est viable
```bash
php bin/symfony_requirements
```
2. Optimisation de l'autoloader `composer`
```bash
export SYMFONY_ENV=prod
composer install \
--no-dev \
--optimize-autoloader \
--classmap-authoritative
```
3. Nettoyer/réamorcer le cache applicatif
```bash
bin/console cache:clear --env=prod --no-debug --no-warmup
bin/console cache:warmup --env=prod
```
4. (Au besoin) Générer les assets via assetic
```bash
bin/console assetic:dump --env=prod --no-debug
```
---
5. S'assurer que la configuration de Doctrine est viable
```bash
bin/console doctrine:ensure-production-settings
```
--- ---
# Licence # Licence