composer note

简介

composer 是php的依赖管理工具。可以声明项目所依赖的库,composer会帮我们安装上

composer 默认基于项目来管理和安装库(包),将依赖的库安装到项目的 vendor 文件夹中,默认地不全局安装任何库。

composer之于php, 类似 npm之于nodejs,bundler之于ruby

一个例子 composor.json 描述项目依赖的库

{
"require": {
"monolog/monolog": "1.2.*"
}
}

composer要求 php5.3.2+, 代码仓库(git/svn/hg)

安装

windows下安装 composer

  • 自动安装

    下载并运行 composer-setup.exe,将会安装composer并设置path

  • 手动安装

    切换到工作目录,然后执行以下命令下载composer.phar

      C:\bin>php -r "readfile('https://getcomposer.org/installer');" |php
    //C:\bin 在path设置中
    //创建快速启动的批处理文件
    C:\bin>echo @php -r "readfile('https://getcomposer.org/installer');" | php
    //打印版本号 验证是否成功安装
    C:\bin>composer -V

使用

  1. 下载依赖库

     //composer会查找 composer.json 文件,安装json文件描述的依赖
    php composer.phar install
    //若全局安装了 composer, 则可以执行下面的命令
    composer install //查看帮助
    php composer.phar -h
  • 自动加载依赖的库 autoload.php

    处理下载依赖库之外,composer同时提供了自动加载依赖库的功能. 如:

      require __DIR__ . '/verdor/autoload.php'

;


;

composer基本用法

1. composer.json

composer.json 描述了项目所依赖的库和其他元数据

composer.json 示例:

{
"require": {
"monolog/monolog": "1.0.*" // verdorName/projectName: version
}
}

包的版本号:

  1. 准确的版本号 如: 1.0.2
  2. 比较运算符表示版本范围 如: >=1.0 >=1.0 <2.0(空格或,表示and) >=1.0 <1.1 || >1.2(||表示or)
  3. 破折号表示版本范围 如: 1.0 - 2.0 等价于(>=1.0.0 <2.1) 等价于( 1.0.* - 2.0.*)
  4. 用通配符表示版本范围 如: 1.0.* 等价于(>=1.0.0 <1.1)
  5. 波浪线表示版本范围 如: ~1.2 等价于(>=1.2 <2.0) ~1.2.3 等价于(>=1.2.3 <1.3.0)
  6. 脱字符表示范围 如: ^1.2.3 等价于(>=1.2.3 <2.0)

注意: ~1.2.3 和 ^1.2.3 之间的差别

安装依赖:

把composer.json文件描述的依赖安装到项目中

//在命令行下 cd到 composer.json所在目录
php composer.phar install

安装完依赖之后,composer会将它所安装的确切的版本信息写入composer.lock文件中

composer.lock确保其他人安装时也是下载相同版本的依赖库

//更新依赖库并更新composer.lock文件
php composer.phar update
//只是更新其中1个依赖库 可以这样
php composer.phar update monolog/monolog

packagist

packagist是主要的composer代码仓库,简单的说就是镜像源。 packagist官网

autoload.php

require 'vendor/autoload.php';

//这里可以直接使用依赖,不必理会依赖到底在哪里
//autoload.php负责帮我们找到并加载依赖
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log',Monolog\Logger::WARNING);
//...stuff

