php基础:composer原理与分析
2022-04-09 01:32:11
### PHP 自动加载功能的由来
在 PHP 开发过程中,如果希望从外部引入一个 Class ,通常会使用 include 和 require 方法。这个在小规模开发的时候,没什么大问题。但在大型的开发项目中,使用这种方式会带来一些隐含的问题:
- 如果一个 PHP 文件需要使用很多其它类,那么就需要很多的 require/include 语句,这样有可能会 造成遗漏 或者 包含进不必要的类文件。
- 不方便管理。
- 文件多消耗性能
PHP5 为这个问题提供了一个解决方案,这就是 类的自动加载(autoload)机制。autoload机制 可以使得 PHP 程序有可能在使用类时才自动包含类文件,而不是一开始就将所有的类文件include进来,这种机制也称为 Lazy loading (惰性加载)。
### 自动加载功能优点:
- 使用类之前无需 include / require
- 使用类的时候才会 include / require 文件,实现了 lazy loading ,避免了 include / require 多余文件。
- 无需考虑引入 类的实际磁盘地址 ,实现了逻辑和实体文件的分离。
### PHP 自动加载函数 __autoload()
从 PHP5 开始,当我们在使用一个类时,如果发现这个类没有加载,就会自动运行 __autoload() 函数,这个函数是我们在程序中自定义的,在这个函数中我们可以加载需要使用的类。下面是个简单的示例
原文链接:https://segmentfault.com/a/1190000014948542