2012-09-04 132 views
8

我想在命令行運行Silex Application這樣的:運行Silex的應用在命令行

$app = new Silex\Application(); 

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

$app->run(); 

我認爲這個目的,我不得不通過Symfony's Request Object作爲第一個參數的run方法,但我不知道,在哪裏設置Url-Path使其工作。有任何想法嗎?還是有更好的方法來做到這一點?

+0

使用申請:: create()方法來創建Request對象並傳遞到運行() – gunnx

回答

19

這裏有一個簡單的方法來做到這一點:

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

,然後在命令行:

$ php console.php GET/
+1

感謝,簡單的作品:) – kertal

+1

看看https:// github.com/Cilex/Cilex – addex03

5

如果你想在一個命令行中使用硅石,您需要使用Console Component,這裏硅石教程:http://beryllium.ca/?p=481

然後你可以調用一個樹枝(symfony的)服務,並轉發行動!

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

+0

謝謝,我已經使用控制檯組件。用本教程構建它。問題是,我如何從例如'/ hello/sybio',從我註冊的獲取路線? – kertal

+0

run()將其輸出到控制檯上。 – igorw

+3

該教程的Web存檔版本:https://web.archive.org/web/20121108160050/http://beryllium.ca/?p = 481 –