2012-09-04 29 views
8

tôi muốn chạy một Silex Application như thế này trong Command Line:Run Application silex trong Command Line

$app = new Silex\Application(); 

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

$app->run(); 

Tôi nghĩ rằng cho mục đích đó, tôi sẽ phải vượt qua Symfony's Request Object như tham số đầu tiên với phương pháp chạy , nhưng tôi không có ý tưởng, nơi để thiết lập Url-Path để làm cho nó hoạt động. Bất kỳ ý tưởng? Hoặc là có một cách tốt hơn để làm điều này?

+0

yêu cầu sử dụng :: tạo() phương pháp để tạo ra các đối tượng Request và chuyển nó vào chạy() – gunnx

Trả lời

19

Đây là một cách đơn giản để làm điều đó:

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

Và sau đó trên dòng lệnh:

$ php console.php GET/
+1

cảm ơn, công việc đơn giản :) – kertal

+1

Hãy xem https: // github.com/Cilex/Cilex – addex03

5

Nếu bạn muốn sử dụng silex trong một dòng lệnh, bạn cần phải sử dụng Console Component, đây là một hướng dẫn cho silex:

Sau đó, bạn có thể gọi một cành dịch vụ http://beryllium.ca/?p=481 (symfony), và để chuyển tiếp một hoạt động !

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

+0

Cảm ơn, tôi đã sử dụng thành phần giao diện điều khiển. xây dựng nó với hướng dẫn này. câu hỏi là, làm cách nào để tôi nhận được kết quả từ ví dụ: '/ hello/sybio', từ tuyến đường tôi đã đăng ký? – kertal

+0

run() đưa nó vào bảng điều khiển. – igorw

+3

Phiên bản webarchive của hướng dẫn: https://web.archive.org/web/20121108160050/http://beryllium.ca/?p=481 –

Các vấn đề liên quan