PHP的包依赖管理工具Composer简介

Composer的安装、镜像配置及试用 Composer 是一个 PHP 的依赖管理工具。我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个命令将其他人的优秀代码引用到我们的项目中来。 阅读详情
Composer是一个基于项目的依赖管理器,负责将PHP项目所依赖的包或库安装到项目所在的目录中,默认它不会安装任何数据到全局。它用于取代之前所使用的pear工具。

1 安装Composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

2 简单应用
我们只需要声明一个项目所依赖的包或库即可,此后其他的事情就由Composer来处理了。因此使用Composer最重要的就是在项目目录中编写composer.json配置文件。例如你有一个项目,需要依赖monolog,可以这样写composer.json文件:
{
    "require":
    {
        "monolog/monolog": "1.2.*"
    }
}
有了此文件后,在项目目录中执行composer install,即会在项目目录的vendor/目录下创建其所依赖的库。
另一方面,包含了composer.json的目录,也可以发布出去,让其他人通过composer进行安装。只需要在packagelist网站,把此包传上去即可。

3 配置文件说明

Composer使用json作为其配置文件的格式。在工程的根目录下composer.json所定义的包称为root包。在配置文件中有如下的属性。

3.1 require
格式为: "require":{"vendor-name/package-name":"version", ...}
名字部分会作为vendor下的路径进行创建
版本支持精确的版本号,也支持范围如>=1.0; >=1.0,<2.0; ","作为逻辑与,而"!"作为逻辑或的意思。示例中使用了通配符*
版本也支持tag或branch名称。
类似的有require-dev,前者用于声明项目发布版本的依赖包,后者用于声明项目开发或测试中依赖的包。

3.2 autoload

composer支持PSR-0,PSR-4,classmap及files包含以支持文件自动加载。PSR-4为推荐方式。

3.2.1 Files类型
格式:"autoload":{"files":["path/to/1.php","path/to/2.php",...]}
支持将数组中的文件进行自动加载,文件的路径相对于项目的根目录。缺点是麻烦,需要将所有文件都写进配置。

3.2.2 classmap类型
格式:"autoload":{"classmap": ["path/to/src1","path/to/src2",...]}
支持将数组中的路径下的文件进行自动加载。其很方便,但缺点是一旦增加了新文件,需要执行dump-autoload命令重新生成映射文件vendor/composer/autoload_classmap.php。

3.2.3 psr-0类型
格式:"autoload":{"psr-0":{
                            "name1\\space\\":["path/",...],
                            "name2\\space\\":["path2/",...],
                          }
                 }
支持将命名空间映射到路径。命名空间结尾的\\不可省略。当执行install或update时,加载信息会写入vendor/composer/autoload_namespace.php文件。如果希望解析指定路径下的所有命名空间,则将命名空间置为空串即可。
需要注意的是对应name2\space\Foo类的类文件的路径为path2/name2/space/Foo.php

3.2.4 psr-4类型
格式:"autoload":{"psr-4":{
                            "name1\\space\\":["path/",...],
                            "name2\\space\\":["path2/",...],
                          }
                 }
支持将命名空间映射到路径。命名空间结尾的\\不可省略。当执行install或update时,加载信息会写入vendor/composer/autoload_psr4.php文件。如果希望解析指定路径下的所有命名空间,则将命名空间置为空串即可。
需要注意的是对应name2\space\Foo类的类文件的路径为path2/space/Foo.php,name2不出现在路径中。

PSR-4和PSR-0最大的区别是对下划线(underscore)的定义不同。PSR-4中,在类名中使用下划线没有任何特殊含义。而PSR-0则规定类名中的下划线_会被转化成目录分隔符。

3.3 name
格式:"name":"vendor/package"
如果要发布一个包,你需要指定包的名字信息。

