2014-11-02 35 views
0

我有2個問題:
Q1。我有一個函數:如何定義高級功能(如laravel組件)

namespace Core; 
class MyRoute { 
    static function get($slug, $action) { 
    // code 
    } 
} 

我要定義這個功能就像laravel路由器:

$checkLogin = function() { 
    if(Sentry::check()) return false; 
    return true; 
}; 
MyRoute::get('foo/bar', function() { 
    //code 
})->before($checkLogin); 

如何獲得$行動和處理?

Q2:我想用的Silex應用(路線),我想用我的靜態類,回調$應用

namespace Core; 
class MyRoute { 
    static function get($slug, $name) { 
    $app->get('/home/{name}', function ($name) use ($app) { 
    return 'Home'; 
    }); 
    } 
} 

如果多個變量如何使用。

回答

0

要使用作爲參數傳遞簡單的匿名函數:

function get($slug, $action) 
{ 
    $action(); 
} 

它變成像這樣的參數:

function get($slug, $action) 
{ 
    $action(42); 
} 
get(13 , function($x){echo $x;}); 
+0

確定。以及如何添加前檢查? - >之前($ checkLogin) – 2014-11-02 04:24:48

+0

「函數如何返回匿名函數作爲結果」是你的問題嗎?同樣:return function($ foo){echo $ foo;}; – David162795 2014-11-02 04:28:19