9

我想在命令行中运行这样的Silex 应用程序:

$app = new Silex\Application(); 

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

$app->run(); 

我认为为此目的,我必须将Symfony 的请求对象 作为第一个参数传递给 run 方法,但我不知道在哪里设置 Url-Path 以使其工作。有任何想法吗?还是有更好的方法来做到这一点?

4

2 回答 2

21

这是一个简单的方法:

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

然后在命令行上:

$ php console.php GET /
于 2012-09-07T20:34:55.083 回答
5

如果你想在命令行中使用 silex,你需要使用控制台组件,这里有一个关于 silex 的教程:http ://beryllium.ca/?p=481

然后你就可以调用一个 twig (symfony) 服务,并转发一个动作!

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

于 2012-09-04T15:18:41.233 回答