Красивые PHP шаблоны

Привет, данный пост посвящен перфекционистам как я. Бывало у тебя такое что когда пишешь PHP/Twig шаблоны в итоге вывод получается что-то вроде такого?:

<!-- blocks/navigation -->
<nav class="navigation">
    <ul>
                <li>
            <a href="/">
            Главная            </a>
        </li>
                <li>
            <a href="/blog">
            Блог            </a>
        </li>
                <li>
            <a href="/contact">
            Контакты            </a>
        </li>
            </ul>
</nav>

Этот вывод... это же некрасиво. PHP шаблон имеет такое содержание:

<!-- blocks/navigation -->
<nav class="navigation">
    <ul>
        <?php foreach ($links as $link): ?>
        <li>
            <a href="<?php echo $link[0] ?>">
            <?php echo $link[1] ?>
            </a>
        </li>
        <?php endforeach; ?>
    </ul>
</nav>

Да к в чем же проблема? Почему PHP просто не может вывести так как есть в шаблонах? Что же происходит там в недрах PHP что приводит к искажению форматирования? Ответ очень прост:

Закрывающиеся PHP тэги (?>) удаляют один перенос строки (\n) в итоге форматирование шаблонов обрывается. Чтобы предотвратить данную проблему все что нужно сделать это добавить после каждого ?> пробел.

<!-- blocks/navigation -->
<nav class="navigation">
    <ul>
        <!-- Так намного лучше -->

        <li>
            <a href="/">
            Главная 
            </a>
        </li>

        <li>
            <a href="/blog">
            Блог 
            </a>
        </li>

        <li>
            <a href="/contact">
            Контакты 
            </a>
        </li>

    </ul>
</nav>

Вот так то лучше! Это вывод того же самого PHP шаблона, только после каждого закрывающегося PHP тэга добавлен пробел.

Вывод

К сожалению, нельзя добится полного контроля над форматированием вывода PHP шаблонов без потери форматирования в исходном коде.

Поделится

Комментарии