tipsun » 2011.08.21 03:16

Если есть похожая тема, то извините, я перену пост туда.
Вот сегодня думал насчет многократных замечаний и:

Код:

1
span style="color: #0000BB"><?php////////////где-нибудь инклудим, в шапке с конфигом например...// require_once 'f.html.php';//////////function html($tpl=array(), $tplSet='index.tpl') { $path = dirname(__FILE__) .'/tpl/'. $tplSet; if(!file_exists($path)) exit('Ошибка загрузки файла шаблона: ' . $tplSet); //*/ ob_implicit_flush(0); ob_start(); require_once $path; $html = ob_get_contents(); ob_end_clean(); ob_implicit_flush(1); //*/ $from = array('/\r|\n|\t/', '/ {2,}/'); $to = array(null, ' '); $html = preg_replace($from, $to, $html); exit($html); }////////////это в каком-нибудь файле выполняется...// index.php//////////$tpl = array();$tpl['title'] = 'HELLO WORLD';$tpl['array'] = range(1,9);$tpl['content'] = 'Эта история началась давным давно!';html($tpl, 'index.tpl'); //можно и так GLOBAL $tpl;//////////?>

Ну да, знаю: типа на классах лучше, всего 1 раз подключать и т.д.

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- Шаблон index.tpl -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?=$tpl['title'];?></title>
</head>
<body>
<h1><?=$tpl['title'];?></h1>
<?=$tpl['content'];?><br/>
<?php foreach($tpl['array'] as $key):?>
<h3><?=$key;?></h3>
<?php endforeach;?>
</body>
</html>
tipsun » 2011.08.21 05:27

Я тут дальше копаюсь. Вот оказывается (пока что) как покайфу, когда раздельно логика и разметка. :)

Gemorroj » 2011.08.21 10:35

велосипедные шаблонизаторы не нужны

Nu3oN » 2011.08.21 11:13

tipsun написал:

Я тут дальше копаюсь. Вот оказывается (пока что) как покайфу, когда раздельно логика и разметка. :)

Во первых лучше делать так:

Код:

1
span style="color: #0000BB"><?phpfunction html($tplSet='index.tpl', $tpl=array()) { ///}?>

Потому что иногда будет необходимость подключать шаблоны не передавая переменные!
Во вторых используй уже готовые варианты...
И наконец используй нативные шаблонизаторы!

Gemorroj » 2011.08.21 11:25

Nu3oN, а это не нативный? тут работает родной php синтаксис.

Nu3oN » 2011.08.21 13:18

Gemorroj написал:

Nu3oN, а это не нативный? тут работает родной php синтаксис.

Нативный, но не лучший вариант исполнения его!

tipsun » 2011.08.23 06:14

Короче искать готовый нативный шаблонизатор - ок. Спс.
----
В шаблоне в принципе можно было бы сделать так:

Код:

1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
<title>Статичный текст логичней так <?=TITLE;?></title>
</head>
<body>
В функции/классе принять массив как $_ или $__<br/>
Так: <?=$_['var'];?><br/>
Или: <?=$__['var'];?><br/>
Это в основном если массив данных, как я понял сам. Надо еще почитать, посмотреть.
</body>
</html>
tipsun » 2011.08.23 06:34

Zend Framework (та гребаная библиотека, в которой все есть).
Не думал что даже там не придумали как только в самом шаблоне экранировать спец. символы или я чет не так понял. Надо скачать, посмотреть.

Gemorroj » 2011.08.23 19:56

escape
http://framework.zend.com/manual/ru/zen … lpers.html

tipsun » 2011.11.18 19:56

Прочел в интернете, что принимать значения через __set(__get) затратно.
Лучше сделать типа $class->assign('varName', 'Hello Hell'); (как на smarty и вроде Zend)

Gemorroj » 2011.11.19 11:31

ссылку?

tipsun » 2011.11.19 13:00

Gemorroj, не сохранил. Это не статья, а комментарии был, к нативному шаблонизатору.
Типа 1 метод лучше.

tipsun » 2011.12.27 18:55

Почему все так стремятся к mod_rewrite?
Только при его использовании уже придется делать всяко конструкции для приема данных.

Ну будет у меня некрасиво: /script/index.php?page=1&sort=2

Зато все легко принимается.
Зачем это все переделывать то, не пойму (наверно еще "зеленый").
Добавлено спустя   4 минуты  17 секунд:
Увидел, что некоторые шаблоны в базе хранят. Ну вроде понятно, база быстрее.

Gemorroj » 2011.12.28 00:18

для сео, для людей