Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

C - Vocabulaire

Cette annexe définit, en une ou deux phrases chacun, les mots qui reviennent dans les conversations PHP et rarement ailleurs.

SAPI. Server API : la couche qui relie l’interprĂ©teur Ă  ce qui l’exĂ©cute. La ligne de commande, PHP-FPM, mod_php et les runtimes embarquĂ©s sont tous des SAPI au-dessus du mĂȘme moteur.

CLI. La SAPI en ligne de commande, invoquĂ©e par php file.php. Elle n’a par dĂ©faut ni limite de temps d’exĂ©cution ni limite de mĂ©moire, contrairement aux SAPI web.

FPM. FastCGI Process Manager : un pool de processus PHP qui attendent les requĂȘtes derriĂšre un serveur web. La façon standard de servir PHP.

FastCGI. Le protocole par lequel le serveur web transmet une requĂȘte Ă  FPM et relit la rĂ©ponse.

mod_php. Le module Apache qui embarque PHP dans le processus du serveur web lui-mĂȘme. Plus ancien que FPM, et toujours prĂ©sent.

OPcache. Le cache de bytecode. Les fichiers compilĂ©s restent en mĂ©moire partagĂ©e, et la requĂȘte suivante s’épargne l’analyse. ActivĂ© dans toute installation sĂ©rieuse.

JIT. Compilation Ă  la volĂ©e du code chaud en code machine, Ă  l’intĂ©rieur d’OPcache, depuis 8.0. Aide les scripts gourmands en CPU ; change peu de chose pour le trafic web ordinaire.

Preloading (prĂ©chargement). Une option d’OPcache qui compile et lie un ensemble de fichiers une fois au dĂ©marrage du serveur, pour que chaque requĂȘte commence avec eux dĂ©jĂ  chargĂ©s.

APCu. Un cache mĂ©moire partagĂ© entre les processus PHP d’une mĂȘme machine. Pour les valeurs calculĂ©es une fois et lues souvent, quand un stockage externe serait disproportionnĂ©.

Extension. Un module C compilé qui ajoute des fonctions ou des classes à PHP : pdo_mysql, intl, mbstring, xdebug. php -m liste celles qui sont chargées.

PECL. Le dépÎt historique des extensions non livrées avec PHP, avec son propre installeur.

PIE. L’installeur d’extensions plus rĂ©cent, dans l’esprit de Composer, appelĂ© Ă  succĂ©der au circuit PECL.

ZTS et NTS. Les builds thread-safe et non-thread-safe de l’interprĂ©teur. NTS est le dĂ©faut et celui qu’utilise FPM ; ZTS existe pour les rares SAPI multithreadĂ©es et l’extension parallel.

php.ini. Le fichier de configuration. La CLI et FPM en lisent des différents, ce qui explique la plupart des mystÚres du type « ça marche dans le terminal ».

Composer. Le gestionnaire de paquets. Lit composer.json, Ă©crit composer.lock, remplit vendor/, gĂ©nĂšre l’autoloader.

Packagist. Le registre public de paquets oĂč Composer s’approvisionne.

vendor. Le dossier oĂč Composer installe les paquets, qu’on ne modifie jamais Ă  la main et qu’on ne commite pas.

Autoload. Le mĂ©canisme qui charge le fichier d’une classe Ă  sa premiĂšre utilisation, si bien qu’on n’écrit plus jamais une ligne require Ă  la main.

PSR-4. La correspondance standard entre espace de noms et dossier que suivent les autoloaders : App\Billing\Invoice vit dans src/Billing/Invoice.php.

PHP-FIG. Framework Interoperability Group : l’organisme qui publie les PSR et le style de code.

PSR. PHP Standards Recommendation : une interface ou une convention numĂ©rotĂ©e (PSR-3 pour les logs, PSR-7 pour les messages HTTP, PSR-15 pour les middlewares) sur laquelle les bibliothĂšques s’accordent afin d’ĂȘtre interchangeables.

PER Coding Style. Le standard de style de code actuel du FIG, successeur de PSR-12. Ce que les formateurs font respecter.

RFC. Request for Comments : la proposition publique par laquelle passe tout changement du langage avant un vote des dĂ©veloppeurs du cƓur.

PHP Foundation. L’organisation Ă  but non lucratif qui, depuis 2021, salarie des dĂ©veloppeurs du cƓur pour maintenir et faire avancer l’interprĂ©teur.

