<commit_before>Title: Retour sur le Symfony Live Paris 2017 - Jour 1
Date: 2017-04-13 09:00
Category: Events
Tags: Symfony, PHP
Authors: <NAME>

![SymfonyLive 2017 - Isics]({filename}/images/sflive2017_01.png)

La 9e édition du SymfonyLive Paris avait lieu les 30 et 31 mars 2017 à la Cité Internationale Universitaire de Paris.

Deux jours de conférences techniques, retours d'expériences et présentations de produits en rapport avec l'écosystème Symfony... Nous n'allons pas vous le cacher c'est un moment qu'on attend chez Isics (d'autant plus qu'on est **partenaire SensioLabs**) ! Une partie de l'équipe a donc naturellement fait le déplacement.

Qu'y avait-il à retenir sur la première journée de l'événement ?


## Symfony4

C'est sans surprise <NAME> en personne qui a démarré cette journée de conférences avec notamment deux sujets :

### Symfony4 (sans blague !)

* Ca arrive bientôt ! (fin novembre 2017)
* PHP7 requis
* Dans la continuité de Symfony3, l'architecture se rapproche encore plus des standards de linux (répertoire etc pour stocker les fichiers de configuration, fichier .env pour gérer les variables d'environnement / ...)
* Les composants embarqués par défaut dans les versions précédentes sont maintenant optionnels - on part d'une version minimaliste (template symfony/skeleton) et on ajoute simplement ce dont on a besoin

### Symfony Flex

Le constat est simple : quelle est la valeur ajoutée lors de l'installation ou désinstallation d'un bundle ? On doit activer le bundle via le AppKernel.php, charger dans certains cas des routes supplémentaires, ajouter de la configuration ...

L'objectif de Symfony Flex est de faire tout ça pour vous. Il fonctionne via un plugin composer et propose :

* L'installation / désinstallation automatisée des bundles via un système de recettes
* La mise en place d'alias pour simplifier l'installation de bundles. Certains bundles seront sélectionnés par Sensio (ex : un composer require admin vous proposera directement le bundle EasyAdmin)

L'installation des bundles sans recette sera, bien sûr, toujours possible.

![SymfonyLive 2017 - Vlouppe / Spacefoot]({filename}/images/sflive2017_02.png)


## A la découverte du composant Serializer

<NAME> rappelle le principe de la sérialisation avant de passer au vif du sujet : le composant symfony/serializer.

Son constat : avant Symfony 2.7 le composant serializer de Symfony n'était pas utilisé. D'autres solutions telles que le JMSSerializer étaient bien plus complètes. <NAME> (notamment) a voulu inverser la tendance et a repris le composant en main.

Au final :

* Le bundle reste limité comparé à JMS mais inclus la base nécessaire à la majorité des cas
* Plus léger donc plus rapide
* Plus simple d'utilisation (à vérifier...)

Mais :

* Sérialisation des erreurs pas intégrée de base (pour bientôt, PR en cours)
* Gestion des références circulaires non intégrée de base (pourquoi ?!)

En savoir plus : [https://speakerdeck.com/lyrixx/symfony-live-2017-serializer](https://speakerdeck.com/lyrixx/symfony-live-2017-serializer)


## Grâce aux tags Varnish, j'ai switché ma prod sur un Raspberry Pi

<NAME>ussé nous fait la promesse suivante : switcher une app Symfony qui absorbe 1000 requêtes/seconde sur un serveur à 10$.

Il faut donc faire en sorte que le back-end ne soit plus appelé. Pour cela on ne précise plus de durée de vie sur les caches mais on s'arrange pour purger le cache de manière intelligente via une notion de tags.<commit_msg>Updated content<commit_after>Title: Retour sur le Symfony Live Paris 2017 - Jour 1
Date: 2017-04-13 09:00
Category: Events
Tags: Symfony, PHP
Authors: <NAME>

![SymfonyLive 2017 - Isics]({filename}/images/sflive2017_01.png)

La 9e édition du SymfonyLive Paris avait lieu les 30 et 31 mars 2017 à la Cité Internationale Universitaire de Paris.

Deux jours de conférences techniques, retours d'expériences et présentations de produits en rapport avec l'écosystème Symfony... Nous n'allons pas vous le cacher c'est un moment qu'on attend chez Isics (d'autant plus qu'on est **partenaire SensioLabs**) ! Une partie de l'équipe a donc naturellement fait le déplacement.

Qu'y avait-il à retenir sur la première journée de l'événement ?


## Symfony4

C'est sans surprise <NAME> en personne qui a démarré cette journée de conférences avec notamment deux sujets :

### Symfony4 (sans blague !)

* Ca arrive bientôt ! (fin novembre 2017)
* PHP7 requis
* Dans la continuité de Symfony3, l'architecture se rapproche encore plus des standards de linux (répertoire etc pour stocker les fichiers de configuration, fichier .env pour gérer les variables d'environnement / ...)
* Les composants embarqués par défaut dans les versions précédentes sont maintenant optionnels - on part d'une version minimaliste (template symfony/skeleton) et on ajoute simplement ce dont on a besoin

### Symfony Flex

Le constat est simple : quelle est la valeur ajoutée lors de l'installation ou désinstallation d'un bundle ? On doit activer le bundle via le AppKernel.php, charger dans certains cas des routes supplémentaires, ajouter de la configuration ...

L'objectif de Symfony Flex est de faire tout ça pour vous. Il fonctionne via un plugin composer et propose :

* L'installation / désinstallation automatisée des bundles via un système de recettes
* La mise en place d'alias pour simplifier l'installation de bundles. Certains bundles seront sélectionnés par Sensio (ex : un composer require admin vous proposera directement le bundle EasyAdmin)

L'installation des bundles sans recette sera, bien sûr, toujours possible.

![SymfonyLive 2017 - Vlouppe / Spacefoot]({filename}/images/sflive2017_02.png)


## A la découverte du composant Serializer

<NAME> rappelle le principe de la sérialisation avant de passer au vif du sujet : le composant symfony/serializer.

Son constat : avant Symfony 2.7 le composant serializer de Symfony n'était pas utilisé. D'autres solutions telles que le JMSSerializer étaient bien plus complètes. <NAME> (notamment) a voulu inverser la tendance et a repris le composant en main.

Au final :

* Le composant reste limité comparé à JMS mais inclus la base nécessaire à la majorité des cas
* Plus léger donc plus rapide
* Plus simple d'utilisation (à vérifier...)

Mais :

* Sérialisation des erreurs pas intégrée de base (pour bientôt, PR en cours)
* Gestion des références circulaires : l'implémentation d'un handler est indispensable. Même si celle-ci a été fortement simplifiée depuis la 3.3 (merci @lyrixx) on aurait aimé quelque chose de plus transparent (comme le propose JMS).

En savoir plus : [https://speakerdeck.com/lyrixx/symfony-live-2017-serializer](https://speakerdeck.com/lyrixx/symfony-live-2017-serializer)


## Grâce aux tags Varnish, j'ai switché ma prod sur un Raspberry Pi

<NAME> nous fait la promesse suivante : switcher une app Symfony qui absorbe 1000 requêtes/seconde sur un serveur à 10$.

Il faut donc faire en sorte que le back-end ne soit plus appelé. Pour cela on ne précise plus de durée de vie sur les caches mais on s'arrange pour purger le cache de manière intelligente via une notion de tags.
{'fraction_non_alphanumeric': 0.05827702702702703, 'fraction_numerical': 0.01998873873873874, 'mean_word_length': 4.684, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2867744', 'n_tokens_mistral': 2270, 'n_tokens_neox': 2156, 'n_words': 982}