php-composer作用分析

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

项目开发过程中,拓展包的引入能够帮助我们快速且强大的开发我们的项目,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作用分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Code

Code

Charles Petzold / Microsoft Press / 2000-10-21 / USD 29.99

Paperback Edition What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of ......一起来看看 《Code》 这本书的介绍吧!

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

在线XML、JSON转换工具

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

Markdown 在线编辑器

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

HSV CMYK互换工具