我有一个使用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
函数的正确方法是什么?
答案 0 :(得分:1)
use
需要一个完整的类名,所以如果你的控制器命名空间是Main \ Controller,你应该说
use Main\Controller\MyController;
如果MyController在Controller名称空间(与Main相同的级别),则代码是正确的,在这种情况下,您可能会遇到自动加载器问题。