全面的MySQL优化详解【干货】
来源:原创 时间:2017-10-23 浏览:0 次
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,非大局的装备信息则存储在本项目目录下.
composer config --list -gcomposer config -g notify-on-install falsecomposer global config bin-dir --absolute
composer create-project
这个指令不常用,可是个人觉得仍是很重要的,运用一般的install指令是将项目一切的依靠包下载到本项目vendor目录下.而经过这个指令则是将一切的代码及其依靠的包放到一个目录下,相当于履行了一个git clone指令,一般是包的开发者可能为了修正bug会运用该指令.
composer global
这是一个大局的装置指令,它答应你在COMPOSER_HOME目录下履行Composer的指令,比方install,update.当然你的COMPOSER_HOME要在$PATH环境下.