资讯专栏INFORMATION COLUMN

composer

Miyang / 2420人阅读

摘要:自动加载为了实现类的随取随用,类的命名空间定义建议遵从一定的规则。这种规则可以是某一项目组约定的。不过为了使得类库统一,项目指定了一种命名空间的规范,被一些流行项目采用。用来指定在软件包级别上区别。注意默认类库是使用规范自动加载的。

简介

composer是一个php中管理依赖的工具。它使你可以在项目中声明用到的包/库,之后它会自动安装相关包。

Composer is not a package manager. Yes, it deals with "packages" or libraries, but it manages them on a per-project basis, installing them in a directory (e.g. vendor) inside your project. By default it will never install anything globally. Thus, it is a dependency manager.

Composer不是包管理器,但它基于项目来处理包和库,把它们安装在你项目的某文件夹里(vendor)。

Declaring dependencies#

声明依赖

Let"s say you are creating a project, and you need a library that does logging. You decide to use monolog. In order to add it to your project, all you need to do is create a composer.json file which describes the project"s dependencies.

如果你项目中需要monolog,为了把它加到你的项目中,你需要建一个composer.json文件,并在其中描述依赖。
{
"require": {
"monolog/monolog": "1.2.*"
}
}

这样我们便添加了对monolog这个库的引用。没错,就是这样简单。不过,你还需要使用composer来为你更新依赖包,打开你的Shell,切换到项目目录下执行:

composer install
这时,Composer便自动从互联网上更新指定依赖的库了。你会发现你的项目文件夹里面多了一个vendor文件夹,那就是依赖库包了。

接下来,你需要在你的系统的公共入口文件中引用自动加载器,以便自动加载类:

require "vendor/autoload.php";

安装

上面的例子让大家对composer的使用有了一个大概的认识。下面将向大家介绍如何在PHP环境中安装composer。

Unix/Linux/OSX环境

很幸运,利用Unix Like环境安装composer是一件很简单的事情。只需要一行命令:

curl -sS https://getcomposer.org/installer | php
此时会为你在当前工作目录安装composer.phar文件,使用php composer.phar即可运行。当然,你可能更想让composer变成像其他一样的Unix命令,很简单,只需要再加一步:

mv composer.phar /usr/local/bin/composer
注意,在权限受限的系统上,你可能需要使用sudo命令来提升至管理员账号执行。

这时,你就可以像例子里面那样使用composer了。

Windows环境

Composer官方推荐使用安装包进行安装,据说下载Composer-Setup.exe这个即可用向导模式安装。

关于手工安装的方法,请参考http://getcomposer.org/doc/00-intro.md的介绍吧。

自动加载

为了实现PHP类的随取随用,类的命名空间定义建议遵从一定的规则。这种规则可以是某一项目组约定的。不过为了使得类库统一,PHP-FIG项目指 定了一种PHP命名空间的规范PSR-0,被一些流行PHP项目采用。Composer支持这种规范的类库自动装载器,只需要向 composer.json文件中添加autoload节点即可:

{
"autoload": {
"psr-0": {"Acme": "src/"}
}
}
关于PSR-0规范,有这么几点重要的要求:

命名空间规范参考:()*
每个namespace需要一个顶层空间,即vendor name。用来指定在软件包级别上区别。
命名空间和PHP文件的路径是一一对应的,最终命名空间分隔符会被转为DIRECTORY_SEPARATOR
文件名必须为类名.php
关于这个规范,可以参考http://blog.mosil.biz/2012/08/psr-0-autoloading-standard/这篇文章。有关PSR-0的更多内容,可以参考他们的官方网站:https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

注意,修改了autoload后,要重新使用composer install。

注意:composer默认类库是使用PSR-0规范自动加载的。所以一般无需额外配置。

查找所需类库

composer提供了一个类库的“商店”,在这里,你可以立即找到想要使用的开源类库包,然后把他们添加到你的项目中即可。传送门:https://packagist.org/

打包自己的类库

将自己的类库贡献给大家,首先需要为自己的类库设置打包信息(要首先保证自己的类库是利用composer管理的)。在composer.json文件中设置:

{
"name": "your-vendor-name/package-name",
"require": {
"php": ">=5.3.0",
"another-vendor/package": "1.*"
}
}
然后就可以前去https://packagist.org/提交你的类库了。

关于composer的更多信息,可以参考:

快速入门:http://getcomposer.org/doc/00-intro.md

文档:http://getcomposer.org/doc/

包列表:https://packagist.org/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20813.html

相关文章

  • composer安装与使用

    摘要:简介是用来管理依赖关系的工具。你可以在自己的项目中声明所依赖的外部工具库,会帮你安装这些依赖的库文件。会找出哪个版本的包需要安装,并安装它们将它们下载到你的项目中。在安装目录下新建一个文件,并将下列代码保存到此文件中。 composer简介 composer是PHP用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Com...

    Jensen 评论0 收藏0
  • composer 的安装、升级和卸载

    摘要:你可以在自己的项目中声明所依赖的外部工具库,会帮你安装这些依赖的库文件。的出现,大大提升了的逼格。见例单个项目配置将配置信息添加到某个项目的文件中。如果是安装的话,直接用就可以查看已安装的的位置了。 Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。...

    neu 评论0 收藏0
  • PHP回顾之创建自己的Composer

    摘要:想要更好的利用协同工作,学会创建自己的包是一项必不可少的技能。编辑项目的或,增加一项配置,例如以上配置使用中国全量镜像网站作为默认中央仓库。创建自己的包创建一个包只需两步填写包描述信息写代码。通过简单两步,我们创建的自己的包。 转载请注明文章出处:https://tlanyan.me/php-review... PHP回顾系列目录 PHP基础 web请求 cookie web响应 ...

    KoreyLee 评论0 收藏0
  • php-composer的安装与使用方法(简化版)

    摘要:中文网系统要求运行需要以上版本。注中的路径为相对于的路径这个时候,你就可以调用你自己编写的函数库或者类库了注本文内容参考了中文网,后续还会更新其它的实用功能 1.简介 Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。《Composer 中文网》 2.系统要求 运行 Composer 需要 PHP 5.3.2+ 以上版本。C...

    mikasa 评论0 收藏0
  • Composer简明教程

    摘要:简明教程是的一个依赖管理工具。根据当前目录下的文件来安装依赖代码库。的资源官网英文安装包列表英文中文网中文中国全量镜像中文欢迎修正上的原文链接欢迎在上本项目或通过提供修正建议。 Composer简明教程 Composer是PHP的一个依赖管理工具。 使用和安装Composer,请确保已正确安装PHP(版本5.3.2+),并且设置了PHP的环境变量(就是使用命令 php -v可以显示出...

    cc17 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<