AFUP Forum PHP 2022 Baromètre Planète PHP PUFA
planete-php.fr Articles Blogs Infos RSS Feed Atom Feed Twitter

Articles

Retour sur Cloud Nord 2022 (deuxième partie)

Les-Tilleuls.coop 30/09/2022

Retrouvez la première partie de notre compte-rendu ici.





Vous voulez sauver la planète? Utilisez DailyClean une application open source réalisée avec Quarkus, Guillaume Thomas





DailyClean est une app permettant d’éteindre ponctuellement ou de manière planifiée des environnements Kubernetes. Une API tourne dans chaque namespace et il peut également y avoir un front. Ce front met en page l’ensemble des déploiements présents dans chaque namespace, avec le statut, le nombre de réplica et une estimation des coûts. On peut également y planifier des jours et des heures d’extinctions et d’allumage. Cette planification va créer un cronjob qui va communiquer avec l’API Kube afin d’éteindre les déploiements. 





Une future fonctionnalité sera de pouvoir ajouter des labels sur les déploiements qui ne doivent pas être affectés par DailyClean. C’est également un outil qui est intéressant de coupler avec flux afin de garder la persistance des configurations des déploiements. 





Votre base de données comme vous ne l’avez jamais vue, Loïc Knuchel





Talk intéressant de Loïc Knuchel qui nous a présenté Azimutt.app. Azimutt est un outil qui permet d’explorer et d’organiser visuellement les tables des base de données SQL sous la forme de diagrammes entité-association (ERD).





Il s’avère particulièrement utile pour découvrir les grosses bases de données et les bases de données “legacy”. Azimut a d’abord été développé pour les besoins de Doctolib et est maintenant disponible pour tous sous licence libre (MIT).





Loïc nous a présenté les (nombreuses !) fonctionnalités de l’outil et ses avantages par rapport aux solutions pré-existantes.

Voir la suite

Pourquoi réécrire tout le site ?

JB Nahan 21/09/2022

Bienvenu sur le nouveau site. Je vous propose un petit retour sur la première partie de la refonte du site. Pourquoi tout ça ? Comment j'en suis arrivé là ?


The post Pourquoi réécrire tout le site ? first appeared on JB Dev Labs.

Nous avons essayé de décoder un format binaire avec PHP

Jolicode 20/09/2022

Nous nous sommes récemment intéressés à un format de données binaires appelé Smile.
Notre objectif était d’écrire un encodeur / décodeur en PHP pour ce format, dans le cadre d'un exercice pratique pour mon alternance chez JoliCode.
Nous vous expliquons dans cet article comment nous nous y sommes pris et comment ça s’est passé.


Le protocole Smile, qu’est-ce que c’est ?


Le protocole Smile est un format de données qui permet d’encoder en binaire des fichiers JSON. Il s’agit d’un format avec un potentiel intéressant car il promet une taille de fichier fortement diminuée, et donc des temps d’écriture et de lecture réduits. Ces promesses sont accompagnées d’un benchmark sur GitHub. Dans ce benchmark, nous voyons en effet que l’implémentation Smile de Jackson est plus rapide et produit des fichiers plus légers : elle a mis un total de 1805 nanosecondes pour produire un fichier de 252 octets, contre 2216 nanosecondes pour produire un fichier de 293 octets pour son équivalent JSON.


Ce format se distingue par les 3 premiers octets qui composent tout fichier smile : il s’agit du smiley :) suivi par un saut de ligne. Il propose également une fonctionnalité intéressante pour réduire la taille de ses fichiers : l’utilisation de “backrefs”. Les backrefs sont des identifiants attribués à toutes les clés rencontrées lors de l’encodage du fichier JSON. Lorsque cette clé sera rencontrée à nouveau, plutôt que d’être répétée, l’identifiant qui lui a été attribué la remplacera, faisant profiter d’une économie d’octets. Associée au format binaire, cette feature permet de réduire considérablement la taille de certains fichiers. En option, il est d’ailleurs possible de l’activer également pour les valeurs.


