composer安装和常用操作
composer安装
- @[TOC](composer安装)
- 前言
- 一、composer 是什么?
- 二、使用步骤
- 1.window安装
- 2.Linux 安装
- 3.Mac OS 系统
- 三、composer 的简单使用
前言
在github还没有兴起的年代,我们是需要到工具的官网下载代码,比如jquery。然后放到我们自己的项目目录里,再在我们的页面中使用。
但是…当一个网站依赖的包越来越多,
我们会发现这是一件非常麻烦的事情:
安装新包,代码目录管理等问题
升级依赖包,只能手动替换文件
安装过程发现某个包需要依赖于另一个包,那我们又要开始安装前面的包…
哪怕是每个开源包都有自己的官网,也还是需要用户去下载安装。
即使是有一个类似github的大仓库,可以存放所有的项目,实现一站下载。
但不同依赖包之间的关系也还是需要手动维持,包与包之间的关系有可能是相互依赖,也可能是冲突的。
比如A包需要的PHP版本是小于7的,而B包需要的PHP版本是大于等于7的,那么你安装下来就是有冲突的,可能你在使用之前都没有注意环境的要求,直到遇到各种坑….
于是就有依赖包管理工具的诞生了,如前端使用的npm,java使用的maven,安卓的Gradle等等。在PHP中我们使用的工具叫Composer。
当我们需要加载一个新包的时候,我们只需要一条命令,工具就会自动构建安装,并且在安装之前如果检测到环境或者需要依赖其他包,管理工具也会做出相应的处理,比如提示终止、自动安装依赖包。
当我们需要更新包的时候,我们也只需要一条命令,就可以实现工具包的升级,在这过程也依然会检测新版本包需要的环境和依赖等。
所以说,依赖包管理工具 为我们在管理依赖包的工作上带来了极大的便利。
一、composer 是什么?
Composer 是一个命令行工具,它的作用就是帮我们的项目管理所依赖的开发包,属于依赖包管理工具。
composer 是php 安装新包,代码目录管理
二、使用步骤
1.window安装
1.1下载链接composer.exe
1.2下载好之后直接下一步
需要注意的是你需要开启 openssl 配置,我们打开 php 目录下的 php.ini,将 extension=php_openssl.dll 前面的分号去掉就可以了。
小皮面板安装的环境,要注意自己使用的PHP版本
1.3安装成功后,我们可以通过命令窗口(cmd) 输入 composer --version 或者 composer -v 命令来查看是否安装成功:
1.4更换全局镜像 外网的镜像下载比较慢,可以跳过
接下来我们可以更改阿里云 Composer 全量镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置:
composer config -g --unset repos.packagist
单项目配置
仅修改当前工程配置,仅当前工程可使用该镜像地址:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
调试
composer -vvv require alibabacloud/sdk
遇到问题?
建议先将Composer版本升级到最新:
composer self-update
执行诊断命令:
composer diagnose
清除缓存:
composer clear
若项目之前已通过其他源安装,则需要更新 composer.lock 文件,执行命令:
composer update --lock
2.Linux 安装
Linux 平台可以使用以下命令来安装:
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
移动 composer.phar,这样 composer 就可以进行全局调用:
mv composer.phar /usr/local/bin/composer
切换为国内镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
更新 composer:
composer selfupdate
composer 安装遇到问题:
composer -v
Unknown command: composer
解决办法
1:php的链接在/usr/local/bin/php中
2:cp composer /usr/bin/composer,将composer从下载的地址复制到/usr/bin/composer中
我的理解是bin没有找到对应的 composer
usr/local/bin 下的软链没有指到对应的位置
lrwxrwxrwx 1 root root 22 9月 2 09:53 php -> /usr/local/php/bin/php
3.给 权限
chmod +x /usr/bin/composer
3.Mac OS 系统
Linux 平台可以使用以下命令来安装:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version
切换为国内镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
更新 composer:
composer selfupdate
三、composer 的简单使用
1.Composer install 的使用
要使用 Composer,我们需要先在项目的目录下创建一个 composer.json 文件,文件描述了项目的依赖关系。
文件格式如下:
{"require": {"monolog/monolog": "1.2.*"}
}
以上文件说明我们需要下载从 1.2 开始的任何版本的 monolog。
接下来只要运行以下命令即可安装依赖包:
composer install
2. require 命令
除了使用 install 命令外,我们也可以使用 require 命令快速的安装一个依赖而不需要手动在 composer.json 里添加依赖信息:
composer require 项目名
Composer 会先找到合适的版本,然后更新composer.json文件,在 require 那添加 monolog/monolog 包的相关信息,再把相关的依赖下载下来进行安装,最后更新 composer.lock 文件并生成 php 的自动加载文件。
3.update 命令
update 命令用于更新项目里所有的包,或者指定的某些包:
更新所有依赖
composer update
更新指定的包
composer update monolog/monolog
更新指定的多个包
composer update monolog/monolog symfony/dependency-injection
还可以通过通配符匹配包
$ composer update monolog/monolog symfony/*
需要注意的时,包能升级的版本会受到版本约束的约束,包不会升级到超出约束的版本的范围。例如如果 composer.json 里包的版本约束为 ^1.10,而最新版本为 2.0。那么 update 命令是不能把包升级到 2.0 版本的,只能最高升级到 1.x 版本。关于版本约束请看后面的介绍。
4.remove 命令
remove 命令用于移除一个包及其依赖(在依赖没有被其他包使用的情况下),如果依赖被其他包使用,则无法移除:
composer remove 包名
5.search 命令
search 命令可以搜索包:
composer search 报名
该命令会输出包及其描述信息,如果只想输出包名可以使用 --only-name 参数:
composer search --only-name monolog
6.show 命令
show 命令可以列出当前项目使用到包的信息:
列出所有已经安装的包
composer show
#可以通过通配符进行筛选
composer show 包名/*
显示具体某个包的信息
composer show monolog/monolog
7.基本约束
7.1范围
通过使用比较操作符来指定包的范围。这些操作符包括:>,>=,<,<=,!=。
你可以定义多个范围,使用空格或者逗号 , 表示逻辑上的与,使用双竖线 || 表示逻辑上的或。其中与的优先级会大于或。 实例:
=1.0
=1.0 <2.0
=1.0 <1.1 || >=1.2
我们也可以通过使用连字符 - 来指定版本范围。
连字符的左边表明了 >= 的版本,如果右边的版本不是完整的版本号,则会被使用通配符进行补全。例如1.0 - 2.0等同于>=1.0.0 <2.1(2.0相当于2.0.*),而1.0.0 - 2.1.0则等同于>=1.0.0 <=2.1.0。
7.2通配符
可以使用通配符来设置版本。1.0.*相当于>=1.0 <1.1。
7.3波浪号 ~
我们先通过后面这个例子去解释
~1.2相当于>=1.2 <2.0.0,而~1.2.3相当于>=1.2.3 <1.3.01.2相当于>=1.2 <2.0.0,而~1.2.3相当于>=1.2.3 <1.3.0。
对于使用Semantic Versioning作为版本号标准的项目来说,这种版本约束方式很实用。
例如~1.2定义了最小的小版本号,然后你可以升级2.0以下的任何版本而不会出问题,因为按照Semantic Versioning的版本定义,小版本的升级不应该有兼容性的问题。简单来说,~定义了最小的版本,并且允许版本的最后一位版本号进行升级
7.4折音号 ^
^操作符的行为跟Semantic Versioning有比较大的关联,它允许升级版本到安全的版本。
例如,^1.2.3相当于>=1.2.3 <2.0.0,因为在2.0版本前的版本应该都没有兼容性的问题。
而对于1.0之前的版本,这种约束方式也考虑到了安全问题,例如^0.3会被当作>=0.3.0 <0.4.0对待。
例子:^1.2.3
版本稳定性
如果你没有显式的指定版本的稳定性,Composer会根据使用的操作符,默认在内部指定为-dev或者-stable。例如:
1.2 >1.2.0.0-stable
=1.2 >=1.2.0.0-dev
如果你想指定版本只要稳定版本,你可以在版本后面添加后缀-stable。
minimum-stability 配置项定义了包在选择版本时对稳定性的选择的默认行为。默认是stable。它的值如下(按照稳定性排序):dev,alpha,beta,RC和stable。除了修改这个配置去修改这个默认行为,我们还可以通过稳定性标识(例如@stable和@dev)来安装一个相比于默认配置不同稳定性的版本。例如:
{"require": {"monolog/monolog": "1.0.*@beta","acme/foo": "@dev"}
}
composer安装和常用操作相关推荐
- Git 安装及常用操作配置
(一)Windows下Git的安装方法 (二)Git管理工具TortoiseGit的安装方法 (三)Git初始使用常用配置命令 C:\Users\Administrator\.gitconfig (一 ...
- SVN下载,安装,配置,常用操作 svn教程
首先在百度搜索并下载 TortoiseSVN 推荐从官网下载,软件分为32位和64位版本,下载时请根据自己的系统位数进行下载: 安装过程: 1.下载软件后,双击程序进行安装,点击"Next& ...
- 【mongoDB基础篇①】安装与常用操作语句
简述 mongoDB与redis同为noSql数据库,但是redis为kv数据库(key/value),而mongoDB为文档型数据库存储的是文档(Bson->json的二进制化).内部执行引擎 ...
- 5 ROS的安装与常用操作简介
5.1 ROS是什么? ROS(Robot Operating System机器人操作系统)是面向机器人的开源的元操作系统(meta-operating system).它能够提供类似传统操作系统的诸 ...
- 开源测试框架-UI自动化测试工具Selenium的安装与常用操作-Java语言
为什么选择Selenium作为测试工具: 开源免费 容易与单元测试框架结合 代码可自主掌握,对于搭建框架,平台等有不可替代的优势 Selenium也是一个用于Web应用程序测试的工具,支持多平台, ...
- Slurm安装和常用操作
源码安装 下载最新的slurm源码包 munge安装 #安装rpm-build软件,以提供rpmbuild命令 yum install rpm-build -y # 安装时提示缺一堆软件包,一一安装就 ...
- Ubuntu安装设置nginx和nohup常用操作
nginx安装 Ubuntu直接从常规源中安装 apt-get install nginx 安装的目录 配置文件:/etc/nginx/ 主程序文件:/usr/sbin/nginx Web默认目录:/ ...
- 学习笔记Kafka(四)—— Kafka安装配置(3)—— Kafka多代理配置及常用操作
一.环境准备 Centos7, 1 CPU , 2G Memory ,20G Disk , Virtual System Hosts : node110, node111 , node112 全部配置 ...
- 学习笔记Kafka(三)—— Kafka安装配置(2)—— Kafka单代理及常用操作
一.Linux环境准备 Centos7, 1 CPU , 2G Memory ,20G Disk , Virtual System JDK Zookeeper 二.Kafka 安装 下载Kafka安装 ...
最新文章
- mysql中vlookup函数_wps表中vlookup函数使用方法将一表引到另一表
- 实验11.1 指针数组、指针与函数 6-5 查找子串
- linux网络编程之sockaddr_in和in_addr区别
- 计算机小故障排除方法,常见电脑故障排除方法总汇【详解】
- Linux网络协议栈:网卡收包分析
- linux学习: sudo命令(ubuntu)
- Form窗体点击关闭按钮并未关闭进程的解决方法
- mysql8 连接不上数据库_MySQL升级8.0后连接不上数据库
- iOS的非常全的三方库,插件,大牛博客
- mac空格代表图标_最糟糕的图标代表功能
- 计算机桌面计划,电脑桌面日程安排软件
- 中产需要盒马,盒马想要下沉
- lambda函数用法及注意事项(简单总结,有待补充)
- SAP BDC的应用
- idea 配置 tomcat session 无法活化
- 无法通过终端(远程桌面)服务启动MATLAB的解决办法
- 对P5基本二维图像绘制库的交互性扩展
- 外箱条码标签如何用条码标签编辑软件制作?
- 对use case的一点理解
- mac系统python读取文件路径_python读取文件常见问题(Mac版)