按照github示例,无法安装/要求ongr / elasticsearch-bundle“〜5.0”。
我正在运行最新的symfony的全新安装。
我正在运行以下命令:
Composer 需要ongr / elasticsearch-bundle“〜5.0”
按照https://github.com/ongr-io/ElasticsearchBundle
composer require ongr/elasticsearch-bundle "~5.0"
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Restricting packages listed in "symfony/symfony" to "4.2.*"
Package operations: 7 installs, 0 updates, 0 removals
- Installing react/promise (v2.7.1): Loading from cache
- Installing guzzlehttp/streams (3.0.0): Loading from cache
- Installing guzzlehttp/ringphp (1.1.1): Loading from cache
- Installing elasticsearch/elasticsearch (v5.5.0): Loading from cache
- Installing ongr/elasticsearch-dsl (v5.0.6): Loading from cache
- Installing symfony/templating (v4.2.11): Loading from cache
- Installing ongr/elasticsearch-bundle (v5.2.4): Loading from cache
Writing lock file
Generating autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Symfony operations: 1 recipe (c91982d16a3859d0a43fd4ff85aa437a)
- Configuring ongr/elasticsearch-bundle (>=v5.2.4): From auto-generated recipe
Executing script cache:clear [KO]
[KO]
Script cache:clear returned with error code 1
!!
!! In ArrayNode.php line 228:
!!
!! The child node "managers" at path "ongr_elasticsearch" must be configured.
!!
!!
!!
Script @auto-scripts was called via post-update-cmd
Installation failed, reverting ./composer.json to its original content.
我该怎么做才能解决这个问题?
本教程提到了config.yml(我没有),我假设如果安装过程中不存在该文件,则会创建该文件。
最佳答案
问题在于,有一个脚本可以在安装新的依赖项之后立即清除Symfony缓存,然后您才有机会向配置文件中添加正确的配置。
假设composer.json
文件中有一个部分如下所示:
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
您应该删除
"cache:clear": "symfony-cmd"
行。如果看起来不完全像这样,只需删除所有包含cache:clear
的行。在成功安装并配置了ongr/elasticsearch-bundle
之后,您可能想要恢复此行/这些行,这样,在安装与Symfony Flex更好地兼容的 bundle 包或不成为受害者之后,不必记住手动清除缓存。竭尽全力寻求帮助。另外,这可能是一个更好的解决方案-完全摆脱
symfony/flex
。当某些第三方在不检查是否满足所有要求的情况下将命令添加到配方中时,就有一个搞乱您的配置文件的习惯。我知道,我去过那里。