无法使用 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.

有几个选项供您选择:

  1. 将 yii 版本升级到 2.0.13 或更高版本。
  2. 将 PHP 版本降级到 7.0.23
  3. 在有问题的地方手动将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 中阅读更多相关信息。