php-src. Le dĂ©pĂŽt source de l’interprĂ©teur lui-mĂȘme, Ă©crit en C.

Zend Engine. Le cƓur de l’interprĂ©teur : le compilateur et l’exĂ©cuteur. Le nom survit dans quelques rĂ©glages et messages d’erreur.

Superglobal (superglobale). Un tableau intégré au langage, visible dans toutes les portées : $_GET, $_POST, $_SERVER, $_COOKIE, $_FILES, $_SESSION, $_ENV.

Docblock. Un commentaire /** ... */ au-dessus d’un symbole, portant des annotations @param et @return que lisent les Ă©diteurs et les analyseurs statiques. C’est lĂ  que vivent les gĂ©nĂ©riques.

Attribute (attribut). Des métadonnées structurées attachées à une classe, une méthode, une propriété ou un paramÚtre avec #[...], lues par réflexion. Ce que les annotations étaient en Java.

Trait. Un bloc de méthodes et de propriétés copié dans toute classe qui le use. De la réutilisation horizontale sans héritage.

Enum (énumération). Un type avec un ensemble fixe de cas nommés, éventuellement adossés à un entier ou une chaßne, avec méthodes et interfaces. Depuis 8.1.

Fiber. Une coroutine à pile qui peut se suspendre et reprendre depuis n’importe quel point de sa pile d’appels. La primitive sur laquelle s’appuient les bibliothùques asynchrones ; pas quelque chose que le code applicatif pilote directement.

Generator (gĂ©nĂ©rateur). Une fonction qui produit des valeurs une Ă  une avec yield et conserve son Ă©tat entre les appels. De l’itĂ©ration paresseuse sans construire de tableau.

SPL. Standard PHP Library : l’ensemble intĂ©grĂ© de structures de donnĂ©es, d’itĂ©rateurs, d’exceptions et d’interfaces tels que ArrayIterator, SplQueue, Countable, RuntimeException.

PDO. PHP Data Objects : l’abstraction de base de donnĂ©es avec une seule API pour tous les pilotes, requĂȘtes prĂ©parĂ©es comprises.

mbstring. L’extension de chaĂźnes multi-octets. mb_strlen, mb_substr et leurs semblables comptent des caractĂšres lĂ  oĂč les fonctions ordinaires comptent des octets.

intl. L’extension d’internationalisation : collation, formatage des nombres et des dates, normalisation Unicode, au-dessus de la bibliothùque ICU.

Xdebug. Le débogueur pas à pas et profileur, réservé au développement.

PHPUnit. Le framework de test de style xUnit avec lequel la plupart des tests PHP sont écrits.

Pest. Un framework de test Ă  la syntaxe describe et expect, qui tourne sur le moteur de PHPUnit.

PHPStan. Un analyseur statique qui trouve les erreurs de type et le code impossible sans l’exĂ©cuter, avec des niveaux de 0 Ă  10.

Psalm. L’autre analyseur statique, avec des niveaux de 8 Ă  1 et un accent sur la soliditĂ© des types et l’analyse de souillure (taint analysis).

Rector. Un outil de refactoring automatisé qui réécrit le code vers une version plus récente de PHP ou une API de bibliothÚque plus récente.

phpt. Le format des fichiers de test de l’interprĂ©teur lui-mĂȘme, dans php-src. Vous le croisez si vous contribuez Ă  PHP ou lisez ses rapports de bug.

strict_types. La déclaration par fichier declare(strict_types=1); qui fait lever une exception, au lieu de convertir, sur les incompatibilités de types scalaires dans les appels faits depuis ce fichier.

Copy-on-write (copie Ă  l’écriture). L’astuce du moteur qui rend l’affectation de tableaux bon marchĂ© : la copie partage la mĂ©moire de l’original jusqu’à ce que l’un des deux soit modifiĂ©.

Late static binding (liaison statique tardive). static:: qui se rĂ©sout vers la classe sur laquelle l’appel a Ă©tĂ© fait, pas celle oĂč la mĂ©thode est Ă©crite. self:: est l’autre.

Magic method (mĂ©thode magique). Une mĂ©thode au nom rĂ©servĂ© Ă  double tiret bas que le moteur appelle de lui-mĂȘme : __construct, __toString, __get, __call, __clone, __invoke.