使用Silex框架进行路由

时间:2012-11-12 16:48:37

标签: php silex

大家好我想使用MicroFramework Silex创建我网站的路由部分。我走进的问题是我无法使它工作,因为我不太了解文档。

我已在文件树中实现了所需的文件,并在index.php中添加了一些代码

此代码如下:

$app = new Silex\Application(); 

$app->post('/web/{slug}', __DIR__.'/Controller/PostsController::showPost()');

$app->run();

我还创建了一个名为Controller的目录,其中包含PostsController类。但现在我不知道如何继续有人能给我一个简单的例子来说明如何创建一个适用于我的Navigation类的动态路由吗?

1 个答案:

答案 0 :(得分:2)

您正在混合文件路径和类名/回调函数。传递给post/get/match方法的第二个参数必须是可以解析为可调用的东西,因此它可以是lambda函数,对象/类的数组和方法名称或带有function / class :: method的字符串,即:/: p>

//Lambda
$app->get('/web/{slug}', function(){
        return \MyNamespace\Controler\PostControler::showPost();
    }
);    

//Static call
$app->get('/web/{slug}', array('\\MyNamespace\\Controler\\PostControler','showPost'));

//Object call
$myCtrl = new \MyNamespace\Controler\PostControler();
$app->get('/web/{slug}', array($myCtrl,'showPost'));

//Function
function showPost(){
    return \MyNamespace\Controler\PostControler\showPost();
}
$app->get('/web/{slug}', 'showPost');

//Both static and not methods
$app->get('/web/{slug}', '\\MyNamespace\\Controler\\PostControler::showPost');

创建自己的命名空间时,remember to add them to autoloader