2013-03-16 61 views
0

裏面我Silex的程序,我需要一個函數,基本上做了的file_get_contents()我的想法是使用類似Silex的疙瘩服務實現

$app['funky_service'] = function() { 
$content = file_get_contents(); 
return $content; 
} 

這是工作的罰款,但我怎麼可以傳遞參數給這個函數?我可以這樣調用

$fs = $app['funky_service']; 

但傳遞參數給它一直困擾着我

回答

4

按照the services chapter in the silex documentation,你需要保護你的功能,如果你想將它保存爲一個參數:

$app['function_parameter'] = $app->protect(function ($resource) { 
    $content = file_get_contents($resource); 
    return $content; 
}); 

$example = $app['function_parameter']('http://example.com'); 
+0

啊......我不確定我是否錯過了一些打給Pimple的電話。我應該先在我的答案中測試我的代碼。這個答案應該被標記爲例外 – 2013-03-16 17:00:09

+0

使用$ app-> protect()而不是創建靜態幫助器方法並在代碼中的任何地方使用它有什麼好處? – 2017-02-22 13:32:05