Eta
A lightweight PHP templating engine designed for rapid prototypes and small-scale web applications.
composer require cobbdb/eta
, (*1)
The symbol for the Greek capital letter eta is H. Eta is often used in math as the symbol for efficiency., (*2)
This engine was designed for prototypes and small-scale web applications that need to be developed and deployed quickly with minimal setup. Since Eta does not use custom template tags, projects can be easily turned over to a more robust framework like Cake or Yii in the future., (*3)
Installation
- Copy this file into a directory of your choosing and add the require_once to the file that is using Eta.
- The default directory for Eta is
./
, but may be changed via H::setHome()
.
- The default page template for Eta is
./base.view
, but this may be changed via H::setBase()
.
Usage
Here is a simple hello world example:
// index.php
require_once "H.php";
$who = "World";
echo H::render(null, [
"name" => $who
]);
```php
// base.view
Hello = $name ?>!, (*4)
###### Example of a template include:
```php
<div id="myWidget">
<?= H::render("neat/widget.html") ?>
</div>
render(path, [model], [grounded])
Render a template without auto-responding., (*5)
Parameters
* {String} path - Path to the template or null to use the base template.
* {Array} [model] - Data to inject into the template.
* {Boolean} [grounded] - False to use a literal path and bypass the home directory., (*6)
Returns {String}
Throws {MissingTemplateException}, (*7)
// The 'grounded' argument can bypass the home directory
$myView = H::render("../my/template.html", [], false);
setHome(path, [remember])
Set a new default views directory., (*8)
Paramters
* {String} path
* {Boolean} [remember] - True to retain this as the default directory for use with reset()., (*9)
// Default is the same directory in which eta.php file is placed.
H::setHome("/path/to/my/templates/");
setBase(path)
Set a new default base page template., (*10)
Paramters
* {String} path - Complete path to new base template., (*11)
// Default is ./base.view
H::setBase("/path/to/myBase.html");
// Now H::render(null) will use a new base template!
reset()
Reset Eta back to default home directory., (*12)
// Use special templates directory temporarily.
H::setHome("../path/to/other/templates/");
H::render("some/newThing.tpl");
H::render("and/another/template.html");
// Now reset home back to default for rest of project!
H::reset();
By Dan Cobb: cobbdb@gmail.com - petitgibier.sytes.net
License: MIT, (*13)