Poids du fichier en Smile versus JSON


Le poids de fichiers JSON accompagnés de leur équivalent en Smile.


L’équipe derrière ce protocole est celle de Jackson, une librairie Java permettant de parser du JSON ainsi que de nombreux autres formats de données. La librairie a naturellement implémenté son propre parser Smile, faisant office de référence.


Ce format étant supporté par Elasticsearch et étant porteur de belles promesses, nous avons décidé de nous y intéresser. Nous avons ainsi fait le constat qu’il existe déjà de nombreuses implémentations du protocole dans différents langages. Cependant il n’en existe pas en PHP, notre langage de prédilection. Avec l’idée d’éventuellement utiliser le protocole dans nos projets, nous avons donc décidé de réaliser notre propre implémentation.


En ce qui me concerne, il ne s’agissait pas d’une mince affaire puisque je n’avais jusque là jamais eu l’occasion de travailler avec du binaire, et des opérations telles que la suivante m’inspiraient bien peu :


$sharedValueReference = (($firstByte & 3) << 8) | ($secondByte & 255);

Fort heureusement, nous pouvions compter sur Jackson et les autres librairies existantes pour nous aider.

Voir la suite

Baromètre des salaires en PHP : déjà la dixième édition !

AFUP 19/09/2022

Une enquête utile à toutes et tous, ouverte jusqu'au 19 décembre


Grâce au baromètre des salaires en PHP porté par l’AFUP depuis 2012, développeurs et développeuses disposent d’un outil leur permettant de valoriser leurs compétences auprès de leur employeur, tout en offrant aux entreprises une vue d’ensemble du milieu et un référentiel pour mieux gérer la carrière des membres de leurs équipes. À l’issue de cette nouvelle enquête, qui durera jusqu’au 19 décembre, l’analyse des résultats permettra de suivre et de comprendre ce qui agite notre milieu professionnel en 2022.



On ne change pas la recette gagnante !


En 10 ans, le baromètre des salaires en PHP a apporté un éclairage sur le niveau de rémunération en fonction du poste, de l'entreprise et de sa localisation, sur l’évolution du langage et son utilisation au quotidien, et sur les tendances managériales. Cette dixième édition continue dans cette voie, poursuivant son travail de décryptage des tendances qui a fait son succès et sa réputation. Nos répondants et répondantes réguliers retrouveront ainsi les questions qui permettent de comprendre comment évoluent les salaires. Quel est le niveau de rémunération ? Quel est le niveau de satisfaction concernant cette rémunération ? Quelle est la taille de l’entreprise ? Où se situe-t-elle ?



De nouvelles questions pour faire évoluer l'enquête


Mais le baromètre des salaires en PHP doit également son succès dans le temps à sa capacité à ressentir les fluctuations du marché et à prendre en compte les retours et demandes de la communauté. Ainsi, tout comme l’enquête avait vu l’introduction de questions sur la gestion de la crise sanitaire en 2020, le sujet de la reconversion professionnelle en 2021, l’enquête 2022 vous propose d’aborder des sujets relatifs à l’évolution de carrière ainsi que la prise en compte des statuts professionnels ou encore des frais relatifs au télétravail.



Participez, et faites participer vos équipes !


Depuis 2012, ce sont entre 600 et 900 participant.e.s chaque année qui partagent leurs informations, en tout anonymat. Que les devs soient de fidèles répondants, ou qu’il s’agisse de leur première participation, l’essentiel est de récolter un maximum de réponses, pour un état des lieux des plus précis et détaillés. Dans tous les cas, l’enquête 2022, marquant cette édition anniversaire, espère faire le plein d’informations, qui profiteront à toute la communauté PHP et aux entreprises de l’écosystème.


Répondez à l'enquête 2022, en quelques minutes et en tout anonymat, avant le 19 décembre 2022 : résultats publiés en mars 2023 !

