ساخت یک موترو تمپلت با Oop ساخت یک موترو تمپلت با Oop

سلام دوستان عزیز هرچه تو گوگل گشتم پیدا نکردم کسی می تونه لینک مستقیم نسخه 4.0 رو اینجا بفرسته ممنون میشم دوستان گل:d
 

EMIRATES

Active Member
Oop Template Engine

با سلام

اینو گشتم پیدا کردم .

--------------------------------
tpl.class.php
PHP:

<?php
class template
{
var
$tpl_vars;

function
template()
{
$this->tpl_vars = array();
}

function
assign($var_array)
{

if (!
is_array($var_array))
{
die(
'template::assign() - $var_array must be an array.');
}
$this->tpl_vars = array_merge($this->tpl_vars, $var_array);
}

function
parse($tpl_file)
{

if (!
is_file($tpl_file))
{
die(
'template::parse() - "' . $tpl_file . '" does not exist or is not a file.');
}
$tpl_content = file_get_contents($tpl_file);

foreach (
$this->tpl_vars AS $var => $content)
{
$tpl_content = str_replace('{' . $var . '}', $content, $tpl_content);
}
return
$tpl_content;
}

function
display($tpl_file)
{
echo
$this->parse($tpl_file);
}
}
?>

این فایل آموزش استفاده از کلاس :

کد PHP:
<?php

require_once('tpl.class.php');
$tpl =& new template();
$tpl->assign(array(
'title' => 'Simple Template Engine Test',
'content' => 'This is a test of the <a href="http://www.php.net">Simple Template Engine</a>'
));
$tpl->display('example.tpl');

?>

این هم فایل example.tpl

کد PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
<
html>
<
head>
<
title>{title}</title>
<
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</
head>

<
body>

<
p>{content}</p>

</
body>
</
html>

عملکرد کلاس

3 تا تابع اصلی داره این کلاس
کد:
function assign($var_array)
این تابع کار مقدار دهی رو انجام می ده . بهتر بگم ذخیره مقدار ها
اول از همه چک می کنه که ورودی تابع یک آرایه باشه .. در غیر این صورت خطا صورت می گیره
سپس متغیر جدید با متغیر های قبلی ادقام می شوند. در صورت وجود ابهام در مورد عملکرد array_merge به اینجا نگاهی بی اندازید.

کد:
function parse($tpl_file)
این تابع کار اصلی رو انجام می ده ، یعنی باید مقدار متغیر ها رو جایگذین کنه .
ابتدا بررسی می کنه که آیا فایلی که آدرس داده شده موجو هست یا خیر. در صورتی که وجود نداشته باشه خطا صادر می شه .
در خط بعد توسط تابع file_get_contents تمامی اطلاعات موجود در فایل مورد نظر بصورت استرینگ به متغیر tpl_content$ داده می شود. در صورت وجود ابهام در مورد عملکرد تابع file_get_contents به اینجا نگاهی بی اندازید.
سپس توسط یک foreach ساده و با کمک تابع str_replace مقدار متغیر ها جایگذین نام متغیر ها می شوند.
در صورت وجود ابهام در مورد عملکرد تابع str_replace به اینجا نگاهی بی اندازید.
در صورت وجود ابهام در مورد عملکرد foreach به اینجا نگاهی بی اندازید

کد:
function display($tpl_file)
این تابع هم وظیفه نمایش اطلاعات رو به عهده داره.

عملکرد فایل آموزش استفاده از کلاس

ابتدا فایل کلاس رو صدا زده . سپس یک شی رو به کلاس نسبت داده . سپس یک آرایه رو در موتور تمپلت ذخیره کرده . با استفاده از تابع Display فایل رو نمایش داده .


با تشکر.
 

جدیدترین ارسال ها

بالا