-d
средства Вы отправляете данные формы, через POST
метод. -I
средства Вы просто посмотрели на метаданные через HEAD
.
я предложил бы любой
/dev/null
и записал бы заголовки через -D headerfile
к Использованию файла headerfile
-i
, чтобы включать заголовки в ответы и пропустить все от первой пустой строки. Языки шаблонов для PHP являются примером анти-паттерна под названием « Эффект внутренней платформы ». Smarty - это пример структуры шаблонов для PHP, но даже Хасин Хейдер, автор книги о Smarty, говорит, что Smarty мертв , и его больше не нужно использовать.
На это могут быть веские причины. для разработки языка шаблонов, например, если у вас есть дизайнеры, не являющиеся программистами, или редакторы контента, использующие вашу CMS, и вы не хотите перегружать их сложностью PHP (или позволять им писать код, который может сломать ваш сайт).
Но вы не описали это как цель, поэтому я полагаю, что в данном случае лучше всего использовать PHP в качестве языка шаблонов страниц. Работы будет меньше, потому что вам не придется разрабатывать собственный новый язык, и это ' Обеспечит большую гибкость в необычных случаях, когда вам нужен определенный вид динамического содержимого.
Не пишите функции PHP для инкапсуляции блоков вывода HTML. Вместо этого используйте include ()
для извлечения фрагментов HTML. Этот метод иногда называют «частичными».
Вы также можете использовать инфраструктуру MVC, такую как Symfony, Kohana, Solar, CodeIgniter или Zend Framework, чтобы помочь вам соблюдать дисциплину при отделении кода шаблона PHP от остального кода приложения. .
Я долгое время был очень счастливым пользователем Smarty, я больше не верю в специализированные языки шаблонов.
Язык шаблонов не будет чтобы вы не добавляли несоответствующую логику в код презентации, это просто заставит вас писать плохой код на языке шаблонов.
Довольно тривиально создать собственную маленькую систему шаблонов, которая использует php в шаблонах. Затем создайте различных помощников, чтобы ваш код шаблона оставался чистым (например, ваша функция "navigation ()").
Я думаю, что подход, принятый Zend_View, довольно хорош. В Symfony тоже достаточно изящных материалов, но может быть немного пугающим. Вам не нужно использовать фреймворк, чтобы что-то от него получить. Просто посмотрите на код шаблона в примерах и посмотрите, что вас вдохновляет.
Итог: забудьте о специальном языке для шаблонов - просто примените разумный дизайн к своему коду представления, исключив сложность из сценариев представления и в многоразовые помощники.
Reinventing the wheel is most of the time a bad idea.
PHP is already a templating language. You don't need to implement your own.
As for Smarty it is the most complete templating system for php and it is still a bad idea.
A couple of articles on the subject:
Once upon a time there was Smarty! by Hasin Hayder. He actually wrote a book on smarty and he doesn't recommend it.
Php and Templates by Harry Fuecks (Author of the 1st edition of the php Anthology)
If you want to look at templates done better look at:
The final objective is of course to have easier code to maintain by promoting separation of Business Logic and Presentation
I wonder why noone mentioned what is one of the most important uses of a template language: automatic output escaping.
It's easy to forget a htmlspecialchars() here or there, so a template language that provides directives like {$name} has to make sure $name is automatically passed through htmlspecialchars, with the appropriate charset and everything.
Of course, that also implies that you can specify a different "context" for variable output, such as e.g. alert('Hi {$name|context=singlequotes}!'); where the template interpreter would escape $name's content so that it is impossible to break out of the single quotes, instead of XML escaping it (which should be the default).
Such contexts can also include stuff like int (to force a number), and it can also be extended to accept additional parameters to format the output, et etc.
My 2 cents. Not sure if there's an open source solution that allows for this (would be interested to hear about it!), I rolled my own interpreter for this stuff at work. Since the resulting "intermediate code" is pure PHP, it can also very easily be "cached" (like Smarty and other tpl systems do).
Вы можете посмотреть Smarty- http: //smarty.php. net Smarty - очень мощный шаблонизатор, который дает вам лучшее из обоих миров. Он имеет обширную поддержку пользовательских модулей и плагинов.
Я создал собственную CMS с помощью Smarty и PHP, и не могу сказать ничего, кроме хороших слов о нем.
PHP-код для использования Smarty выглядит следующим образом
<?php
// my cms
$smarty = new Smarty();
.
.
$smarty->display('home.tpl');
?>
Шаблон код выглядит примерно так
<h1>{$pagetitle}</h1>
{insert tag="navigation"}
Мне очень нравится Smarty, и я также считаю, что контроллеры должны быть написаны исключительно на XML, а модели на YAML. Это единственный способ реализовать MVC.
Если только возникнет вопрос производительности, то компиляция в php может быть рассмотрена как возможность (хотя и отдаленная) с непременным условием, что это будет сделано обфусцированным способом, чтобы помешать нетерпеливым разработчикам прочитать это.