SimplePHP

Материал из AOW

Перейти к: навигация, поиск

Содержание

Инициализация системы

/* Подключаем библиотеку SimplePHP */
require_once("simplephp.php");
/* Создаем класс */
$simplePHP = new simplePHP();
/* Описание свойств */
$simplePHP->pathInclude = '…';

Для CMS AOW, шаблонизатор инициализируется при старте "движка" и доступен из глобальной переменой: $GLOBALS['simplephp']


Свойства шаблонизатора

Путь к КЭШу:

$pathCache = './simplePHP/cache/';

Путь к шаблонам:

var $pathInclude = './simplePHP/include/';

Префикс функции шаблона

var $prefix = 'simplePHP_fnc_';

Использовать замену тэгов '<?php ?>'

var $enable_tags = false;

Заменяющий открытия тэг '<?php' при включеном $enable_tags

var $tags_open = '(*';

Заменяющий закрывающий тэг '?>' при включенном $enable_tags

var $tags_close = '*)';

Символ или группа символов для замены \ и . в имени файла

var $replace_name = '_';

Кэшировать ли шаблоны, и использовать ли кэш. Отключить кэш еще можно указав в запросе GET значение no_cache=1

var $cache = 1;

Отключение отображения ошибок при выполнении кода шаблона

var $no_error = true;


Переменные и доступ к ним

В шаблонизаторе переменные, как и в PHP, выделяются стоящим в впереди знаком доллара ($). Переменные делятся на 3 группы: первая, с одним знаком доллара в начале ($) - это переменные, которые из области локальных данных шаблонизатора. Область данных шаблонизатора состоит из 2 частей: глобальная существующая все время жизни шаблонизатора и доступа из всех шаблонов, которая в свою очередь делится на две части: область создаваемая скрипом при инициализации и область, создаваемая и используемая шаблонами, и локальная, содержит данные конкретно для данного шаблона. Вторая группа, переменные с двумя знаками доллара в начале ($$) — это доступ к переменным вне зоны шаблонизатора, к другим переменным остальных скриптов. Третья, переменные с тремя знаками доллара в начале ($$$) — это дает возможность работать с переменными из области глобальных данных. Так же знак ($$) - двойной доллар, переназначен для экранизации знака доллара.

Область значений:
 1. Глобальная область
   a. Глобальные значения полученные от метода assign (доступ через $)
   b. Глобальные значения заданные переменными с тремя долларами в начале ($$$) (доступ через $$$)
 2. Локальная область
   a. Локальные значение заданные в методах get и assign, и существующие только на момент выполнения, заданного шаблона (доступ через $)

Значения 1a и 1b находятся в разных областях глобальной области и не связаны между собой.


Использование шаблонизатора — методы класса

Метод void assign(array) – используется для подключения переменных в шаблонизатор, в глобальную часть.
Метод void display(str, array) – используется для отображения шаблона, второй параметр, массив переменных подключаемых к шаблонизатору в локальную часть.
Метод str get(str, array) – используемый для получение шаблона в переменную, второй параметр, массив переменных подключаемых к шаблонизатору в локальную часть.
Второй параметр для 2 предыдущих методов не обязателен.
Метод array/bool get_element_template (str) – получении информации по переменным в шаблоне. В итоге получим массив разбитый на 3 части: первый in - переменные с двумя долларами в начале ($$), второй out - переменные с одним долларом в начале ($), третий tmp - переменные с тремя долларами в начале ($$$).
Метод bool isCache(str) - проверка существования КЭШа для шаблона.
Метод bool isTemplate (str) - проверка существования шаблона.

Пример:

$mass = array('title' => 'Title', 'data' => array('first' => 'First Element', 'second' => 1));
/* Переменные добавляемые в шаблонизатор таким образом попадают в глобальную часть и будут доступны из все шаблонов */
$simplePHP->assign($mass);
/* Переменные подключаемые таким образом попадут в локальную часть и будут доступны при раскрутки только этого шаблона в данный момент */
$simplePHP->display('main.html', array('content' => 'Text'));
$str_data = $simplePHP->get('index1.html');
if ($t = $simplePHP->get_element_template('index1.html'))
{
print_r($t);
}


Шаблон

Шаблоном является любой текстовый файл. Код шаблона отделяется <?php ?>, если не изменен в свойствах: enable_tags, tags_open, tags_close. Для CMF AOW-SC3 при инициализации помещены в глобальную область следующие переменные:

  • 'I_root' => $GLOBALS['I_root']
  • 'I_admin' => $GLOBALS['I_admin']
  • 'I_main_cfg' => $GLOBALS['I_main_cfg']
  • 'I_main_fnc' => $GLOBALS['I_main_fnc']
  • 'I_main_inc' => $GLOBALS['I_main_inc']
  • 'I_main_res' => $GLOBALS['I_main_res']
  • 'I_main_tmp' => $GLOBALS['I_main_tmp']
  • 'I_base' => $GLOBALS['I_base']
  • 'E_root' => $GLOBALS['E_root']
  • 'E_admin' => $GLOBALS['E_admin']
  • 'E_base' => $GLOBALS['E_base']
  • 'E_main_res' => $GLOBALS['E_main_res']
  • 'E_main_tmp' => $GLOBALS['E_main_tmp']

Пример.

