Автозагрузка модульности / виджетов в PHP, CodeIgniter / Kohana - PullRequest
2 голосов
/ 24 января 2010

Я просматривал множество библиотек шаблонов, так что у меня есть общее представление о том, что там готово для загрузки / использования и что я хочу использовать, так что, возможно, вы могли бы помочь мне с этим.

В настоящее время я изучаю CodeIgniter и думаю о переезде в Кохану позже. Я хотел бы включить контроллеры / модули (возможно, функцию / module?) В зависимости от потребностей шаблона / сайта.

Пример , чтобы вы поняли: У меня есть определенная XML-страница, сохраненная в MySQL, которая утверждает, что в
<div id="sidebar">, я хочу использовать панель новостей / виджет - что-то вроде:
<div id="sidebar">{widget:news;3;60}</div>.

Я ищу анализатор шаблонов и / или способ сделать это , поэтому в основном приложении я загружаю страницу, затем шаблон. затем я просматриваю, какие модули / виджеты используют страницу / шаблон, и загружаю их динамически, передаю их параметры (например, новости; 3; 60 - новости модулей, 3 последних, 60 символов ограничивают каждый) и echo их результат вместо где я их назвал.

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

Другие проблемы в моей голове: я думаю, что было бы лучше иметь все модули одновременно (не загружать их там, а здесь), чтобы я мог получить доступ к базе данных в одном месте и т. Д.

Я в некотором роде заблудился, и, может быть, у кого-то будет какая-то идея для меня:)

Ответы [ 2 ]

2 голосов
/ 24 января 2010

Два лучших способа сделать это:

  1. Использовать мою реализацию CodeIgniter Dwoo и создавать плагины
  2. Использовать wiredesignz ' Плагин виджетов

Конечно, вы могли бы использовать плагины Smarty, но, черт возьми, кто все еще использует Smarty?

Помните, что при создании плагинов Dwoo экземпляр CodeIgniter доступен для любого PHP, загруженного на этот сервер?запросите, так что, можете ли вы использовать плагины, модификаторы, блоки и т. д. Dwoo:

$CI =& get_instance();
$CI->load->model('something');
//etc
0 голосов
/ 26 января 2010

Если вы используете Kohana3, вы можете использовать возможности HMVC.Быстрый способ - создать вспомогательный класс, который вы можете использовать в своих представлениях.По вашему мнению, вы тогда звоните этому помощнику.Этот помощник запускает новый запрос, который запускает правильный контроллер / действие.

Существует некоторый виджет-класс на форумах Kohana, но для этого требуется класс для виджета вместо использования (ужесуществующие?) контроллеры через HMVC-возможности Kohana3.

...