composer note

简介

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

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

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

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

  1. {
  2. "require": {
  3. "monolog/monolog": "1.2.*"
  4. }
  5. }

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

安装

windows下安装 composer

  • 自动安装

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

  • 手动安装

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

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

使用

  1. 下载依赖库

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

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

    1. require __DIR__ . '/verdor/autoload.php'

;


;

composer基本用法

1. composer.json

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

composer.json 示例:

  1. {
  2. "require": {
  3. "monolog/monolog": "1.0.*" // verdorName/projectName: version
  4. }
  5. }

包的版本号:

  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文件描述的依赖安装到项目中

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

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

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

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

packagist

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

autoload.php

  1. require 'vendor/autoload.php';
  2. //这里可以直接使用依赖,不必理会依赖到底在哪里
  3. //autoload.php负责帮我们找到并加载依赖
  4. $log = new Monolog\Logger('name');
  5. $log->pushHandler(new Monolog\Handler\StreamHandler('app.log',Monolog\Logger::WARNING);
  6. //...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. IE下的bug

    断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决 ,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1 ...

  2. cocos2dx3.3在Windows环境搭建以及新工程创建

    这个虽然比较简单,但是是学习cocos的第一步,不积跬步无以至千里,所以今天先分享Windows下环境搭建问题.关于mac搭建后续有机会在写(ps:因为我暂时没有mac),anyway,开始吧! 首先 ...

  3. JSP基础——关于中文乱码问题

    乱码问题十分烦人,今天在写一个登陆的demo时,表单中需要提交的中文姓名,如下代码 <form action="success.jsp" name="success ...

  4. OC语法7——内存管理之@property参数

    @property的参数: 我们已经知道为了给开发者提供便捷,OC提供了@porperty关键字,它可以自动生成属性的set和get方法. 但是我们又知道,在OC中还面临者对象内存管理的问题,而且我们 ...

  5. Git存储用户名和密码(明文需谨慎)

    当你配置好git后,在C:\Documents and Settings\Administrator\ 目录下有一个 .gitconfig 的文件,里面会有你先前配好的name 和email,只需在下 ...

  6. spoj COT2 - Count on a tree II 树上莫队

    题目链接 http://codeforces.com/blog/entry/43230树上莫队从这里学的,  受益匪浅.. #include <iostream> #include < ...

  7. VS Code调试.NET Core

    VS Code调试.NET Core应用遇到的坑 为什么会有”坑“ 博客园里有好多介绍怎么使用VS Code以及调试.NET Core的文章,但是都是基于直接构建Asp.Net Core Mvc单项目 ...

  8. ORACLE视图添加备注

    ORACLE视图添加备注 版权声明:本文为博主原创文章,未经博主允许不得转载. create or replace view oes_material_series_ref as select t.p ...

  9. Oracle EBS-SQL (SYS-10):锁定表查询.sql

    /*死锁查询-1*/ SELECT o.object_name, l.session_id,l.process, l.locked_mode FROM v$locked_object l , dba_ ...

  10. Javascript 装载和执行

    http://coolshell.cn/articles/9749.html http://www.cnblogs.com/cheche/archive/2011/03/06/1971955.html