为路由调用类方法

Ara*_*yan 2 php class slim

我已经将Slim用于了几个项目,而且我总是将路由连接到类方法 $app->route('/', array('MyClass', 'method'));

但是,在使用composer安装它之后,这就是我得到的错误:

call_user_func_array() expects parameter 1 to be a valid callback, non-static method Pages::home() should not be called statically
Run Code Online (Sandbox Code Playgroud)

这是代码:

class Pages {
  function home() {
    print 'home';
  }
}

$app = new \Slim\Slim();
$app->get('/', array('Pages', 'home'));
$app->run();
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我应该另外编辑我的课吗?

谢谢!

Jer*_*all 8

看起来你的错误报告比过去更高,因为我相信你得到的E_STRICT错误是一个错误.如果您更改了function home()方法,则public static function home()不会再出现错误.

也就是说,更好的解决方案可能是尝试Slim 2.4.0中的新(-ish)控制器功能.您的新路线如下所示:

$app->get('/', '\Pages:home');
Run Code Online (Sandbox Code Playgroud)