SymfonyWorld, quoi de neuf ?
le 5 décembre 2020
Cette semaine, il y a eu un séisme dans l'univers PHP et Symfony ! Découvrons cela ensemble.
Avertissement : Cet article se base uniquement sur les annonces publiques qui ont été faites sur le compte Twitter #SymfonyWorld
Libérer votre potentiel avec Javascript
C'est la mise à l'honneur de Symfony UX qui permet d'être framework agnostique quand aux choix que vous allez faire pour intégrer vos contenus dynamiques sur vos sites.
https://speakerdeck.com/tgalopin/symfony-ux-a-new-javascript-ecosystem-for-symfony
PHP8
Où comment un langage passe à un stade mature.
Compilation juste à temps, Les attributs, constructeurs à variable, arguments només, les types d'union et mixé, le match opérateur, l'opérateur null "safe".
https://www2.slideshare.net/nikita_ppv/whats-new-in-php-80-239762987
Api-platform 2.6, Next.js and Nuxt.js app generator, Caddy server, ActivityPub
Api-platform continue la conquête de l'étique à l'usage du web.
La cryptographie et la course au décryptage
SHA1, AES, DES3, Bob et Alice, puissance de calcul, probabilités, tous ces mots vous sont familier ?
https://speakerdeck.com/gregoirehebert/with-symfony-4-dot-4-your-secrets-will-be-well-kept
La sécurité dans Symfony
Approfondir la sécurité dans Symfony.
https://speakerdeck.com/weaverryan/modern-security-with-symfonys-shiny-new-security-component
Composer 2.0
L'outil qui vous aide au quotidien pour maintenir vos bibliothèques à jour.
https://www.naderman.de/slippy/slides/2020-12-04-SymfonyWorld-Online-2020-Composer-2.pdf
Elastic Search
On parle bien de production et conseils.
https://jolicode.github.io/elasticsearch-php-conf/slides/symfonyworld2020.html
Le serialiseur
Le composant Serialiser dévoile ses secrets.
https://speakerdeck.com/dbrumann/serializer-demystified
Les semaphores
Vous connaissez les threads linux ? Et bien découvrez ici comment gérer les sémaphores en PHP !
http://slides.com/jderusse/lock-semaphore-sfworld
0.1 + 0.2 != 0.3
Cela est étonnant, mais c'est pourtant vrai !
Internationalizer vos projets
Les bonnes pratiques à mettre en place pour internationaliser une application Symfony.
https://speakerdeck.com/welcomattic/internationalize-your-symfony-application-the-right-way
HTTP2
Et promouvoir son utilisation.
https://speakerdeck.com/brunohsouza/the-modern-and-fast-httpclient
Cypress for Symfony
Tests en bout à bout pour les développeurs symfony.
https://speakerdeck.com/leichteckig/symfony-meets-cypress-e2e-testing-for-symfony-developers
Dropping ACID
Comment designer son schéma en ecommerce, et beaucoup de sources à l'appui : Magento, Sylius, Spryker.
PHP et minecraft
Minecraft !
https://speakerdeck.com/thomasberends/php-plus-minecraft
Symfony Console
Et ASCII Art !
https://speakerdeck.com/el_stoffel/better-console-applications-symfonyworld-2020
Après la théorie, la pratique !
C'est toujours un moment où j'apprends en détail de nouvelles choses et l'investissement sera toujours bénéfique !
Darkwood est déployé sur PHP8 et Symfony 5.2
Cette migration c'est faite tranquille, le gros du travail c'était en septembre : https://blog.darkwood.fr/article/darkwood-opensource
Déjà, il faut passer sur PHP8 (sous mac) : https://stitcher.io/blog/php-8-upgrade-mac
Puis monter les dépendances Symfony 5.2 et utiliser composer update.
Conseil : --ignore--platform˗reqs=php à ne surtout pas reproduire à la maison !
Appliquer les nouveautés qu'on veut : https://symfony.com/blog/symfony-5-2-curated-new-features.
Ensuite, un petit script pour éviter le copier coller : https://www.amitmerchant.com/how-to-upgrade-application-codebase-to-use-PHP-8-features-rector/
Enfin quand tout est prêt, configurer le serveur : https://php.watch/articles/php-8.0-installation-update-guide-debian-ubuntu.
Côté production, je dois encore faire cohabiter php7.3-fpm et php8.0-fpm car tous mes services installés ne sont pas tous mis à jour avec PHP8, et oui c'est OpenSource.
Je ne peux que recommander que de contribuer sur les dépendances qui vous font défaut.
L'installation de PHP 8.0 sur debian amd64 ressemble quelque chose à cela :
# install php8.0 from https://php.watch/articles/php-8.0-installation-update-guide-debian-ubuntu
apt install apt-transport-https lsb-release ca-certificates wget -y
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt update
apt-get install -y php8.0 php8.0-fpm php8.0-{bz2,curl,intl,mysql,readline,xml,gd}
Darkwood utilise Caddy server
Tout savoir comment utiliser Caddy server derrière un Cloudflare : https://sammckenzie.be/en/blog/using-caddy-with-cloudflare/
Configurer son Caddyfile : https://caddyserver.com/docs/quick-starts/caddyfile
Installer CaddyServer sur Linux : https://caddyserver.com/docs/install
Pour en savoir plus : https://caddyserver.com/docs/getting-started
Symfony docker : https://github.com/dunglas/symfony-docker
L'installation de Caddy server sur debian amd64 ressemble quelque chose à cela :
# from https://sammckenzie.be/en/blog/using-caddy-with-cloudflare/
curl -o /usr/bin/caddy -L https://caddyserver.com/api/download?os=linux&arch=amd64&p=github.com%2Fcaddy-dns%2Fcloudflare&idempotency=55868885529780
echo "export CLOUDFLARE_AUTH_TOKEN=MY_TOKEN" >> ~/.bashrc
source ~/.bashrc
# from https://caddyserver.com/docs/install
mkdir -p /etc/caddy
groupadd --system caddy
useradd --system \
--gid caddy \
--create-home \
--home-dir /var/lib/caddy \
--shell /usr/sbin/nologin \
--comment "Caddy web server" \
caddy
touch /etc/systemd/system/caddy.service
nano /etc/systemd/system/caddy.service
# from https://github.com/dunglas/symfony-docker
touch /etc/caddy/Caddyfile
nano /etc/caddy/Caddyfile
darkwood.fr {
root * /var/www/darkwood.fr/darkwood.fr/public
php_fastcgi 127.0.0.1:9000
encode gzip
file_server
log {
output file /var/log/caddy/darkwood.fr.log
}
}
service caddy start
Mais aussi ...
- De Symfony 0.6 à Symfony 5 : https://skoop.dev/blog/2020/12/03/symfony-what-I-learned-from-the-framework/
- PHPStan : https://phpstan.org/blog/find-bugs-in-your-code-without-writing-tests
- XDebug 3 : https://xdebug.org/announcements/2020-11-25
- PHPStorm 2020.3 : https://www.jetbrains.com/fr-fr/phpstorm/whatsnew/
- Doctrine en PHP 8 : https://twitter.com/doctrineproject/status/1334856047648010241?s=20
- Symfony Cloud : https://symfony.com/blog/symfonycloud-php-8-is-available-right-now
- Optimiser PHP ? Pas d'infos ici, mais voici l'essentiel à retenir ! https://twitter.com/BoineauV/status/1334806034435743744?s=20
- https://shop.symfony.com et https://elephpant.me
Spread love