composer的应用与Packagist 镜像使用方法

Posted hypnot

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了composer的应用与Packagist 镜像使用方法相关的知识,希望对你有一定的参考价值。

安装

安装 Composer,你只需要下载 composer.phar 可执行文件。

curl -sS https://getcomposer.org/installer | php

详细请查看 简介 章节。

要检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:

php composer.phar

这将返回给你一个可执行的命令列表。

注意: 你也可以仅执行 --check 选项而无需下载 Composer。 要获取更多的信息请使用 --help

curl -sS https://getcomposer.org/installer | php -- --help

composer.json:项目安装

要开始在你的项目中使用 Composer,你只需要一个 composer.json 文件。该文件包含了项目的依赖和其它的一些元数据。

这个 JSON format 是很容易编写的。它允许你定义嵌套结构。

关于 require Key

第一件事情(并且往往只需要做这一件事),你需要在 composer.json 文件中指定 require key 的值。你只需要简单的告诉 Composer 你的项目需要依赖哪些包。

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

你可以看到, require 需要一个 包名称 (例如 monolog/monolog) 映射到 包版本 (例如 1.0.*) 的对象。

包名称

包名称由供应商名称和其项目名称构成。通常容易产生相同的项目名称,而供应商名称的存在则很好的解决了命名冲突的问题。它允许两个不同的人创建同样名为 json 的库,而之后它们将被命名为 igorw/json 和 seldaek/json

这里我们需要引入 monolog/monolog,供应商名称与项目的名称相同,对于一个具有唯一名称的项目,我们推荐这么做。它还允许以后在同一个命名空间添加更多的相关项目。如果你维护着一个库,这将使你可以很容易的把它分离成更小的部分。

 

Packagist 镜像使用方法

还没安装 Composer 吗?请往下看如何安装 Composer 。

镜像用法

有两种方式启用本镜像服务:

  • 系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。见“方法一”
  • 单个项目配置: 将配置信息添加到某个项目的 composer.json 文件中。见“方法二”

 

方法一: 修改 composer 的全局配置文件(推荐方式)

打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:

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

 

方法二: 修改当前项目的 composer.json 配置文件:

打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:

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

上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(你也可以自己手工添加):

复制
"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

以 laravel 项目的 composer.json 配置文件为例,执行上述命令后如下所示(注意最后几行):

复制
{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*"
    },
    "config": {
        "preferred-install": "dist"
    },
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }
}

OK,一切搞定!试一下 composer install 来体验飞一般的速度吧!

镜像原理:

一般情况下,安装包的数据(主要是 zip 文件)一般是从 github.com 上下载的,安装包的元数据是从 packagist.org 上下载的。

然而,由于众所周知的原因,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。

“Packagist 中国全量镜像”所做的就是缓存所有安装包和元数据到国内的机房并通过国内的 CDN 进行加速,这样就不必再去向国外的网站发起请求,从而达到加速 composer install以及 composer update 的过程,并且更加快速、稳定。因此,即使 packagist.orggithub.com 发生故障(主要是连接速度太慢和被墙),你仍然可以下载、更新安装包。

以上是关于composer的应用与Packagist 镜像使用方法的主要内容,如果未能解决你的问题,请参考以下文章

Packagist / Composer 中国全量镜像

Packagist 镜像使用方法--composer

composer速度慢(composer更换国内镜像)

composer镜像

composer 的快速安装

我可以从我自己的 Composer Satis 安装中同步或镜像来自 packagist.org 的依赖项吗?