Hace un tiempo hablé sobre los ficheros phar en php y hoy quiero hablaros de crear y ejecutar ficheros phar en php. Antes de meterse con el código hay que comprobar la configuración del fichero php.ini y poner la directiva phar.readonly = On y reiniciar el servidor. Una vez realizado este cambio ya podemos ponernos con el código:
$srcRoot = 'ruta/donde/esta/el/codigo/para/crear/el/phar';
$buildRoot = 'ruta/donde/crear/phar';
$phar = new Phar($buildRoot . '/nombreFichero.phar',
FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME, 'nombreFichero.phar');
//el indice del array es el alias del fichero dentro del phar
$phar["ficheroAIncluirEnPHAR.php"] = file_get_contents($srcRoot . '/ficheroAIncluirEnPHAR.php');
$phar->setStub($phar->createDefaultStub('ficheroAIncluirEnPHAR.php'));
Cuando se añaden varias clases a un fichero phar se puede instanciar a una de esas clases de la siguiente manera:
include 'phar://ruta_fichero_phar/nombreAliasFichero.php';
En mi página de github hay una clase para gestionar ficheros phar.