composer api 参考
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
使用
下载依赖库
//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.0.2
- 比较运算符表示版本范围 如: >=1.0 >=1.0 <2.0(空格或,表示and) >=1.0 <1.1 || >1.2(||表示or)
- 破折号表示版本范围 如: 1.0 - 2.0 等价于(>=1.0.0 <2.1) 等价于( 1.0.* - 2.0.*)
- 用通配符表示版本范围 如: 1.0.* 等价于(>=1.0.0 <1.1)
- 波浪线表示版本范围 如: ~1.2 等价于(>=1.2 <2.0) ~1.2.3 等价于(>=1.2.3 <1.3.0)
- 脱字符表示范围 如: ^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 参考的更多相关文章
- Google地图接口API之Google地图 API 参考手册(七)
Google 地图API 参考手册 地图 构造函数/对象 描述 Map() 在指定的 HTML 容器中创建新的地图,该容器通常是一个DIV元素. 叠加层 构造函数/对象 描述 Marker 创建一个标 ...
- Google Chart API 参考 中文版
Google Chart API 参考 中文版 文档信息 翻译: Cloudream ,最后修改:02/22/2008 06:11:08 英文版版权归 Google , 转载此中文版必须以链接形式注明 ...
- Zepto Api参考
zepto API参考 简介 Zepto是一个轻量级的针对现代高级浏览器的JavaScript库, 它与jquery有着类似的api. 如果你会用jquery,那么你也会用zepto. 设计目的 ze ...
- PJSUA2开发文档--第十二章 PJSUA2 API 参考手册
12 PJSUA2 API 参考手册 12.1 endpoint.hpp PJSUA2基本代理操作. namespace pj PJSUA2 API在pj命名空间内. 12.1.1 class En ...
- Dubbo -- 系统学习 笔记 -- API参考手册
Dubbo -- 系统学习 笔记 -- 目录 API参考手册 配置API 注解API 模型API 上下文API 服务API API参考手册 Dubbo的常规功能,都保持零侵入,但有些功能不得不用API ...
- nvGRAPH API参考分析(二)
nvGRAPH API参考分析(二) nvGRAPH Code Examples 本文提供了简单的示例. 1. nvGRAPH convert topology example void check( ...
- nvGRAPH API参考分析(一)
nvGRAPH API参考分析(一) 本文通过描述nvGRAPH库函数的输入/输出参数,数据类型和错误代码来指定其行为. 1. 返回值nvgraphStatus_t 除以下内容外,所有nvGRA ...
- Django,数据模型创建之数据库API参考(转载)
一旦 数据模型 创建完毕, 自然会有存取数据的需要.本文档介绍了由 models 衍生而来的数据库抽象API,及如何创建,得到及更新对象. 贯穿本参考, 我们都会引用下面的民意测验(Poll)应用程序 ...
- 阿里云API网关(7)开发指南-API参考
网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...
随机推荐
- ssh框架的搭建
SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层,以 ...
- c++标准库函数equal_range()
首先容器(vector)的中的元素是有序的.这里就不讲容器元素类型为内置的类型的用法,因为比较容易. 重点讲一下容器元素类型为自定义类型时的用法.当我们把自定义类型的数据成员的类型的值传给equal_ ...
- 创建、更新、删除文档。 --- Mongodb权威指南阅读。
插入文档: db.foo.insert({ "key" : "value"}); 使用insert插入一个数据,文档中如果没有_id 会自动给文档增加_id. ...
- PHP搭建简单暴力的mvc
对于一个web系统来说,我们使用mvc很必要, 给我们带来的是清晰的结构,易运维,易扩展, mvc 我对其的理解应该叫mxvc, 多了一个x , 这个x代表什么,x可以理解为 relay,proxy, ...
- std::string 字符替换函数
// 替换路径中所有“\”为“/” #include <algorithm> static std::string ConvertSlash(std::string& strUrl ...
- llinuxs介绍与常用命令
一.Linux系统概述1.计算机资源软件资源硬件资源操作系统2.操作系统WindowsMacOSLinuxUnix3.Linux含义狭义Linux:由Linus一段内核代码广义Linux:Linux厂 ...
- CSS自学笔记(2):CSS语法
CSS的语法规则主要有两个分构成选择器和声明(声明问一条或者多条). selector {declaration1; declaration2; ... declarationN } 选择器(selc ...
- ERROR 1062 (23000): Duplicate entry '1-1' for key 'PRIMARY'
这个错误是说,由于某个SQL操作造成了,表中主键重复. 例子: create table t(x int,y int,z int, primary key(x,y)); insert into t(x ...
- MDX笔记
为啥要写这一篇博客:之前断断续续的学习过MDX,也大致学会了基本语法,理解了基本用法,但是用的机会不多,到了真正用的时候,无从下手,十分尴尬!故此,将语法和基本用法温故总结,结合实例将MDX做个阶段性 ...
- PostgreSQL的存储系统二:REDOLOG文件存储结构二
REDOLOG文件里的用户数据和数据文件里的用户数据存储结构相同 几个月前同事给台湾一家公司培训<pg9 ad admin>时,有个学员提及WAL里记录的内容为Query时的SQL语句(比 ...