Php 未捕获类型错误:Magento\InventoryComposer安装程序的返回值必须是Magento\InventoryComposer安装程序\void的实例,未返回任何值
我正试图通过composer在我的web服务器上安装Magento 2。必须将以下内容添加到composer.json文件中,以便在使用php版本的情况下使所有内容都在公平的环境中工作:Php 未捕获类型错误:Magento\InventoryComposer安装程序的返回值必须是Magento\InventoryComposer安装程序\void的实例,未返回任何值,php,magento,composer-php,magento2,Php,Magento,Composer Php,Magento2,我正试图通过composer在我的web服务器上安装Magento 2。必须将以下内容添加到composer.json文件中,以便在使用php版本的情况下使所有内容都在公平的环境中工作: "config": { "platform": { "php": "7.2.14" } } 然后,当我安装composer时,我开始让事情发生: Loading composer repositories with package information Updating d
"config": {
"platform": {
"php": "7.2.14"
}
}
然后,当我安装composer时,我开始让事情发生:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 392 installs, 0 updates, 0 removals
- Installing magento/magento-composer-installer (0.1.13): Downloading (100%)
- Installing symfony/polyfill-ctype (v1.10.0): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.10.0): Downloading (100%)
- Installing zendframework/zend-stdlib (2.7.7): Downloading (100%)
- Installing zendframework/zend-hydrator (1.1.0): Downloading (100%)
- Installing psr/container (1.0.0): Downloading (100%)
- Installing container-interop/container-interop (1.2.0): Downloading (100%)
- Installing zendframework/zend-validator (2.11.1): Downloading (100%)
- Installing zendframework/zend-escaper (2.6.0): Downloading (100%)
- Installing zendframework/zend-uri (2.6.1): Downloading (100%)
- Installing psr/http-message (1.0.1): Downloading (100%)
- Installing zendframework/zend-diactoros (1.8.6): Downloading (100%)
- Installing zendframework/zend-loader (2.6.0): Downloading (100%)
- Installing zendframework/zend-http (2.8.4): Downloading (100%)
- Installing zendframework/zend-psr7bridge (0.2.2): Downloading (100%)
- Installing zendframework/zend-servicemanager (2.7.11): Downloading (100%)
- Installing zendframework/zend-filter (2.9.1): Downloading (100%)
- Installing zendframework/zend-inputfilter (2.10.0): Downloading (100%)
- Installing zendframework/zend-form (2.13.0): Downloading (100%)
- Installing zendframework/zend-eventmanager (2.6.4): Downloading (100%)
- Installing zendframework/zend-code (3.3.1): Downloading (100%)
- Installing zendframework/zend-console (2.7.0): Downloading (100%)
- Installing zendframework/zend-mvc (2.7.15): Downloading (100%)
- Installing zendframework/zend-math (2.7.1): Downloading (100%)
- Installing zendframework/zend-crypt (2.6.0): Downloading (100%)
- Installing tedivm/jshrink (v1.3.1): Downloading (100%)
- Installing symfony/process (v4.1.11): Downloading (100%)
- Installing symfony/console (v4.1.11): Downloading (100%)
- Installing oyejorge/less.php (v1.7.0.14): Downloading (100%)
- Installing psr/log (1.1.0): Downloading (100%)
- Installing monolog/monolog (1.24.0): Downloading (100%)
- Installing magento/zendframework1 (1.14.1): Downloading (100%)
- Installing symfony/finder (v4.2.3): Downloading (100%)
- Installing symfony/filesystem (v4.2.3): Downloading (100%)
- Installing seld/phar-utils (1.0.1): Downloading (100%)
- Installing seld/jsonlint (1.7.1): Downloading (100%)
- Installing justinrainbow/json-schema (5.2.8): Downloading (100%)
- Installing composer/xdebug-handler (1.3.2): Downloading (100%)
- Installing composer/spdx-licenses (1.5.0): Downloading (100%)
- Installing composer/semver (1.4.2): Downloading (100%)
- Installing composer/ca-bundle (1.1.4): Downloading (100%)
- Installing composer/composer (1.8.4): Downloading (100%)
- Installing colinmollenhour/credis (1.10.0): Downloading (100%)
- Installing colinmollenhour/php-redis-session-abstract (v1.4.0): Downloading (100%)
- Installing magento/framework (102.0.0): Downloading (100%)
- Installing magento/inventory-composer-installer (1.0.3): Downloading (100%)
PHP Fatal error: Uncaught TypeError: Return value of Magento\InventoryComposerInstaller\Plugin::initModuleDeployment() must be an instance of Magento\InventoryComposerInstaller\void, none returned in /var/www/vhosts/blah/project-community-edition/vendor/magento/inventory-composer-installer/src/Plugin.php:69
Stack trace:
#0 /var/www/vhosts/blah/project-community-edition/vendor/magento/inventory-composer-installer/src/Plugin.php(88): Magento\InventoryComposerInstaller\Plugin->initModuleDeployment()
#1 /var/www/vhosts/blah/project-community-edition/vendor/magento/inventory-composer-installer/src/Plugin.php(82): Magento\InventoryComposerInstaller\Plugin->getModuleDeployment()
#2 [internal function]: Magento\InventoryComposerInstaller\Plugin->onPackageChange(Object(Composer\Installer\PackageEvent))
#3 phar:///usr/lib/plesk-9.0/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php(176): call_user_func(Array, Object(Composer\Installer\PackageEvent))
#4 phar:///usr/lib/plesk-9.0/comp in /var/www/vhosts/blah/project-community-edition/vendor/magento/inventory-composer-installer/src/Plugin.php on line 69
Fatal error: Uncaught TypeError: Return value of Magento\InventoryComposerInstaller\Plugin::initModuleDeployment() must be an instance of Magento\InventoryComposerInstaller\void, none returned in /var/www/vhosts/blah/project-community-edition/vendor/magento/inventory-composer-installer/src/Plugin.php:69
Stack trace:
#0 /var/www/vhosts/blah/project-community-edition/vendor/magento/inventory-composer-installer/src/Plugin.php(88): Magento\InventoryComposerInstaller\Plugin->initModuleDeployment()
#1 /var/www/vhosts/blah/project-community-edition/vendor/magento/inventory-composer-installer/src/Plugin.php(82): Magento\InventoryComposerInstaller\Plugin->getModuleDeployment()
#2 [internal function]: Magento\InventoryComposerInstaller\Plugin->onPackageChange(Object(Composer\Installer\PackageEvent))
#3 phar:///usr/lib/plesk-9.0/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php(176): call_user_func(Array, Object(Composer\Installer\PackageEvent))
#4 phar:///usr/lib/plesk-9.0/comp in /var/www/vhosts/blah/project-community-edition/vendor/magento/inventory-composer-installer/src/Plugin.php on line 69
我没有幸在与Magento相关的问题上四处寻找帮助。与Composer(而非Magento)相关的一些类似问题要求用户提供有关Composer版本和php版本等的更多信息。以下是这些线程中请求的信息:
$ composer --version
Composer version 1.9-dev (blah) 2019-02-08 16:02:33
$ composer show composer/composer | grep versions
versions : * 1.8.4
$ composer depends composer/composer
magento/framework 102.0.0 requires composer/composer (^1.6)
$ php -version
PHP 7.0.32-0ubuntu0.16.04.1 (cli) ( NTS )
Plesk中的PHP版本:7.2.14
phpinfo()中列出的PHP版本:7.2.14
目前我对如何处理这个问题感到困惑。如有任何建议或建议,将不胜感激。这是我第一次使用Composer进行安装,由于缺乏对linux/bash等的理解/经验,我通常会尽量避开命令行内容
提前感谢此错误可归因于PHP兼容性:
- 对于
:Magento 2.3.1+
或PHP7.1
PHP7.2
- 对于
:Magento 2.3.0
PHP7.1
- 对于
:Magento 2.2
或PHP7.1
PHP7.0
- 对于
:Magento 2.1
,PHP7.1
或PHP7.0
PHP5.6
- 对于
:Magento 2.0
,PHP7.0
或PHP5.6
PHP5.5
如果没有好的PHP版本,您将永远无法使Magento 2正常工作您还应该将CLI版本更改为PHP7.2。该软件包似乎使用PHP7.1作为最低版本(因为他们在代码中使用返回类型
void
,直到PHP7.1才引入)。谢谢@MagnusEriksson,我将与主机对话。我们之前讨论过CLI版本,但是主机指出,在composer.conf文件中添加指定php版本应该可以修复php版本不兼容的问题。担心的是其他已经使用CLI的网站(即我想转移到M2安装的M1实例)可能会产生影响。问题是composer是一个PHP包,它使用PHP运行。因此,它需要使用PHP读取composer文件,然后才能知道应该使用哪个PHP版本。我不知道你的主机是如何处理的,但听起来有点奇怪。平台配置可以用来告诉Composer在解析依赖项时应该采用哪个PHP版本。但是,对于使用较新的PHP版本而不是稍后执行应用程序的版本执行Composer的情况,这只能用于强制使用较旧的PHP版本。因此,在您的情况下,您可以将其设置为较旧的PHP版本(即7.0.32)。感谢您和对我的问题发表评论的人的回复。似乎我被误导了,因为在composer.conf文件中指定webserver php版本会产生什么影响。我将我的Web服务器php降级到与我的服务器CLI php版本(7.0.32)匹配的版本,并安装了Magento 2.2.7,没有任何进一步的错误或问题。稍后我会升级CLI php版本,然后我将能够将Magento升级到最新版本。这个答案现在是错误的,即使是:读取兼容性问题。2019年3月发布的Magento 2.3.1与PHP 7.2兼容。@PolRavalitera,谢谢您的评论。你说得对,我只是编辑了我的答案。