欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。

文摘  Composer 的简介、安装及使用详解

服务端工具 本站 1276 0评论

一、Composer简介


中文网:https://www.phpcomposer.com/ 

中文文档:https://docs.phpcomposer.com/ 

Composer中国镜像:https://pkg.phpcomposer.com/ 


Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。

简单说,Composer 就是一个安装包管理工具,服务于 PHP 生态系统。它包括了两个部分:Composer 和 Packagist。


Composer

Composer 中的很多理念都借鉴自 npm 和 Bundler。Composer 包含了一个依赖解析器,用来处理开发包之间复杂的依赖关系;另外,它还包含了下载器、安装器等有趣的东西。

作为一个用户,你所要做的就是在 composer.json 文件中声明当前项目所依赖的开发包,然后运行 composer.phar install 就行了。composer.json 文件定义了当前项目所依赖的开发包和 composer 的配置信息。


Composer 将这样为你解决问题:

a) 你有一个项目依赖于若干个库。

b) 其中一些库依赖于其他库。

c) 你声明你所依赖的东西。

d) Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)。


声明依赖关系

比方说,你正在创建一个项目,你需要一个库来做日志记录。你决定使用 monolog。为了将它添加到你的项目中,你所需要做的就是创建一个 composer.json 文件,其中描述了项目的依赖关系。

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

我们只要指出我们的项目需要一些 monolog/monolog 的包,从 1.2 开始的任何版本。


下面是一个小型实例:

"require": {
"php": ">=5.4.0",
"topthink/framework": "~5.0.0"
}


Packagist

Packagist 是 Composer 的默认的开发包仓库。


二、安装 Composer


1.系统要求

运行 Composer 需要 PHP 5.3.2+ 以上版本。一些敏感的 PHP 设置和编译标志也是必须的,但对于任何不兼容项安装程序都会抛出警告。

我们将从包的来源直接安装,而不是简单的下载 zip 文件,你需要 git 、 svn 或者 hg ,这取决于你载入的包所使用的版本管理系统。

Composer 是多平台的,我们努力使它在 Windows 、 Linux 以及 OSX 平台上运行的同样出色。


2.在Linux上安装Composer

安装composer之前首先要确定您的机器上已经安装了php,并可以通过php来执行命令。使用php –v 测试 当然要直接使用php 还需确定php命令已经设置在全局命令中,否则需要加上路径 /usr/local/php/bin/php –v (这是我的安装路径)。


为了方便使用,我们先设置php为全局命令:

修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码:

PATH=$PATH:/usr/local/php/bin   //php命令路径

export PATH

如果还要同时加入mysql 则第一句:

PATH=$PATH:/usr/local/php/bin:/usr/local/mysql/bin   //路径一定要正确

最后:执行 命令source /etc/profile或 执行点命令 ./profile使其修改生效。

注意:如果/etc/profile修改产生错误会导致命令不能使用 包括 vi ls 甚至reboot,这时需要

/usr/bin/vim /etc/profile 这样进入把错误修改过来。


局部安装

局部安装是将 composer 安装到当前目录下面(比如安装到项目根目录下),然后就可以通过 php composer.phar 来使用 composer 了。

Mac 或 Linux 系统:打开命令行窗口并执行如下命令:

curl -sS http://install.phpcomposer.com/installer | php

Windows 系统(Mac 或 Linux 系统也可以使用):请执行如下命令:

php -r "readfile('http://install.phpcomposer.com/installer');" | php

这将检查一些 PHP 的设置,然后下载 composer.phar 到你的工作目录中。这是 Composer 的二进制文件。这是一个 PHAR 包(PHP 的归档),这是 PHP 的归档格式可以帮助用户在命令行中执行一些操作。


你可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):

curl -sS https://getcomposer.org/installer | php -- --install-dir=bin


全局安装

全局安装是将 composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。在类Unix系统中,你甚至可以在使用时不加 php 前缀。

Mac 或 Linux 系统:打开命令行窗口并执行如下命令:

curl -sS http://install.phpcomposer.com/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Windows 系统:请在命令行中执行如下命令:

mkdir C:\bin

cd C:\bin

php -r "readfile('http://install.phpcomposer.com/installer');" | php

echo @php "%~dp0composer.phar" %*>composer.bat

上述命令执行成功之后再将 C:\bin 路径加入 PATH 环境变量即可。最后重新打开一个命令行窗口试一试执行 composer --version 看看是否正确输出版本号,例如:

Composer version 1.0-dev (cd21505c8d58499a9b4d38573881cfec49c51ffd) 2016-01-27 13:04:22


你可以执行这些命令让 composer 在你的系统中进行全局调用:

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

mv composer.phar /usr/bin/composer(设置全局,如果只是针对某个项目使用composer,可忽略此步)

注意: 如果上诉命令因为权限执行失败, 请使用 sudo 再次尝试运行 mv 那行命令。

现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar。

例如:

运行php composer.phar -v 或则 composer -v (局部和全局命令)


3.在Windows环境下Composer


使用安装程序

这是将 Composer 安装在你机器上的最简单的方法。

1.先下载Composer-Setup.exehttps://getcomposer.org/download/  ),下载地址:下载Composer 。会自动搜索PHP.exe的安装路径,如果没有,就手动找到php路径下的php.exe。