<? /* Тут используется переменная из области переменных переданных шаблонизатором (глобальная и локальная область) */?>
<h1><?= $title ?></h1>
<? /* В данном примере переменные key и val не будут переменными шаблонизатора, и которые можно использовать в шаблоне */?>
<?= $$GLOBALS['root'] ?>
<?= $$_SESSION['shop']['item'] ?>
<? foreach ($data as $$key=>$$val) { ?>
<p><?= $$val ?></p>
<? } ?>
<? /* Так созданную переменную можно будет использовать из другого шаблона */?>
<? $$$global_value = $data['first']; ?>
<? /* вот таким вот образом */?>
<?= $$$global_value ?>
<? /* отображаем путь к темповой папке aow-sc3 */?>
<?= $E_main_tmp ?>
<? /* вызываем функцию PHP */?>
<?= print_r($data) ?>


Надстройки

Все надстройки располагаются в incledes.php или файлах подключенных через него. Для доступу к экземпляру класса simplePHP в шаблоне служит переменная $simplePHP. Доступ к области данных шаблона: $simplePHP->data - глобальные данные, $simplePHP->data_out - используемые в данное время в шаблоне, $simplePHP->data_temp - глобальные данные доступные по трем долларам ($$$).

Пример:

Файл с надстройками:

<?php
function simple_include_file($simplePHP, $file, $data=array())
{
$simplePHP->display($file, $data);
}
function simple_10_no($text=)
{
if ($text)
{
return str_repeat($text, 10);
}
else
{
return str_repeat('no', 10);
}
}
?>

Шаблон:

Пример

10 No <?= simple_10_no() ?>
10 kaka <?= simple_10_no('kaka') ?>
<? simple_include_file($simplePHP, 'index2.html'); ?>

Выдержка из документации

Class simplePHP Description Description | Vars (details) | Methods (details)

Класс simplePHP

   * version: 0.5
   * copyright: 2008
   * author: Kerov Vadim

Located in /simplephp.php (line 16)

Variable Summary Description | Vars (details) | Methods (details) int $cache array $data array $data_out array $data_temp bool $enable_tags bool $no_error string $pathCache string $pathInclude string $prefix string $replace_name string $tags_close string $tags_open Method Summary Description | Vars (details) | Methods (details) simplePHP __construct () none assign (array $data) void display (string $template, [array $data = array()]) string get (string $template, [array $data = array()]) array get_element_template (string $template) bool isCache (string $template) bool isTemplate (string $template) Variables Description | Vars (details) | Methods (details) int $cache = 1 (line 84)

Кэшировать ли шаблоны, и использовать ли кэш

   * var: = 1

array $data = array() (line 66)

Данные передоваемые в шаблонизатор - глобальные array $data_out = array() (line 72)

Данные передоваемые в шаблонизатор - используемые только в задданом шаблоне + глобальные array $data_temp = array() (line 78)

Данные передоваемые в шаблонизатор - временые, создаваемые в определеном шаблоне и доступные в других bool $enable_tags = false (line 42)

Использовать замену тэгов '<?php ?>'

   * var: = false

bool $no_error = true (line 90)

Отключение отображения ошибок при выполнении кода шаблона

   * var: = true

string $pathCache = './simplePHP/cache/' (line 24)

Путь к кэшу

   * var: = './simplePHP/cache/'

string $pathInclude = './simplePHP/include/' (line 30)

Путь к шаблонам

   * var: = './simplePHP/include/'

string $prefix = 'simplePHP_fnc_' (line 36)

Префик функции шаблона

   * var: = 'simplePHP_fnc_'

string $replace_name = '_' (line 60)

Символ или группа символов для замены \ и . в имени файла

   * var: = '_'

string $tags_close = '*)' (line 54)

Заменяющий закрывающий тэг '?>' при включеном $enable_tags

   * var: = '*)'

string $tags_open = '(*' (line 48)

Заменяющий открытия тэг '<?php' при включеном $enable_tags

   * var: = '(*'

Methods Description | Vars (details) Methods (details) Constructor __construct (line 96)

Конструктор simplePHP simplePHP __construct () assign (line 109)

Подключение переменых в шаблон, данные подключаются в глобальную часть шаблонизатора (будут доступны во всех шаблонах)

   * access: public

none assign (array $data)

   * array $data

display (line 169)

Отображение шаблона с применением к нему списка временых переменых $data

   * access: public

void display (string $template, [array $data = array()])

   * string $template
   * array $data

get (line 183)

Получение обработаного шаблона с применением к нему списка временых переменых $data

   * access: public

string get (string $template, [array $data = array()])

   * string $template
   * array $data

get_element_template (line 127)

Получение данных о переменых входящих в заданный шаблон

   * return: out) - in - внутрене шеблоные переменые '$$', out - внешние переменые '$', tmp - переменые которое могут задаваться в шаблоне и использоваться за пределами данного шаблона '$$$'
   * access: public

array(in, get_element_template (string $template)

   * string $template

isCache (line 274)

Проверка закэширован ли шаблон, и актуальный ли кэш, актуальность проверяется по дате последнего изменения файла (!) TODO: по размеру файла

   * access: public

bool isCache (string $template)

   * string $template

isTemplate (line 299)

Проверка существования шаблона

   * access: public

bool isTemplate (string $template)

   * string $template
Источник — «http://doc.artofweb.ru/doc/SimplePHP»
Личные инструменты

Разработка веб-сайтов, автоматизация.
По всем вопросам обращайтесь по телефонам:

+7 495 640 29 90
http://artofweb.ru