PHP Classes

Absint PHP Template Engine Trait: Trait to render templates from inside any class

Recommend this page to a friend!
  Info   View files Example   View files View files (10)   DownloadInstall with Composer Download .zip   Reputation   Support forum (3)   Blog (1)    
Last Updated Ratings Unique User Downloads Download Rankings
2021-01-29 (10 months ago) RSS 2.0 feedNot yet rated by the usersTotal: 61 This week: 1All time: 9,996 This week: 268Up
Version License PHP version Categories
absint 1.1Freeware7Templates, PHP 7, Traits
Description Author

This package provides a trait to render templates from inside any class.

It implements a template engine in a trait that can parse a template given string and replace template marks by given variables values or values of variables of the class.

The trait can accept a given file as a template and bind a custom function to the replacement process.

Picture of wim niemans
  Performance   Level  
Name: wim niemans <contact>
Classes: 5 packages by
Country: The Netherlands The Netherlands
Age: 71
All time rank: 363791 in The Netherlands The Netherlands
Week rank: 97 Up4 in The Netherlands The Netherlands Up
Innovation award
Innovation award
Nominee: 2x

Details

Absint adds a template engine to your objects with just a few PHP lines. The PHP trait can access basic template functions from inside the Class.

Use the trait to have your objects render themselves, as a replacement for __toString, or just to feature nice debug/exception messages. Bind the replacement functions at runtime with a custom function. Cut & paste some extended functions, or use the supplied extra class Absinter to act as a template engine on its own.

The basics.

The method parse(text, vars) accepts a template text and replacement variables. The method bind(function) allows for a function to be bound on runtime replacement, i.e. htmlspecialchars and such. The method getPublicVars(object) retrieves the public members of the Class and adds them to the known variables.

Trait.

Just add the Trait (USE statement) to any object. All public members are now treated as template variables, no need to retrieve them first. Supply a string (template text) and an array of additional variables to the parse method, and retrieve the text.

Class.

An Absinter class is also available to act as a template class on its own. It uses the Absint Trait and can memorize the replacements variables: method set(key, value). It contains an additional method tie(object) which takes the public members of the object and adds them to the collection of variables.

Extended.

The PHP Trait has room for pasting a few extended methods, named absint.xxxx.inc.php. These extended methods are part of absint, and optional to use: * The method render accepts an external file by name and calls parse. * The method display accepts an external PHP file by name, calls render, and evaluates securely using eval() the results.

Function.

An absintf() function is also provided that does the same as the absint->parse method. It's a substitute for PHP native functions like sprintf() and vsprintf(). For people that love minimal tech or dislike a class. An absintr() function is provided to show the simplicity of templating. It uses the native PHP function strtr().

Precedence.

Three versions of replacement variables are possible: (1) as argument to the method calls, (2) the public members, and (3) the memorizing version by using the method set (class only). Precedence is (1) - (3) - (2). This means that (2) cannot overwrite (3) cannot overwrite (1). Please note that (3) is not existing in the trait; only in the class.

Test.

A simple test (1.php) is available to check the behaviour of the PHP function get_object_vars($object).

This package is meant to study or trial. It is free. Be inspired by it. Share your thoughts, ideas, usage(s) on the forum.

  Files folder image Files  
File Role Description
Files folder imageextended (2 files, 1 directory)
Plain text file absint.trait.php Class PHP trait
Plain text file Absinter.class.php Class PHP class
Plain text file demo.class.php Example demo source
Plain text file demo.trait.php Example demo source
Plain text file readme.md Doc. explanation
Plain text file 1.php Aux. test get_object_vars

  Files folder image Files  /  extended  
File Role Description
Files folder imagefunctions (2 files)
  Plain text file absint.display.inc.php Class extension 'display'
  Plain text file absint.render.inc.php Class extension 'render'

  Files folder image Files  /  extended  /  functions  
File Role Description
  Plain text file absintf.function.inc Aux. aux function
  Plain text file absintr.function.inc Aux. aux function

 Version Control Unique User Downloads Download Rankings  
 0%
Total:61
This week:1
All time:9,996
This week:268Up
For more information send a message to info at phpclasses dot org.