composer api 参考的更多相关文章

  1. Google地图接口API之Google地图 API 参考手册(七)

    Google 地图API 参考手册 地图 构造函数/对象 描述 Map() 在指定的 HTML 容器中创建新的地图,该容器通常是一个DIV元素. 叠加层 构造函数/对象 描述 Marker 创建一个标 ...

  2. Google Chart API 参考 中文版

    Google Chart API 参考 中文版 文档信息 翻译: Cloudream ,最后修改:02/22/2008 06:11:08 英文版版权归 Google , 转载此中文版必须以链接形式注明 ...

  3. Zepto Api参考

    zepto API参考 简介 Zepto是一个轻量级的针对现代高级浏览器的JavaScript库, 它与jquery有着类似的api. 如果你会用jquery,那么你也会用zepto. 设计目的 ze ...

  4. PJSUA2开发文档--第十二章 PJSUA2 API 参考手册

    12 PJSUA2 API 参考手册 12.1 endpoint.hpp PJSUA2基本代理操作.  namespace pj PJSUA2 API在pj命名空间内. 12.1.1 class En ...

  5. Dubbo -- 系统学习 笔记 -- API参考手册

    Dubbo -- 系统学习 笔记 -- 目录 API参考手册 配置API 注解API 模型API 上下文API 服务API API参考手册 Dubbo的常规功能,都保持零侵入,但有些功能不得不用API ...

  6. nvGRAPH API参考分析(二)

    nvGRAPH API参考分析(二) nvGRAPH Code Examples 本文提供了简单的示例. 1. nvGRAPH convert topology example void check( ...

  7. nvGRAPH API参考分析(一)

    nvGRAPH API参考分析(一) 本文通过描述nvGRAPH库函数的输入/输出参数,数据类型和错误代码来指定其行为. 1.    返回值nvgraphStatus_t 除以下内容外,所有nvGRA ...

  8. Django,数据模型创建之数据库API参考(转载)

    一旦 数据模型 创建完毕, 自然会有存取数据的需要.本文档介绍了由 models 衍生而来的数据库抽象API,及如何创建,得到及更新对象. 贯穿本参考, 我们都会引用下面的民意测验(Poll)应用程序 ...

  9. 阿里云API网关(7)开发指南-API参考

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

随机推荐

  1. KVC和KVO

    OC中的一个比较有特色的知识点:KVC和KVO 一.KVC操作OC中的KVC操作就和Java中使用反射机制去访问类的private权限的变量,很暴力的,这样做就会破坏类的封装性,本来类中的的priva ...

  2. Linux程序设计 读笔2 Shell脚本

    第二章 Shell程序设计 四.管道和重定向 1 重定向输出 ls -l > lsoutput.txt ps >> lsoutput.txt >>表示附加到一个文件中 文 ...

  3. 在网页中使用javascript提供反馈信息

    一,使用document.write() 二,使用window方法,prompt(),alert()和confirm()   <html lang="en"> < ...

  4. U盘装centos7系统过程

    1. 使用最新版UltraISO将ISO镜像刻录到U盘 一定要是最新版,试用版都可以,按下图操作: 2. U盘启动电脑进入安装界面 正常情况下你应该会看到下面的这个界面: 选择第一项,然后按TAB键, ...

  5. Linux进程管理命令

    CentOS默认并没有安装上psmisc这个软件包,就是像pstree,fuser这类的命令就没有了.如果想要执行这些命令最好的方法就是手动的去安装它们 解决方法: yum -y install ps ...

  6. 以程序的方式操纵NTFS的文件权限

    Windows NT/2K/XP版本的操作系统都支持NTFS格式的文件系统,这是一个有安全性质的文件系统,你可以通过Windows的资源管理器来设置对每个目录和 文件的用户访问权限.这里我就不对NTF ...

  7. Linux LVM硬盘管理及LVM分区扩容

    LVM磁盘管理 一.LVM简介... 1 二. LVM基本术语... 2 三. 安装LVM... 3 四. 创建和管理LVM... 4 2. 创建PV.. 6 3. 创建VG.. 7 4. 创建LV. ...

  8. C++多线程编程(三)线程间通信

    多线程编程之三——线程间通讯 作者:韩耀旭 原文地址:http://www.vckbase.com/document/viewdoc/?id=1707 七.线程间通讯 一般而言,应用程序中的一个次要线 ...

  9. NOI2013 Day2

    NOI2013 Day2 矩阵游戏 题目描述:设矩阵\(F\) 求\(F[n][m](mod (10^9+7))\) solution: 这题可以求通项解决. 设\(X_i=F[i][m]\), \( ...

  10. centos6.5vpn搭建

    centos6.5vpn搭建整个搭建流程,服务端,客户端安装及测试. 达到的效果: 在安装vpn客户端的机器可通过vpn(virtual private network)专用线路(vpn主配置文件中定 ...