在Slim PHP REST处理程序中调用不同命名空间中的静态函数

时间:2015-02-26 19:24:13

标签: php rest http namespaces slim

我有一个使用Slim构建的PHP REST应用程序(通过composer安装),其中处理程序无法访问不同命名空间中的类中定义的静态方法。代码如下所示:

namespace Main;

use Controller\MyController;

$app = new \Slim\Slim();
$app->get('/clients/:username', function($username) use($app) {
        echo "Test text";
        MyController::get($app, $username);
});
$app->run();

当我转到application/clients/some_id时,我会收到“测试文字”输出。但是,未输入MyController::get功能。通过阅读日志,发生的事情是系统无法找到MyController类来调用get函数。

get课程中调用MyController函数的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

use需要一个完整的类名,所以如果你的控制器命名空间是Main \ Controller,你应该说

use Main\Controller\MyController;

如果MyController在Controller名称空间(与Main相同的级别),则代码是正确的,在这种情况下,您可能会遇到自动加载器问题。