La parole est aux speakers : Pierre Pelisset

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

FFI : De nouveaux horizons pour PHP

PHP est depuis sa création fortement lié au développement de sites internet. Pourtant, depuis PHP 4.3 (2002) qui a ajouté la SAPI CLI, PHP peut servir pour développer des applications ainsi que des services. Avec l’arrivée de FFI en 7.4, PHP peut maintenant appeler des fonctions C directement. Cette nouveauté permet d’utiliser des bibliothèques externes sans nécessiter d’extension PHP. Elle ouvre ainsi les portes de la programmation système à PHP.

Nous vous présenterons comment nous avons utilisé FFI en production sur un projet domotique (contrôle d’une salle de Karaoké). Pourquoi avons-nous fait ce choix ? Quelles problématiques avons-nous rencontrées ? Pour quel résultat ?

Finalement: FFI production ready ?

Ballroom GHJKLM - Katherine Johnson
13/10/2022
11:40-12:20

Quel est selon toi le moment-clé où, durant un projet, il faut se poser la question d’utiliser FFI ou une extension native ?

Il faut selon moi envisager d’utiliser FFI (ou une extension native) quand un projet arrive aux limites des possibilités de PHP. J’ai identifié personnellement trois limitations principales que FFI peut résoudre. La première, qui est la raison d’être de nombreuses extensions PHP existantes, est l’utilisation en PHP de bibliothèque native. C’est le cas par exemple de l’extension cURL qui expose les différentes fonctions de la bibliothèque C du même nom en PHP. Une autre raison parfois mise en avant pour l’usage de FFI notamment, c’est les soucis de performances. Une application web peut se retrouver face à des limitations de performances dûes au langage. Certains traitements lourds comme ceux sur les images par exemple peuvent être lents en PHP. Il peut alors être intéressant de coder certaines parties critiques avec des outils plus bas niveau (C++, Rust). Faire ces appels via FFI permet de garder la majorité de l’application écrite en PHP et d’en garder la simplicité sans pour autant faire de compromis sur les performances. La dernière limitation qui nécessite de faire appel à FFI ou à une extension native est le besoin d’accès à certaines fonctionnalités de programmation système. D’autres langages comme Python ou Ruby permettent d’accéder beaucoup plus facilement à ces couches du système (termios, ioctl, …). Dans le cas où nous aurions une application préexistante en PHP qui aurait besoin d’accéder à ce genre de fonctionnalité, FFI devient naturellement une solution à envisager. C’est sur ce type de problématique que nous avons dû faire usage de FFI chez KaraFun, et c’est donc principalement sur ça que portera mon retour d’expérience.

Dans un monde où les applications sont de plus en plus déployées sur des environnements en PaaS, sur des Cloud, comment vois-tu l’avenir de l’adoption de FFI au sein de PHP ?

Plusieurs environnements de PaaS ou de Cloud permettent l’activation des fonctionnalités de FFI. Mais j’ai surtout la conviction que FFI est l’un des éléments qui peut faire de PHP un langage à envisager pour d’autres usages que dans un serveur web. PHP est encore associé quasiment exclusivement à cet usage, pourtant depuis presque 20 ans, PHP peut-être utilisé comme n’importe quel langage de script grâce à PHP-CLI. En simplifiant l’accès à des bibliothèques natives et à la programmation système, FFI pourrait ouvrir d’autres horizons passionnants à PHP.

Tu indiques avoir travaillé dans la fonction publique, quelle est la plus grande différence avec le travail dans une start-up comme Karafun ?

L’aspect qui m’a le plus surpris est sans doute la prise de décision. Celle-ci est rapide chez KaraFun, chacun et chacune peut prendre part aux décisions et de leur mise en application. La satisfaction des besoins des clients est au centre des décisions prises, ce sont eux qui permettent à l’entreprise d’exister. À l’opposé, la prise de décision est généralement plus longue dans l’administration où je travaillais, avec des équipes souvent peu au courant des raisons des décisions prises et qu’ils ne comprennent donc pas toujours.

Une conférence présentée par

Pierre PELISSET
Pierre PELISSET
Développeur back-end, Pierre est tombé dans le développement PHP durant l'adolescence. Après un bref passage dans la fonction publique, il travaille actuellement chez KaraFun ou il apprécie expérimenter des solutions PHP qui sortent de l’ordinaire.

Autres Interviews