我有一个用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函数的正确方法是什么?

最佳答案

use需要一个完整的类名,因此如果您的控制器的命名空间是main\controller,您应该说

use Main\Controller\MyController;

如果mycontroller位于控制器名称空间(与main处于同一级别)中,则代码是正确的,在这种情况下,可能存在自动加载程序问题。

关于php - 在Slim PHP REST处理程序内的不同 namespace 中调用静态函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28751038/

10-10 03:16