为什么在所有控制器之前使用 App::uses('Controller', 'Controller')

Why used App::uses('Controller', 'Controller') before all controllers

抱歉问,但我不明白为什么在每个控制器之前写下一行。

App::uses('Controller', 'Controller');

如果我们用 extends controller 编写下面的代码,这意味着 属性 和 Controller class 的所有功能我们都可以在 AppController 中访问。

class AppController extends Controller{...}

所以,我的问题是如果我不写 App::uses('Controller', 'Controller'); 对我的代码或性能有任何影响?

App::uses 是一种静态方法,用于注册要加载的文件(对应于 class)的位置,以便 PHP 自动加载器能够加载它 -苍蝇.

App::uses('AppController', 'Controller'); 行声明如果 AppController class 被引用(或扩展,在这种情况下)并且 AppController class 尚未定义,那它应该在 app/Controller 目录中查找文件并像这样构造实际的文件名: AppController.php 其中一部分是 cakePHP 约定,一部分是 PHP5.

删除此行时没有中断的原因是因为应用程序中的其他地方可能需要该文件(另一个控制器,在 bootstrap-- 所以 php 已经有 AppController class在内存中。

它包含在第一行的原因是因为您烘焙的控制器扩展了 AppController class。它对正在加载的 AppController class 有很强的依赖性,也许在蛋糕 shell 或单元测试环境中,应用程序控制器不会事先自动加载,因此必须包含。 App::uses 就像告诉蛋糕(和 PHP)'嘿,如果你正在寻找 AppController class 而你还没有它,你应该看看 app/Controller 目录,然后在末尾添加 .php!如果文件已经加载,App::uses 将无效。

What is the purpose of App::uses('AppController', 'Controller') in each controller - cakephp