Composer 简明教程

开发一个本地包的标准流程是 开发>git->packagist>使用 但是我们在进行本地开发时,尤其是为某些产品开发组件时,比如laravel框架等。这样的操作方式非常不方便,我们希望直接在本地开发,并可以正常使用 composer 功能。

安装


windows

点击链接 https://getcomposer.org/Composer-Setup.exe 下载,直接安装就可以了。

Mac/Linux

$ php -r "copy('https://getcomposer.org/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
$ php -r "unlink('composer-setup.php');"

软件仓库

使用composer安装软件时是从远程服务器下载的,但国内用户访问国外网站会过慢或不能访问。有些机构将国外的软件同步到了国内服务器。我们将composer下载的服务器指向到这个国内服务器,就可以实现快速下载软件了。

国内仓库
参考网址 https://pkg.phpcomposer.com/ ,命令行执行以下指令完成配置(linux需要使用sudo)

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

国外仓库
如果国内镜像有问题通过以下方式切换为国外源

修改项目 composer.json 文件

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.org"
    }
}

全局更改

composer config -g repo.packagist composer https://packagist.org

安装扩展包


PHP 扩展软件包应用商店网址 https://packagist.org/ ,开发中通过在应用商店中搜索需要的软件包进行安装就可以了。

执行以下命令安装 https://packagist.org/packages/houdunwang/arr 软件包,其他软件包安装方式都是一样操作。安装后参考软件包的 Github 软件包操作的 Readme.md 文件或提供的网站使用就可以了。

composer require houdunwang/arr

本地扩展


开发一个本地包的标准流程是 开发>git->packagist>使用 但是我们在进行本地开发时,尤其是为某些产品开发组件时,比如laravel框架等。这样的操作方式非常不方便,我们希望直接在本地开发,并可以正常使用 composer 功能。

创建项目

首先远行 composer init 创建composer.json配置文件。

比如我们的文件目录在 ~/code/houdunwang/arr

.
├── composer.json
├── src
│   └── Hd.php
└── tests

主要是 composer.json 配置文件,内容如下:

{
  "name": "houdunwang/arr",
  "description": "array extend module",
  "license": "MIT",
  "authors": [
    {
      "name": "houdunren",
      "email": "2300071698@qq.com"
    }
  ],
  "autoload": {
    "psr-4": {
      "Houdunwang\\arr\\": "src/"
    }
  }
}

根据自己的需要自行修改文件内容,比如 require 其他的包

配置扩展包
在 hdphp 或 laravel 其实是任何composer项目的根目录下执行:

composer config repositories.arr path ~/code/houdunwang/arr

这样composer 就将包 houdunwang/arr 链接到 ~/code/houdunwang/arr 了,修改 ~/code/houdunwang/arr 同样影响到 vendor/houdunwang/arr。

这里观察 laravel 等 composer 项目根目录下的 composer.json 会多一段内容:

"repositories": {
    "arr": {
        "type": "path",
        "url": "/Users/xj/code/houdunwang/arr"
    }
}

表示使用我们本地的 composer 包,而非 packagist 下载的包

安装本地包
安装本地包与远程包没有什么区别。

composer require houdunwang/arr

至些我们已经完成了,直接在 houdunwang/arr 目录中开发就可以了,而非 vendor/houdunwang/module 目录。

PHP 包仓库 Packagist.org 中国区全量镜像站点. https://php.cnpkg.org/

如果你经常使用 Composer 命令,如:create-project,require,update,remove。 当这些命令执行时,Composer 会通过依赖下载对应包信息。 下载 JSON 文件数量取决于您使用的软件包复杂程度。 中国互联网大环境由于众所周知的原因,连接 packagist.org 速度很慢,甚至无法连接。通过使用镜像可以加快下载速度,节省没必要的等待时间。

请执行以下命令将 Composer 默认仓库设置为本站

composer config -g repos.packagist composer https://php.cnpkg.org
建议:在更改配置源之前,推荐先执行 composer clearcache 清除缓存 若项目之前已通过其他源安装,务必删除 composer.lock 以及 vendor 目录,重新生成。 现已支持元数据、下载包全量代理!

转载: 后盾人向军大叔

发表评论