【问题标题】:autoload vs include or require in php在 php 中自动加载与包含或需要
【发布时间】:2016-09-19 10:45:10
【问题描述】:

我目前正在经历自动加载,我意识到自动加载可能与 require 或 include 相同,我得出的结论是,使用自动加载而不是 require 或 include 可能会有优势。 使用 autoload 代替 require 或 include 在 php 文件中使用类有什么好处?

【问题讨论】:

  • 这不是很明显吗?不需要写 require/include 行吗?

标签: php open-source autoload


【解决方案1】:

当您在一个文件中工作时,您可能需要在顶部的其他文件中使用它们才能使用它们的功能。

根据要求,该列表可能会变得很长。并且在每个文件中都这样做是乏味的,不干净的,可以避免。

因此,自动加载您的文件。

例如,您可以将所有课程保存在一个名为 classes 的文件夹下。然后制作一个引导文件,您可以在其中编写自动加载器:

spl_autoload_register(function ($class) {
    require_once 'classes/' . $class . '.php';
});  

要完成这项工作,您所要做的就是保持文件名和类名相同。

从今以后,您只需要这个引导文件,您的所有类都会自动加载。

【讨论】:

  • 我还可以在一个数组中添加所有类并自动加载所有类而不包括很多文件,对吗?
  • 你怎么能这样做?你可以要求/包含文件,而不是数组。您可能还有其他文件夹,例如控制器,系统中有类。在这种情况下,您可以创建一个文件夹名称数组,并在遍历它们时,您需要在类中。您可以在 spl_autoload_register 函数中执行此操作。
  • 这正是我的意思,我通常将控制器与框架一起使用,但是,如果你不使用框架,真的需要控制器吗?
  • 如果你想不用它们,你可以在核心 php 中工作。控制器是框架的一部分,因为它们实现了 MVC 设计模式,并且使用 MVC 是业界的标准做法,因为它将视图和逻辑分开。
  • 谢谢Budhaditya Biswas
猜你喜欢
  • 1970-01-01
  • 2011-07-14
  • 2011-01-31
  • 2015-07-07
  • 2011-12-15
  • 2021-10-08
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多