Módulos múltiplos e layouts ZF3

Estou trabalhando em um site com vários módulos usando o Zend Framework 3 por ~ 6 meses, aprendendo à medida que avança. Na maioria das vezes, tive bastante sucesso, mas me deparei com um problema que descreverei abaixo. Existem ~ 20 módulos e eu determinei que em cada módulo module.config.php eu deveria definir um nome único para o Layout como este.

Amostra de espaço para nomeNome do Controlador: SampleController.phpmodule / Sample / view / sam_layout.phtml

E nos módulos de amostra 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',

Se eu chamar o arquivo de layout 'layout.phtml', mesmo tendo em mente os Namespaces, não é certo que a exibição pretendida apareça ou esteja apenas parcialmente correta. Notei que, se eu reorganizar os nomes dos módulos em composer.json e modules.config.php, em seguida, execute o composer dump-autoload. Eu recebo um conjunto diferente de layouts misturados, independentemente de eu fornecer ou não um prefixo exclusivo ao arquivo layout.phtml.

A única coisa que parece esclarecer isso é fazer algo como limpar o compositor.json e os módulos.config.php, exceto o módulo Aplicativo, em seguida, execute novamente o compositor dump-autoload ou altere o nome dos módulos e adicione-o ao compositor. O json & modules.config executa novamente o dump-autoload e, em seguida, coloca o nome do módulo de volta. Essencialmente, agite a configuração para forçar o que parece estar mantendo as visualizações embaralhadas para liberar e re-mapear tudo. Observe que, quando esse problema desaparece magicamente, ele desaparece e podemos continuar desenvolvendo código como se nada estivesse errado.

Devo observar que começamos com a aplicação-esqueleto no modo de desenvolvimento. Na verdade, eu apago todos os arquivos na pasta de dados / cache. A maioria das visualizações nos diferentes módulos compartilha a Barra de Navegação, mas vários módulos podem escolher uma visualização específica da Barra de Navegação dos módulos, e é muito difícil limpá-la.

Então, tendo descrito o exposto, tenho algumas perguntas. Outros desenvolvedores têm esse mesmo problema, por que não posso atribuir um nome exclusivo a um script de layout e esperar que a exibição seja respeitada? À medida que avançamos, tenho certeza de que cada módulo terá mais layouts e, claro, mais arquivos .phtml na pasta amostra / amostra (tomando o exemplo acima), continuaremos vendo esse comportamento? O Apache Web Server ou PHP7 pode estar armazenando em cache arquivos e caminhos que causam esse problema e o ZF3 não tem nada a ver com isso? Nota: Não tenho o opcache ativado.

Por favor, seja misericordioso: se você me enterrar no código OO, provavelmente não vai me ajudar a entender o que está acontecendo.

questionAnswers(1)

yourAnswerToTheQuestion