PHPackages                             devpontes/view - 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. [Templating &amp; Views](/categories/templating)
4. /
5. devpontes/view

ActiveLibrary[Templating &amp; Views](/categories/templating)

devpontes/view
==============

View é um componente simples para renderização de templates com PHP nativo

v4.0.2(3mo ago)245MITPHPPHP &gt;=8.0

Since Nov 15Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/moisespontes/view)[ Packagist](https://packagist.org/packages/devpontes/view)[ RSS](/packages/devpontes-view/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (10)DependenciesVersions (14)Used By (0)

View by @Devpontes
==================

[](#view-by-devpontes)

[![Maintainer](https://camo.githubusercontent.com/a468d2a24fcbc9f8f59d466f763b4ad34c4801d577483b6503e615775046acb9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d61696e7461696e65722d406d6f69736573706f6e7465732d626c75652e7376673f7374796c653d666c61742d737175617265)](https://github.com/moisespontes)[![Source Code](https://camo.githubusercontent.com/45684bde4e7322498f2b2283927771eea702d833ba6c6b97bd9409aa7a08bf42/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736f757263652d6d6f69736573706f6e7465732f766965772d626c75652e7376673f7374796c653d666c61742d737175617265)](https://github.com/moisespontes/view)[![PHP from Packagist](https://camo.githubusercontent.com/4d8a9f65b4c712209f790fe29dffe0d16e699799830cdcb6bc2e223c465ee5e3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f646576706f6e7465732f766965772e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/devpontes/view)[![Latest Version](https://camo.githubusercontent.com/742fc0b050b8f7b4754263364284b91be3318ed376bd8ab2965fd4eb53bd12df/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6d6f69736573706f6e7465732f766965772e7376673f7374796c653d666c61742d737175617265)](https://github.com/moisespontes/view/releases)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Build](https://camo.githubusercontent.com/2e94d7c7501d3160544441e7a27b475ad0e22956a1444d5b8de59b64451e176f/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f6275696c642f672f6d6f69736573706f6e7465732f766965772e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/moisespontes/view)[![Quality Score](https://camo.githubusercontent.com/c28e3564e34d9a111ec44dc40076e93d2b114682912d092ab77c57f40d9421ec/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6d6f69736573706f6e7465732f766965772e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/moisespontes/view)[![Total Downloads](https://camo.githubusercontent.com/80caecfa5b8f08505b81fa3a78df1eca6fd37db92908f533d844109db70717e3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f646576706f6e7465732f766965772e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/devpontes/view)

📖 Sobre o Componente
--------------------

[](#-sobre-o-componente)

**View** é um componente leve e simples para renderização de templates com **PHP nativo**, ideal para projetos que buscam uma solução minimalista sem dependências pesadas.

ENPTView is a simple component for rendering templates with native PHP.View é um componente simples para renderização de templates com PHP nativo.✨ Principais Características
----------------------------

[](#-principais-características)

- 🎨 **Renderização simples de templates** - Use PHP puro sem sintaxe especial
- 🎯 **Controle dinâmico de ativos (JS e CSS)** - Gerencie seus assets facilmente e com versionamento automático
- 🏗️ **Controle dinâmico do layout HTML** - Use componentes modulares para head, header, aside e footer
- 📦 **PHP 8.0+** - Escrito com as últimas features do PHP
- 🚀 **Zero dependencies** - Nenhuma dependência externa
- 🔄 **Fluent Interface** - API intuitiva e encadeável

📋 Sumário
---------

[](#-sumário)

- [Instalação](#-instala%C3%A7%C3%A3o)
- [Uso Rápido](#-uso-r%C3%A1pido)
- [Documentação Completa](#-documenta%C3%A7%C3%A3o-completa)
    - [Classe View](#classe-view)
    - [Classe Assets](#classe-assets)
- [Estrutura de Pastas](#-estrutura-de-pastas-recomendada)
- [Exemplos Práticos](#-exemplos-pr%C3%A1ticos)
- [Tratamento de Erros](#-tratamento-de-erros)
- [Dicas e Boas Práticas](#-dicas-e-boas-pr%C3%A1ticas)
- [Contributing](#-contributing)
- [License](#-license)

---

🚀 Instalação
------------

[](#-instalação)

### Via Composer

[](#via-composer)

```
composer require devpontes/view
```

Ou adicione manualmente ao seu `composer.json`:

```
{
  "require": {
    "devpontes/view": "4.0.*"
  }
}
```

Depois execute:

```
composer install
```

---

⚡ Uso Rápido
------------

[](#-uso-rápido)

### 1. Defina o caminho das views

[](#1-defina-o-caminho-das-views)

```
$viewPath = 'views';
```

### 2. Inicialize o View

[](#2-inicialize-o-view)

```
$v = new \DevPontes\View\View($viewPath, 'php');
```

### 3. Defina os componentes do layout

[](#3-defina-os-componentes-do-layout)

```
$v->setHead('includes.head');
$v->setHeader('includes.header');
$v->setAside('includes.aside');
$v->setFooter('includes.footer');
```

### 4. Prepare seus dados e renderize

[](#4-prepare-seus-dados-e-renderize)

```
$data = ['user' => $user, 'posts' => $posts];
$v->render('home', $data);
```

---

📚 Documentação Completa
-----------------------

[](#-documentação-completa)

### Classe View

[](#classe-view)

A classe `View` é responsável por renderizar os templates e gerenciar o layout da aplicação.

#### Construtor

[](#construtor)

```
$v = new \DevPontes\View\View(string $viewPath, string $extension)
```

ParâmetroTipoDescrição`$viewPath`stringCaminho para a pasta contendo os arquivos de view`$extension`stringExtensão dos arquivos de template (padrão: `php`)**Exemplo:**

```
$v = new \DevPontes\View\View('src/views', 'php');
```

---

#### Métodos de Configuração do Layout

[](#métodos-de-configuração-do-layout)

##### `setHead(string $head): View`

[](#setheadstring-head-view)

Define o arquivo a ser incluído no início do template (dentro da tag ``).

```
$v->setHead('includes.head');
// Carregará: views/includes/head.php
```

##### `setHeader(string $header): View`

[](#setheaderstring-header-view)

Define o arquivo de cabeçalho da página.

```
$v->setHeader('includes.header');
// Carregará: views/includes/header.php
```

##### `setAside(string $aside): View`

[](#setasidestring-aside-view)

Define o arquivo da barra lateral/menu.

```
$v->setAside('includes.aside');
// Carregará: views/includes/aside.php
```

##### `setFooter(string $footer): View`

[](#setfooterstring-footer-view)

Define o arquivo de rodapé da página.

```
$v->setFooter('includes.footer');
// Carregará: views/includes/footer.php
```

**Todos os métodos retornam `View`, permitindo encadeamento:**

```
$v->setHead('includes.head')
  ->setHeader('includes.header')
  ->setAside('includes.aside')
  ->setFooter('includes.footer');
```

---

#### Método de Renderização

[](#método-de-renderização)

##### `render(string $view, array $data = []): void`

[](#renderstring-view-array-data---void)

Renderiza um template com os dados fornecidos. O layout é aplicado conforme definido nos métodos anteriores.

```
$v->render('home', [
    'user' => $user,
    'posts' => $posts,
    'settings' => $config
]);
```

**Ordem de renderização:**

1. Head
2. Header
3. Aside
4. View principal
5. Footer

---

#### Métodos Utilitários

[](#métodos-utilitários)

##### `insert(string $view): void`

[](#insertstring-view-void)

Insere um componente diretamente dentro de uma view. Útil para componentes reutilizáveis.

```
