composer:php的依赖管理工具
phpcomposer
PHP 5.3.2+
Composer 不是一个包管理器,但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。
overview
curl -sS https://getcomposer.org/installer | php
解决和下载依赖,请执行 install 命令:
php composer.phar install
自动加载:Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中。
require 'vendor/autoload.php';
使用
项目安装
在你的项目中使用 Composer,你只需要一个composer.json
文件。该文件包含了项目的依赖和其它的一些元数据。
{"require": {"monolog/monolog": "1.0.*"}
}
包名称
由供应商名称和其项目名称构成。
包版本
约束方法:
- 确切的版本号 1.0.2
- 范围
通过使用比较操作符可以指定有效的版本范围。
有效的运算符:>、>=、<、<=、!=。
你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号|将作为逻辑OR处理。
AND 的优先级高于 OR。
>=1.0
>=1.0,<2.0
>=1.0,<1.1|>=1.2
- 通配符 1.0.*
- 赋值运算符 ~1.2
~1.2相当于>=1.2,<2.0
~1.2.3 相当于 >=1.2.3,<1.3
默认情况下只有稳定的发行版才会被考虑在内。如果你也想获得 RC、beta、alpha 或 dev 版本,你可以使用 稳定标志。你可以对所有的包做 最小稳定性 设置,而不是每个依赖逐一设置。
安装依赖包
php composer.phar install
这将会找到 monolog/monolog 的最新版本,并将它下载到 vendor 目录。 这是一个惯例把第三方的代码到一个指定的目录 vendor。如果是 monolog 将会创建 vendor/monolog/monolog 目录。
install 命令将创建一个 composer.lock 文件到你项目的根目录中。
tips:如果你正在使用Git来管理你的项目, 你可能要添加 vendor 到你的 .gitignore 文件中。 你不会希望将所有的代码都添加到你的版本库中。
composer.lock - 锁文件
在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定该项目的特定版本。
请提交你应用程序的 composer.lock (包括 composer.json)到你的版本库中。
install 命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义)。
lock后要更新你的依赖版本请使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新进锁文件。
php composer.phar update
选择更新:
php composer.phar update monolog/monolog [...]
更新自己:
composer selfupdate
Packagist
packagist 是 Composer 的主要资源库。
访问 packagist website (packagist.org),你可以浏览和搜索资源包。
自动加载
库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件。
require 'vendor/autoload.php';
这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 monolog,你就可以像这样开始使用这个类库,并且他们将被自动加载。
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));$log->addWarning('Foo');
使用国内的镜像
系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。见“方法一”
单个项目配置: 将配置信息添加到某个项目的 composer.json 文件中。见“方法二”
方法一: 修改 composer 的全局配置文件
composer config -g repo.packagist composer https://packagist.phpcomposer.com
方法二: 修改当前项目的 composer.json 配置文件:
进入项目根目录(也就是 composer.json 文件所在目录),执行如下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(你也可以自己手工添加):
"repositories": {"packagist": {"type": "composer","url": "https://packagist.phpcomposer.com"}
}
转载于:https://www.cnblogs.com/jcuan/p/6013564.html
composer:php的依赖管理工具相关推荐
- PHP依赖管理工具Composer配置安装及基本使用
一.介绍 Composer是PHP中的一个依赖管理工具. 它可以让你声明自己项目所依赖的库,然后它将会在项目中为你安装这些库.就像是node的npm和ruby的bundler差不多. 二.window ...
- window下PHP依赖管理工具Composer的安装与使用
一.什么是Composer? Composer 是 PHP 的一个依赖管理工具.我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个 ...
- linux go vendor目录,Go 包依赖管理工具 —— govendor
govendor 是一个基于 vendor 机制实现的 Go 包依赖管理命令行工具.与原生 vendor 无侵入性融合,也支持从其他依赖管理工具迁移,可以很方便的实现同一个包在不同项目中不同版本.以及 ...
- go build不从本地gopath获取_跟我一起学习go语言,包依赖管理工具go mod
Go Module是Go会在1.12中正式推出的包管理机制. Go mod 简介 Golang一直存在一个被人诟病的问题是缺少一个官方的包依赖管理工具.从我个人的角度上来看存在两个问题: GOPATH ...
- go之官方依赖管理工具dep安装和使用
前言 大家都知道go没有一个自己的包管理平台.社区里go的第三方包托管在各个git托管平台.需要用到包时通过go get 命令工具安装,但这个工具没有版本描述性文件,在go的世界里没有"pa ...
- GoLand2021使用包依赖管理工具 Go Modules
GoLand2021使用包依赖管理工具 文章目录 GoLand2021使用包依赖管理工具 前言 一.创建空项目 二.配置项目的GOPATH 1.设置GOPATH目录 三.使用 Go Modules 1 ...
- golang 官方依赖管理工具 dep 使用和持续集成
介绍 go dep 依赖管理工具是为应用管理代码的,go get是为GOPATH管理代码的 官方地址 官方说明为啥要统一依赖管理 dep 需要在Go 1.7及更高的版本中使用 安装 本文使用 gola ...
- Golang依赖管理工具:glide从入门到精通使用
2019独角兽企业重金招聘Python工程师标准>>> 介绍 不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题.Java有牛逼轰轰的Maven和Gradle. G ...
- 安装Objective-C的依赖管理工具CocoaPods
CocoaPods--Swift 与 Objective-C 项目的依赖管理工具,iOS 开发者的必备技能.如果你没有任何 CocoaPods 经历,那么这篇短文就是为你而写.我们将会学到什么是 Co ...
- dep指定版本 go_Go依赖管理工具 - dep
Go依赖管理工具 Go dependency management tool 环境要求 Golang >= 1.9 Dep 目前版本: dep: version : devel build da ...
最新文章
- AI 岗位年薪下降 8.9%,程序员越“老”越吃香,最新薪酬报告发布!
- 纵深防御仍对付得了当今的网络威胁吗?
- GlusterFS架构与维护
- javascript函数式_如何以及为什么在现代JavaScript中使用函数式编程
- Chrome 100发布:全新图标,CPU、内存占用暴降!
- MySQL备份与恢复————用LVM快照恢复
- iGraph(Python)报错sh:open command not found的解决
- 【codevs2370】小机房的树,RMQ求LCA
- SDUT OJ 3403 数据结构实验之排序六:希尔排序
- 5月第3周回顾:08软考举行 中国遭大范围SQL注入***
- 速率法和终点法的区别_终点法 速率法 二点法
- oppo9s刷机教程_OPPOR9s线刷救砖教程及刷机包下载
- 工作十年的程序员,却拿着毕业三年的工资,再不开窍就真晚了!
- 移动端适配,华为浏览器底色无法正常显示
- 树的四种遍历 先序 中序 后序 层次
- 使用MODBUS转PROFINET智能网关实现与多个温控器数据读写
- 你写的JSP就是JSP么?
- linux dd新建文件,linux dd命令 创造一个文件
- Android中使用Webview SSL 自签名CA证书安全校验方案
- 九州云亮相中国国际工业博览会 展出最新边缘计算技术
热门文章
- scala 主构造器_Scala主构造器深度
- c++基础:继承与组合!
- HTTPS 会变成跟踪功能
- Netty 5.X 官方指南翻译版4
- 串口扫盲十三:接口技术的基本知识
- 网站内部的基本SEO优化
- Type is unsupported, or the types of the items don‘t match field type in CollectionDef.
- C# Programming Study #2
- Leetcode-5063 Last Stone Weight(最后一块石头的重量)
- jQuery框架学习