PHPackages                             tobento/service-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. tobento/service-view

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

tobento/service-view
====================

A flexible PHP view system.

2.0.3(3mo ago)03929MITPHPPHP &gt;=8.4

Since Jul 5Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/tobento-ch/service-view)[ Packagist](https://packagist.org/packages/tobento/service-view)[ Docs](https://www.tobento.ch)[ RSS](/packages/tobento-service-view/feed)WikiDiscussions 2.x Synced today

READMEChangelog (10)Dependencies (28)Versions (17)Used By (9)

View Service
============

[](#view-service)

The View Service provides a simple yet flexible way to create and render views.
It brings together rendering, shared data, and asset management into a unified and extensible system, making it easy to build structured and maintainable templates.

Table of Contents
-----------------

[](#table-of-contents)

- [Getting started](#getting-started)
    - [Requirements](#requirements)
    - [Highlights](#highlights)
    - [Simple Example](#simple-example)
- [Documentation](#documentation)
    - [Data](#data)
    - [Assets](#assets)
        - [Assets Handler](#assets-handler)
    - [Renderer](#renderer)
        - [PHP Renderer](#php-renderer)
        - [Chain Renderer](#chain-renderer)
    - [View](#view)
        - [Usage](#usage)
        - [Template](#template)
        - [Macros](#macros)
        - [Tags Attributes Macro](#tags-attributes-macro)
- [Credits](#credits)

---

Getting started
===============

[](#getting-started)

Add the latest version of the view service project running this command.

```
composer require tobento/service-view

```

Requirements
------------

[](#requirements)

- PHP 8.4 or greater

Highlights
----------

[](#highlights)

- Framework-agnostic, will work with any project
- Decoupled design
- Easy to extend

Simple Example
--------------

[](#simple-example)

Here is a simple example of how to use the View service.
We will assume the following directory structure:

```
private/
    views/
        home.php
        about.php
        inc/
            header.php
            footer.php
public/
    src/
        app.css
        js/
            app.js

```

### Create and render a view

[](#create-and-render-a-view)

```
use Tobento\Service\View\View;
use Tobento\Service\View\PhpRenderer;
use Tobento\Service\View\Data;
use Tobento\Service\View\Assets;
use Tobento\Service\Dir\Dirs;
use Tobento\Service\Dir\Dir;

$view = new View(
    new PhpRenderer(
        new Dirs(
            new Dir('home/private/views/'),
        )
    ),
    new Data(),
    new Assets('home/public/src/', 'https://www.example.com/src/')
);

echo $view->render('about', ['title' => 'About', 'description' => 'Lorem ipsum']);
```

### The view template

[](#the-view-template)

```
DOCTYPE html>
