Prudencia
Se desaconseja el uso del archivo phar de Silex En su lugar debes usar Composer para instalar Silex y sus dependencias o descargar uno de los archivos.
Instalar Silex es tan fácil como puedas descargar el phar y guardarlo en algún lugar en tu disco. Luego, inclúyelo en tu programa:
<?php
require_once __DIR__.'/silex.phar';
$app = new Silex\Application();
$app->get('/hello/{name}', function ($name) use ($app) {
return 'Hello '.$app->escape($name);
});
$app->run();
Silex incluye una ligera consola para actualizar a la versión más reciente.
Para saber qué versión de Silex estás usando, invoca a silex.phar en la línea de ordenes con version como argumento:
$ php silex.phar version
Silex version 0a243d3 2011-04-17 14:49:31 +0200
Para comprobar si estás utilizando la última versión, ejecuta la orden check:
$ php silex.phar check
Para actualizar silex.phar a la última versión, invoca la orden update:
$ php silex.phar update
Esto descargará automáticamente un nuevo silex.phar desde silex.sensiolabs.org y sustituirá el actual.
Hay algunas cosas que pueden salir mal. Aquí vamos a tratar de esbozar las más frecuentes.
Ciertas distribuciones de PHP, de manera predeterminada tienen configurado Phar muy restrictivamente. Ajustar lo siguiente puede ayudar.
detect_unicode = Off
phar.readonly = Off
phar.require_hash = Off
Si estás en Suhosin también tendrás que fijar lo siguiente:
suhosin.executor.include.whitelist = phar
Nota
El PHP de Ubuntu viene con Suhosin, así que si estás usando Ubuntu, necesitarás este cambio.
Algunas instalaciones de PHP tienen un error que arroja una PharException cuando tratas de incluir el Phar. También te dirá que Silex\Application no se pudo encontrar. Una solución es usar la siguiente línea:
require_once 'phar://'.__DIR__.'/silex.phar/autoload.php';
La causa exacta de esta emisión no se ha podido determinar todavía.
El cargador de Ioncube es una extensión que puede decodificar archivos PHP codificados. Desafortunadamente, las versiones antiguas (anteriores a la versión 4.0.9) no están funcionando bien con archivos phar. Debes actualizar tu Ioncube loader a la versión 4.0.9 o más reciente o desactivarla comentando o eliminando esta línea en tu archivo php.ini:
zend_extension = /usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so