Publication de mon livre "Développer une extension PHP"

2 décembre 2013extension, livre, php
 Cet article a été rédigé il y a plusieurs années et peut ne plus être tout à fait à jour…

Il y a un peu plus d’un mois, j’écrivais que j’étais en train de travailler sur un livre, en français, présentant le développement d’extensions PHP.


Aujourd’hui1, je viens de publier la première version de ce livre : Développer une Extension PHP.

Ce livre est disponible aux formats PDF/EPUB/MOBI2, sans DRM.
Le prix est exprimé en dollars US – au 01/12, 1$ = 0.736€.


À mi-chemin entre une volonté de publier un ensemble complet et la philosophie leanpub3 qui souhaite que les auteurs publient au plus tôt, j’ai choisi d’attendre d’avoir suffisamment de contenu pour que, dès cette première version, ce livre vous aide à mettre en place une extension utile – tout en ayant encore quelques concepts importants à couvrir et plusieurs chapitres à rédiger.

Aujourd’hui, les 225+ pages publiées couvrent les sujets suivants (pour vous donner une idée du style du livre, un aperçu est téléchargeable) :

  • Création d’une première extension : ce premier chapitre explique comment créer le squelette d’une extension basique, quels fichiers sources sont requis, et quelles structures de données et déclarations sont nécessaires.
  • Environnement de développement : ce chapitre montre comment compiler une version de PHP orientée développement d’extensions et quelles sont les informations qu’elle nous apporte. J’en ai profité pour présenter comment configurer Eclipse CDT pour obtenir un environnement de développement avec débugger graphique.
  • Écrire une fonction : les fonctions sont au cœur de PHP et de ses extensions. Nous verrons ici, entre autres, comment recevoir des paramètres et retourner une valeur. Ce sujet est abordé au travers de deux chapitres, le second intégrant des concepts supplémentaires, comme la réception de zval en paramètres, les fonctions attendant un nombre d’arguments variable, ou encore le type-hinting.
  • zval : les variables de PHP : les variables de PHP sont représentées, en interne, par une structure nommée zval. Ce chapitre nous montrera comment en créer, les lire et les manipuler.
  • HashTable et tableaux : la structure HashTable est utilisée par PHP pour stocker un ensemble de données, comme un tableau. Elle est tellement importante pour PHP qu’elle est fréquemment utilisée en interne, et que de nombreuses fonctions permettent de la manipuler.
  • Configuration par fichier .ini : le fichier php.ini représente, pour PHP et pour ses extensions, le standard de configuration permettant aux utilisateurs d’influencer sur leur comportement. Ce chapitre présentera comment exploiter au mieux cette possibilité de paramétrage.
  • Tests automatisés : vous n’envisageriez pas de développer une extension sans tests automatisés ? Moi non plus !
  • Quelques points divers : ce chapitre regroupe quelques points intéressants, mais qui ne méritaient pas à un chapitre à eux seuls, comme la déclaration de variables super-globales, de constantes, ou la personnalisation de phpinfo(). Cet ensemble est lui aussi reproduit intégralement dans l’aperçu disponible au téléchargement.

Profitant du fait que ce livre soit diffusé en formats numériques, de nouveaux chapitres arriveront par le biais de mises à jour.

J’ai en particulier déjà commencé à travailler sur les points suivants – j’ai bien avancé sur les deux premiers, et j’ai tout juste attaqué le développement des exemples pour le troisième :

  • Gestion de la mémoire
  • Erreurs et Exceptions
  • Classes et objets

Il ne fait aucun doute que des corrections et/ou améliorations diverses et variées se glisseront dans les différentes mises à jour, en fonction de vos retours et suggestions ;-)

Notez aussi que chaque mise à jour sera bien entendu rendue disponible gratuitement, via un simple téléchargement, aux lecteurs ayant déjà acheté le livre.



  1. En pratique, j’ai publié cette première version hier soir vers 21h15, même si je ne poste cet article qu’aujourd’hui. ↩︎

  2. Une version au format papier sera peut-être envisagée une fois le livre complet terminé (il est facile d’ajouter de nouveaux chapitres et d’apporter des corrections sur un livre numérique ; moins sur un livre papier). Mais je ne fais aucune promesse à ce niveau pour l’instant : l’évolution que suivra cette idée dépendra entre-autres des retours et de l’intérêt des lecteurs. ↩︎

  3. Pour plus d’informations sur Leanpub, vous pouvez lire The Lean Publishing Manifesto. Comme indiqué dans Terms of Service, une fois le livre acheté, toutes les mises à jour vous sont proposées gratuitement (y compris les nouveaux chapitres ; et ce même si le prix du livre augmente). Le livre est disponible aux formats PDF, EPUB, et MOBI – et, bien sûr, sans DRM. Pour finir, si vous n’êtes pas satisfait, vous disposez de 45 jours pour être remboursé. ↩︎