Ateliers, coups de projecteur et derniers jours pour profiter du meilleur tarif

AFUP 15/09/2022

Préparez-vous pour 2 jours intenses, les 13 et 14 octobre à Disneyland Paris : chaque moment est mis à profit pour vous permettre de vous rencontrer, de partager vos connaissances, de progresser à vitesse grand V, et de ressentir l'esprit propre à la communauté PHP. Vous allez repartir boosté.e, la tête pleine de nouvelles idées pour vos projets ! En plus du programme de haute volée, une ambiance de folie et un lieu qui repousse les limites de l'imagination, on ajoute de nouvelles opportunités d'apprentissage auprès de nos sponsors et de nos experts invités. Prenez vos places avant le passage au tarif Late Bird, dimanche 18 septembre à 23h59.



Les sponsors Or et l'AFUP s'occupent de vous au moment des pauses


Coups de projecteur des sponsors Or


Ne manquez pas les “coups de projecteurs” de nos sponsors Or, qui ont une part active dans le dynamisme de notre événement comme de notre écosystème ! Grâce à leurs démos techniques, leurs jeux, quiz et casse-têtes en tout genre organisés à l'heure du midi le jeudi comme le vendredi, apprenez-en davantage sur leurs outils, leurs produits, leurs valeurs et leurs équipes, et remportez des cadeaux au passage.


Rencontrez l'équipe AFUP


Savez-vous que le Forum PHP tient sur les épaules d'une quinzaine de bénévoles ? Mettez un visage sur des noms que vous croisez sur Twitter ou en AG, et découvrez au passage leurs passions en dehors de l'AFUP. Un planning de présence est disponible au stand AFUP, et l'équipe vous apprendra même à réaliser des origamis inspirés des mascottes de l'écosystème !



Contribuez à l'open source, accompagné.e.s d'experts du sujet !


Kévin Dunglas et Nicolas Grekas vous proposent deux ateliers, pour découvrir comment participer à leurs projets open source respectifs : API Platform et Symfony. Venez avec votre machine et découvrez pas-à-pas comment contribuer à l'open source sur ces projets reconnus.
Atelier sans inscription : premier.e.s arrivé.e.s, premier.e.s servi.e.s !

Ne manquez pas le grand rassemblement de la communauté, nous avons hâte de vous retrouver ! Prenez vos places pour l'événement fédérateur autour du langage PHP en France, les 13 et 14 octobre à Disneyland Paris.

.NET 6 / WPF : personnaliser le chrome d'une fenêtre

Maxence Delannoy (Wiip) 12/09/2022

Si vous l'ajoutez à votre code XAML de cette façon :



<Window x:Class="WindowChromeCustomization.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WindowChromeCustomization"
mc:Ignorable="d"
Title="MainWindow" Height="300" Width="400">
<WindowChrome.WindowChrome>
<WindowChrome />
</WindowChrome.WindowChrome>
<Grid Background="DarkGray"/>
</Window>


Vous obtenez une fenêtre où le titre et les boutons systèmes (minimiser, maximiser...) ont disparu :



Plus de titre, plus de boutons



Mais bizarrement, les fonctionnalités sont toujours là : si on double clique sur le haut, la fenêtre est maximisée et si on clique en haut à droite la fenêtre se ferme. C'est un peu bizarre...



En fait, il faut modifier le gabarit de la fenêtre de cette façon :



<Window x:Class="WindowChromeCustomization.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="MainWindow" Height="300" Width="400">
<WindowChrome.WindowChrome>
<WindowChrome/>
</WindowChrome.WindowChrome>
<Window.Style>
<Style TargetType="Window">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Window">
<Grid>
<ContentPresenter Content="{TemplateBinding Content}" Margin="{x:Static SystemParameters.WindowNonClientFrameThickness}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Style>
<Grid Background="DarkGray"/>
</Window>


