php-composer作用分析

栏目: PHP · 发布时间: 4年前

项目开发过程中,拓展包的引入能够帮助我们快速且强大的开发我们的项目,js中的node install  ,golang中的go mod而 php 我们用的就是composer,像这样 composer require lingyuyizhipao/http

当然你也可以用原声自己慢慢造轮子,但引入可以帮助更好更快的做更多的事情,那么composer是如何帮助我们的呢,下面来好好分析分析。

其实我们的初衷是我们需要使用的对象能够给我们使用就行了,但是计算机肯定是要code加载到内存中去运行才行的啊,那就意味着每使用一个对象之前php就得require_once该对象的class文件到内存中,麻烦!spl_autoload_register 这个函数就是php专门用来解决这个问题的,它可以帮我注册一个我们自定义的函数,每当我们new一个内存中找不到的对象的时候,就会去调用我们自定义的函数,而且会把这个函数名称传到自定义函数,那么就有游戏的空间了,围绕这出现了很多标准,比如autoload_psr4,autoload_classmap,autoload_namespaces,autoload_static(这些是我在 laravel 自动加载中复制出来的),有对标准感兴趣的可自行百度,总之composer就是利用自动加载函数和自动加载标准规则让我们的 工具 类很轻松容易被引用并使用的。

composer require lingyuyizhipao/http  或者你随便composer安装一个拓展吧,你的项目根目录下就会出来

composer.json,composer.lock以及vendor文件夹,composer.json是定义composer依赖的一种标准,可自行百度每一项属性的含义,在vendor这个文件夹下有个composer文件夹,里面就是composer工作中所需要的必要文件了,每当我们composer install ,composer require , composer update, composer dump-autoload  等等等,其实就是更新里面的几个规范文件,每一个规范都对应自身的一个映射规则,你点击一看便明白要么就是命名空间映射文件路径,要么就是会自动再加点什么后缀的路径。

那么我们再来理一下啊,compsoer的各种作用命令为好好的维护好vendor/composer下的文件,里面就是一堆字符串到类文件路径的关联映射,就保证了我们的代码一种能力,当我们new一个内存中不存在的对象的时候,自动加载函数根据我们new的对象的类的名称,去composer维护的那么些文件规则中走一趟,发现了就引入,从而保证new对象的正常进行,这才是工作的真正原理,所有的规范都只为更好的被使用,但其深处的原理却只有一个,那就是必须得映射到存在的class类文件才行,因为php只认一个,new的这个对象的类文件必须存在于内存中,就此打住。

自己写一个composer包发布到composer服务器上走一遍流程。


以上所述就是小编给大家介绍的《php-composer作用分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法技术手册(原书第2版)

算法技术手册(原书第2版)

George T. Heineman、Gary Pollice、Stanley Selkow / 杨晨、曹如进 / 机械工业出版社 / 2017-8-1 / 89.00元

本书使用实际代码而非伪代码来描述算法,并以经验主导支撑数学分析,侧重于应用且规范严谨。本书提供了用多种程序设计语言实现的文档化的实际代码解决方案,还介绍了近40种核心算法,其中包括用于计算点集的Voronoi图的Fortune算法、归并排序、多线程快速排序、AVL平衡二叉树实现以及空间算法。一起来看看 《算法技术手册(原书第2版)》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具