PHPackages                             comhon-project/template-renderer - 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. comhon-project/template-renderer

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

comhon-project/template-renderer
================================

PHP library that permit to render templates and permit to define which renderer to use

v1.4.2(10mo ago)01.4k1MITPHPPHP ^8.1CI passing

Since Nov 24Pushed 10mo ago1 watchersCompare

[ Source](https://github.com/comhon-project/template-renderer)[ Packagist](https://packagist.org/packages/comhon-project/template-renderer)[ Docs](https://github.com/comhon-project/template-renderer)[ RSS](/packages/comhon-project-template-renderer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (8)Versions (12)Used By (1)

PHP Template Renderer
=====================

[](#php-template-renderer)

- Your library needs to render templates (example: email template) but you don't want to implement it ?
- You want your template renderer to be customizable by developers that use your library ?

This library is made for that! it permit to render templates and permit to define which renderer to use. This library is generally intended for Laravel projects but you can use it even if you are not implementing a Laravel project.

There is only one renderer available by default ([twig](https://twig.symfony.com)), but you can add your own by defining your own driver.

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require comhon-project/template-renderer
```

For laravel project, you can publish the config file with:

```
php artisan vendor:publish --tag="template-renderer-config"
```

Usage
-----

[](#usage)

### Laravel project

[](#laravel-project)

```
$rendered = Template::render(
    'Hello {{ user.name }} !!!',
    ['user' => ['name' => 'john doe']]
);

echo $rendered;
// output: Hello john doe !!!
```

### Non Laravel project

[](#non-laravel-project)

```
use Comhon\TemplateRenderer\TemplateManager;

// the instantiation mechanism should be implemented in a specific place
// and called only one time (TemplateManager should be used as singleton)
$templateManager = new TemplateManager($app);

$rendered = $templateManager->render(
    'Hello {{ user.name }} !!!',
    ['user' => ['name' => 'john doe']]
);

echo $rendered;
// output: Hello john doe !!!
```

Adding custom renderer driver
-----------------------------

[](#adding-custom-renderer-driver)

First, you will have to define a class that implements `Comhon\TemplateRenderer\Renderers\RendererInterface`

```
