命名空间问题。使用来自错误对象的方法

时间:2015-11-15 15:58:52

标签: php namespaces fatal-error

我的代码问题如下。我得到的错误是:

  

可捕获的致命错误:参数1传递给   Closure :: QuizApp \ Routes {closure}()必须是。的实例   QuizApp \ Routes \ ServerRequestInterface,Slim \ Http \ Request的实例   在第8行的/var/www/QuizApp/Routes/AuthRoutes.php中给出

这是因为我在顶部声明了命名空间吗?我可以通过使用别名来解决它,但我很好奇它为什么会在一开始就发生。

<?php

namespace QuizApp\Routes;

use \Psr\Http\Message\ServiceRequestInterface;
use \Psr\Http\Message\ResponseInterface;

$app->get('/login', function(ServerRequestInterface $req, ResponseInterface $resp) use ($config) {

    $callback = $config['site']['domain'] . $this->router->pathFor('fb_callback');
    return $this->FBAuthServices->redirect_to_auth_page($config['facebook']['permission'],
                                                        $callback);

});

编辑查看我自己的代码后,我意识到我甚至不需要命名空间。此文件中的类现已移出。我仍然会喜欢一个答案,我很好奇。

1 个答案:

答案 0 :(得分:1)

比较这些

must be an instance of QuizApp\Routes\ServerRequestInterface

use \Psr\Http\Message\ServiceRequestInterface;

这是一个错字,它应该在ServerRequestInterface中命名为use