首页 » SEO优化 » php没有类图技巧_深入进修Composer事理四

php没有类图技巧_深入进修Composer事理四

duote123 2024-12-11 0

扫一扫用手机浏览

文章目录 [+]

首先,我们先看看Composer的源码从哪里看起。
当然,请您先准备好源码。

composer init或者直接install之后,自动天生了一个vendor目录,这时您须要在文件中手动的require这个vendor目录下的autoload.php文件,实在这个文件又载入了vendor/composer/autoload_real.php。

php没有类图技巧_深入进修Composer事理四

在autoload_real.php中,我们创造了熟习的spl_autoload_register函数。
但这个文件最大的浸染是去加载ClassLoader.php这个文件和一些目录文件,也在同级目录下。
这个文件就值得大家好好研究下了,不过核心也无外乎前面三篇文章中的内容。
但是在autoload_real.php中,大家可以创造在调用ClassLoader的register()函数前,还加载了几个目录干系的文件:

php没有类图技巧_深入进修Composer事理四
(图片来自网络侵删)
autoload_static.php,静态加载办法,顶级类加载命名空间autoload_psr4.php,遵守PSR4规范的包目录映射数组文件autoload_namespaces.php,命名空间映射,PSR0规范autoload_classmap.php,类图映射,命名空间直接映射路径

好深奥的觉得,不过PSR4您一定已经很理解了。
其他的实在便是对应的没有遵守PSR4规范的一些类库。
而在ClassLoader中的register()函数便是加载的这些文件中对应的路径文件。
在这里,最好的办法是您可以多下载一些包,然后看看这些文件发生了什么改变。

接下来,composer这个命令干了什么您该当也就理解了。
当您进行composer require时,首先修正了composer.json文件,然后下载包,完成后根据包里的composer.json文件中所对应的规范来修正对应的autoload_xxx.php文件。
完成了文件命名空间干系内容的映射。
当register()进行加载的时候,自然就得心应手了。

ClassLoader源码中重点阅读的一些函数内容包括:

findFile()findFileWithExtension()addPsr4()add()

干系参考文档:

深入解析 composer 的自动加载事理

Composer概述及其自动加载探秘

Composer文档

PSR规范

至此,深入学习Composer事理干系内容更新完成。
实在还有更多可以学习的内容,比如安装时的install文件实在也是个php文件。
composer命令也是个phar文件,也便是完备PHP实现的,源码的Github地址:https://github.com/composer/composer。
大概在将来我们可以再深入的研究研究核心composer命令行干系的源码。
到那时,再开一个系列文章再说,而这回,就先到这里吧!

相关文章

fwrite笼罩php技巧_PHP 访问文件

定义和用法fopen( 函数打开文件或者 URL。如果打开失落败,本函数返回 FALSE。语法fopen(filename,mo...

SEO优化 2024-12-13 阅读0 评论0