¿Qué son las extensiones de PHP?

Quién no se cruzó con mensajes como:

Debes tener instalada/habilitada la extension en PHP sobre GD

Pero… ¿qué es exactamente una extensión de PHP?

Para comprenderlo debes conocer un poco cómo funciona PHP internamente.

A continuación te daré una visión algo simplificada, si quieres una explicación completa y detallada te recomiendo este excelente tutorial de Diego Lázaro.

PHP es un lenguaje interpretado, lo que significa que para ejecutar una aplicación escrita en PHP se requiere de un proceso auxiliar llamado intérprete (Si usas Windows ese proceso será php.exe, si usas Linux o similares será el binario php).

Este binario se ha generado a partir de la compilación de una base de código C, la cual, como es abierta, cualquiera con los conocimientos necesarios puede leer y alterar a su antojo.

Si bien el lenguaje incluye muchas características (funciones, variables, constantes, etc…), si tuviese que englobar TODAS las posibles necesidades se volvería algo sumamente pesado.

Es por esta razón que los desarrolladores del lenguaje definieron un conjunto de características como parte del núcleo (o core) de PHP y otras como adicionales.

Esto significa que cualquier instalación de PHP contará con las funcionalidades básicas mientras que, para utilizar las demás será necesario instalar y configurar algunas librerías de enlace dinámico (Archivos .dll en el caso de Windows o .so en el caso de Linux).

Este mecanismo permite a su vez crear nuevas funciones para extender PHP (El único problema es que estas extensiones deben ser escritas también en lenguaje C).

Por qué crear extensiones si puedo crear funciones PHP

La razón principal es la eficiencia: el código binario, al no requerir la intervención del intérprete, ejecuta más rápido de lo que lo hace su par interpretado.

Por supuesto que escribir una función directamente en PHP es mucho más simple que hacerlo en C, pero si la performance es un factor crítico no debe pasarse por alto esta posibilidad.

Cómo instalar una extensión PHP

Instalar una nueva extensión de php supone contar con un nuevo binario en nuestro servidor, con lo cual, los comandos efectivamente necesarios dependerán del sistema operativo que utilices.

Si estás en un entorno tipo Ubuntu instalar una extensión de PHP será tan simple como escribir:

sudo apt install php-NOMBRE_EXTENSION

En otros entornos algo menos amigables el proceso puede incluir descargar los fuentes de la extensión y re-compilar php con algún modificador.

Otra forma de instalar extensiones es utilizar la utilidad PECL

Cómo activar una extensión PHP

La activación de una extensión supone su incorporación al archivo de configuración de PHP (php.ini).

Es muy común que las extensiones definan su propio archivo .ini, dentro del cual se agregarán variables específicas para configurar dicha extensión.

Este es un ejemplo del archivo xdebug.ini que tengo en mi computadora:

zend_extension=xdebug.so
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
xdebug.remote_enable=1

Algunas extensiones PHP comúnmente utilizadas

Las extensiones de PHP pueden ser desde utilidades simples hasta frameworks FullStack completos (Como Phalcon).

Aquí un breve listado de las más utilizadas:

  • MySQLi para el acceso a bases de datos MySQL
  • cURL para la realización de peticiones HTTP
  • Zip para trabajar con archivos comprimidos
  • SimpleXML para trabajar con XML
mchojrin

Por mchojrin

Ayudo a desarrolladores PHP a afinar sus habilidades técnicas y avanzar en sus carreras

1 comentario

¿Te quedó alguna duda? Publica aca tu pregunta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.