Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未捕获类型错误:Magento\InventoryComposer安装程序的返回值必须是Magento\InventoryComposer安装程序\void的实例,未返回任何值_Php_Magento_Composer Php_Magento2 - Fatal编程技术网

Php 未捕获类型错误:Magento\InventoryComposer安装程序的返回值必须是Magento\InventoryComposer安装程序\void的实例,未返回任何值

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

我正试图通过composer在我的web服务器上安装Magento 2。必须将以下内容添加到composer.json文件中,以便在使用php版本的情况下使所有内容都在公平的环境中工作:

"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版本,并根据需要升级或降级PHP


如果没有好的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,谢谢您的评论。你说得对,我只是编辑了我的答案。