无法使用 xampp 打开 yii2 应用程序
Unable to open yii2 application using xampp
我刚刚安装了xampp,将项目文件夹放在了htdocs
。安装作曲家。但是当我尝试打开我的网络界面时,出现了错误
Fatal error: Cannot use 'Object' as class name as it is reserved in F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Object.php on line 77
我搜索了解决方案并找到了这个 。所以我尝试更新作曲家
F:\xampp\htdocs\inventory-web>composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
之后,我遇到了以下错误
Your requirements could not be resolved to an installable set of packages.
Problem 1
- kartik-v/yii2-date-range dev-master requires kartik-v/yii2-krajee-base >=2.0.0 -> satisfiable by kartik-v/yii2-krajee-base[dev-master, 2.0.x-dev, v2.0.0, v2.0.1, v2.0.2, v2.0.3, v2.0.4, v2.0.5] but these conflict with your requirements or minimum-stability.
- kartik-v/yii2-date-range dev-master requires kartik-v/yii2-krajee-base >=2.0.0 -> satisfiable by kartik-v/yii2-krajee-base[dev-master, 2.0.x-dev, v2.0.0, v2.0.1, v2.0.2, v2.0.3, v2.0.4, v2.0.5] but these conflict with your requirements or minimum-stability.
- Installation request for kartik-v/yii2-date-range dev-master -> satisfiable by kartik-v/yii2-date-range[dev-master].
Composer.json
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Project Template",
"keywords": ["yii2", "framework", "advanced", "project template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "stable",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "~2.0.6",
"yiisoft/yii2-bootstrap": "~2.0.0",
"yiisoft/yii2-swiftmailer": "~2.0.0",
"luoxiaojun1992/yii2-tinker": "*",
"kartik-v/yii2-grid": "@dev",
"kartik-v/yii2-widget-select2": "@dev",
"kartik-v/yii2-mpdf": "*",
"moonlandsoft/yii2-phpexcel": "*",
"nirvana-msu/yii2-showloading": "1.0.*@dev",
"kartik-v/yii2-krajee-base": "~1.7",
"kartik-v/yii2-widget-spinner": "@dev",
"edwinhaq/yii2-simple-loading": "*",
"c006/yii2-submit-spinner": "*",
"kartik-v/yii2-detail-view": "*",
"fedemotta/yii2-cronjob": "*",
"kartik-v/yii2-widget-datetimepicker": "*",
"kartik-v/yii2-date-range": "dev-master",
"phpoffice/phpspreadsheet": "^1.2",
"linslin/yii2-curl": "*",
"kartik-v/yii2-widget-fileinput": "@dev",
"kartik-v/yii2-dialog": "*",
"google/apiclient": "^2.0",
"delight-im/str": "^2.4",
"mongosoft/yii2-soap-client": "*"
},
"require-dev": {
"yiisoft/yii2-debug": "~2.0.0",
"yiisoft/yii2-gii": "~2.0.0",
"yiisoft/yii2-faker": "~2.0.0",
"codeception/base": "^2.2.3",
"codeception/verify": "~0.3.1"
},
"config": {
"process-timeout": 1800
},
"extra": {
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
},
"scripts": {
"post-install-cmd": "php init --env=Development --overwrite=n"
},
"autoload": {
"psr-4": {
"kartik\spinner\": "",
"nirvana\showloading\": ""
}
}
}
更新 1
在我的 composer.json
文件中,我将 "minimum-stability": "stable"
更新为“"minimum-stability": "dev"”,然后再次尝试更新作曲家。现在我收到错误
Your requirements could not be resolved to an installable set of packages.
Problem 1
- mongosoft/yii2-soap-client dev-master requires ext-soap * -> the requested PHP extension soap is missing from your system.
- mongosoft/yii2-soap-client 0.1.0 requires ext-soap * -> the requested PHP extension soap is missing from your system.
- mongosoft/yii2-soap-client 0.1.0 requires ext-soap * -> the requested PHP extension soap is missing from your system.
- Installation request for mongosoft/yii2-soap-client * -> satisfiable by mongosoft/yii2-soap-client[0.1.0, dev-master].
To enable extensions, verify that they are enabled in your .ini files:
- F:\xampp\php\php.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
更新 2
根据建议,我已将 composer.json
中的 "kartik-v/yii2-krajee-base": "~1.7"
更改为 "kartik-v/yii2-krajee-base": "^2.0"
,然后我通过 cmd
运行 命令 composer update
],没有错误,所有更新都已成功完成。之后,我尝试 运行 该应用程序,但它仍然显示
Fatal error: Cannot use 'Object' as class name as it is reserved in
F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Object.php on
line 77
我怎样才能摆脱这个问题?
任何帮助将不胜感激
你已经到达那里 "kartik-v/yii2-date-range": "dev-master"
这意味着你要求最新的开发版本的包,这不是首选但如果你将 "kartik-v/yii2-krajee-base": "~1.7"
更改为 "kartik-v/yii2-krajee-base": "^2.0"
因为现在你正在阻止它(这正是作曲家信息所说的)。 Read more about composer version constraints.
Yii 本身似乎有问题。你可以阅读它 here.
有几个选项供您选择:
- 将 yii 版本升级到
2.0.13
或更高版本。
- 将 PHP 版本降级到
7.0.23
。
- 在有问题的地方手动将
Object
替换为BaseObject
。(这是最简单的,但在质量变化方面最差)。
我建议做第一个。
要升级 yii 版本你应该 运行
composer self-update
composer global require "fxp/composer-asset-plugin:^1.4.1" --no-plugins
composer require "yiisoft/yii2:~2.0.13" --update-with-dependencies
如果您在自己的代码中使用 Object
class 或者您使用的是某些扩展的旧版本,则可能仍然存在此问题。在这种情况下,您应该在代码中手动将 Object
替换为 BaseObject
并更新扩展,或者如果新版本不可用,也手动替换它或使用其他扩展。
正如下面提到的 @rob006,不再需要 fxp/composer-asset-plugin
,您应该改用 packagist。您可以在我在评论中给您的 article 中阅读更多相关信息。
我刚刚安装了xampp,将项目文件夹放在了htdocs
。安装作曲家。但是当我尝试打开我的网络界面时,出现了错误
Fatal error: Cannot use 'Object' as class name as it is reserved in F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Object.php on line 77
我搜索了解决方案并找到了这个
F:\xampp\htdocs\inventory-web>composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
之后,我遇到了以下错误
Your requirements could not be resolved to an installable set of packages.
Problem 1
- kartik-v/yii2-date-range dev-master requires kartik-v/yii2-krajee-base >=2.0.0 -> satisfiable by kartik-v/yii2-krajee-base[dev-master, 2.0.x-dev, v2.0.0, v2.0.1, v2.0.2, v2.0.3, v2.0.4, v2.0.5] but these conflict with your requirements or minimum-stability.
- kartik-v/yii2-date-range dev-master requires kartik-v/yii2-krajee-base >=2.0.0 -> satisfiable by kartik-v/yii2-krajee-base[dev-master, 2.0.x-dev, v2.0.0, v2.0.1, v2.0.2, v2.0.3, v2.0.4, v2.0.5] but these conflict with your requirements or minimum-stability.
- Installation request for kartik-v/yii2-date-range dev-master -> satisfiable by kartik-v/yii2-date-range[dev-master].
Composer.json
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Project Template",
"keywords": ["yii2", "framework", "advanced", "project template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "stable",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "~2.0.6",
"yiisoft/yii2-bootstrap": "~2.0.0",
"yiisoft/yii2-swiftmailer": "~2.0.0",
"luoxiaojun1992/yii2-tinker": "*",
"kartik-v/yii2-grid": "@dev",
"kartik-v/yii2-widget-select2": "@dev",
"kartik-v/yii2-mpdf": "*",
"moonlandsoft/yii2-phpexcel": "*",
"nirvana-msu/yii2-showloading": "1.0.*@dev",
"kartik-v/yii2-krajee-base": "~1.7",
"kartik-v/yii2-widget-spinner": "@dev",
"edwinhaq/yii2-simple-loading": "*",
"c006/yii2-submit-spinner": "*",
"kartik-v/yii2-detail-view": "*",
"fedemotta/yii2-cronjob": "*",
"kartik-v/yii2-widget-datetimepicker": "*",
"kartik-v/yii2-date-range": "dev-master",
"phpoffice/phpspreadsheet": "^1.2",
"linslin/yii2-curl": "*",
"kartik-v/yii2-widget-fileinput": "@dev",
"kartik-v/yii2-dialog": "*",
"google/apiclient": "^2.0",
"delight-im/str": "^2.4",
"mongosoft/yii2-soap-client": "*"
},
"require-dev": {
"yiisoft/yii2-debug": "~2.0.0",
"yiisoft/yii2-gii": "~2.0.0",
"yiisoft/yii2-faker": "~2.0.0",
"codeception/base": "^2.2.3",
"codeception/verify": "~0.3.1"
},
"config": {
"process-timeout": 1800
},
"extra": {
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
},
"scripts": {
"post-install-cmd": "php init --env=Development --overwrite=n"
},
"autoload": {
"psr-4": {
"kartik\spinner\": "",
"nirvana\showloading\": ""
}
}
}
更新 1
在我的 composer.json
文件中,我将 "minimum-stability": "stable"
更新为“"minimum-stability": "dev"”,然后再次尝试更新作曲家。现在我收到错误
Your requirements could not be resolved to an installable set of packages.
Problem 1
- mongosoft/yii2-soap-client dev-master requires ext-soap * -> the requested PHP extension soap is missing from your system.
- mongosoft/yii2-soap-client 0.1.0 requires ext-soap * -> the requested PHP extension soap is missing from your system.
- mongosoft/yii2-soap-client 0.1.0 requires ext-soap * -> the requested PHP extension soap is missing from your system.
- Installation request for mongosoft/yii2-soap-client * -> satisfiable by mongosoft/yii2-soap-client[0.1.0, dev-master].
To enable extensions, verify that they are enabled in your .ini files:
- F:\xampp\php\php.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
更新 2
根据建议,我已将 composer.json
中的 "kartik-v/yii2-krajee-base": "~1.7"
更改为 "kartik-v/yii2-krajee-base": "^2.0"
,然后我通过 cmd
运行 命令 composer update
],没有错误,所有更新都已成功完成。之后,我尝试 运行 该应用程序,但它仍然显示
Fatal error: Cannot use 'Object' as class name as it is reserved in F:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Object.php on line 77
我怎样才能摆脱这个问题?
任何帮助将不胜感激
你已经到达那里 "kartik-v/yii2-date-range": "dev-master"
这意味着你要求最新的开发版本的包,这不是首选但如果你将 "kartik-v/yii2-krajee-base": "~1.7"
更改为 "kartik-v/yii2-krajee-base": "^2.0"
因为现在你正在阻止它(这正是作曲家信息所说的)。 Read more about composer version constraints.
Yii 本身似乎有问题。你可以阅读它 here.
有几个选项供您选择:
- 将 yii 版本升级到
2.0.13
或更高版本。 - 将 PHP 版本降级到
7.0.23
。 - 在有问题的地方手动将
Object
替换为BaseObject
。(这是最简单的,但在质量变化方面最差)。
我建议做第一个。
要升级 yii 版本你应该 运行
composer self-update
composer global require "fxp/composer-asset-plugin:^1.4.1" --no-plugins
composer require "yiisoft/yii2:~2.0.13" --update-with-dependencies
如果您在自己的代码中使用 Object
class 或者您使用的是某些扩展的旧版本,则可能仍然存在此问题。在这种情况下,您应该在代码中手动将 Object
替换为 BaseObject
并更新扩展,或者如果新版本不可用,也手动替换它或使用其他扩展。
正如下面提到的 @rob006,不再需要 fxp/composer-asset-plugin
,您应该改用 packagist。您可以在我在评论中给您的 article 中阅读更多相关信息。