为了认识Composer,先也许认识下其构造
Composer是一个异常流行的PHP包依靠管理对象,已庖代PEAR包管理器,对PHP开辟者来讲把握Composer是必须的.
对利用者来讲Composer异常的复杂,经由过程复杂的一条敕令将需求的代码包下载到vendor目录下,然后开辟者就能够引入包并利用了.
其中的要害在于你项目界说的composer.json,可以界说项目需求依靠的包(能够有多个),而依靠的包能够又依靠其他的包(这就是组件的优点),这些都不消你烦心,Composer会主动下载你需求的一切,一切在于composer.json的界说.
Composer对利用者来讲是很通明,然则其背后的理念照样需求认识一下的,其的降生也不是有时的,得益于Github的疾速成长,PHP说话也愈来愈现代化,显得更嵬峨上了.
为了认识Composer,先也许认识下其构造:
Composer的构造
Composer敕令行对象:
这个认识就对照复杂了,经由过程利用者界说的Composer.json去下载你需求的代码,假设只是复杂的利用Composer,那末把握一些详细敕令就完全可以了
Autoloading代码加载器:
经由过程Composer,开辟者可以经由过程多种体式格局去利用,而其中的要害在于PHP的定名空间概念,和PSR-4尺度的成长,Composer只是凭据这两者开辟了一个代码主动加载器
Github:
有了Github,PHP开辟人员可以将开源的代码托管在这下面,而Composer的成长源于Github,Composer本质上就是将Github上的代码下载到当地.
Packagist:
对利用者来讲利用的是Composer的敕令行对象,那末敕令行对象怎样晓得有若干包可以被用户利用呢,这首要就是依靠于Packagist,Packagist是Composer首要的一个包信息存储库,包开辟者将详细代码托管到Github上,将包信息提交到Packagist上,如许利用者就能够经由过程Composer去利用.
Composer凭据当地界说的composer.json信息去查询Packagist,Packagist凭据Composer.json/Package.json信息解析,终究对应到github仓库,Composer终究下载代码的时刻还要依靠于Github仓库上的Composer.json,这里涉及到三种类型的composer.json,寄义是不一样的.
Composer.json:
这是Composer的焦点,是Composer的划定规矩,下面也提到了三种类型的Composer.json,在利用的时刻一定要留意辨别,我初学的时刻就老是搞乱.
Composer敕令行对象
composer init
利用者可以在自己的项面前目今建立composer.json以便界说你项目标依靠包,也可以经由过程composer init交互式的建立composer.json.
composer install
应当是最经常使用的敕令,composer会凭据当地的composer.json装置包,将下载的包放入项面前目今的vendor目录下,同时将装置时刻的包版本信息放入到composer.lock,以便锁定版本.
其其实install的时刻,假设发明composer.lock版本和今朝vendor目录下的代码版本是分歧的,则Composer会甚么也不做,composer.lock的目标就是让你安心在今朝这个版本下任务,而不获得最新版本的包.
composer update
那末若何更新composer.lock以便获得到最新版本的包呢?经由过程这个敕令即可更新最新版本的包
composer config
这个敕令照样建议认识下,全局的设置装备摆设保存在COMPOSER_HOME/config.json,非全局的设置装备摆设信息则存储在本项目目录下.
1 2 3 4 |
|
这个敕令不经常使用,然则小我感觉照样很重要的,利用通俗的install敕令是将项目所有的依靠包下载到本项目vendor目录下.而经由过程这个敕令则是将所有的代码及其依靠的包放到一个目录下,相当于执行了一个git clone敕令,普通是包的开辟者能够为了修复bug会利用该敕令.