PHP 的依赖管理工具 Composer 1

发布于 2023-10-25 01:18:48 字数 2597 浏览 29 评论 0

无论是在系统中,还是在高级编程语言中,依赖管理工具都扮演着重要的角色,因为它极大地提高了我们的开发效率。

Ubuntu 有 apt-get,Python 有 pip,Node.js 有 npm,PHP 呢?

PHP 有 Composer。 最近一个项目需要,重新拿起 PHP 来编写程序开发。为了提高开发效率,尝试用 Laravel 框架进行开发,学一下新东西。近期应该会整理多一些文章。

Composer 是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

Laravel 框架的功能部分是基于 Composer,了解一下 Composer 对框架的学习与使用有一定的帮助。

总结一下自己使用 Composer 的过程与查阅的参考资料。

一种工具能解决某些具体的问题的属性。比如尺子能解决测量长度的问题。Composer 将这样为你解决问题:

  • 问题:你有一个项目依赖于若干个库,其中一些库依赖于其他库。
  • 方法:你声明你所依赖的东西。
  • 解决:Composer 会根据你的声明,找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)。

安装

测试环境:Ubuntu-14.04 + LAMP,全局安装,把 composer.phar 放在 PATH 中,这样就可以全局访问它了,在类 Unix 系统中,在使用时可以不加 php 前缀。

执行下面两条命令即可:

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

查看 Composer 版本号:

$ composer -V
Composer version 1.1.1 2016-05-17 12:25:44

Composer 工具安装完成!

使用

上面提到 Composer 解决问题的步骤 abc,细化这些步骤:

问题:你正在创建一个项目,你需要一个库来做日志记录。你决定使用 monolog 第三方库,将它添加到你的项目中。

$ mkdir MyProject
$ cd MyProject/

 

方法:创建一个 composer.json 文件,其中描述了项目的依赖关系。

$ vim composer.json
{
    "require": {
        "monolog/monolog": "1.2.*"
    }
}

composer.json 指出项目需要一些 monolog/monolog 的包,从 1.2 开始的任何版本。

 

解决:使用 composer install 命令,解决和下载依赖。

$ composer install
$ ls
composer.json  composer.lock  vendor

可以看到,MyProject 的文件中多了一个文件 composer.lock 和一个文件夹 vendorcomposer.lock 文件的作用是锁定项目的版本。 vendor 文件夹中包含了 composer.json 中指定的依赖 monolog 库文件和自动加载这些库文件的自动加载文件。依赖关系解决了,下面来看看具体如何在程序中使用 monolog 的功能。
在 MyProject 文件夹下新建 app.php 文件。里面的代码如下:

<?php
require 'vendor/autoload.php';
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');

执行这段代码

$ php app.php

没有报错,产生一个 app.log 的文件,这样,第三方库引用就成功了。

参考

  1. Composer 中文文档
  2. composer.lock - 锁文件

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

标点

暂无简介

文章
评论
28 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文