On doit ajouter un élément ContentPresenter avec des marges correspondant à celles fournies par la propriété système WindowNonClientFrameThickness (4,27,4,4 sur mon système).

Voir la suite

Utilisation des énumérations PHP 8.1 dans un projet Symfony

Strangebuzz 07/09/2022
Dans cet article, nous voyons comment utiliser des énumérations PHP 8.1 dans un projet Symfony. Nous allons passer en revue les étapes pour utiliser cette intéressante nouvelle fonctionnalité dans les différentes parties d'une application Symfony.

Planning détaillé et nouveautés au Forum PHP 2022

AFUP 06/09/2022

Le planning détaillé est en ligne


Constituez votre planning idéal


Découvrez le planning détaillé des deux jours de l'événement et construisez votre programme idéal ! Avec deux tracks en parallèle et une sélection de speakers pareille, certains choix s'annoncent cornéliens : gardez en tête que toutes les conférences sont filmées ! Vous pourrez retrouver les conférences que vous aurez manquées, et revoir celles que vous aurez adorées, sur notre chaîne YouTube.


Burger Quiz sauce AFUP


Cette année, pas de lightning talks ou de slideshow karaoké : le créneau du jeudi 13 octobre entre 18h et 18h40 sera occupé par un Burger Quiz sauce AFUP ! Le célèbre jeu de Canal+ passe au mixer de l'AFUP, pour des questions sur l'écosystème, l'association et tout ce qui s'en rapproche de près ou de très très très (très) loin ! Le public sera invité à participer, mais surtout, à rire et à encourager les équipes ketchup et mayo sur scène.



Nouvelles animations, jeux et démos pendant les pauses


"Coups de projecteurs" des sponsors Or


Ne manquez pas les “coups de projecteurs” de nos sponsors Or, organisés à l’heure du midi : à partir de 13h20, rendez-vous sur les stands de Yes We Hack, Les-Tilleuls.coop, Yousign, Klaxoon, Sensio & Smile et Bedrock pour des démos techniques, des jeux, des concours et des casse-têtes en tout genre. De quoi en apprendre davantage sur leurs outils, leurs produits, leurs valeurs et leurs équipes. Programme complet dévoilé sous peu !


Ateliers open source avec Kévin Dunglas et Nicolas Grekas


Kévin Dunglas et Nicolas Grekas vous proposent 2 ateliers à l’heure du midi, pour découvrir comment participer à leurs projets open source respectifs. Présentez-vous devant la salle d’atelier à 13h15 : la salle peut accueillir une dizaine de personnes, du coup premier.e.s arrivé.e.s, premier.e.s servi.e.s ! L’atelier de Kévin Dunglas est programmé le jeudi midi, et l’atelier de Nicolas Grekas est prévu le vendredi midi.


Partez à la rencontre de nouvelles têtes


Nous avons écouté les remarques du public lors des éditions précédentes : comme il n'est pas toujours simple d'aller à la rencontre de nouvelles personnes, un jeu de mise en relation (sur volontariat) sera organisé lors de l'apéro communautaire, vous emmenant à la quête de certain membres du public. Autre occasion de faire des connaissances, le bocal à cartes de visite au stand AFUP, afin de vous trouver un.e buddy avec qui aller écouter les conférences.


Nouveautés parmi les animations


Le nouvel lieu d'accueil étant très grand, il nous permet aussi de vous proposer de nouvelles animations : vous pourrez construire une fresque collaborative dans le foyer ou reproduire en origami les mascottes liées à notre écosystème.

Voir la suite

Symfony, Javascript et traduction : BazingaJSTranslationBundle, comment l'utiliser avec le format ICU ?

Eleven labs 24/08/2022

Même si de plus en plus d’architectes séparent le back et le front pour qu’ils puissent évoluer indépendamment, certaines applications (souvent du legacy) implémentent le front dans l’application Symfony avec Twig et du Javascript. Nous allons refaire le point sur le fonctionnement des traductions et sur le formattage ICU.



