0

大家好,我想使用 MicroFramework Silex 来创建我网站的路由部分。我遇到的问题是我无法使其工作,因为我并不真正了解文档。

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

这段代码如下:

$app = new Silex\Application(); 

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

$app->run();

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

4

1 回答 1

2

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

//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');

创建自己的命名空间时,记得将它们添加到自动加载器

于 2012-11-12T22:57:46.267 回答