Laravel - 路由如何与控制器交互?

Laravel - How routes interact with controllers?

我有这个代码:

$app->get('myroute', ['uses' => 'MyController@method']);

当我 http://app.com/myroute 时,它将创建一个新的 MyController 实例并调用 method() 或只调用 method()?

它创建了一个新的 MyController 实例,然后在其上调用 method()。您可以通过执行以下操作来测试它:

class MyController extends Controller {
    function __construct() {
        var_dump('__construct');
    }

    public function method() {
        var_dump('method()');
    }
}

这将导致一个页面显示:

__construct
method()

这证明这是它们进入的顺序。此外,您可以(并在文档中推荐)在适当的情况下通过控制器构造函数使用依赖注入。