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