Самый быстрый PHP шаблонизатор (или фреймворк), поддерживающий наследование для нескольких сайтов - PullRequest
3 голосов
/ 18 мая 2011

Мне нужно найти шаблонный движок и / или фреймворк в PHP, который позволил бы мне публиковать веб-сайт с одним шаблоном и повторно использовать шаблон на других веб-сайтах на том же сервере, создав дочерний шаблон, где я переопределяю только определенный дизайн элементы из родительского шаблона.

Что мне нужно, так это скорость развертывания - какой шаблонизатор (требуется PHP) я могу использовать, чтобы получить дополнительные сайты, самые быстрые?

Например, у меня есть сайты для запуска на разных рынках, в разных категориях. Поэтому я хотел бы создать шаблон сайта в Великобритании, который является основным шаблоном, а затем переопределить такие детали, как логотип и статические тексты для рынков Швеции и Франции. Кроме того, для разных категорий (например, «Мужская мода» и «Женская мода») мне необходимо переопределить изображения и цвета определенных элементов дизайна (например, изображений на главной странице и т. Д.).

Все сайты, которые мне нужно запустить, основаны на одном и том же API (RESTful JSON), и мне нужно иметь возможность легко интегрировать форму для поиска, сортировки и фильтрации - поэтому механизм шаблонов должен был бы легко интеграция с переменными ...

Какое решение вы бы предложили, чтобы соответствовать этим требованиям?

Ответы [ 6 ]

6 голосов
/ 19 мая 2011

Вы также можете посмотреть на Веточка .Вот еще немного информации об этом и как это сравнивается с другими: http://fabien.potencier.org/article/34/templating-engines-in-php

3 голосов
/ 18 мая 2011

Simple -> Symfony

Использует очень простой движок шаблонов - и его легко изучить, так как их документация просто потрясающая

1 голос
/ 18 мая 2011

Я предлагаю http://agiletoolkit.org/ по следующим причинам:

  • встроенные и интегрированные шаблоны уровня компонентов. Основа CSS основана на jQuery UI CSS и 960.gs. Большинство фреймворков обрабатывают шаблоны на уровне страниц, что делает их менее пригодными для повторного использования.
  • готовые формы с поддержкой ajax, фильтрами различных форм и макетами html / css. Компоненты пользовательского интерфейса работают с данными MVC или статическими массивами (которые легко использовать с JSON). Большинство фреймворков не предоставляют форму HTML. Также генераторы обычно интегрируют элементы пользовательского интерфейса только с моделями.
  • объектно-ориентированный компонентный подход создает сайт из "объектов просмотра", которые вы можете разделить между несколькими сайтами и объединить с различными моделями. Страницы также определяются как классы. Это означает, что вы можете иметь 2 страницы с общим предком и незначительными изменениями. Если вы знаете ООП, это становится мощной функцией. Большинство фреймворков потребует отдельной установки и совместного использования компонентов сложнее. Также большинству фреймворков потребуется отдельный шаблон на страницу.
  • гораздо более легкое и направлено на эффективную разработку и интеграцию. Для сравнения, Zend фокусируется на независимости компонентов. Легкий след и более высокая скорость - прямой результат этого.

Agile Toolkit с открытым исходным кодом.

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

1 голос
/ 18 мая 2011

Zend Framework и настройка различных «сайтов» в качестве модулей, вероятно, будет хорошим подходом, если они имеют много логики и т. Д. Каждый модуль может иметь уникальную компоновку.

Zend Framework позволяет работать с использованиемшаблон MVC и позволяет легко разделить логику и представление.Вы можете найти больше информации на http://framework.zend.com/

1 голос
/ 18 мая 2011

Если не фреймворк, а шаблонный движок, я не могу думать ни о чем другом, кроме как использовать Smarty для шаблонов. Это простой в использовании и очень гибкий. Вы можете создать основной шаблон, например main.tpl введите некоторые переменные и используйте этот шаблон снова и снова, просто назначив необходимые значения для каждого сайта, например, index.php (для какого-то сайта):

$smarty->assign(array(
   'PageTitle' => 'Some site title'
   'CustomContent' => $smarty->fetch('custom.tpl'); // custom for this site
));

// of course you've setup the template location at this point
$MainTemplate = $smarty->fetch('main.tpl');

$smarty->display($MainTemplate);

На main.tpl у вас будет что-то вроде:

// on main.tpl you'd have
<title>{$PageTitle}</title>
......
<body>
{$CustomContent}
</body>

Просто идея:)

1 голос
/ 18 мая 2011

Хмм. Установите codeigniter 2 с пакетами и библиотеку шаблонов «расширение», поместите файлы шаблонов в отдельный репозиторий и загрузите их как пакет для каждого «дочернего сайта». Если вы тщательно определите свои регионы, это все, что вам нужно сделать:)

...