vakata / views
A simple PHP templating engine
2.0.2
2016-10-27 11:39 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- clean/phpdoc-md: dev-master
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: 4.*
README
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.