3.4 version
格式:"version":"1.0.2"
如果要发布一个包,你需要指定包的版本号。版本号的格式为X.Y.Z或vX.Y.Z,其后可以加后缀如-dev,-patch,-alpha,-beta或-RC。除dev外,尾上还可加一个数字,如1.0.0-alpha3。

3.5 description
格式:"description":"your own description at here!"
如果要发布一个包,可以指定一个简短的介绍

3.5 type
格式:"type":"library"
说明包的类型,支持如下library,project,metapackage,composer-plugin,默认为library

3.6 keywords
格式:"keywords":["logging","database","redis"]
一个数组的关键字,用于搜索或过滤时使用。

3.7 homepage
可选的,说明项目的网站地址

3.8 time/license
说明项目的时间和License,时间格式为YY-MM-DD HH:MM:SS

3.9 authors
格式:"authors":[
                    {"name":"ss","email":"ss@ss.com","homepage":"","role":""},...
                ]
用于说明项目的作者信息,为可选的。

3.10 support
格式:"support":{"emial":"","issues":"","forum":"","wiki":"","irc":"" }
用于说明项目的支持信息

3.11 conflict
用于声明与本包有冲突的包的版本,使用类似于require。

3.12 replace
用于声明需要替换的包,使用类似于require

3.13 provided
用于说明本包实现了某个包的接口

3.14 suggest
格式:"suggest":{"vendor/package":"Some description!"}
用于说明可选的,用于增强功能的包及说明。

4 命令行工具
有了配置文件后,便可以使用composer命令来执行,有如下命令
init                 进入交互式向导,在当前目录下生成composer.json文件
install           根据配置进行安装
    选项 --prefer-source
             --prefer-dist
             --dry-run
             --dev/--no-dev
             -o  将psr0/4转换为classmap以提升性能
update [package-name ...] 根据配置升级指定的包
search [pattern]                    从packagelist中搜索包
show   [package-name]      显示包的信息
depends package               分析项目中包的依赖
validate                                  验证配置文件内容
status                                    检查代码是修改信息
self-update                          升级composer本身
config                                    配置composer本地或全局选项,可以--list显示所有可配置项   格式为conifg [option] [key] [value...]
create-project vendor/package path version 在指定路径下下载一个项目,默认从packagelist上搜索
dump-autoload                   当类映射中加入新类时,用于更新加载器

5 自动加载

对于composer管理的依赖,如果希望自动加载只需要在文件中加入:require 'vendor/autoload.php'
拿上面的例子,使用依赖的类就十分简单了,使用packet-name\class-name就可以直接访问了。如
$log = new Monolog\Logger();

6 杂项

composer.lock文件用于记录各依赖的版本,如果使用了VCS,即此文件也需要进行提交。因为如果此文件存在,即composer会按照此文件中的版本进行下载,会忽略composer.json文件。如果需要更新版本,则需要修改composer.json,并执行update命令,此时会下载新版本,并更新composer.lock文件。



PHP Composer:构建与依赖管理的利器 PHP Composer是一个PHP项目的自动依赖管理器。它可以帮助开发者自动安装、更新和管理项目中的依赖项。通过Composer,开发者可以轻松地引入各种流行的PHP库和框架,提高项目开发效率。PHP Composer是PHP开发中不可或缺的工具之一。通过Composer,开发者可以轻松地管理项目依赖项,提高开发效率。掌握Composer的使用方法,将为你的PHP项目开发带来极大的便利。希望本文能帮助你更好地了解PHP Composer。 阅读详情

相关推荐

php8.2.4安装composer教程(多种方法之一)

PHP?注意PhpSpreadsheet(excel操作库)写入json安装不成功的情况下可以直接在php -v成功的命令窗口输入命令如下:

小小辰西专栏 2224

Php composer 基础教程

Composer 是 PHP 中的依赖管理工具。它允许声明项目所依赖的库,并且它将为您管理(安装/更新)它们。composer.json文件是composer使用json格式描述项目依赖的配置文件,其中包含一些项目元数据及其依赖配置等。composer.lock文件是composer安装完依赖后,生成的版本锁定文件,以确保在项目中工作的每个人的包版本一致。对于指定自动加载信息的库,Composer 会生成一个vendor/autoload.php 文件,然后引入依赖包时,只需要使用,不用require。

