PHPackages                             coercive/render - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. coercive/render

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

coercive/render
===============

Coercive Utility Render

0.1.8(2y ago)02.3kMITPHP &gt;=7.4

Since Feb 27Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Coercive/Render)[ Packagist](https://packagist.org/packages/coercive/render)[ Docs](http://coercive.fr)[ RSS](/packages/coercive-render/feed)WikiDiscussions master Synced 2mo ago

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

Coercive Utility Render
=======================

[](#coercive-utility-render)

A simple template rendering system. \[beta\]

Get
---

[](#get)

```
composer require coercive/render

```

Load
----

[](#load)

```
use Coercive\Utility\Render\Render;

# Load
$render = new Render( 'TEMPLATES_ROOT_PATH' );

# Set globals vars (global for all views and sub injected views)
# use $render->setGlobalDatas for override or add for conserve previous added
$render->addGlobalDatas([
	'app' => new App(),
	'header' => new Header(),
	'handler' => new Handler()
	...
]);

# Set Views Datas
# use $render->setDatas for override or add for conserve previous added
$render->addDatas([
	'title' => 'My Custom Title',
	'content' => 'Lorem Ipsum Text',
	'link' => 'Visit my website : my-web-site.com'
	...
]);

# Set View path
# use $render->setPath for override or add for conserve previous added
$render->setPath('/TemplateName/ViewDir/Viewname');

# Multi views
foreach([...] as $path) {
    $render->addPath($path);
}

# If multiple template, you need to set where load a layout
# Or if you need to load in specific other template for a/b testing or events ...
$render->setTemplate('MyEventTemplate2017');

# Now, Render !
echo $render->render();
```

Errors
------

[](#errors)

```
use Coercive\Utility\Render\Render;

# Load
$render = new Render( 'TEMPLATES_ROOT_PATH' );

# You can see all errors like this
foreach($render->getExceptions() as $exception) {
    echo $exception->getMessage();
}

# Or you can log error when it's added with handler
$render->debug(function ($exception) {
    error_log(print_r($exception->getMessage(), true));
});
```

Tree
----

[](#tree)

In a template dir, Layout dir/file is required.

```
Dir: Website
- Dir: Templates
-- Dir: Template
-- Dir: view
--- File: view-1.php
--- File: view-2.php
--- File: view-3.php
-- Dir: layout
--- File: layout.php
--- File: head.php
--- File: header.php
--- File: footer.php
```

The Layout is return by the render method. So you will load &amp; echo you view inside the layout file. Even if you don't realy have a template. (empty layout)

Layout
------

[](#layout)

```
