php依赖管理composer,Composer - PHP依赖管理

Composer是 PHP 用来管理依赖的工具,提供了科学的第三方包的模块化及更新方案。

运行原理

composer.json声明项目依赖

composer工具前往packagist.org仓库获取包的元数据信息

composer工具根据元数据信息前往GitHub等代码托管平台获取第三方包

安装Composer

版本要求 PHP 5.3.2+

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer # 下载composer

composer config -g repo.packagist composer https://packagist.phpcomposer.com # 全局配置composer源为中国镜像源

composer global require "hirak/prestissimo:^0.3" # 全局安装 ”composer并行下载插件“

export PATH=$PATH:~/.composer/vendor/bin # 全局composer库执行路径加入环境变量

sudo chmod a+x /usr/local/bin/composer # 增加可执行权限

#### 日常升级composer ####

composer selfupdate

基本使用

新起Composer项目

常规启动

composer init -n 当前目录创建空的composer.json文件

带依赖启动

composer init --require=包名 -n

克隆一个包

composer create-project 包名 保存路径 版本号

声明依赖

命令描述

composer require [--dev] 包名

配置文件描述

编辑 composer.json

卸载依赖

composer remove 包名

自动加载

应用启动入口增加 require 'vendor/autoload.php';

安装依赖

composer install --profile --prefer-dist --optimize-autoloader

--profile 显示时间和内存使用信息

--optimize-autoloader 优化自动加载获得20%~25%提升

--prefer-dist 大幅加快下载速度 ,忽略包下的.git目录从而回避对根目录git系统的影响

更新依赖

只更新指定包

composer update 包名 --prefer-dist

只刷新composer.lock,不更新依赖

通用处理:composer update nothing

新版处理:composer update --lock

版本锁定

composer.lock来管理

项目代码需要版本锁定

库代码不应该版本锁定

生产环境部署优化

优化自动加载

composer dump-autoload --optimize

常用命令

composer show --installed # 已安装的依赖 composer show -p # 已安装的平台软件包(包括php拓展)

注意

composer在vendor目录下安装的子项目有其自身的git版本控制系统

项目根下的git不对这些子项目进行管理

如有管理需求则需要删除子项目的.git目录

非官方Repo引入方式

1. git版本库

{

"type":"git",

"url":"ssh://....git"

}

2. path本地路径

{

"type":"path",

"url":"包的相对路径"

}

自动加载

文件

{

"autoload": {

"files": [

"文件路径",

]

}

}

源类型

composer源

{

"type": "composer",

"url": "https://packagist.phpcomposer.com"

}

git源

{

"type": "git",

"url": "git地址"

}

path源

{

"type": "path",

"url": "包的相对目录路径"

}

语义话版本号

组成

Major.Minor.Patch

Major 大版本更新,不向后兼容

Minor小版本更新,向后兼容

Patch补丁修复,向后兼容

示例

确切版本号 1.0.0

范围版本号 >=1.0.0

通配符版本号 1.0.*

向后兼容的最小版本(下一个重要版本)~

~1.0 => 1.0<= X < 2.0

~1.0.0 => 1.0.0<= X < 1.1

大版本前的所有版本(下一个安全版本)^

^1.0 => 1.0<= X < 2.0

^1.0.0 => 1.0.0<= X < 2.0.0

创建Composer包

流程

创建包目录

composer init初始化配置

实现包逻辑

第三方代码托管平台推送项目,并配置同步更新到packagist.org

packagist.org提交项目地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值