作者: 老葛 亚艾元软件
Panels 3.0-beta ---> 4.1
Page_manager 1.0-alpha24 ---> beta2
Layout_plugin 删除,卸载
Bootstrap layouts 3.1 -> 4.1 -> 5.x
Ctools 8.x-3.0-alpha27 --》 8.x-3.0
先将Drupal8.2.4升级到Drupal8.2.8,没有任何问题。
Bootstrap layouts 3.1 -> 4.1,
结果多个页面访问不了,使用了这个布局的,
Fatal error: Call to a member function getIconPath() on a non-object in D:\xampp\htdocs\d8eg\modules\panels\panels.module on line 51
Fatal error: Call to a member function setIconPath() on a non-object in
通过多次不断的尝试,目前唯一的解决办法,就是将相关的模块全部卸载掉,
然后升级到Drupal8.3,最后再启用相关的模块,重新构建相关的页面。
卸载Bootstrap layouts 模块,Layout_plugin, 其余模块升级到最新。
关在在于Bootstrap layouts 模块,出了问题。从3.1升级到4.1的时候,就存在问题。
重新升级:
先将相关模块升级到最新版本,删除依赖关系,对于
Panels 3.0-beta ---> 4.1
Page_manager 1.0-alpha24 ---> beta2
Bootstrap layouts 3.1 -> 5.x
Ctools 8.x-3.0-alpha27 --》 8.x-3.0
2,卸载laylout_plugin模块,中间会报错,刷新继续,可以删除。
3,将Drupal核心升级到8.3.2,注意,core,venders目录,删除, 将最新Drupal8.3.2拷贝过来。
4,回到modules目录,启用layout discovery模块。
此时会报错,
arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@theme_handler', '@theme.manager', '@plugin.manager.core.layout', '@plugin.manager.bootstrap_layouts.update']
改为:
arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@theme_handler', '@theme.manager', '@plugin.manager.bootstrap_layouts.update']
启用: Layout Discovery
还是不行。
应用补丁:
https://www.drupal.org/node/2872751
https://www.drupal.org/files/issues/the_service-2872751-19.patch
经过测试,还是不行。最终需要卸载:
Bootstrap layouts模块,在8.2
5,启用Layout Discovery,
6,运行update.php,
7,Bootstrap layouts 升级到5.x,启用,
8,启用mycustom,运行升级mycustom/test
升级成功。
卸载panelizer, icls layout。
Fatal error: Class Drupal\plugin\PluginDefinition\ArrayPluginDefinitionDecorator contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Drupal\Component\Plugin\Definition\PluginDefinitionInterface::id) in D:\xampp\htdocs\liuyin\modules\plugin\src\PluginDefinition\ArrayPluginDefinitionDecorator.php on line 367
plugin 需要升级到-8.x-2.5
Fatal error: Class Drupal\rules\Ui\RulesUiDefinition contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (Drupal\Component\Plugin\Definition\PluginDefinitionInterface::id, Drupal\Component\Plugin\Definition\PluginDefinitionInterface::getProvider) in D:\xampp\htdocs\liuyin\modules\rules\src\Ui\RulesUiDefinition.php on line 146
Rules 升级到dev版本。