我会简短:
我有一个安装了作曲家的 TYPO3。
让我们看看 TYPO3 的 require 部分。
"require": {
"php": ">=5.5.0",
"ext-fileinfo": "*",
"ext-json": "*",
"ext-pcre": "*",
"ext-session": "*",
"ext-xml": "*",
"psr/log": "1.0.*@dev",
"pear/http_request2": "~2.2.1",
"swiftmailer/swiftmailer": "~5.4.1",
"symfony/console": "~2.7.0",
"symfony/finder": "~2.7.0",
"doctrine/instantiator": "~1.0.4",
"typo3/class-alias-loader": "^1.0",
"typo3/cms-composer-installers": "^1.2.8",
"psr/http-message": "~1.0",
"cogpowered/finediff": "~0.3.1",
"mso/idna-convert": "^0.9.1"
}
正如你所看到的,TYPO3 需要 "symfony/console": "~2.7.0" 所以这意味着: (>=2.7 <= 2.8)
在它旁边,我为自定义 CakePHP 部件运行了一个带有迁移插件的 CakePHP。
让我们看看数据库迁移插件中的 require 部分:
"require": {
"php": ">=5.4",
"robmorgan/phinx": "0.5.3",
"cakephp/cakephp": "~3.1"
},
乍一看这里没有错,但让我们仔细看看“robmorgan/phinx”:“0.5.3”。这个插件需要以下包,让我们再次仔细看看来自“phinx”的composer.json。
"require": {
"php": ">=5.4",
"symfony/console": "~2.8|~3.0",
"symfony/config": "~2.8|~3.0",
"symfony/yaml": "~2.8|~3.0"
}
现在你可以看到这个包至少在 2.8 中需要“symfony/console”,但它不起作用,因为 TYPO3 在“~2.7.0”中需要它,这意味着:(>=2.7 <= 2.8)。
我想出了这个问题,但我不知道如何解决它。我只有一个解决方案,但它不是很好,它分叉 TYPO3 并编辑 composer.json。但这是最后的选择。
还有其他人有解决此问题的好方法吗?