Php 容器注册表类型3不可用

Php 容器注册表类型3不可用,php,deployment,typo3,command-line-interface,Php,Deployment,Typo3,Command Line Interface,在部署时,尝试调用typo3 cli命令时出现以下异常/typo3cms列表。在本地环境中,这不会发生 Uncaught TYPO3 Exception #1519978105: Container entry "TYPO3\CMS\Core\Console\CommandRegistry" is not available. 由于执行命令时未将composer.json和composer.lock部署到计算机上,因此会发生。 在这些文件中,设置了调用这些命令所需的配置/引导。您可能在部署配置

在部署时,尝试调用typo3 cli命令时出现以下异常<代码>/typo3cms列表。在本地环境中,这不会发生

Uncaught TYPO3 Exception #1519978105: Container entry "TYPO3\CMS\Core\Console\CommandRegistry" is not available.

由于执行命令时未将
composer.json
composer.lock
部署到计算机上,因此会发生。 在这些文件中,设置了调用这些命令所需的配置/引导。

您可能在部署配置中排除了所有名为
composer.json
的文件。 这样做会排除所需的根
composer.json
,但也会从
EXT:core
中排除
composer.json
,这可能是您不打算排除的

因此,请确保将您的部署调整为仅排除
/composer.json
,而不是通常排除
composer.json

  exclude:
    - /composer.json
背景:容器条目
TYPO3\CMS\Core\Console\CommandRegistry
由服务提供商
TYPO3\CMS\Core\ServiceProvider
定义,该服务提供商在
TYPO3/sysext/Core/composer.json
中注册:

"typo3/cms": {
    "Package": {
        "serviceProvider": "TYPO3\\CMS\\Frontend\\ServiceProvider"
    }
}

删除
composer.json
文件时,服务提供商注册不可用,因此不会定义容器条目。

谢谢!这可能会花费我几个小时来发现,这正是我的冲浪部署设置的问题所在。立竿见影!注意:您只需要TYPO3扩展名的
compser.json
文件,不需要根
composer.json
composer.lock
文件。因此,请确保在部署期间仅排除
/composer.json
,而不是一般排除所有
composer.json
文件。