首页 » PHP教程 » phpcomposer主动加载技巧_彻底搞懂Composer自动加载事理

phpcomposer主动加载技巧_彻底搞懂Composer自动加载事理

duote123 2024-12-14 0

扫一扫用手机浏览

文章目录 [+]

利用composer构建的php项目,在项目根目录下天生vendor目录,vendor详细目录如下:

vendor/autoload.php 文件是composer自动加载的入口文件(勾引文件).此文件做了两件事情:

phpcomposer主动加载技巧_彻底搞懂Composer自动加载事理

加载文件 vendor/composer/autoload_real.php文件(该文件的浸染下文解释)实例化类Composer\Autoload\ClassLoader

调用静态方法get Loader()方法得到ClassLoader实例

phpcomposer主动加载技巧_彻底搞懂Composer自动加载事理
(图片来自网络侵删)

vendor/composer/autoload_real.php 此文件的核心任务是分别加载composer的配置文件:

vendor/composer/autoload_classmap.php

返回class目录映射关系

vendor/composer/autoload_namespace.php

命名空间和目录之间的映射关系

vendor/composer/autoload_psr4.php(推举利用)

符合psr4的命名空间之间映射关系

加载这些这些类和文件目录对应关系到内存中,一定要把稳,这里只是加载类与文件的对应关系,并非真正的将所需的类文件加载到内存中(这也解释了composer是惰性加载类的).

vendor/composer/ClassLoader.php(是和核心文件)

核心代码是:

利用php供应的函数spl_autoload_register注册loadClass方法

loadClass方法利用前文已经加载到内存中类与路径之间的关系,找到须要加载的文件,然后将其加载进来:

composer第二次利用include函数

当实例化一个类,这个类不存在的时候,实行loadClass方法

总结:

composer加载核心思想是通过composer的配置文件在引用入口文件(autoload.php)时,将类和路径的对应关系加载到内存中,末了将详细加载的实现注册到spl_autoload_register函数中.末了将须要的文件包含进来.

相关文章

phpip转bigint技巧_PHP编程 JSON

在 php5.2.0 及以上版本已经内置 JSON 扩展。JSON 函数函数描述json_encode对变量进行 JSON 编码j...

PHP教程 2024-12-15 阅读0 评论0