【问题标题】:Controller Constructors in LaravelLaravel 中的控制器构造函数
【发布时间】:2016-05-31 15:58:38
【问题描述】:

我是一名开发现有 Laravel 应用的新手开发人员。我正在浏览该项目,我没有看到任何地方构造了任何控制器,但这些控制器都具有构造函数。

这是 Laravel 的事情还是我只是错过了什么?控制器实例化是在路由中处理的还是什么?如果是这样,手动调用控制器构造函数是不好的做法吗?(虽然我想不出你想要这样做的情况)

【问题讨论】:

  • 问题不清楚。你是什​​么意思我没有看到任何控制器在任何地方构造但控制器都具有构造函数?
  • 我的意思是这个项目中的所有控制器都定义了一个 __construct 函数,但我没有看到项目中任何地方构造或实例化任何控制器。
  • 投反对票的人能否向我解释一下为什么这是一个不好的问题?将来会这样做吗?除了你脆弱的优越感之外,仅仅投反对票并逃跑并没有任何帮助
  • 框架(服务容器)为您执行控制器的实例化,每当您的应用需要实例时,您不必关心。
  • 当创建一个类的新实例时,PHP 自身会自动调用构造函数。路由器正在向容器请求您的控制器实例。当它被创建时,构造函数被 PHP 调用。

标签: php laravel oop


【解决方案1】:

来自文档:“Laravel 服务容器用于解析所有 Laravel 控制器。”

而且:我经常在我的应用程序中创建一个基本控制器,因此我的扩展控制器中也有构造函数。像本例所示“正确”注入依赖项也很有用:

https://laravel.com/docs/5.2/controllers#dependency-injection-and-controllers

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2013-06-09
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多