PHP Composer 是什么技术?

如果你是个程序员,很可能你会发现技术更新的轮子转得让你跟不上,比如用户认证、数据库管理、路由等技术。PHP里有很多很成熟的框架来处理这些问题,于是你会认为这些框架使用起来应该很容易,不是吗?

如果你现在手动的安装使用 Zend, 或 LaravelSymfony,你会发现并不是一件容易的事情,每种技术都有自己的各种依赖包,于是最终事情搞得的一团糟。

这个时候 Composer 的作用就出现了。Composer 是PHP的一个依赖管理工具。它能管理你的PHP项目所需要的所有依赖关系。也就是说,Composer 会将你的PHP项目需要的所有代码库、依赖项从网上全部拉取下来,放到一起进行管理。

这种针对项目的依赖管理方式并不是一种新的概念,事实上,Composer 是受到了 npmNode.jsBundlerRuby 的启发。

相信你应该对 PEAR 有所了解。PEAR 是一种很多年前就有的 PHP 库管理工具。然而,很多程序员并不喜欢使用 PEAR,有很多原因,首先,它过时了,其次,PEAR 要求你安装整个系统,而不是根据每个项目来安装。也就是说,如果你有一个项目对一个稍微有点旧的库有依赖,事情就麻烦了。要想了解更多的关于PHP包管理工具的历史,可以去阅读 Packages: The Way Forward for PHP 这篇文章。

如何安装 Composer

Composer 的安装十分简单,几行命令就能完成。我使用OS X,但对于任何的 *nix 系统而言都是一样的。

请打开命令行窗口,运行下面的命令:

$ curl -s https://getcomposer.org/installer | php  
$ sudo mv composer.phar /usr/local/bin/composer  

第一行命令是将 composer.phar 文件下载到你的电脑里。第二行命令是将 composer.phar 文件移动到你的bin目录里,这样你就可以在计算机里全局访问它。

现在运行下面这个命令:


$ composer  

如果你成功了安装了 Composer ,这个命令会返回给你一个有效的命令参数清单,以及使用描述。

如何在Windows上安装 Composer

如果你想在Windows系统里安装Composer,可以在官方网站上寻找安装方法,http://getcomposer.org/

如何使用 Composer?

现在,Composer已经安装到我们的电脑里了,我们可以开始用它导入项目中需要的代码库了。Composer需要一个配置文件,是一个JSON文件,我们把它放到项目的根目录里。

比如,如果我们要使用Slim Framework,可以创建下面的 composer.json 文件:

{  
"require": {  
"slim/slim": "2.*"  
}  
}  

想通过Composer安装 Slim,你只需要简单的使用下面的命令:

 $ composer install  
 

现在Slim会自动的下载下来,并且安装到 vendor/slim/slim 目录下。

是不是很简单!

自动加载

现在,假设你的项目依赖很多不同的代码库,你希望能够自动的加载这些库。幸运的是,Composer 里有一个能够执行这种任务的文件,它能够把你的项目所有依赖的库都自动的下载到项目里。

想要使用 Composer 的自动加载器,只需要在相对的index文件或启动文件里include一行:

 require ‘vendor/autoload.php’;  

这样一来,在项目里添加新的依赖包时就不用担心了。

例如:

// Autoload  
require ‘vendor/autoload.php’;

// 实例或 Slim 应用  
$app = new \Slim\Slim();

// 定义 HTTP GET 路径 
$app->get(‘/hello/:name’, function ($name) {  
echo "Hello, $name";  
});

// 运行 Slim 应用  
$app->run();  

结论

在PHP项目里使用包管理工具是正确的方向。像Ruby这样的编程语言已经向我们展示了在项目里使用依赖关系管理工具的方便,节省了大量开发者的开发配置时间。

大量的流行框架也开始引用 Composer,有更多的开发者在自己的项目里使用 Composer。

作为一个PHP开发者,Composer 会是你的最佳拍档,随着使用率的增加,Composer必将成为PHP的基础库。

随着像Composer这样的好工具的增加,PHP也会变得越来越好用。Composer已经为PHP社区解决了很多大问题,我们没有理由还拒绝去使用它。

阅读余下内容
 

发表评论

电子邮件地址不会被公开。 必填项已用*标注


京ICP备12002735号