PHPackages                             sergiohermes/zf3-mvc-layout-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. sergiohermes/zf3-mvc-layout-manager

ActiveLibrary

sergiohermes/zf3-mvc-layout-manager
===================================

Gerenciador de Layout para módulos em ZF3.

2.0.0(8y ago)039MITPHPPHP ^5.6 || ^7.0

Since Dec 7Pushed 8y ago1 watchersCompare

[ Source](https://github.com/sergiohermes/zf3-mvc-layout-manager)[ Packagist](https://packagist.org/packages/sergiohermes/zf3-mvc-layout-manager)[ RSS](/packages/sergiohermes-zf3-mvc-layout-manager/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

zf3-mvc-layout-manager
======================

[](#zf3-mvc-layout-manager)

**Gerenciador de Layout para módulos em ZF3.**

Se você tiver um aplicativo modular, cada módulo pode possuir um layout diferente.

Normalmente **Login** e **Dashboard** deve compor CSS e JavaScript diferentes e separados.

Atualmente, isso não é suportado por padrão no zendframework.

Este pacote permitirá que você defina layout's diferentes para módulos diferentes.

Instalando
----------

[](#instalando)

Execute em seu terminal o comando abaixo:

`composer require sergiohermes/zf3-mvc-layout-manager`

Adicione \*\* config/modules.config.php \*\*:

```
"modules" => [
    "ZF3LayoutManager"
],

```

Como utilizar:
--------------

[](#como-utilizar)

Em cada modulo por padrão existe o arquivo **module.config.php** que possui esta configuração de **view\_manager**.

```
'view_manager' => [
    'display_not_found_reason' => true,
    'display_exceptions'       => true,
    'doctype'                  => 'HTML5',
    'not_found_template'       => 'error/404',
    'exception_template'       => 'error/index',
    'template_map' => [
        'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
        'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
        'error/404'               => __DIR__ . '/../view/error/404.phtml',
        'error/index'             => __DIR__ . '/../view/error/index.phtml',
    ],
    'template_path_stack' => [
        __DIR__ . '/../view',
    ],
],

```

Este módulo não força você a fugir do padrão referenciado atráves do "Listener" uma escuta do evento **manageLayoutForModule** que está no arquivo **Layout.php**

Logo se você precisa alterar o **template\_map** da view\_manager, sinta-se a vontade em colocar o valor que você precisa, lembrando que a chave também pode ser alterada, mas gera uma manutenção desapropriada com a finalidade deste recurso. Então reutilize o quanto for adequado.

Configuração
------------

[](#configuração)

Zend Framework possui uma configuração explicita, ou seja, se você não configurar valores ele define atributos padronizados do framework.

Então vamos configurar ![:neckbeard:](https://github.githubassets.com/images/icons/emoji/neckbeard.png ":neckbeard:")

Crie um arquivo nas configurações globais do seu projeto. Normalmente localizado em **config/autoload** chamado **layout.global.php** ou copie o arquivo **config/zf3-mvc-layout-manager.php.dist**.

Vamos supor que eu tenha 3 módulos em minha aplicação \*\* Admin, Dashboard e Login\*\* a configuração ficará como abaixo:

GLOBAL CONFIG
=============

[](#global-config)

```
'module_layouts' => [
    'Admin' => 'layout/admin-layout',
    'Dashboard' => 'layout/dashboard-layout',
    'Login' => 'layout/login-layout',

],

```

LOCAL CONFIG
============

[](#local-config)

Módulo ADMIN
------------

[](#módulo-admin)

Em cada modulo por padrão existe o arquivo **module.config.php** que possui esta configuração de **view\_manager**.

```
'view_manager' => [
    'display_not_found_reason' => true,
    'display_exceptions'       => true,
    'doctype'                  => 'HTML5',
    'not_found_template'       => 'error/404',
    'exception_template'       => 'error/index',
    'template_map' => [
        //'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
        'layout/admin-layout'           => __DIR__ . '/../view/layout/layout.phtml',
        'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
        'error/404'               => __DIR__ . '/../view/error/404.phtml',
        'error/index'             => __DIR__ . '/../view/error/index.phtml',
    ],
    'template_path_stack' => [
        __DIR__ . '/../view',
    ],
],

```

Módulo Dashboard
----------------

[](#módulo-dashboard)

Em cada modulo por padrão existe o arquivo **module.config.php** que possui esta configuração de **view\_manager**.

```
'view_manager' => [
    'display_not_found_reason' => true,
    'display_exceptions'       => true,
    'doctype'                  => 'HTML5',
    'not_found_template'       => 'error/404',
    'exception_template'       => 'error/index',
    'template_map' => [
        //'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
        'layout/dashboard-layout'           => __DIR__ . '/../view/layout/layout.phtml',
        'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
        'error/404'               => __DIR__ . '/../view/error/404.phtml',
        'error/index'             => __DIR__ . '/../view/error/index.phtml',
    ],
    'template_path_stack' => [
        __DIR__ . '/../view',
    ],
],

```

Módulo Login
------------

[](#módulo-login)

Em cada modulo por padrão existe o arquivo **module.config.php** que possui esta configuração de **view\_manager**.

```
'view_manager' => [
    'display_not_found_reason' => true,
    'display_exceptions'       => true,
    'doctype'                  => 'HTML5',
    'not_found_template'       => 'error/404',
    'exception_template'       => 'error/index',
    'template_map' => [
        //'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
        'layout/login-layout'           => __DIR__ . '/../view/layout/layout.phtml',
        'error/404'               => __DIR__ . '/../view/error/404.phtml',
        'error/index'             => __DIR__ . '/../view/error/index.phtml',
    ],
    'template_path_stack' => [
        __DIR__ . '/../view',
    ],
],

```

Perceba que você pode usar **layout/layout** , e na verdade eu uso assim mas acredito que para titulo de tutorial você irá entender melhor como a mágica funciona.

Feliz natal e ano novo!

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

3079d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e2fb67d96c851f3d2713ce93caf7b67cc16fcfd3542bb0980af82640ad550280?d=identicon)[sergiohermes](/maintainers/sergiohermes)

---

Top Contributors

[![sergiohermes](https://avatars.githubusercontent.com/u/1915564?v=4)](https://github.com/sergiohermes "sergiohermes (1 commits)")

---

Tags

layoutZend Frameworkzf3

### Embed Badge

![Health badge](/badges/sergiohermes-zf3-mvc-layout-manager/health.svg)

```
[![Health](https://phpackages.com/badges/sergiohermes-zf3-mvc-layout-manager/health.svg)](https://phpackages.com/packages/sergiohermes-zf3-mvc-layout-manager)
```

###  Alternatives

[facile-it/sentry-module

This module allows integration of Sentry Client into laminas and mezzio

19372.5k](/packages/facile-it-sentry-module)[davidhavl/dherrorlogging

Full featured error logging module for ZF2/ZF3 application

1924.5k](/packages/davidhavl-dherrorlogging)[zfc-datagrid/zfc-datagrid

Laminas Module that provides a datagrid for different datasources and output formats

1223.2k](/packages/zfc-datagrid-zfc-datagrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
