PHP新概念包管理器Packagist

几乎每种语言都有包管理器。Java有Maven,Python有easy_install,Ruby有gem,Nodejs有npm。说到PHP当然也有PEAR,但我一直认为PEAR是设计最烂的一个包管理器:依赖处理不到位、配置复杂、命令行难用,有时候还会报错。一直期待有个新的包管理器,甚至想自己写一个(可能不太现实,但想写的心早有了)。 Packagist(http://packagist.org/)被我发现了,这个包管理器符合我对包管理的需求,使用起来非常简单,而且是开源的,并且可以很方便的提交自己的包,只需要开通帐号即可。但这篇文章将主要介绍使用的方法。

定义依赖关系

在你的应用程序根目录创建一个文件composer.json,就可以开始写依赖关系了。写法非常简单:
{
    "require": {
        "vendor/package": "1.3.2",
        "vendor/package2": "1.*",
        "vendor/package3": ">=2.0.3"
    }
}

安装Packagist

如果你是Linux开发一个命令行就搞定了
curl -s http://getcomposer.org/installer | php

安装依赖包

依然是执行一条命令即可
php composer.phar install

自动加载依赖

如果你使用的库采用了PSR-0标准(为了方便加载而定义一种命名和路径的映射规范),那么只需要使用Packagist提供的自动加载即可处理所有依赖。
require 'vendor/autoload.php';

写在最后

已经有很多有名的PHP库已经在Packagist了,可以去浏览一下。Packagist的一切都是开源的,你可以从仓库找到它

延伸阅读

Maven被很多开发者认为是比较好用的包管理器,也有PHP爱好者开发了PHP版本,喜欢尝试的同学可以去看一下,Maven 4 PHP

Comments