944 063 154

Blog

Cargar extensión de PHP desde código (en tiempo de ejecución)

Publicado enDesarrollo y Programación

Las extensiones de PHP son una parte muy importante dentro del lenguaje de programación. Una extensión de PHP no es más que un ‘módulo’ que le permite al motor de PHP añadir una determinada funcionalidad. Aunque, por norma general, las extensiones que necesitas en condiciones normales vienen ligadas a la distribución de PHP que estés utilizando; es posible que por las características de proyecto necesites añadir nuevas funcionalidades. Algo que solo puedes hacer cargando esas extensiones.

Como el lenguaje en el que operan, una extensión de PHP suele estar escrita en C; y requerir de DLL para poder compilarlas o cargarlas. En este caso, si quieres cargar una extensión de PHP, puedes hacerlo de dos formas. Por un lado, puedes optar por compilar la extensión que necesites; o, por otro puedes obtenerla cargando el DLL. La opción más recomendada es mediante DLL. Pero, para ello, dicha extensión deberá primero encontrarse como fichero .dll en tu sistema. En el caso de que no la encuentres, tendrás que compilarla.

Aunque las extensiones más habituales suelen venir por defecto con el lenguaje de programación PHP, siempre puedes añadir alguna nueva. Algo que en la mayoría de los casos puedes obtener desde la PECL (Biblioteca de la Comunidad de Extensiones de PHP). Esta biblioteca no es más que un repositorio de extensiones de PHP donde se encuentran las más utilizadas. Y también el lugar en el que puedes desarrollar tus propias extensiones para PHP y compartirlas con la comunidad de desarrolladores.

Cargando una extensión de PHP

Para cargar una extensión en tiempo de ejecución en PHP podemos incluirla dentro del fichero php.ini de configuración. Para ello, deberemos recurrir a la función dl(). Lo habitual es que una extensión de PHP se escriba de la siguiente manera: “php_nombre de la extensión”.dll. Y suele ser igual de habitual que dicha extensión se encuentre junto a “PHP\ext”. En este caso, si quisiéramos cargar una extensión que pueda conectarse a una base de datos MySQL, deberíamos hacer lo siguiente:

if(!extension_loaded("mysql")){
  dl("php_mysql.".PHP_SHLIB_SUFFIX);
}

Aquí, el valor de la constante PHP_SHLIB_SUFFIX almacena la extensión que tendría una librería dependiendo el sistema operativo en el que corra nuestra aplicación.

Recuerda que, tras cargar y activar una nueva extensión de PHP, deberías reiniciar el servidor. Solo mediante un reinicio es posible confirmar que se han aplicado los cambios y comprobar que la nueva extensión cuenta con su propia sección. Es decir, que se ha cargado de una forma correcta.

Si quieres saber mucho más acerca de PHP y otros lenguajes de programación, sigue leyendo nuestro blog tecnológico y no te pierdas los artículos y novedades relacionadas con PHP como el post de cómo instalar extensión php-memcached en Suse Linux.