ฉันมักจะเห็นการติดตั้งโมดูลและการถอนการติดตั้งโมดูลล้มเหลวโดยมีข้อผิดพลาด
Uncaught ข้อยกเว้น PHP RuntimeException: "ตรวจพบการสร้างเราเตอร์แบบเรียกซ้ำ" ที่ /path/to/drupal/web/core/lib/Drupal/Core/Routing/RouteBuilder.php บรรทัด 121
ดูเหมือนว่าปัญหาพื้นฐานคือมีบางอย่างผิดพลาด และวิธีการจัดการข้อผิดพลาดจะพยายามรับข้อมูลเราเตอร์ที่มีการเปลี่ยนแปลงอยู่แล้ว
ความจริงที่ว่ามันสร้างข้อยกเว้น WSOD ที่ร้ายแรงนี้เป็นข้อบกพร่องหลักหรือไม่ หรือนี่เป็นหนึ่งในสิ่งที่พวกเขามักจะส่งต่อความรับผิดชอบให้กับสิ่งที่ทำให้เกิดข้อผิดพลาดดั้งเดิม? มีวิธีที่ดีในการวินิจฉัยปัญหาเหล่านี้หรือไม่?
ปล่อยให้โมดูลติดตั้งไว้ครึ่งหนึ่ง เช่นเดียวกับประเภทเอนทิตีที่ลงทะเบียน แต่ไม่มีสคีมา มันไม่ดี
ตัวอย่างข้อผิดพลาด:
เว็บไซต์พบข้อผิดพลาดที่ไม่คาดคิด กรุณาลองใหม่อีกครั้งในภายหลัง.
RuntimeException: ตรวจพบการสร้างเราเตอร์ซ้ำ ใน Drupal\Core\Routing\RouteBuilder->rebuild() (บรรทัดที่ 121 ของ core/lib/Drupal/Core/Routing/RouteBuilder.php)
Drupal\Core\ProxyClass\Routing\RouteBuilder->rebuild() (บรรทัด: 67)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRouteProvider() (บรรทัด: 104)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRoutesByPattern() (บรรทัด: 115)
Drupal\devel\EntityTypeInfo->getPathParts() (บรรทัด: 100)
Drupal\devel\EntityTypeInfo->setEntityTypeLinkTemplate() (บรรทัด: 75)
Drupal\devel\EntityTypeInfo->entityTypeAlter() (บรรทัด: 94)
devel_entity_type_alter() (บรรทัด: 539)
Drupal\Core\Extension\ModuleHandler->alter() (บรรทัด: 334)
Drupal\Core\Plugin\DefaultPluginManager->alterDefinitions() (บรรทัด: 127)
Drupal\Core\Entity\EntityTypeManager->findDefinitions() (บรรทัด: 175)
Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (บรรทัด: 22)
Drupal\Core\Plugin\DefaultPluginManager->getDefinition() (บรรทัด: 136)
Drupal\Core\Entity\EntityTypeManager->getDefinition() (บรรทัด: 257)
Drupal\Core\Entity\EntityTypeManager->getHandler() (บรรทัด: 196)
Drupal\Core\Entity\EntityTypeManager->getStorage() (บรรทัด: 497)
Drupal\Core\Entity\EntityBase::loadMultiple() (บรรทัด: 19)
Drupal\ggroup\Routing\SubgroupRouteProvider->getRoutes()
call_user_func() (สาย: 146)
Drupal\Core\Routing\RouteBuilder->rebuild() (บรรทัด: 83)
Drupal\Core\ProxyClass\Routing\RouteBuilder->rebuild() (บรรทัด: 67)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRouteProvider() (บรรทัด: 104)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRoutesByPattern() (บรรทัด: 115)
Drupal\devel\EntityTypeInfo->getPathParts() (บรรทัด: 100)
Drupal\devel\EntityTypeInfo->setEntityTypeLinkTemplate() (บรรทัด: 75)
Drupal\devel\EntityTypeInfo->entityTypeAlter() (บรรทัด: 94)
devel_entity_type_alter() (บรรทัด: 539)
Drupal\Core\Extension\ModuleHandler->alter() (บรรทัด: 334)
Drupal\Core\Plugin\DefaultPluginManager->alterDefinitions() (บรรทัด: 127)
Drupal\Core\Entity\EntityTypeManager->findDefinitions() (บรรทัด: 175)
Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (บรรทัด: 22)
Drupal\Core\Plugin\DefaultPluginManager->getDefinition() (บรรทัด: 136)
Drupal\Core\Entity\EntityTypeManager->getDefinition() (บรรทัด: 257)
Drupal\Core\Entity\EntityTypeManager->getHandler() (บรรทัด: 196)
Drupal\Core\Entity\EntityTypeManager->getStorage() (บรรทัด: 247)
Drupal\views\EventSubscriber\ViewsEntitySchemaSubscriber->onEntityTypeDelete() (บรรทัด: 51)
Drupal\views\EventSubscriber\ViewsEntitySchemaSubscriber->onEntityTypeEvent()
call_user_func() (สาย: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (บรรทัด: 145)
Drupal\Core\Entity\EntityTypeListener->onEntityTypeDelete() (บรรทัด: 167)
Drupal\Core\Entity\EntityDefinitionUpdateManager->uninstallEntityType() (บรรทัด: 490)
Drupal\Core\Extension\ModuleInstaller->ถอนการติดตั้ง() (บรรทัด: 91)
Drupal\Core\ProxyClass\Extension\ModuleInstaller->ถอนการติดตั้ง() (บรรทัด: 174)
Drupal\system\Form\ModulesUninstallConfirmForm->submitForm()
call_user_func_array() (สาย: 114)
Drupal\Core\Form\FormSubmitter->executeSubmitHandlers() (บรรทัด: 52)
Drupal\Core\Form\FormSubmitter->doSubmitForm() (บรรทัด: 592)
Drupal\Core\Form\FormBuilder->processForm() (บรรทัด: 320)
Drupal\Core\Form\FormBuilder->buildForm() (บรรทัด: 73)
Drupal\Core\Controller\FormController->getContentResult()
call_user_func_array() (สาย: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (บรรทัด: 564)
Drupal\Core\Render\Renderer->executeInRenderContext() (บรรทัด: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() (บรรทัด: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (บรรทัด: 158)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (บรรทัด: 80)
Symfony\Component\HttpKernel\HttpKernel->handle() (บรรทัด: 58)
Drupal\Core\StackMiddleware\Session->handle() (บรรทัด: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (บรรทัด: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (บรรทัด: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle() (บรรทัด: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (บรรทัด: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (บรรทัด: 23)
Stack\StackedHttpKernel->handle() (บรรทัด: 708)
Drupal\Core\DrupalKernel->handle() (บรรทัด: 19)