Что касается шаблонов PHP, то это действительно легче сказать, чем сделать. Вероятно, существует более 20 случайных вариантов, и одна только груша содержит 5 разных шаблонов, что действительно является головной болью.
Не следует просто следовать мнению других и говорить, что этот хороший, а тот плохой. Прежде чем выбирать шаблон, вам лучше сначала понять, какова реальная цель шаблона. Проще говоря, основная цель шаблона — командная работа. Есть два основных способа функционирования:
1. Разделение HTML и PHP делает сотрудничество веб-дизайнеров и PHP-программистов более приятным.
2. Разделение логики отображения и логики транзакций упрощает и делает более гибким изменение основной логики транзакций и расширение приложений, а значит, делает сотрудничество между программистами более приятным. (Люди часто упускают из виду или неправильно понимают этот момент. Они всегда думают, что выделение PHP из HTML называется разделением логики отображения и логики транзакций. Если это так, то зачем вообще смешивать PHP и HTML?)
Узнайте, Реальная цель этого шаблона Какова она, так вам будет легче сделать правильный выбор.
Если вы единственный PHP-программист, но вам нужно работать вместе с другими веб-дизайнерами, выберите шаблон, который может разделять HTML и PHP, phplib (теперь, похоже, интегрирован в Pear http://pear.php.net/package/HTML_Template_PHPLIB). ) или
FastTemplate — что-то вроде этого, очень простое и удобное в использовании.
Если интерфейс вашего сайта уродлив и в основном дописан программистами, но функции более сложны и требуют мощных функций расширения, и вам нужно разделить различные уровни, включая логику отображения, то не используйте ничего особенного, PHP сам по себе является лучшим шаблоном. . Следует отметить, что в этом случае вам придется очень тщательно проектировать свою программу и всегда помнить о разделении не PHP и html, а бизнес-логики и логики представления. Вот почему я всегда очень сопротивлялся таким вещам, как Smarty, потому что синтаксис Smarty слишком сложен и мощный, почти заново изобретая язык сценариев (даже программистам PHP приходится его заново изучать). Что еще более загадочно, так это то, что чем мощнее этот сценарий, тем легче людям смешивать бизнес-логику и логику представления, разрушая первоначальный замысел шаблона.
Если вы хотите разделить HTML и PHP и получить лучший визуальный дизайн, а также хотите, чтобы вся система имела очень мощные возможности расширения, которые могут адаптироваться к различным интерфейсам html, xml и wml без необходимости изучения сложного синтаксиса, обеспечивая при этом более высокий уровень уровень операционной эффективности, то это довольно сложный вопрос. Плохая новость заключается в том, что в настоящее время не существует зрелого шаблона, действительно отвечающего таким требованиям. Хорошая новость заключается в том, что создать такой шаблон несложно. Если вы попробуете Zope или ColdFusion, вы обнаружите тень этого шаблона.
(wact http://wact.sourceforge.net/ и phptal http://phptal.sourceforge.net/ развиваются в этом направлении и должны быть очень перспективными).
Существует два основных способа объединения шаблонов и данных (вызов шаблона): метод push и метод pull.
Способ отправки заключается в использовании PHP для отправки данных в шаблон. Это означает, что программисту необходимо явно присвоить значение каждой переменной в шаблоне и связать их.
Метод извлечения подобен смешиванию php и html. Переменные в шаблоне активно извлекают данные.
Говоря о шаблонах, мы должны упомянуть еще две вещи:
phphtmllib и быструю форму ( http://pear.php.net/package/HTML_QuickForm ). Эти две вещи используют традиционные методы для завершения HTML через различные компоненты страницы. Страница полностью находится в руках программиста. Возможно, многие программисты, написавшие традиционные настольные программы с графическим интерфейсом, предпочитают этот метод.
Более красивое решение.
Если вы создаете коммерческое программное обеспечение, Flash должен быть более красивым решением (не поймите меня неправильно, не думайте, что только потому, что вы знаете, что PHP поддерживает библиотеки ming и swf, вы можете динамически генерировать Flash, это не то, что нужно. Я говорю.) Что я хочу сказать Это решение, поддерживающее Flash Remoting. Это действительно содержательная комбинация PHP и Flash. Визуальный дизайнер завершает флэш-часть, а PHP-программист отправляет данные клиенту, сделанному из флэш-памяти, посредством удаленного взаимодействия с флэш-памятью.
В настоящее время существует два решения:
AMFPHP
Поскольку Macromedia Flash Remoting использует уникальный и более эффективный формат данных при передаче данных, AMFPHP создает соответствующий формат данных на стороне сервера путем анализа формата данных PHP. класс для получения, анализа и кодирования этих данных для достижения функции обмена информацией (так же, как Samba, это должен быть своего рода взлом).
PHPObject
http://ghostwire.com/resources/phpobject/
PHPObject использует другой метод для передачи данных через мыло открытого формата путем встраивания некоторых компонентов ActionScript во флэш-память.
На самом деле, с шаблонами PHP связано много других проблем, и я смогу написать так много через некоторое время.