Composer安装及更新YII2框架遇到问题梳理

我们在使用YII2框架的过程中,对于框架有两种安装方式,一种是使用官网归档文件,一种是使用Compoer包管理工具。本文讨论的问题集中在使用Compoer安装YII2框架及更新组件包,升级YII2主版本时遇到的一些问题。

前置条件

首先使用Composer包工具的需要满足以下两个前提,不区分操作系统。

1 电脑需要安装Composer包管理工具,并且全局可直接使用

2 安装Composer Asset插件,Asset插件需要合适的版本。

两个条件在安装的同时,都必须注意合适的版本。以下附上Mac安装composer和插件的主要步骤

Mac系统安装compoer

curl -sS https://getcomposer.org/installer | php All settings correct for using Composer Downloading... Composer (version 1.8.0) successfully installed to: /Users/wangmingming/composer.phar Use it: php composer.phar

将composer 设置为全局可用

mv composer.phar /usr/local/bin/composer

安装Composer Asset插件

安装完Composer,运行下面的命令来安装Composer Asset插件

This command installs the composer asset plugin which allows managing bower and npm package dependencies through Composer.

查阅网络很多资料, Asset插件相关的问题主要集中在【安装Composer Asset插件老是失败】,解决方案都是给出执行具体的命令,安装这个插件的关键在于 确定当时fxp/composer-asset-plugin组件的最新版本,然后再安装。

查看composer-asset-plugin最新版本

https://packagist.org/packages/fxp/composer-asset-plugin

执行如下命令安装

composer global require "fxp/composer-asset-plugin:~1.4.4"

Changed current directory to /Users/path/.composer. /composer.json has been updatedLoading composer repositories with package information Updating dependencies (including require-dev)Package operations: 0 installs, 1 update, 0 removals - Updating fxp/composer-asset-plugin (v1.2.2 => v1.4.4): Loading from cache Writing lock fileGenerating autoload files


服务器部署YII2 2.0.6,采用PHP7.2 报错

For compatibiliy with [PHP 7.2 which does not allow classes to be named `Object` anymore](https://wiki.php.net/rfc/object-typehint), we needed to rename `yii\base\Object` to `yii\base\BaseObject`. `yii\base\Object` still exists for backwards compatibility and will be loaded if needed in projects that are running on PHP <7.2. The compatibility class `yii\base\Object` extends from `yii\base\BaseObject` so if you have classes that extend from `yii\base\Object` these would still work. What does not work however will be code that relies on `instanceof` checks or `is_subclass_of()` calls for `yii\base\Object` on framework classes as these do not extend `yii\base\Object` anymore but only extend from `yii\base\BaseObject`. In general such a check is not needed as there is a `yii\base\Configurable` interface you should check against instead.

更新YII2 框架至2.0.14 遇到问题

Problem 1 - yiisoft/yii2 2.0.15.1 requires bower-asset/inputmask ~3.2.2 | ~3.3.5 -> no matching package found. - yiisoft/yii2 2.0.15 requires bower-asset/inputmask ~3.2.2 | ~3.3.5 -> no matching package found. - yiisoft/yii2 2.0.14.2 requires bower-asset/inputmask ~3.2.2 | ~3.3.5 -> no matching package found. - yiisoft/yii2 2.0.14.1 requires bower-asset/inputmask ~3.2.2 | ~3.3.5 -> no matching package found. - yiisoft/yii2 2.0.14 requires bower-asset/inputmask ~3.2.2 | ~3.3.5 -> no matching package found. - Installation request for yiisoft/yii2 ~2.0.14 -> satisfiable by yiisoft/yii2[2.0.14, 2.0.14.1, 2.0.14.2, 2.0.15, 2.0.15.1].

New personal access token

简单理解为设置程序远程更新包时的访问token,在github处于登录状态时,生成token,就可以畅通的下载 形如https://api.github.com/repos/ 这样的包文件了。

以上解决问题的路径是这样的,发现目前的YII2版本不支持PHP7及以上环境,于是使用Composer更新YII2框架版本,更新过程中一系列问题造成更新识别,依次定位到Asset插件问题并且更新对应的版本,之后顺利更新依赖包及主框架版本。

本文分享自微信公众号 - 图南科技(tunan_technology)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FREE SOLO

点击一个web网页的流程和所用协议(计算机网络)

客户方启动浏览器; 客户在浏览器的地址栏键入URL; 浏览器分析URL,找到信息资源所在主机地址; 与该主机(服务器)建立TCP连接(端口号80); 向...

21940
来自专栏云服务器999+

如何选择腾讯云服务器配置?

云服务器的配置选择,和网站或应用的类型、访问量、数据量大小、程序质量等因素有关,建议和您的网站或应用的开发技术人员沟通,选择最适合您的配置。

34040
来自专栏云服务器999+

腾讯云服务器web环境配置教程

腾讯云服务器是现在越来越多站长以及企业建站的首选了,因为腾讯云背靠腾讯这颗大树,有10亿微信用户和10亿QQ用户流量考验验做为背书,有足够的技术实力和奖金实力让...

45630
来自专栏PHP修行之路

【php设计模式】代理模式

主要解决在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控...

8910
来自专栏coding for love

3-2 使用loader打包静态资源(图片)

上一节我们成功打包并展示了一张图片。可是我们看到最终输出的图片名称是一串hash值,如果我们希望其展示的是原来的名称呢?可以进行如下配置:

13530
来自专栏wordpress建站吧

wordpress搭建网站需要掌握和了解哪些知识点?

对于很多完全没有接触过wordpress和网站搭建的用户来说,还是比较难的,需要学习和了解的知识点还是很多的,但是对于稍微熟悉了的用户来说基本上就是分分钟的事儿...

18830
来自专栏云服务器999+

腾讯云服务器99/年_史上最钜惠活动!

从今天开始,截止6月20日,腾讯云开启数字生态优惠活动,也就是年中大促活动。为期超过一个月的时间,每天五场秒杀活动,新用户优惠力度更大一些,如果我们有办法注册到...

31830
来自专栏PHP修行之路

【php设计模式】门面模式

门面模式又叫外观模式,用来隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系...

10610
来自专栏知识分享

5-STM32物联网开发系统方案微信小程序篇

https://www.cnblogs.com/yangfengwu/p/11037653.html

30110
来自专栏知识分享

4-STM32物联网开发系统方案微信小程序篇

https://www.cnblogs.com/yangfengwu/p/10979101.html

56320

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励