La parole est aux speakers : George Banyard

Publié le

Jusqu’au Forum PHP 2022, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Typage en PHP comment ça fonctionne ?

PHP est un langage qui a été conçu sans système de typage mais dont un a été introduit au fur et à mesure.

Dans ce talk nous ferons une exploration en profondeur du système de typage de PHP: 

  • Les différents types disponibles
  • La représentations des types en internes 
  • Comment PHP valide et coerce les types lors de l'exécution
  • Comment PHP assure la compatibilité des types entres classes enfants et parentes (Liskov Substitution Principle)
Ballroom GHJKLM - Katherine Johnson
14/10/2022
10:30-11:10

Tu es core contributeur de PHP. Qu’est-ce qui t’a poussé à le devenir ? Et quel est le plus grand challenge à contribuer à un projet ayant des dizaines d’années d’existence ?

Mon parcours pour devenir core contributeur est assez atypique je pense. À cause de raison personnelle, j’ai dû redoubler ma première année de licence, et donc j’avais beaucoup de temps sous la main.

J’avais commencé par participer à la traduction française de la documentation, qui était loin d’être à jour, et le fait de lire la doc en profondeur m’a fait découvrir des comportements exotiques et assez étranges de PHP que je voulais changer.

Il y a différents aspects : d’un côté il y a l’aspect technique de la codebase. Par exemple quand j’ai commencé à contribuer en 2019, php-src utilisait encore ANSI C/C89, ce qui veut dire pas de type bool et qu’on devait polyfill certaines fonctions (notamment mathématiques) qui ne sont disponibles qu’à partir de C99, au cas où quelqu’un compilait avec un compilateur ANSI. php-src est aussi remplie de macro et de structure qui perdent les IDEs quasiment tout le temps, et découvrir les outils qui permettent de naviguer la codebase (comme LXR).

L’autre aspect c’est l’aspect « social » : PHP existe depuis longtemps et est utilisé par une multitude de gens qui l’utilise de manière différentes. Il faut donc convaincre différents groupes du changement que l’on veut proposer, sur l’idée elle-même, à son implémentation spécifique.

Tu viens de terminer un bachelor en math pure à Imperial College London. C’est un débat récurrent en programmation : les maths t’aident-elles à travailler sur le code source de PHP et globalement à programmer ?

Globalement je pense pas, je connais beaucoup de gens qui sont brillants en maths et sont incapable de faire de la programmation et vice versa.

Il y a peut-être un avantage pour la programmation fonctionnelle, et encore la plupart des étudiant.e.s, moi inclus, ne feront jamais de la théorie de catégorie à qui dire « une monade c’est une monoïde dans la catégorie des endofoncteurs » reste incompréhensible.

En ce qui concerne PHP, je pense que ça me donne une perspective différente et m’a sûrement aidé pour implémenter les types d’intersection. Plus généralement, ça me fait sûrement implémenter plus de code qui n’a pas d’effets de bord.
Mais je pense que faire une licence en informatique théorique aurait été plus avantageux pour comprendre tout ce qui est compilateur, lexeur et machines virtuelles.

Tu fais maintenant partie de la fondation PHP. Qu’est-ce que ça a changé pour toi ?

Principalement le fait que je suis désormais payé pour travailler sur PHP. Mais l’autre avantage c’est que j’ai des collègues à qui je peux demander des code reviews, demander de l’aide et discuter sans me soucier du fait que je prends sur le temps libre de quelqu’un pour faire ces reviews.

Une conférence présentée par

George BANYARD
George BANYARD
George est actuellement sous contrat à temps partiel avec la fondation PHP pour maintenir PHP. Il participe aussi à la documentation et il est le mainteneur principal de la documentation française en ce moment. Il vient de terminer son Bachelor en math pure à l'Imperial College London.

Autres interviews

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :