2012-09-04 27 views
8

me gustaría correr un Silex Application como esta en la línea de comandos:Ejecutar aplicación Silex en la línea de comandos

$app = new Silex\Application(); 

$app->get('/hello/{name}', function($name) use($app) { 
    return 'Hello '.$app->escape($name); 
}); 

$app->run(); 

Creo que para ese propósito, tendría que pasar Symfony's Request Object como el primer parámetro al método run , pero no tengo ni idea, dónde configurar el Url-Path para que funcione. ¿Algunas ideas? ¿O hay una mejor manera de hacer esto?

+0

de solicitud de uso :: create() para crear el objeto Request y pasarlo a run() – gunnx

Respuesta

19

He aquí una forma sencilla de hacerlo:

list($_, $method, $path) = $argv; 
$request = Request::create($path, $method); 
$app->run($request); 

Y a continuación, en la línea de comandos:

$ php console.php GET/
+1

gracias, simple y funciona :) – kertal

+1

Eche un vistazo a https: // github.com/Cilex/Cilex – addex03

5

Si desea utilizar silex en una línea de comandos, es necesario utilizar el Console Component, aquí un tutorial para silex:

Entonces usted es capaz de llamar a una ramita servicio http://beryllium.ca/?p=481 (Symfony), y para reenviar un acción!

http://symfony.com/doc/current/cookbook/console/console_command.html#getting-services-from-the-service-container

+0

Gracias, ya uso el componente de la consola. construido con este tutorial. la pregunta es, ¿cómo obtengo el resultado de, p. '/ hello/sybio', de la ruta de obtención que registré? – kertal

+0

run() lo envía a la consola. – igorw

+3

Versión de Webarchive del tutorial: https://web.archive.org/web/20121108160050/http://beryllium.ca/?p=481 –

Cuestiones relacionadas