vakata/views

A simple PHP templating engine

2.0.2 2016-10-27 11:39 UTC

This package is auto-updated.

Last update: 2024-12-10 06:10:00 UTC


README

Latest Version on Packagist Software License Build Status Code Climate Tests Coverage

A simple PHP templating engine.

Install

Via Composer

$ composer require vakata/views

Usage

use vakata\views\Views;

$views = new vakata\views\Views();

// register template dirs
$views->dir('/path/to/templatedir');
$views->dir('/path/to/otherdir', 'other');

// a variable available in all templates
$views->share("siteTitle", "test");

// variables available in all templates
$views->share(["a" => 1, "b" => 2]);

// render a template from the first dir:
$views->render('profile', ['user' => 'Test']);

// render a template from a named dir:
$views->render('other::user', ['user' => 'Test']);

// the above is the same as
$v = $views->get('other::user');
$v->render(['user'=>'Test']);

A sample template may look like this:

<?php $this->layout('master.layout', ['masterParam' => 'master-value']); ?>

Content

<?php $this->sectionStart("sidebar"); ?>
Here is some unfiltered content: <?= $b ?> 
Here is some filtered content: <?= $this->e($user) ?> 
<?php $this->sectionStop(); ?>

Here is some filtered and transformed content:
<?= $this->e($user, 'trim|strtouuper') ?> 

Include a child template:
<?= $this->insert('nameddir::include', ['optional' => 'params']); ?>

As for the master template (which can in turn have its own master template):

I am master!

<?= $this->section("sidebar") ?>

<?= $masterParam ?> <?= $a ?>

The unnamed part of the above template:
<?= $this->section() ?>

Read more in the API docs

Testing

$ composer test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email github@vakata.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.