ZF3 Módulos múltiples y diseños múltiples

Estoy trabajando en un sitio de módulos múltiples usando Zend Framework 3 durante ~ 6 meses, aprendiendo sobre la marcha. En su mayor parte, he tenido bastante éxito, pero me he encontrado con un problema que describiré a continuación. Hay ~ 20 módulos y he determinado que en cada módulo module.config.php debería definir un nombre único para el diseño como este.

Muestra de espacio de nombresNombre del controlador: SampleController.phpmodule / Sample / view / sam_layout.phtml

Y en los módulos de muestra module.config.php

'view_manager' => [
    'display_not_found_reason' => true,
    'display_exceptions'       => true,
    'doctype'                  => 'HTML5',
    'template_map' => [
    'layout/layout' => _DIR__ . '/../view/layout/sam_layout.phtml',
    'sample/sample/index' => __DIR__ . '/../view/sample/sample/index.phtml',
    ],
    'template_path_stack' => [
    'Sample' =>  __DIR__ . '/../view',

Si llamo al archivo de diseño 'layout.phtml' a pesar de que soy consciente de los espacios de nombres, no estoy seguro de que aparezca la vista deseada o sea solo parcialmente correcta. Noté que si reorganizo los nombres de los módulos en composer.json y modules.config.php y luego ejecuto composer dump-autoload, obtengo un conjunto diferente de diseños mezclados, independientemente de si le doy al archivo layout.phtml un prefijo único o no.

Lo único que parece aclarar esto es hacer algo como borrar el composer.json y modules.config.php, excepto por el módulo de aplicación y luego volver a ejecutar composer dump-autoload o cambiar el nombre de los módulos y agregarlo al compositor. json & modules.config vuelva a ejecutar dump-autoload y luego vuelva a poner el nombre del módulo. Esencialmente sacudiendo la configuración para forzar lo que parece mantener las vistas codificadas para soltar y volver a mapear todo. Tenga en cuenta que cuando este problema se resuelve mágicamente, desaparece y podemos continuar desarrollando código como si nada hubiera estado mal.

Debo señalar que comenzamos con la aplicación esqueleto en modo de desarrollo. De hecho, elimino cualquier archivo en la carpeta de datos / caché. La mayoría de las vistas en los diferentes módulos comparten la barra de navegación, pero varios módulos podrían elegir una vista de barra de navegación de módulos en particular y es muy difícil de borrar.

Entonces, habiendo descrito lo anterior, tengo algunas preguntas. ¿Otros desarrolladores tienen este mismo problema? ¿Por qué no puedo darle un nombre único a un script de diseño y esperar que se respete la vista? A medida que avanzamos, estoy seguro de que cada módulo tendrá más diseños y, por supuesto, más archivos .phtml en la carpeta de ejemplo / muestra (Tomando el ejemplo de arriba) ¿continuaremos viendo este comportamiento? ¿Podría el servidor web Apache o PHP7 estar almacenando en caché los archivos y las rutas que causan este problema y ZF3 no tiene nada que ver con eso? Nota: no tengo habilitado opcache.

Sea misericordioso: si me entierra en el código OO, es probable que no me ayude a comprender lo que está sucediendo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta