Pregunta

Cuando corro phpinfo() y el aspecto de la categoría Configuration bajo PHP Core, veo una directiva titulada include_path, con un valor local y un valor maestro.

En este caso, el valor de mi local se establece a

.:
./include:
../include:
/usr/share/php:
/usr/share/php/smarty:
/usr/share/pear

y mi valor principal está en la posición

.:
/usr/share/php:
/usr/share/pear:
/usr/share/php/pear:
/usr/share/php/smarty

La razón por la que estoy tratando de aprender cómo funciona este se debe a que hay un archivo en el sistema que estoy trabajando en Smarty.class.php titulado, que estoy seguro que suena muy familiar para cualquier persona que utiliza Smarty Motor de Plantillas.

Uno de los archivos PHP tiene la siguiente incluye:

require_once("Smarty.class.php");
require_once("user_info_class.inc");

El user_info_class.inc archivo está en el mismo directorio que el archivo haciendo que la incluyen, lo que tiene mucho sentido para mí, y es la forma en que he archivos siempre se hace referencia. Decidí que quería abrir el archivo Smarty.class.php y había asumido que sería en el mismo directorio, pero no fue así.

Después de hacer un poco de excavación, he descubierto esas variables php_ini, y finalmente fue capaz de localizar el archivo en el directorio de usr/share/php/smarty/.

Por lo tanto, parecería que al hacer un include, se sigue algún tipo de orden entre los valores locales y maestro para el include_path.

Suponiendo que mis deducciones eran correctas hasta ahora, ¿Puede alguien explicar el orden en que las búsquedas de PHP para los archivos que se incluirán?

¿Fue útil?

Solución

El valor global es básicamente lo que se define en php.ini. El valor local es lo que se está utilizando actualmente. El valor local sobrescribe completamente el valor principal.

De acuerdo con el manual, PHP comprueba los caminos en el orden en que se especifica en la configuración include_path: http://php.net/manual/en/ini.core.php#ini.include-path

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top