tangPHP的博客 2018

ArcGIS基础:点要素分割线要素和提取线要素的交点

第一个实验:【点要素分割线要素】看下原始数据:下图所示,2个红点和一条绿线,用2个点去分割这条线。 找到【数据管理工具】,在找到【要素】,再找到【在点处分割线】,如下图所示。 输入线、点要素,然后在【搜索半径】里输入5米,查看一下结果。 查看结果发现,线段被分割了2段,我们查看一下原因。 发现第2个点与线有一段距离,肯定是大于5米的,所以分割没有成功。可以量测一下距离,重新输入搜索半径。 我们把搜索半径改为200米,勘察结果,被点分割了3段。 接下来使用另外一个工具【在折点处分割线】,如下所示。

yuanYW7556的博客 1万+

【PHP开发】Composer从入门到精通

从 Composer 的基本概念,到安装、使用、镜像配置,再到自动加载机制、自定义脚本等高级功能,以及最后的实战案例,我们逐步揭开了 Composer 在 PHP 项目开发中的神秘面纱。掌握 Composer 的这些知识和技能,将为我们的 PHP 开发工作带来极大的便利,无论是提高开发效率,还是优化项目结构,Composer 都能发挥关键作用 。

大雨淅淅的博客 2146

DDR5内存Training全解析:从信号完整性到CS训练模式的实战指南

本文深入解析了DDR5内存Training的全过程,从信号完整性挑战到CS训练模式(CSTM)的实战应用。文章详细阐述了Training在DDR5高频时代的关键作用,对比了In-Band与OOB两种架构,并拆解了Intel MRC的核心训练步骤,为硬件与固件工程师提供了诊断与优化系统稳定性的实用指南。

weixin_29252171的博客 1029

COLMAP生成MVSNet数据集

COLMAP生成MVSNet数据集

qq_43307074的博客 5637

Composer PHP的包依赖管理工具

最近在学习SF2,接触到了Composer,一个PHP的包依赖管理工具,个人觉得很强大,蛮有意思的。下面是安装方法和地址: http://getcomposer.org/doc/00-intro.md

落雨惊风的技术博客 742

LAMMPS模拟新合金没势函数?手把手教你用`pair_style hybrid`混合势函数(附FeCMnSiTi案例)

本文详细介绍了在LAMMPS中如何使用`pair_style hybrid`混合势函数模拟新型高熵合金(如FeCMnSiTi),解决缺乏现成势函数的问题。通过实战案例,涵盖参数查找、命令编写、错误排查等关键步骤,特别适合处理多组元体系的复杂相互作用。文章还提供了EAM势函数与LJ势的组合技巧,帮助研究者准确模拟合金性能。

weixin_30635053的博客 243

PHP的包依赖管理工具Composer

Composer是一个基于项目的依赖管理器,负责将PHP项目所依赖的包或库安装到项目所在的目录中,默认它不会安装数据到全局。它用于取代之前所使用的pear工具。官方解释是:Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends o

给我一杯奶茶的博客 380

HFSS初学笔记(二)——75Ω带状线设计

本文利用HFSS软件设计并优化了一条75Ω的带状线结构,通过调整几何参数和介质材料,实现了精确的阻抗控制。仿真结果显示,该带状线在高频信号传输中的表现优越,具有良好的S参数、低插入损耗和极小的信号反射损耗。

2401_87464239的博客 4541

word 2013 长篇文档排版案例教程

office 2013 制作长文格式模板

1万+

【转载】PHP的包依赖管理工具Composer简介

Composer是一个基于项目的依赖管理器,负责将PHP项目所依赖的包或库安装到项目所在的目录中,默认它不会安装任何数据到全局。它用于取代之前所使用的pear工具。 1 安装Composer [plain] view plaincopyprint? curl -sS https://getcomposer.org/installer | php  

