Cargar una Extensión de PHP Dinámicamente


PHPComplementando un artículo que escribí anteriormente (Compilar Extensión "mssql.so" para PHP 5), vamos a ver como se cargan las extensiones de forma dinámica. Lo cual se puede aplicar a cualquier extensión de características similares.

Una vez que compilamos la extensión de PHP podemos realizar dos acciones:

  1. Estáticamente: Incluir la Extensión en el archivo "php.ini" para que esta se cargue automáticamente y sea accesible para todos los usuarios que usen el mismo servidor. Este procedimiento esta explicado en el artículo anterior.

  2. Dinámicamente: Incluir la extensión en tiempo de ejecución en nuestra aplicación, esto quiere decir que solo estará accesible para quien esté programando la aplicación y no para los demás usuarios, lo cual es bastante interesante, sobre todo si no queremos que otros usuarios tengan tantas extensiones a su disposición.

Para lograr cargar la extensión en tiempo de ejecución solo es necesario que después de haber compilado la extensión, se copia a algún directorio accesible para nuestra aplicación por ejemplo "extensiones".

Ya desde el desarrollo de nuestra aplicación solo es necesario llamar su carga con el siguiente código:

<?php
if (!extension_loaded('mssql')) {
  $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
  dl("extensiones/" . $prefix . 'mssql.' . PHP_SHLIB_SUFFIX);
}
?>

La segunda linea revisa si ya se encuentra cargada la extensión, si es negativo pasa a la tercera linea, donde se revisa el sufijo del sistema, esto quiere decir que si esta en Linux, la extensión es ".so" y si esta sobre Windows, la extensión es ".dll" y además en Windows las exenciones tienen un prefijo "php_" por lo que se debe agregar al nombre de la extensión. Por ejemplo:

Linux: mssql.so
Windows: php_mssql.dll

Ya en la cuarta linea se realiza la carga con la función "dl", en la cual se debe de ubicar la dirección de la extensión.

Listo, de esta forma tendremos el uso de la extensión "mssql" accesible únicamente por nuestra aplicación.



Imagen de Anónimo

hola, mi nombre es carlos lacera, actualmente estoy interesado en utilizar la extensión de php clips, la cual supuestamente me permitira ejecutar una aplicacion de sistema experto hecho en clips desde una pagina php, el web oficial de la extension http://phlips.sourceforge.net, dice que para poder instalar esta extensión en un S.O. windowsXP solo hay que copiar el archivo php_clips.dll en la carpeta ext de php, agregar la linea extension=php_clips.dll en el archivo php.ini y reiniciar el servidor apahce.

pero despues de hacerlo y ejecutar la pagina php y muestra un error en donde me indica que no reconoce la sintaxi que deberia reconocer gracias a la extensión ya probe de todo para porder hacer que funcione pero no lo consigo.

si alguien pudiera ayudarme agradeceria una pronta respuesta a: carlos_lacera@yahoo.es.

Imagen de Anónimo

Hola que tal!!

Mi nombre es Luis, me gustaria que me explicaran como puedo utilizar la extension ingres.dll y si es necesario configurar el extension_dir, o que tengo que hacer, y como puedo conectarme a una base en ingres y como se corre los cursores mediante php.. ya que no me reconoce la funcion ingres_conect, si algien me pudiera ayudar les agredeceria muchoooo, espero su pronta respuesta a: spiderman2917@hotmail.com

Imagen de Anónimo

me dice que la compilacion de las extensiones son diferentes a las compilacion del php...por favor como soluciono este problema, tengo windows xp sp2

Enviar un comentario nuevo

  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Saltos automáticos de líneas y de párrafos.
Más información sobre opciones de formato

Captcha Image: you will need to recognize the text in it.
Igrese las letras que puede ver en la imagen superior