Comment sont gérés les traductions dans Symfony ?


Dans les nombreux composants proposés par Symfony, il y a celui qui permet de gérer les traductions : translation.



Il permet de générer les traductions soit par une phrase, soit par une clé dans le PHP (avec le service Translator) ou dans les twigs. Les fichiers de traductions peuvent être en YAML, XML et PHP, et l’emplacement ainsi que la langue par défaut sont définis dans la configuration. Ils sont généralement nommés messages.{locale}.yaml.


// PHP
use Symfony\Contracts\Translation\TranslatorInterface;

public function index(TranslatorInterface $translator)
{
$translatedByPhrase = $translator->trans('Symfony is great'); // phrase
$translatedByKey = $translator->trans('home.welcome'); // phrase
}


{# Twig #}
{% trans %}Symfony is great{% endtrans %}
{{ welcome.home|trans }}


# translations/messages.fr.yaml
Symfony is great: J'aime Symfony
home:
welcome: Bonjour


C’est pratique pour pouvoir gérer le texte statique, mais on peut avoir parfois besoin d’afficher des paramètres dans la phrase, ou encore de gérer les pluriels.



Pour cela, on peut rajouter des paramètres dans les fonctions, et Symfony possède la variable %count% pour gérer les pluriels (uniquement pour des fichiers au format YAML ou PHP).

Voir la suite

PhpStorm tips : config & extensions

Eleven labs 24/08/2022

Bienvenue dans cet article qui j’espère, vous aidera à gagner en productivité sur l’IDE PhpStorm de la suite JetBrains. Je vais vous parler de mes extensions préférées ainsi que de certains points de configuration méconnus mais très utiles. Prêts ? C’est parti !







PhpStorm LogoPhpStorm






Note


Nous irons crescendo dans cet article, du plus populaire des tips à celui le moins connu. Le meilleur se trouvant à la fin, restez bien jusqu’au bout (oui, j’optimise mon readtime).




Mes extensions les plus utiles



Key promoter



Comme vous le savez certainement si vous utilisez PhpStorm, les raccourcis clavier, c’est la vie. Ce sont eux qui permettent de déployer toute la puissance de votre IDE.



Cependant il peut être compliqué de se rappeler de tous les raccourcis qui existent, et de prendre l’habitude de les utiliser. Il faudrait que quelqu’un nous rabache à longueur de journée que ce que nous faisons aurait pu être effectué en un clic avec un raccourci. Devinez quoi ? C’est exactement ce que Key Promoter va faire pour vous.







Key Promoter notifKey Promoter





Comme vous le voyez, dès que vous exécuterez une action pour laquelle il existe un raccourci clavier, Key Promoter va vous afficher une petite notification ennuyeuse en bas à droite de votre IDE. Pour vous rappeler que vous êtes nuls car vous avez manuellement copié un fichier au lieu de faire un Ctrl+c par exemple.



Si vous trouvez que certains raccourcis clavier sont inutiles pour vous et que vous en avez marre que Key Promoter vous les rappelle, vous pouvez cliquez sur le bouton Action de la notification et demander à l’extension de ne plus vous rappeler ce raccourci en particulier. Il est possible de spécifier ce comportement également directement dans la config de l’extension.




Note


De plus, si Key Promoter vous surprend à faire plusieurs fois la même action qui n’est liée à aucun raccourci, il vous proposera d’en créer un. On dit merci qui ?




Codeglance



Une des fonctionnalités qui m’a manqué quand j’ai quitté VSCode pour PhpStorm, c’est cette minimap à droite d’un fichier de code qui vous donne un aperçu du fichier dans sa globalité, ainsi que la possibilité de cliquer dessus pour scroller rapidement dans votre fichier et s’arrêter exactement à la ligne souhaitée.

Voir la suite

Blogs

Infos

Ajouter une source ?

Envoyez un email avec l'URL du site et du flux à planetephpfr AT afup POINT org

Gestion

AFUP