phpComposer源码分析

这篇文章主要讲解了“php Composer源码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php Composer源码分析”吧!

创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计、做网站、蒲城网络推广、微信平台小程序开发、蒲城网络营销、蒲城企业策划、蒲城品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供蒲城建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

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

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

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

  • autoload_static.php,静态加载方式,顶级类加载命名空间

  • autoload_psr4.php,遵守PSR4规范的包目录映射数组文件

  • autoload_namespaces.php,命名空间映射,PSR0规范

  • autoload_classmap.php,类图映射,命名空间直接映射路径

好深奥的感觉,不过PSR4您一定已经很了解了。其他的其实就是对应的没有遵守PSR4规范的一些类库。而在ClassLoader中的register()函数就是加载的这些文件中对应的路径文件。在这里,最好的方式是您可以多下载一些包,然后看看这些文件发生了什么改变。比如我安装了一个monolog后,autoload_psr4.php的内容变成了这样:

php Composer源码分析

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

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

  • findFile()

  • findFileWithExtension()

  • addPsr4()

  • add()

感谢各位的阅读,以上就是“php Composer源码分析”的内容了,经过本文的学习后,相信大家对php Composer源码分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!

分享标题:phpComposer源码分析
文章地址:https://www.cdcxhl.com/article22/gdjgjc.html

成都网站建设公司_创新互联,为您提供外贸建站网站排名服务器托管手机网站建设做网站网站策划

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站建设网站维护公司