PHP Classes

ArabTemplate: Template compiler engine that caches output

Recommend this page to a friend!
  Info   View files Documentation   View files View files (26)   DownloadInstall with Composer Download .zip   Reputation   Support forum (1)   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2024-01-09 (4 days ago) RSS 2.0 feedNot enough user ratingsTotal: 406 This week: 1All time: 6,503 This week: 350Up
Version License PHP version Categories
arab-template 21GNU General Publi...5.3PHP 5, Cache, Templates, Code Generation
Description 

Author

This class implements a template compiler engine that caches output.

It can process template file and compile them into PHP scripts.

The templates may include assigned variables, iterate over array variabled, have conditional sections, custom PHP code, include additional template files, etc..

The class executes the compiled templates and can cache the output results in local files to prevent processing the same template again.

Picture of mohamedhelal
Name: mohamedhelal <contact>
Classes: 1 package by
Country: Egypt Egypt

 

Documentation

??? ???? ?????? ??????

?????? ????? ????? ???? ??????? ???? ????? ?????? ?????? ?????? 10 ?? ????? ??????? ?? ????? ? ??????? ?? ???? ?? ???? ???????? ???? ?????? ??????? ???? ???? ???

??? ????

???? ??????? ?????? ???? ????? composer

composer require mohamedhelal/arabtemplate

// ????? ???? ?? ??????

$artpl = new \ArTemplate\ArTemplate([
    // ????? ???? ???????
    'template' => realpath('path'),
    // ???? ??????? ???????
    'compiler' => realpath('path'),
    // ????? ?????? ?????
    'caching'         => false,
    // ???? ????? ?????
    'cache'    => realpath('path')
]);

  • ??????? ???????
$artpl->display('index');

// or

echo $artpl->fetch('index');
  • ????? ????????? ??????
$artpl->assign('obj', 'MyTest' );
$artpl->with('obj', 'MyTest' );

??????? ????????? ???? ??????

{{ $var }}

??????? ????????? ???? ??????

{{ $row.key }}
{{ $row[key] }}
{{ $row[$key.name] }}

??????? ???????? ???? ??????

{{ $obj->property }}
{{ MyClass::$property }}
{{ MyClass::$property.key.name }}
{{ $obj::$property }}
{{ $obj::$property.key.name }}

??????? ?????? ?? ??????

{{ myName($row,'mohamed') }}
{{ $obj->method('name') }}
{{ MyClass::method('name') }}
{{ $obj::method('name') }}
  • ??????? ?????? ???? ??????

???? ??? ??????

class MyTest
{
    public static $Myname = "Mohamedhelal";
    public static $array  = array('names' => array('first' => 'Mohamed'));
    public static function setMyName($val)
    {
        self::$Myname = $val;
        return new self();
    }
    public function getThis()
    {
        return $this;
    }
    public function getName()
    {
        return self::$Myname;
    }
}

????? ??????

{{ $obj::setMyName('Mohamed')->getThis()->getThis()->getThis()->getThis()->getName() }}

??

{{ MyTest::setMyName('Mohamed')->getThis()->getThis()->getThis()->getThis()->getName() }}

  • ??????? ????? ???? ??????
{{ include file="index" }}


{{ include 'index'  }}
{{ include $var  }}

??????? ??????? ?? ?????? ?????????

$artpl->setModuleDir('test', dirname(__FILE__).'/modules/test/views/');
$artpl->setModuleDir('users', dirname(__FILE__).'/modules/users/views/');

??? ???? ?? ???? ???????

$artpl->display('test::index');
$artpl->display('users::index');

?? ??????? ???? ???? ?????? ?? ???????


{{ include file="test::index" }}
{{ include $var }}

????? ????????? ?? ??????

{{ $name = 'mohamed helal' }}
{{ $i = 2 }}
{{ ++$i }}
{{ --$i }}
{{ $i *= 2 }}
{{ assign('my','value') }}
{{ with('my','value') }}

??????? ???? ???? ??? ?? ??????


$artpl->setFunction('ReturnArray', 'MyTest::getMyName');
{{ ReturnArray($rows) }}
{{ $myfunc = ReturnArray($rows) }}

??????? ?????? ???? ?????? ? ?? ??? ???????


{{ |function_name($var,...)| }}

????? ???? ???? ??????


 
        {{ function createMenuMapList($row,$mylinks) }}
        	{{ $row->name }} || {{ $mylinks }}
        {{ /function }}
        

??????? ?????? ???? ?? ??????? ???? ??????

{{ createMenuMapList($row,$mylinks) }}

	

??????? ???? foreach

{{ foreach $rows as $row }}
	{{ $row@key }}
   {{ foreachelse}{
{{ /foreach }}

{{ foreach $rows as $key => $val }}
   {{ foreachelse }}
{{ /foreach }}

??? ????? ??? key => val


{{ foreach $rows as $key => $val }}
   {{ foreachelse }}
{{ /foreach }}

??????? ????? ??????


{{ foreach $rows as $row }}
   {{ $row@index }}
   {{ $row@first }}
   {{ $row@last }}
   {{ $row@first }}
   
   {{ $rows@count() }}
   
   {{ $row@is_div_by(2) }}
   
   {{ $row@is_even_by(2) }}
   
{{ /foreach }}

??????? for

	{{ for $i = 0;$i < 10;$i++ }}
		{{ $i }}
	{{ /for }}

??????? for ??????

	{{ for $i = 0,$j = 0;$i < 10,$j < 10;$i++,$j+=2 }}
		{{ $i }}
		{{ $j }}
	{{ /for }}

??????? break|continue

{{ break|continue }}

??????? ?????? ???? ??????

{{ if $name =="mohamed" }}
// do same thing
{{ elseif $name =="helal" }}
// do same thing
{{ else }}
// do same thing
{{ /if }}

??????? ?????? ???????

{{ $var == 'mohamed'?true:false }}

??? ?????????

{{ $var ."MohamedHelal" }}

?????????

{{*
	// ???????  ?? ??? ???????
	{{ $var }}
*}}

??? ????? ??????

parent.tpl

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{ block 'header' }}My Default Page  Title {{ /block }}</title>
</head>
<body>
	{{ block 'body' }}
		My Default Page  Content
	{{ /block }}
</body>
</html>

son.tpl


{{ extends file="parent" }}
{{ extends "parent" }}
{{ extends $layout }}

{{ block "header" }}
	My Extend Page Header
{{ /block }}


{{ block "body" }}
	My Extend Page Content
{{ /block }}

??????

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>
	My Extend Page Header
</title>
</head>
<body>
	
	My Extend Page Content

</body>
</html>

  Files folder image Files  
File Role Description
Files folder imageArTemplate (8 files, 1 directory)
Files folder imagecaches (2 files)
Files folder imagecompilers (4 files)
Files folder imagetemplates (7 files)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file index.php Example index page
Accessible without login Plain text file README.md Doc. Examples

 Version Control Unique User Downloads Download Rankings  
 100%
Total:406
This week:1
All time:6,503
This week:350Up