Directiva extension vs. zend_extension în php.ini în PHP

Sistem și configurare PHP Core Configuration

Diferența critică dintre extension=modul și zend_extension=modul: când se folosește fiecare, cum funcționează extension_dir și depanarea erorilor de încărcare a fișierelor .so / .dll.

Sintaxă
extension=redis | zend_extension=opcache.so | extension_dir = "/usr/lib/php/..."

În fișierul principal de configurare php.ini, încărcarea modulelor externe se realizează prin două directive distincte: extension și zend_extension. Deși ambele încarcă fișiere binare partajate (biblioteci dinamice .so pe Linux sau .dll pe Windows), ele operează la niveluri complet diferite ale arhitecturii interne PHP.

Exemple corecte de configurare în php.ini
; 1. Directorul unde sunt stocate fișierele binare compilate (.so / .dll)
extension_dir = "/usr/lib/php/20230831"

; 2. EXTENSII STANDARD (PHP Extensions):
; Adaugă funcționalități de uz general, clase, funcții și constante
extension=redis.so
extension=imagick.so
extension=intl.so
extension=bcmath.so

; 3. EXTENSII ZEND (Zend Extensions):
; Interceptează motorul Zend Engine la compilare, execuție de opcodes sau debugging
zend_extension=opcache.so
zend_extension=xdebug.so

Diferența Tehnologică Fundamentală

Criteriu Directiva extension= Directiva zend_extension=
Nivel de operare Nivelul PHP User Space — oferă funcții și clase pe care programatorul le apelează în cod. Nivelul Zend Engine Core — interceptează execuția instrucțiunilor interne, memoria partajată și firele de depanare.
Exemple tipice redis, curl, gd, mysqli, zip, intl. opcache (caching de opcodes & JIT), xdebug (depanare pas cu pas & profilare).
Eroare comună Dacă încarci o extensie Zend cu extension=, browserul va afișa un avertisment la pornire: „Warning: Xdebug MUST be loaded as a Zend extension”. Încărcarea unei extensii standard cu zend_extension= va eșua cu eroare de inițializare.

Depanarea Erorilor de Încărcare

Dacă o extensie nu se încarcă, verifică:

  1. Calea extension_dir prin comanda: php -i | grep extension_dir.
  2. Compatibilitatea versiunii de compilare a modulului (numărul PHP Extension Build API, de exemplu API20230831,NTS) cu versiunea curentă a binarului PHP.