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的依赖管理工具相关推荐

  1. PHP依赖管理工具Composer配置安装及基本使用

    一.介绍 Composer是PHP中的一个依赖管理工具. 它可以让你声明自己项目所依赖的库,然后它将会在项目中为你安装这些库.就像是node的npm和ruby的bundler差不多. 二.window ...

  2. window下PHP依赖管理工具Composer的安装与使用

    一.什么是Composer? Composer 是 PHP 的一个依赖管理工具.我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个 ...

  3. linux go vendor目录,Go 包依赖管理工具 —— govendor

    govendor 是一个基于 vendor 机制实现的 Go 包依赖管理命令行工具.与原生 vendor 无侵入性融合,也支持从其他依赖管理工具迁移,可以很方便的实现同一个包在不同项目中不同版本.以及 ...

  4. go build不从本地gopath获取_跟我一起学习go语言,包依赖管理工具go mod

    Go Module是Go会在1.12中正式推出的包管理机制. Go mod 简介 Golang一直存在一个被人诟病的问题是缺少一个官方的包依赖管理工具.从我个人的角度上来看存在两个问题: GOPATH ...

  5. go之官方依赖管理工具dep安装和使用

    前言 大家都知道go没有一个自己的包管理平台.社区里go的第三方包托管在各个git托管平台.需要用到包时通过go get 命令工具安装,但这个工具没有版本描述性文件,在go的世界里没有"pa ...

  6. GoLand2021使用包依赖管理工具 Go Modules

    GoLand2021使用包依赖管理工具 文章目录 GoLand2021使用包依赖管理工具 前言 一.创建空项目 二.配置项目的GOPATH 1.设置GOPATH目录 三.使用 Go Modules 1 ...

  7. golang 官方依赖管理工具 dep 使用和持续集成

    介绍 go dep 依赖管理工具是为应用管理代码的,go get是为GOPATH管理代码的 官方地址 官方说明为啥要统一依赖管理 dep 需要在Go 1.7及更高的版本中使用 安装 本文使用 gola ...

  8. Golang依赖管理工具:glide从入门到精通使用

    2019独角兽企业重金招聘Python工程师标准>>> 介绍 不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题.Java有牛逼轰轰的Maven和Gradle. G ...

  9. 安装Objective-C的依赖管理工具CocoaPods

    CocoaPods--Swift 与 Objective-C 项目的依赖管理工具,iOS 开发者的必备技能.如果你没有任何 CocoaPods 经历,那么这篇短文就是为你而写.我们将会学到什么是 Co ...

  10. dep指定版本 go_Go依赖管理工具 - dep

    Go依赖管理工具 Go dependency management tool 环境要求 Golang >= 1.9 Dep 目前版本: dep: version : devel build da ...

最新文章

  1. AI 岗位年薪下降 8.9%,程序员越“老”越吃香,最新薪酬报告发布!
  2. 纵深防御仍对付得了当今的网络威胁吗?
  3. GlusterFS架构与维护
  4. javascript函数式_如何以及为什么在现代JavaScript中使用函数式编程
  5. Chrome 100发布:全新图标,CPU、内存占用暴降!
  6. MySQL备份与恢复————用LVM快照恢复
  7. iGraph(Python)报错sh:open command not found的解决
  8. 【codevs2370】小机房的树,RMQ求LCA
  9. SDUT OJ 3403 数据结构实验之排序六:希尔排序
  10. 5月第3周回顾:08软考举行 中国遭大范围SQL注入***
  11. 速率法和终点法的区别_终点法 速率法 二点法
  12. oppo9s刷机教程_OPPOR9s线刷救砖教程及刷机包下载
  13. 工作十年的程序员,却拿着毕业三年的工资,再不开窍就真晚了!
  14. 移动端适配,华为浏览器底色无法正常显示
  15. 树的四种遍历 先序 中序 后序 层次
  16. 使用MODBUS转PROFINET智能网关实现与多个温控器数据读写
  17. 你写的JSP就是JSP么?
  18. linux dd新建文件,linux dd命令 创造一个文件
  19. Android中使用Webview SSL 自签名CA证书安全校验方案
  20. 九州云亮相中国国际工业博览会 展出最新边缘计算技术

热门文章

  1. scala 主构造器_Scala主构造器深度
  2. c++基础:继承与组合!
  3. HTTPS 会变成跟踪功能
  4. Netty 5.X 官方指南翻译版4
  5. 串口扫盲十三:接口技术的基本知识
  6. 网站内部的基本SEO优化
  7. Type is unsupported, or the types of the items don‘t match field type in CollectionDef.
  8. C# Programming Study #2
  9. Leetcode-5063 Last Stone Weight(最后一块石头的重量)
  10. jQuery框架学习