在composer官网下载得到:https://getcomposer.org/download/
Composer-Setup.exe
安装时注意:安装过程中,会提示你选择php安装目录.一直到php.exe这里
-
右键以管理员身份运行:Composer-Setup.exe
-
点击第一步的next后出现如图:
里面填写php.exe的位置。
也可以自己修改,指定到其他php.exe目录中
然后点击next.
-
然后点击install,出现安装界面。
-
安装完成后会提示打开cmd,输入composer
出现如图所示则表示安装成功。
-
这样就可以通过composer安装各种依赖小工具了!
报错解决:
如果安装过程中报错:
[RuntimeException]
Could not load package classpreloader/classpreloader in http://packagist.org: [UnexpectedValueException] Could not parse version constraint ^1.2.2: Invalid version string "^1.2.2"
则表示需要更新Composer:
执行如下命令:
composer self-update
执行完更新后再次执行安装命令即可。
服务器配置
在上面的操作完成后,就是配置该站点在web服务器上,我相信这些操作,只要有过网站开发经验的人都有,我就不详细介绍了。这里要注意一点的就是,配置网站的时候,根目录是public,为不是最Laravel_site,配置好了,运行如下:
7.完成安装需要一定时间,等待安装完成后,即可在浏览器中通过http://localhost/laravelapp/public来访问新安装的Laravel应用
composer update
这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害。
因为 composer update
的逻辑是按照 composer.json 指定的扩展包版本规则,把所有扩展包更新到最新版本,注意,是 所有扩展包
,举个例子,你在项目一开始的时候使用了 monolog,当时的配置信息是
"monolog/monolog": "1.*",
安装的是 monolog 1.1 版本,而一个多月以后的现在,monolog 已经是 1.2 了,运行命令后直接更新到 1.2,这时项目并没有针对 1.2 进行过测试,项目一下子变得很不稳定,情况有时候会比这个更糟糕,尤其是在一个庞大的项目中,你没有对项目写完整覆盖测试的情况,什么东西坏掉了你都不知 道。
那应该使用哪个命令呢?install, update 还是 require ?
接下来我们一一解释。
简单解释
简单解释
-
composer install
- 如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖; -
composer update
- 从 composer.json 安装最新扩展包和依赖; -
composer update vendor/package
- 从 composer.json 或者对应包的配置,并更新到最新; -
composer require new/package
- 添加安装new/package
, 可以指定版本,如: composer require new/package ~2.5.
流程
接下来介绍几个日常生产的流程,来方便加深大家的理解。
流程一:新项目流程
-
创建
composer.json
,并添加依赖到的扩展包;
-
运行
composer install
,安装扩展包并生成composer.lock
; -
提交
composer.lock
到代码版本控制器中,如:git;
流程二:项目协作者安装现有项目
-
克隆项目后,根目录下直接运行
composer install
从composer.lock
中安装指定版本
的扩展包以及其依赖 -
流程三:为项目添加新扩展包
-
使用
composer require vendor/package
添加扩展包; -
提交更新后的
composer.json
和composer.lock
到代码版本控制器中,如:git; -
关于扩展包的安装方法
那么,准备添加一个扩展包,install, update, require 三个命令都可以用来安装扩展包,选择哪一个才是正确的呢?
答案是:使用
composer require
命令另外,在手动修改 composer.json 添加扩展包后,
composer update new/package
进行指定扩展包更新的方式,也可以正确的安装,不过不建议使用这种方法,因为,一旦你忘记敲定后面的扩展包名,就会进入万劫不复的状态,别给自己留坑呀。上面的概念不论对新手或者老手来说,都比较混淆,主要记住这个概念:
原有项目新添加扩展的,都使用 composer require new/package 这种方式来安装。
-