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. Struts2返回Json数据(使用Struts2插件)

    这篇我将介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据. 一.其中主要步骤有: 1.将struts2-json-plugin.jar插件拷贝到项目的&q ...

  2. lightoj 1104 Birthday Paradox

    题意:给定一个一年的天数,求最少多少人可以使至少两人生日同一天的概率不少于0.5. 用二分去做.检验一个数是否符合时,刚开始实用普通的方法,直接计算,超时了~~,上网搜了一下代码,一位大神使用一个数组 ...

  3. light oj 1027 A Dangerous Maze

    一道数学期望题,唉唉,概率论学的不好啊~~ 求走出迷宫的期望时间. 由于有的门会回到起点,所以有可能会走很多遍,设能走出去的门的个数为n1,总的个数为n,那么一次走出去的概率为n1/n,走一次的用的平 ...

  4. Java提高学习之Object(2)

    Equality 问:euqals()函数是用来做什么的? 答:equals()函数可以用来检查一个对象与调用这个equals()的这个对象是否相等. 问:为什么不用“==”运算符来判断两个对象是否相 ...

  5. java.util.Random 类的 nextInt(int num )

    随机产生3个67~295的整数并找出数值居中的数 并输出中间的数例如:100,225和200,输出200 要随机产生某个范围内的整数,用 java.util.Random 类的 nextInt(int ...

  6. response妙用

    1.弹框提示信息 response.getWriter().print("<script>alert('文件不存在或已删除!');</script>"); ...

  7. 【转】 UIButton上使用UIEdgeInsetsMaketitle跟图片对齐

    [转]http://blog.csdn.net/yanxiaoqing/article/details/7230660 默认情况下,不设置的效果,都使居中现实,button为150*150 使用以下设 ...

  8. FPC Trace Pattern Layout Design Notices (軟板線路設計注意事項)

    整理了一些軟板(FPCB/Flex Cable)製造廠關於線路設計的要求 (Design Guide)以避免應用上的品質問題. 1.Relationship between Through Hole, ...

  9. 提高Delphi的编译速度(bpl和bcp)

    delphi的编译速度提高(一) 此博文为原创,转载请注明出处 作者 :二娃 此博文的内容我曾经回答群内和论坛内的网友提问时回答过,现在写第一部分,第二部分,我再给出一个终极的提高速度的方法 我用过d ...

  10. android在桌面弹出一个窗口

    android在桌面弹出一个窗口 遇到了这种需求,要和iPhone一样的效果. 下面是简单实现功能,优化和美化部分,有时间慢慢搞. 方法应该有不少吧,我用的是弹出一个activity,将这个activ ...