摘 composer的安装和使用知识整理
用composer的时候发现还是要学下 20200406 composer安装和使用的内容不是很多,慢慢写就写完了,O(∩_∩)O哈哈~ 20220524
如何安装 Composer
安装前请务必确保已经正确安装了PHP。打开命令行窗口并执行php -v查看是否正确输出版本号。
打开命令行并依次执行下列命令安装最新版本的 Composer:
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
执行第一条命令下载下来的composer-setup.php脚本将简单地检测php.ini中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的composer.phar文件到当前目录。
上述 3 条命令的作用依次是:
下载安装脚本 -composer-setup.php- 到当前目录。
执行安装过程。
删除安装脚本。
局部安装
上述下载 Composer 的过程正确执行完毕后,可以将composer.phar文件复制到任意目录(比如项目根目录下),然后通过php composer.phar指令即可使用 Composer 了!
全局安装
全局安装是将 Composer 安装到系统环境变量PATH所包含的路径下面,然后就能够在命令行窗口中直接执行composer命令了。
Mac 或 Linux 系统:
打开命令行窗口并执行如下命令将前面下载的composer.phar文件移动到/usr/local/bin/目录下面:
sudo mv composer.phar /usr/local/bin/composer
之后执行
composer -V
查看版本
Composer version 2.3.5 2022-04-13 16:43:00
Windows 系统:
找到并进入 PHP 的安装目录(和你在命令行中执行的php指令应该是同一套 PHP)。
将composer.phar复制到 PHP 的安装目录下面,也就是和php.exe在同一级目录。
在 PHP 安装目录下新建一个composer.bat文件,并将下列代码保存到此文件中。
@php "%~dp0composer.phar" %*
最后重新打开一个命令行窗口试一试执行composer --version看看是否正确输出版本号。 ...
|-原 解决Yii2里引入自定义文件 composer dump-autoload后报错:Composer detected issues in your platform: Your Composer dependencies require
composer dump-autoload 后报错,Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0".
想在Yii2里引入新的自定义文件,结果发现引入的文件中的函数不被调用,于是网上查了下,说是用
composer dump-autoload
结果运行完后,正常执行了
Generating autoload files Generated autoload files
访问项目发现所有页面都打不开了,报错提示:Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0". ...
|-转 Windows环境下Composer的安装教程遇到的问题及解决方法
在Windows环境下安装Composer,遇到的问题及解决方案
1.设置了安装路径以及选择了php.exe后,最终安装的时候一直在那等候,不进入真正的安装!
解决方法:我这里选择的php.exe是共用人家phpstudy的php版本,之所以安装一直不进行,就
是因为phpstudy打开着,进程处于占用状态,当把phpstudy关闭后,安装正常!
2.composer安装成功后,在命令提示符里输入composer命令,仍然提示composer不是内部命令
解决方法:这是因为在安装composer后,必须新打开一个命令提示符,而我之前还是在安装composer
前的命令提示符窗口里进行,所以提示有误!
3.在Windows环境下安装Composer(注:Composer要求PHP版本在5.3.2+),你可能会遇到这种安装失败的情况:
出错信息是 "The openssl extension is missing, which will reduce the security and stability of
Composer. If possible you should enable it or recompile php with --with-openssl" ,大意就是你的PHP缺少openssl扩展。
在php的安装目录比如说C:\wamp\bin\php\php5.3.3\中,找到找个目录下的php.ini文件,然后去掉 extension=php_openssl.dll
这一行开头的注释,之后就可以顺利安装Composer了。
4:遇到的问题
在使用composer install 报如下错误的,一般是缺少 php 的扩展,解决方案,
安装php的扩展
例如
cd /usr/local/php/lib
yum install php-mbstring
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for php-amqplib/php-amqplib v2.7.0 -> satisfiable by php-amqplib/php-amqplib[v2.7.0].
- php-amqplib/php-amqplib v2.7.0 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
Problem 2
- php-amqplib/php-amqplib v2.7.0 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
- php-amqplib/thumper v0.5.0 requires php-amqplib/php-amqplib ^2.6 -> satisfiable by php-amqplib/php-amqplib[v2.7.0].
- Installation request for php-amqplib/thumper v0.5.0 -> satisfiable by php-amqplib/thumper[v0.5.0].
To enable extensions, verify that they are enabled in your .ini files:
- /etc/php.ini
- /etc/php.d/curl.ini
- /etc/php.d/fileinfo.ini
- /etc/php.d/json.ini
- /etc/php.d/phar.ini
- /etc/php.d/zip.ini ...
|-转 Packagist.org 明确了 Composer 1.x 被弃用的时间表
2021-02-25
地球人都知道,Composer 2.0已于 2020 年 10 月下旬发布。我们在发布公告中已经暗示 Composer 1.x 的生命周期即将结束,不过,今天我们将 Packagist.org 对 Composer 1.x 的支持期限(以前所设想的)稍做一下延长。
首先,我们在过去的几个月中意识到 Composer 1.x 可能要存在数年才能完全消失。 Composer 被安装在太多地方了,因此我们将必须长时间保持对 v1 版元数据的支持(以保证 Composer 1.x 正常运行),以防止干扰用户现有的工作流程。
但是,我们遇到的最大障碍是:由于 v1 版元数据所使用的格式的限制,因此要占用 packagist.org 的很多资源才能将其转储到静态 JSON 文件中。 因此,我们采取了两个步骤来减少其对我们的基础架构的负面影响:
从 2021 年 5 月开始降低 v1 版元数据 API 的更新频率
所有软件包(package)的新版本的更新频率将从当前的每分钟降低到每 15 分钟一次。这意味着新版本需要经过几分钟的时间才能用于 Composer 1.x 的安装。
从好的方面来看,降低 v1 版元数据的更新频率,意味着我们可以将 v2 版元数据的更新频率提升到秒级,而无须与 v1 版元数据的更新(分钟级)捆绑在一起。
从 2021 年 5 月开始,限制通过 v1 版元数据 API 访问未使用的软件包
我们面临的另一个问题是:我们目前需要处理 300,000 个软件包、2,700,000 个版本的同步,而 v1 格式使用了很长的文件列表,这意味着软件包的数量对处理流程的影响很大。...
|-转 慎用composer update
不出问题还好,出了问题一堆事情
https://blog.csdn.net/wulove52/article/details/78392663
问题说明
我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的:
composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害。
因为 composer update 的逻辑是按照 composer.json 指定的扩展包版本规则,把所有扩展包更新到最新版本,注意,是 所有扩展包,举个例子,你在项目一开始的时候使用了 monolog,当时的配置信息是
"monolog/monolog": "1.*",
安装的是 monolog 1.1 版本,而一个多月以后的现在,monolog 已经是 1.2 了,运行命令后直接更新到 1.2,这时项目并没有针对 1.2 进行过测试,项目一下子变得很不稳定,情况有时候会比这个更糟糕,尤其是在一个庞大的项目中,你没有对项目写完整覆盖测试的情况,什么东西坏掉了你都不知道。
那应该使用哪个命令呢?install, update 还是 require ?
接下来我们一一解释。
简单解释
package - 从 composer.json 或者对应包的配置,并更新到最新; new/package - 添加安装 new/package, 可以指定版本,如: composer require new/package ~2.5.
流程
下来介绍几个日常生产的流程,来方便加深大家的理解。
流程一:新项目流程
创建 composer.json,并添加依赖到的扩展包;
运行 composer install,安装扩展包并生成 composer.lock;
提交 composer.lock 到代码版本控制器中,如:git;
流程二:项目协作者安装现有项目
克隆项目后,根目录下直接运行 composer install 从 composer.lock 中安装 指定版本 的扩展包以及其依赖;
...
|-转 Could not open input file: composer.phar报错
今天使用composer下载yii报错提示 Could not open input file: composer.phar
原因肯定是:在别的项目下载过composer没有设置全局变量或者没有安装composer
解决:
打开命令行并依次执行下列命令安装最新版本的 Composer:
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" php composer-setup.php php -r "unlink('composer-setup.php');"
原文链接:https://blog.csdn.net/jizha1917/article/details/94245063...
|-原 composer在国内使用效果很差,总提示没有找到要下载的文件
建议直接在国外的服务器上先把要下的项目下好,然后在传到本地
composer在国内使用效果很差,总提示没有找到要下载的文件。建议直接在国外的服务器上先把要下的项目下好,然后在传到本地。各种报错都没了。...
|-转 compser安装后无法使用,php7.4版本下安装的
|-转 win10系统 安装好composer后 cmd 命令行下输入composer提示不是内部或外部的命令,也不是可执行的程序或批处理文件
在 windows CMD 下运行composer 出现错误提示: 不是内部或外部命令,也不是可运行的程序或批处理文件,这是因为没有配置 PATH 环境变量。
以 win10 为例,找到此电脑
右击选择属性,点击左侧的高级系统设置
,选择高级
>环境变量
弹出环境变量
窗口,找到PATH
,点击编辑
...
|-转 使用composer安装项目需要注意的
全局改为国内镜像命令:composer config -g repo.packagist composer https://packagist.phpcomposer.com,之后解决composer install遇到:Your requirements could not be resolved to an installable set of packages.方法:解决办法:直接忽略版本 composer install --ignore-platform-reqs 或者 composer update --ignore-platform-reqs
在国内本地测试时,因为网络的原因,composer install和update很难,会各种报错
所以建议切换成国内镜像
composer 默认地址改为中国镜像地址,以及中国镜像地址还原成默认地址
一、查看当前镜像地址
在命令行输入如下命令,即可查看全局镜像地址:
复制代码
$ composer config -g repo.packagist { "type":"composer", "url":"https://packagist.org", "allow_ssl_downgrade":true }
下面有把地址修改为中国镜像,如果中国镜像出现了问题,那么您可以还原成官方的默认地址,下面是详细。
二、启用中国全量镜像服务:
启用中国全量镜像服务有两种方式,具体配置方法如下:
1.系统全局配置:
可以使用 composer config -l -g 查看所有全局配置
composer config -l -g
使用如下命令将地址改为中国镜像地址:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
镜像名
地址
赞助商
更新频率
备注
阿里云 Composer 镜像
https://mirrors.aliyun.com/composer/
阿里云
96 秒
推荐
腾讯云 Composer 镜像
https://mirrors.cloud.tencent.com/composer/
腾讯云
24 小时
-
PHP 国内 Composer 镜像
https://packagist.phpcomposer.com
仁润股份
24 小时
不稳定
华为云 Composer 镜像
https://repo.huaweicloud.com/repository/php/
华为云
未知
未知...
|-摘 composer 设置Github全局 token,在所有项目上都使用阿里云镜像
composer引入GitHub上项目是需要使用token
如果想要以后都不用输入这个token,可以通过全局设置的办法解决,命令如下:
composer config --global github-oauth.github.com <token>
OK了 ...