我有一个用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/