HarretLee的专栏 852

pg lib的信息及产生pg lib的三种方法

pg lib相比basic lib会多几方面pg 信息。除了pg arc(pg pin)以外,liberty还提供电压值,以及pmk cell的power_down_function功能相关信息。1.电压值除了常见的primary pg还有secondary pg和衬底。2.pg arc后端需要去做redhawk功耗分析,需要pg liberty提供pg arc,如果没有pg arc就需要手动去写custom lib代替3.pmk cell的power_down_function。

m0_61544122的博客 595

php composer 常用包及功能,PHP依赖管理工具composer安装和使用

composer安装1.下载composerphp -r "readfile('https://getcomposer.org/installer');" > composer-setup.phpphp composer-setup.phpphp -r "unlink('composer-setup.php');"执行第一条命令下载下来的 composer-setup.php 脚本将简单的检...

weixin_42360905的博客 1101

SpringBoot一次请求中缓存数据,请求结束就清除的4种方法,你会几种?

通过以上四种方法,你可以在 SpringBoot 的一次请求中缓存数据,并在请求结束后自动清除这些缓存数据。使用 ThreadLocal:适用于需要跨多个方法调用的缓存数据,灵活性高,但需要注意内存泄漏问题。使用 AOP:适用于全局性的缓存管理,代码更加优雅,但需要对 AOP 有一定的了解。使用 ServletRequestListener:适用于简单的请求生命周期管理,配置简单,但功能相对有限。使用 HttpServletRequest 的 setAttribute 和 getAttribute。

java专栏 1295

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

composer安装包_【Composer】PHP开发者必须了解!

Composer[1]是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Composer是必须的.对于使用者来说Composer非常的简单,通过简单的一条命令将需要的代码包下载到vendor目录下,然后开发者就可以引入包并使用了.其中的关键在于你项目定义的composer.json,可以定义项目需要依赖的包(可能有多个),而依赖的包可能又依赖其他的包(这就是组...

weixin_39924779的博客 189

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

本地搭建php包依赖管理工具,使用satis搭建私有composer仓库

具体应用的配置,一般都是保存在路径/etc/nginx/conf.d。下一步,我们将进入/opt/satis_manage,查看其配置。浏览器访问http://{ip} 默认80端口。根据进程号,进一步查看进程启动命令。manage 是一个可执行应用程序。端口8081对应的进程号是1342。也即satis_manage。

天草二十六 896

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

PHP之Composer类库依赖管理神器

Composer中文版说明见:https://github.com/kaka987/Composer-zh Composer 是PHP的类包依赖管理工具,用它可以轻松的引用第三方类包,类似于node的npm、ruby的bundler、CentOS中的yum等 1、PHP比你想象的要好得多 是的,PHP的流行不是没有道理的,看过这篇文字后,开始研究Composer,并决定在现用框架

zxf0810的专栏 1537

composer安装包_【Composer】PHP开发者必须了解!(life)

Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Composer是必须的.对于使用者来说Composer非常的简单,通过简单的一条命令将需要的代码包下载到vendor目录下,然后开发者就可以引入包并使用了.其中的关键在于你项目定义的composer.json,可以定义项目需要依赖的包(可能有多个),而依赖的包可能又依赖其他的包(这就是组件的好...

weixin_39959794的博客 260

掌握Composer

这一次,真正掌握composer composer是现代PHP的基石 现代高级编程语言,依赖管理工具是必不可少的。Java有Maven,Python有pip,Nodejs有npm, 而在composer出现之前,PHP只有被广为诟病的Pear, 由于Pear实在太难用,很少PHP开...

chengyu1769的博客 218
上一篇: 字符编码的概念及字符编码的探测
下一篇: 层叠样式表CSS简介
zzulp
博客等级 码龄19年 464粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值