Composer -- PHP 依赖管理的新时代

Composer – PHP 依赖管理的新时代

Composer 是 PHP 中的一个依赖管理工具. 它可以让你声明自己项目所依赖的库,然后它将会在项目中为你安装这些库。Composer 不是包管理器。是的,它实际上和”包”或者库打交道,但是它是以项目为单位进行管理,把它们安装到你项目中的一个目录(例如 vendor )。默认情况下它不会以全局的方式安装任何东西。因此,它是一个依赖管理器。

国内镜像

http://pkg.phpcomposer.com/

全局安装

Composer 需要 PHP 5.3.2+ 才能运行。
你可以把这个文件放到任何你想放的地方。如果你把它放到你的 PATH 中,你就可以全局访问它了。在类 unix 系统中你甚至可以使它可执行,并且调用的时候不需要 php。

1
2
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

然后,只需要执行 composer 命令来运行 Composer,而不是 php composer.phar。

Windows 安装

下载安装 https://getcomposer.org/Composer-Setup.exe
它将安装最新版本的 Composer ,并设置好系统的环境变量,因此你可以在任何目录下直接使用 composer 命令。

手动安装

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

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

详情请查看手册文档 点击查看

查看版本号

composer --version

保持 Composer 一直是最新版本

composer selfupdate

在 mac 中用命令行时用 sublime 打开文件

如果是在默认 shell 下
sudo ln -s "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl" /usr/bin/subl

使用 zsh 的可以使用以下命令
vi ~/.zshrc

1
2
3
alias subl="'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'"
alias nano="subl"
export EDITOR="subl"

source ~/.zshrc

声明依赖

创建一个文件夹 test
在项目目录下创建一个 composer.json 文件,指明依赖,比如,你的项目依赖 monolog:

1
2
3
4
5
{
"require" : {
"monolog/monolog" : "1.2.*"
}
}

安装依赖

安装依赖非常简单,只需在项目目录下运行:
composer install

自动加载

Composer 提供了自动加载的特性,只需在你的代码的初始化部分中加入下面一行:

1
require 'vendor/autoload.php';

列出所有可用的软件包

composer show

展示-参数

1
2
3
--installed (-i): 列出已安装的依赖包。
--platform (-p): 仅列出平台软件包(PHP 与它的扩展)。
--self (-s): 仅列出当前项目信息。

composer 常用命令

1
2
3
4
5
6
7
8
9
10
composer list  列出所有可用的命令
composer init 初始化 composer.json 文件(就不劳我们自己费力创建啦),会要求输入一些信息来描述我们当前的项目,还会要求输入依赖包
composer install 读取 composer.json 内容,解析依赖关系,安装依赖包到vendor目录下
composer update 更新最新的依赖关系到 compsoer.lock 文件,解析最新的依赖关系并且写入composer.lock文件
composer search packagename 搜索包,packagename 替换为你想查找的包名称
composer require packagename 添加对 packagename 的依赖,packagename 可修改为你想要的包名称
composer show packagename
composer self-update 更新 composer.phar 文件自身

composer command --help 以上所有命令都可以添加 --help选项查看帮助信息

更多命令行,请看 http://docs.phpcomposer.com/03-cli.html

更新 autoloader

比如在包中加入了一个新的类,需要执行 dump-autoload,而不必执行 install or update
composer dump-autoload

创建项目 create-project

composer create-project laravel/laravel

模块仓库

packagist.org 是 Composer 的仓库,很多著名的 PHP 库都能在其中找到。你也可以提交你自己的作品。

在 packagist 中提交项目

https://github.com/ 中上传项目:
在文件夹中创建 composer.json ,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"name": "yourname/demo",
"description": "this is a test",
"type": "project",
"license": "mit",
"authors": [
{
"name": "yourname",
"email": "yourname@126.com"
}
],
"minimum-stability": "dev",
"require": {}
}

当然你也可以直接 composer init 进行一步步填写

  1. 先登录
    submit

  2. 点击 submit 进行提交你在 github 上传好的项目链接
    login

composer 整合 github 实现自动推送

  • 先在 packagist 上获取 token
    token1

api

  • 再在 github 上你的项目上点击 settings
    setting

token

如果对您有用,请博主喝杯咖啡!

热评文章