шаблон и циклы - PullRequest
       12

шаблон и циклы

2 голосов
/ 25 февраля 2009

Я делаю простую систему шаблонов. Раздражает отсутствие возможности хранить код в файле PHP и выводить его в файл HTML ... Не хорошо иметь это в шаблоне:

<?php 
while ($row = mysql_fetch_array($query)) { 
$name = $row['forum_name'];
$date = $row['forum_date'];
$desc = $row['forum_description'];
$lastpost = $row['forum_lastpost'];
?>

<h1><?php echo $name ?></h1>
<p><?php echo $desc ?></p>

<?php } ?>

Есть ли способ сохранить код в файле PHP?

Спасибо

Ответы [ 3 ]

2 голосов
/ 25 февраля 2009

Я бы предложил выполнить запрос и обработку в файле php, а не в шаблоне. Создайте массив в php-файле, и пусть шаблон отобразит его.

Вот как я обычно это делаю:

PHP-файл:

for ($i = 0; $row = mysql_fetch_array($query); $i++)
{
    $forums[$i]['name'] = $row['forum_name'];
    $forums[$i]['date'] = $row['forum_name'];
    $forums[$i]['desc'] = $row['forum_description'];
    $forums[$i]['lastpost'] = $row['forum_lastpost'];
}

Файл шаблона:

<?php foreach ($forums as $forum) { ?>
    <h1><?=$forum['name']?></h1>
    <p><?=$forum['desc']?></p>
<?php } // foreach ($forums as $forum) ?>

В альтернативном синтаксисе используется «конец времени», как показал Глава:

<?php foreach ($forums as $forum): ?>
    <h1><?=$forum['name']?></h1>
    <p><?=$forum['desc']?></p>
<?php endforeach; ?>
1 голос
/ 26 февраля 2009

Мне нравится использовать PHP в качестве движка шаблонов и использовать шаблон MVC. Чтобы разделить View и Business logic, в View допускается только несколько типов PHP-кода, который является HTML-кодом. Разрешенный код:

* Single functions
* Alternate format If / Else / ElseIf blocks
* Alternate format For loops
* Alternate format Foreach loops
* Alternate format Switch statements

PHP предлагает альтернативный синтаксис для некоторых своих структур управления; а именно, если, пока, for, foreach и switch. В каждом случае основной формой альтернативного синтаксиса является замена открывающей фигурной скобки на двоеточие (:) и закрывающей фигурной скобки на endif; Эти альтернативные форматы являются единственными форматами, которые следует использовать в представлении.

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

Наконец, я предпочитаю использовать сокращенные теги PHP в представлении. Это, как правило, признается плохой идеей, поскольку сервер меньше поддерживает. Но я считаю, что это немного улучшает читаемость (особенно при использовании PHP в качестве движка шаблонов), и я бы вообще избегал веб-хостинга, где я не мог бы контролировать такие вещи.

Я опишу это чуть подробнее и на моих веб-страницах есть несколько примеров шаблона, который я создал для веб-приложений PHP. Вы найдете это по адресу ниже.

http://www.joeldare.com/wiki/applate

0 голосов
/ 25 февраля 2009

Вы можете использовать шаблонизатор, как http://dwoo.org/

Или используйте альтернативный синтаксис, такой как:

<?php while ($row = mysql_fetch_array($query)): ?>
    <h1><?=$row['forum_name']?></h1>
    <p><?=$row['forum_description']?></p>
<?php endwhile; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...