2.在PHP目录下,打开php.ini文件,开启openssl扩展。去掉extension=php_openssl.dll前面的分号(;)

3.把php目录添加到环境变量(和php.exe同级目录的路径)例如:D:\apache_php\php添加到环境变量path里。

4.下载composer.phar,下载地址:Composer.phar 。将composer.phar文件放入php目录下,在php目录下新建一个文件composer.cmd,内容写成:@php "%~dp0composer.phar" %*保存。运行这个文件,然后打开cmd运行:composer 会出现

201804111115189.jpg


手动安装

设置系统的环境变量 PATH 并运行安装命令下载 composer.phar 文件:

C:\Users\username>cd C:\bin

C:\bin>php -r "readfile('https://getcomposer.org/installer');" | php

注意: 如果收到 readfile 错误提示,请使用 http 链接或者在 php.ini 中开启 php_openssl.dll

在 composer.phar 同级目录下新建文件 composer.bat :

C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat

关闭当前的命令行窗口,打开新的命令行窗口进行测试:

C:\Users\username>composer -V

Composer version 27d8904


4.镜像说明

通过官方途径安装 composer 时,默认是通过 https 协议从 getcomposer.org 网站下载 composer.phar 文件,但是由于众所周知的原因,安装过程很痛苦。

“Composer 中国镜像”是在 composer 源码的基础上重新编译 composer.phar 文件,并通过国内的 CDN 对下载进行加速。另外,为了保证使用最新版本的 composer ,开发者需要经常执行 composer selfupdate命令来更新 composer,所以,我们将 composer 的更新源也替换成了本镜像,这样就能让整个 composer 的使用过程更舒心了!

//切换国内镜像(如果上文安装composer下载太慢可以切换镜像)

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


提示:不要忘了经常执行composer self-update 以保持 composer 一直是最新版本哦!


三、Composer的简单使用


composer架构原理

20160327202140832.jpg

composer的原理和其他的包管理工具都是一样的,只是实现的细节有些不同,例如yum,例如brew,例如apt-get还有packets。

composer管理的原理上图已经表达的非常的清楚了,通过上图我们应该知道如何正确的使用composer了吧


如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道composer是什么了。没错,它就是PHP里快速安装类库的。平时,我们安装一个PHP类库,需要搜索->下载;使用composer,我们只要知道包名,直接composer insatll就可以了。


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

php composer.phar

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

20181026143148.png

composer所有命令行https://docs.phpcomposer.com/03-cli.html 

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

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


1.把本地项目推到远程(如git)作为composer的资源包

作为composer的资源包必须要有个composer.json文件,该文件包含了项目的依赖和其它的一些元数据,可通过composer命令(http://docs.phpcomposer.com/03-cli.html#init  ):

composer init 按照提示来自动生成。

composer.json架构https://docs.phpcomposer.com/04-schema.html 

一个composer.json 格式如下:

{
    "name": "gaodun/phpredis",
    "description": "php redis extension",
    "authors": [
        {
            "name": "eric.wang",
            "email": "eric.wang@gaodun.com"
        }
    ],
    "autoload":{
        "psr-4": {"gaodun\\phpredis\\": "src/"}
    },
    "require": {}
}

其中参数autoload 用于自动加载。用于命名空间到目录的映射。此处表示 gaodun\phpredis\ 命名空间会映射到 该库的src目录 下。 例如 gaodun\phpredis\Cache  就表示存在 src/Cache.php  类。

· 执行init命令时必须要在项目的根目录,因为composer.json文件必须要在项目的根目录才可以。

注意:包名参数(name)一定不要随意填写,因为安装包的时候composer是根据这个包名来生成目录名的。

如:https://github.com/ter987/phpredis


详细的composer.json配置文件说明请参考文章:https://ittxx.cn/view/136


2.安装远程资源包到本地项目

编辑本地项目根目录的composer.json 文件 ,写入要安装的库的参数,如:

{
    "require": {
        "gaodun/phpredis": "dev-master"
    },
    "repositories": [
    {
        "type": "git",
        "url":  "https://github.com/ter987/phpredis.git"
    }
    ]
}

注意:composer 默认是从packagist中获取资源包的,如果要从别的地方获取资源包,需要指定repositories 参数

然后在本地项目根目录执行命令:

composer install 

如果提示:

D:\xampp\htdocs\e.gaodun.com>composer install

Loading composer repositories with package information

Installing dependencies (including require-dev) from lock file

Warning: The lock file is not up to date with the latest changes in composer.jso

n. You may be getting outdated dependencies. Run update to update them.

Nothing to install or update

Generating autoload files

执行命令

composer update --lock

即可成功安装远程资源包到本地。


2.更新库

更新所有库:

composer update 

如果要更新单个库,打开composer.lock文件看下具体的库名,然后:

composer update [库名]


参考:

https://www.phpcomposer.com/5-features-to-know-about-composer-php/ 

https://pkg.phpcomposer.com/


好了,关于composer的使用还有什么不明白的地方请参考composer中文文档-基本用法:

https://docs.phpcomposer.com/01-basic-usage.html 


转载请注明: ITTXX.CN--分享互联网 » Composer 的简介、安装及使用详解

最后更新:2021-07-05 17:11:47

赞 (5) or 分享 ()
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