1、什么是composer?composer的作用是什么? 这些概念性的东东,请自行百度脑补
2、composer的安装条件
要使用 composer 首先是要安装它;安装 composer 的前提要求是已经有 php 环境了,同时需要开启 openssl 和 fileinfo 扩展;
3、官方网站:https://getcomposer.org/
4、国内中文网站:http://www.phpcomposer.com/
5、Comopser资源库:https://packagist.org
环境以Windows 10 + phpStudy8.0为例进行安装。
1、下载Composer-Setup.exe
方法下载地址: https://getcomposer.org/Composer-Setup.exe
官方为国外的,如果下载慢,就使用国内站点: https://www.phpcomposer.com/
2、双击Composer-Setup.ex
如下图,此目录中为PHP的安装目录,必须含有php.exe
这里什么都不用填写,继续“next”
有时网络慢,可能需要一会,也可能这一步会失败,那就重新安装吧
1、下载composer.phar
# cd /mydata/
# curl -sS https://getcomposer.org/installer | php
// 如果是网络原因失败,多试几次,直到出现如下:
All settings correct for using Composer
Downloading...
Composer (version 1.8.5) successfully installed to: /mydata/composer.phar
Use it: php composer.phar
下载成功
2、把composer.phar移动到环境下让其变成可执行
//把此文件移动到 /usr/local/bin/目录下,并改名为composer,此目录为系统全局加载
[root@localhost mydata]# mv composer.phar /usr/local/bin/composer
3、测试:
//在任意位置
# cd /
# composer -v
Do not run Composer as root/super user! See https://getcomposer.org/root for details(不要在root超级用户下执行)
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.8.5 2019-04-09 17:46:47
......
4、修改镜像地址
# composer config -g repo.packagist composer https://packagist.phpcomposer.com
Do not run Composer as root/super user! See https://getcomposer.org/root for details (不要在root超级用户下执行)
也可以使用Laravel提供的中国镜像:
方法一:全局配置(推荐)
# composer config -g repo.packagist composer https://packagist.laravel-china.org
方法二:单独使用,如果仅限当前工程使用镜像,去掉 -g 即可,如下
# composer config repo.packagist composer https://packagist.laravel-china.org
取消镜像:
# composer config -g --unset repos.packagist
上面 3、4都会提示“不要在root超级用户下执行”所以就更换一个用户吧(不更换也没问题),如下,就不会报这个提示了
#useradd niuxitong
#passwd niuxitong
设置密码 niu2****7
#su niuxitong
# composer -v 不再有此提示了
# composer config -g repo.packagist composer https://packagist.phpcomposer.com
到此 composer 已经安装完成
更多命令参考官方文档: https://docs.phpcomposer.com/03-cli.html
1、切换国内镜像
新安装的composer 默认使用的国外的镜像地址,切换为国内的镜像地址,加快下载速度。
# composer config -g repo.packagist composer https://packagist.phpcomposer.com
2、常用全局命令
# composer 打印所有命令
# composer -V 版本号
# composer --version 版本号
# composer self-update 更新composer版本为最新版
显示本项目下已经安装的包
# composer show
或
# composer info
# composer clearcache 清理缓存
3、初始化
# comooser init 用于创建新项目的composer.json
初始化参数:
--name: 包的名称。
--description: 包的描述。
--author: 包的作者。
--homepage: 包的主页。
--require: 需要依赖的其它包,必须要有一个版本约束。并且应该遵循 foo/bar:1.0.0 这样的格式。
--require-dev: 开发版的依赖包,内容格式与 --require 相同。
--stability (-s): minimum-stability 字段的值。
4、创建新项目
以 yii2框架为例:在https://packagist.org 上查询到此项目名称为 “yiisoft/yii2”
例: 在/home/wwwroot/下 安装yii2项目并重命名为 yii-blog
# cd /home/wwwroot/
# composer create-project --prefer-dist yiisoft/yii2 yii-blog
注: create-project 相当于git clone,也可以指定版本号
5、安装命令install
大多时候我们git克隆过来的项目是没有vendor目录的,这就需要我们进行安装,根据项目根目录下的composer.json.lock文件进行下载插件,此文件里指定了包的名称、下载地址、版本号等
# composer install 安装所有composer.json.lock文件里指定的插件包
常用安装参数
--prefer-dist composer将尽可能的从dist获取,这将大幅度的加快在 build servers 上的安装。这也是一个回避 git 问题的途径,如果你不清楚如何正确的设置
--prefer-source 下载包的方式有两种:source和dist。对于稳定版本 composer 将默认使用 dist 方式。而 source 表示版本控制源 。如果 --prefer-source 是被启用的,composer 将从 source 安装(如果有的话)。如果想要使用一个 bugfix 到你的项目,这是非常有用的。并且可以直接从本地的版本库直接获取依赖关系。
--dry-run: 如果你只是想演示而并非实际安装一个包,你可以运行 --dry-run 命令,它将模拟安装并显示将会发生什么。 --dev: 安装 require-dev 字段中列出的包(这是一个默认值)。 --no-dev: 跳过 require-dev 字段中列出的包。 --no-scripts: 跳过 composer.json 文件中定义的脚本。 --no-plugins: 关闭 plugins。 --no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。 --optimize-autoloader (-o): 转换 PSR-0/4 autoloading 到 classmap 可以获得更快的加载支持。特别是在生产环境下建议这么做,但由于运行需要一些时间,因此并没有作为默认值。
6、更新包:update
为了获取依赖的最新版本,并且升级 composer.lock 文件
# composer update
这将解决项目的所有依赖,并将确切的版本号写入 composer.lock。如果你只是想更新几个包,你可以像这样分别列出它们
# composer update vendor/package vendor/package2
你还可以使用通配符进行批量更新:
composer update vendor/*
常用更新参数
--prefer-source: 当有可用的包时,从 source 安装。
--prefer-dist: 当有可用的包时,从 dist 安装。
--dry-run: 模拟命令,并没有做实际的操作。
--dev: 安装 require-dev 字段中列出的包(这是一个默认值)。
--no-dev: 跳过 require-dev 字段中列出的包。
--no-scripts: 跳过 composer.json 文件中定义的脚本。
--no-plugins: 关闭 plugins。
--no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。
--optimize-autoloader (-o): 转换 PSR-0/4 autoloading 到 classmap 可以获得更快的加载支持。特别是在生产环境下建议这么做,但由于运行需要一些时间,因此并没有作为默认值。
--lock: 仅更新 lock 文件的 hash,取消有关 lock 文件过时的警告。
--with-dependencies 同时更新白名单内包的依赖关系,这将进行递归更新。
7、申明依赖包:require
require 命令增加新的依赖包到当前目录的 composer.json 文件中
# composer require endroid/qrcode 安装一个包
# composet remove endroid/qrcode 卸载依赖, (然后手工删除下载的相关包)
也可以指定版本号
# 指定版本
composer require monolog/monolog 1.24.0
# 版本范围
# 有效的运算符有 >、>=、<、<=、!=,运算符中间使用逗号隔开视作逻辑AND,使用|隔开,视作逻辑OR,AND的优先级更高
# 支持通配符 *
# 支付波浪号运算符 ~ 限定在最低版本和下一个重要版本更新之前
# 以下都是有效的版本号
# 版本大于等于1.0 >=1.0
# 版本大于等于1.0并且小于2.0 >=1.0,<2.0
# 版本大于等于1.0并且小于1.1,或者版本大于等于1.2
>=1.0,<1.1|>=1.2 # 相当于>=1.0,<1.1
1.0.*
# 相当于>=1.2,<2.0
~1.2
# 相当于>=1.2.3,<1.3
~1.2.3
# 相当于>=1.2.3,<2.0.0 在多于2位的版本号的时候跟 ~ 有区别
^1.2.3
常用参数
--prefer-source: 当有可用的包时,从 source 安装。
--prefer-dist: 当有可用的包时,从 dist 安装。
--dev: 安装 require-dev 字段中列出的包。
--no-update: 禁用依赖关系的自动更新。
--no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。
--update-with-dependencies 一并更新新装包的依赖。
8、删除指定包:remove
删除此包后,对应的composer.json 和composer.json.lock文件也会改变
# composet remove endroid/qrcode 卸载依赖, (然后手工删除下载的相关包)
9、配置 config
# config [options] [setting-key] [setting-value1] ... [setting-valueN]
setting-key 是一个配置选项的名称,setting-value1 是一个配置的值。可以使用数组作为配置的值(像 github-protocols),多个 setting-value 是允许的
参数:
--global (-g): 操作位于 $COMPOSER_HOME/config.json 的全局配置文件。如果不指定该参数,此命令将影响当前项目的 composer.json 文件,或 --file 参数所指向的文件。
--editor (-e): 使用文本编辑器打开 composer.json 文件。默认情况下始终是打开当前项目的文件。当存在 --global 参数时,将会打开全局 composer.json 文件。
--unset: 移除由 setting-key 指定名称的配置选项。
--list (-l): 显示当前配置选项的列表。当存在 --global 参数时,将会显示全局配置选项的列表。
--file="..." (-f): 在一个指定的文件上操作,而不是 composer.json。注意:不能与 --global 参数一起使用。
说明: php版本必须大于7.1。最好大于7.2
安装laravel分两种方式、
方法一:使用laravel安装器安装
1、安装laravel安装器
# cd /root/.config/composer/ 必须进入此目录
# composer global require "laravel/installer" 安装laravel安装器
给与部分目录写入权限
# chomd -R 777 ./vendor/laravel/installer/laravel
# chomd -R 777 ./vendor/bin/laravel
2、添加laravel环境变量
# vim /etc/profile
# //添加以下到末尾
PATH=$PATH:$HOME/.config/composer/vendor/bin
export PATH
因为我们服务器已经配置过,因此只需要把 :$HOME/.config/composer/vendor/bin 添加最后即可如下:
export PATH=$PATH:/usr/local/nginx/sbin:/usr/local/mysql/bin:/usr/local/php/bin:/usr/local/git/bin:$HOME/.config/composer/vendor/bin
//重启
source /etc/profile
3、使用new创建项目(laravel框架)
# cd /home/wwwroot/
# laravel new blog-new
则在/home/wwwroot/下就创建了 blog-new项目,这就是最新的laravel框架。
方法二:直接使用composer的create-project命令创建
1、在composer资源站:https://packagist.org 查询‘laravel’关键字
2、下载laravel最新版框架
#下载最新版框架,并指定项目名称为 blog
# cd /home/wwwroot/
# composer create-project --prefer-dist laravel/laravel blog
(不指定版本号,默认下载的是最新版本,如果需要指定版本号,使用如下方法)
# composer create-project --prefer-dist laravel/laravel blog "v5.8.0"
或者
# composer create-project --prefer-dist laravel/laravel blog "5.8"
即可
最后出现:
OK 框架下载完成。