El siguiente ejemplo muestra el acceso a un fichero de configuración externo como si fuera
una ruta dentro de un archivo phar.
Lo primero, el código dentro de un archivo phar:
<?php
$configuración = simplexml_load_string(file_get_contents(
Phar::running(false) . '/config.xml'));
?>
Lo siguiente, el código externo utilizado para montar el fichero de configuración:
<?php
// primero se establece la asociación entre el config.xml abstracto
// y el real del disco
Phar::mount('phar://config.xml', '/home/example/config.xml');
// ahora ejecutar la aplicación
include '/ruta/a/archivo.phar';
?>
Otro método es poner el codigo de montaje dentro de la rutina de interoperabilidad del archivo phar.
Aquí está un ejemplo de establecer un fichero de
configuración predeterminado si no se especifica una configuración de usuario:
<?php
// primero se establece la asociación entre el config.xml abstracto
// y el real del disco
if (defined('EXTERNAL_CONFIG')) {
Phar::mount('config.xml', EXTERNAL_CONFIG);
if (file_exists(__DIR__ . '/extra_config.xml')) {
Phar::mount('extra.xml', __DIR__ . '/extra_config.xml');
}
} else {
Phar::mount('config.xml', 'phar://' . __FILE__ . '/default_config.xml');
Phar::mount('extra.xml', 'phar://' . __FILE__ . '/default_extra.xml');
}
// ahora ejecutar la aplicación
include 'phar://' . __FILE__ . '/index.php';
__HALT_COMPILER();
?>
...y el código externo para cargar este archivo phar:
<?php
define('EXTERNAL_CONFIG', '/inicio/ejemplo/config.xml');
// ahora ejecutar la aplicación
include '/ruta/a/archivo.phar';
?>