Рабочий процесс подмодулей мерзавца

Присяжный острослов в порядке, если Вы не используете платформу или когда Вы используете платформу, которая не имеет своей собственной системы шаблонной обработки.

Иначе большинство платформ PHP и CMS молодого поколения имеют свою собственную систему шаблонной обработки.

В целом идея системы шаблонной обработки состоит в том, чтобы иметь файлы, которые содержат почти только HTML (Файл Представления/Шаблона) и файлы, которые содержат только данные или правила бизнеса (Модель или Файлы Контроллера).

Шаблонный Файл А может выглядеть примерно так (пример от SilverStripe):

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <% base_tag %>
        $MetaTags
        <link rel="stylesheet" type="text/css" href="tutorial/css/layout.css" />
    </head>
    <body>
        <div id="Main">
            <ul id="Menu1">
                <% control Menu(1) %>
                <li class="$LinkingMode">
                    <a href="$Link" title="Go to the &quot;{$Title}&quot; page">$MenuTitle</a>
                </li>
                <% end_control %>
            </ul>
            <div id="Header">
                <h1>$Title</h1>
            </div>
            <div id="ContentContainer">
                $Layout
            </div>
            <div id="Footer">
                <span>Some Text</span>
            </div>
        </div>
     </body>
</html>

Вы видите, что существует только несколько частей некода HTML, вставленных в места, где данные будут вставлены, прежде чем страница отправляется клиенту.

Ваш код может тогда (упрощенный), скорее смотрят что-то как:

<?php
  unset($out);
  if($a) $out = '[SOME CONTENT TO INSERT INTO THE TEMPLATE]';
  else $out = '[SOME ALTERNATIVE CONTENT]';
  templateInsert($out);
?>

большая вещь об этом: Ваш HTML виден как таковой и измененный как таковой, Ваш разработчик может понять его и не должен просматривать Ваш код, пытающийся собрать остатки от различных мест без любого шанса просмотреть то, что она делает. С другой стороны, можно внести изменения в логике без беспокойства о том, как она будет считать страницу. Вы по всей вероятности также сделаете меньше ошибок, потому что Ваш код будет компактен и therfore читаемый.

42
задан Alexander Gladysh 20 October 2009 в 21:08
поделиться

2 ответа

Вместо этого вы можете попробовать git subtree ( альтернативная ссылка ). Мне очень повезло с этим, я использовал как удаленные репозитории, так и чистые (не привязанные к master истории) ветки в моем проекте.

13
ответ дан 27 November 2019 в 00:02
поделиться

Недавняя ветка в списке рассылки git включает исправление для того, как получить согласованное состояние репозитория с помощью одной команды. Обычно он вызывает обновление подмодуля git при смене ветвей.

http://thread.gmane.org/gmane.comp.version-control.git/130155/focus=130330

6
ответ дан 27 November 2019 в 00:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: