作为一个程序猿,有一半的时间在跟网络、防火墙做斗争,感觉真是可悲。

composer的加速有两个方面:

  • 获取php资源包数据(packagist)
  • 获取bower前端资源数据(github)

安装composer

#php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php --filename=composer --install-dir=vendor/bin
php -r "unlink('composer-setup.php');"

使用Packagist镜像

全局设置

composer config -g repo.packagist composer https://packagist.phpcomposer.com

项目设置

composer config repo.packagist composer https://packagist.phpcomposer.com

限定前端资源包的版本

yii框架使用composer来管理前端资源,然而在require一些非前端资源的包时,也会把前端资源包的依赖关系处理一遍。过程中会不断连接github,请求各个前端资源包各个版本的bower信息。有些资源包版本特别多,会非常费时。限定资源包的版本范围可以减少请求的次数,从而达到加速的效果。因为要使用github接口获取各个项目的信息,而且各个项目都处在开发中,没有办法做镜像。因此只能通过限制版本,减少请求次数实现加速效果。

  • 引入资源包时指定版本
    composer require bower-asset/jquery 3.3.1
    
  • composer.json里面限定资源包的版本号
    {
        "require": {
            "bower-asset/jquery": "3.3.1"
        }
    }
    

参考文章