YII2通过composer优化vendor

正文商讨通过composer工具安装Yii2框架并优化Vendor过程被相遇的题材,约定读者对composer基本原理有自然理解,并且有安装Yii2框架的实际经验。

每当Yii2社区里常会合逢相同看似题目,这虽然是 安装收尾官方推荐的版本后
1 胡平昔不vendor文件夹?

于Yii2
中,vendor是composer下载的乘库文件,官方的品种模板代码里独自发生那多少个和谐的色文件,而该据之yii框架等类库,都记录在composer.json里面,只要安装好composer,然后install或update即可。

2 自己安装的Yii2的花色遭到,vendor中的包在composer.json
中寻觅不交对应,而那多少个保险多是暂时性未需利用的,该怎么remove,保持vendor最小化?
注解了之气象

2.1 使用 composer remove 删除包
所去的保证必于vendor文件夹下之composer.json中起记录,并且在去包之还要,所有的包会重新安装一回等。

2.2 使用 composer update –no-dev 删除包

开格局下的包会间接被删去,删除后运行品种,直接报错。由此支付格局的保不可能被布满剔除

vendor.jpg

composer.jpg

2.3应用 remove codeception/verify
删除包,大部分测试情势下之包均于删去,按照自己之陈年支出经历,单元测试相关的零件没有下到,所以可以remove codeception/verify
命令对Yii2的compposer包举行简短。这一个令是优化composer包的基本点一环抱。

3
五只项目于一个工程下通常,会无相会坐首糟糕加载composer包太多设滋生加载的性质问题,
自带的延迟加载是否可以解决是题目?

项目分明不需要的零件可以直接remove处理掉,至于性能性能影响小还并未境遇过。延迟加载算是框架级别之优化,我采纳信任其的力

4 vendor路径问题导致的目录或文件未存在提醒

若果我们的体系路线是 E:\sources\templates

每当Vendor路径有问题时,会并发以下类似之题材,即有composer包不在

Invalid Parameter – yii\base\InvalidParamException
The file or directory to be published does not exist:
E:\sources\templates\backend\vendor\bower-asset/jquery/dist

文件包不存在只是表现,重要的由是vendor路径和工程的布文件未对应。

以工程的主配置文件main.php下有关于vendor的布入口,VendorPath具体值,要结合配置文件之门道,请参见下的星星帧图和有关的不二法门配置

第一幅

vendorPath.jpg

‘vendorPath’ => dirname(dirname(DIR)) . ‘/vendor’,

第二幅

vendorPath2.jpg

‘vendorPath’ => dirname(dirname(dirname(DIR))) . ‘/vendor’,

总结:

咱俩在应用compser时需要考虑以下三独问题

1 composer install 和composer update的区别

2 composer版本管理以及平静

3 公共组件如何以 composer包的法出口和保养

composer install

应当是极致常用的授命,composer会按照当地的composer.json安装包,将下载的包放入项目下的vendor目录下,同时将装上的包版本信息放入到composer.lock,以便锁定版本.

其实在install的早晚,假若发现composer.lock版本与眼前vendor目录下的代码版本是同样的,则Composer会什么啊未举办,composer.lock的目的就是是受您安然在此时此刻者本子下工作,而未落最新版本的包.

composer update

composer.lock文件被之包版本会被更新,composer.json记录的包都会吃更新至最新。
本条命令要谨慎用。

苟组件都拔取composer引用到花色受到,成为公共组件,需要严格用composer命令,当然要专人负责维护,没有共享操作权限。

参照文档
Composer四栽加载形式
http://nai8.me/sapper-view.html?id=33
https://segmentfault.com/q/1010000004047286/a-1020000005344768