Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

как хранить4 куски html-страницы, которые редко изменяются?
http://forum.kohanaframework.su/viewtopic.php?f=31&t=664
Страница 1 из 1

Автор:  opensuse2008 [ 04 июн 2013, 06:43 ]
Заголовок сообщения:  как хранить4 куски html-страницы, которые редко изменяются?

Всем доброго времени суток. Скажем есть сложный запрос из БД который формирует список элементов, например список запчастей. Этот список в дальнейшем будет редко изменяться, а возможно вообще не будет этого происходить. По идее его получается лучше хранить в виде куска html-кода, который по нужде вставлять в шаблон. Но так как я недавно познакомился с kohana, могли бы подсказать как это принято делать в ней, или как лучше это сделать. :)

Автор:  nkl [ 04 июн 2013, 10:02 ]
Заголовок сообщения:  Re: как хранить4 куски html-страницы, которые редко изменяют

В папке Models создай файл Htmltemplates.php примерно такого содержания:
Код:
<?php defined('SYSPATH') or die('No direct script access.');

class Model_Htmltemplates
{
     public function get_zip_select($class, $id, $style, $name) //при вызове этого метода класса Html можно будет передать стили, идентификаторы и пр. настройки отображения списка
     {
           $html = '<select class="'.$class.'" id="'.$id.'" name="'.$name.'" style="'.$tyle.'"><option value="1">Значение 1</option>Значение 2<option value="2"></option>';
           //и потом на свое усмотрение, либо
          return $html;
          //либо
          $this -> html = $html;
     }
     
     /*public function get_еще_че-то там...*/
}


Потом, в контроллере инициализируешь объект класса Htmltemplates:

Код:
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Mycontroller Controller_Template {
   
public function before()
{
   parent::before();
        $template = 'mytemplate';
}
   
public function action_index()
{
      $htmlSelect = new Model_Htmltemplates();
      //и потом в зависимости от того, какой метод вывода данных был выбран в методе класса, если return $html то
      $this->template->select_zip = $htmlSelect -> get_zip_select('select_class', 1, 'margin:0 auto', 'zip');
      //если $this->html=$html то
      $htmlSelect -> get_zip_select('select_class', 1, 'margin:0 auto', 'zip');
      $this->template->select_zip = $htmlSelect -> html
}


Ну и потом уже в файле вида выводишь переменную $select_zip куда тебе нужно. Как-то так. Мб, я ошибаюсь? Коли так, то сам жду ответов от гуру. Потому что для меня вопрос актуальный.

Автор:  Ke1eth [ 04 июн 2013, 11:51 ]
Заголовок сообщения:  Re: как хранить4 куски html-страницы, которые редко изменяют

Вообще принято пользоваться кешем.

Можно как сказано выше, но там дюже некрасиво.

Автор:  WinterSilence [ 04 июн 2013, 14:08 ]
Заголовок сообщения:  Re: как хранить4 куски html-страницы, которые редко изменяют

используем apc акселератор по возможности
Код:
/**
 * Set cache settings
 * @link http://en.wikipedia.org/wiki/List_of_PHP_accelerators
 */
if (function_exists('apc_store') AND ini_get('apc.enabled'))
{
   Cache::$default = 'apc';
}
else
{
   Cache::$default = 'file';
}


я использую небольшую степень сжатия хранимых данных, это обеспечивает их компактность, при этом не сильно грузит систему при их распаковке.
Код:
// Поиск кеша по метке 'content'
if ($this->content = $this->cache->get('content'))
{
   // Распаковка загруженного кеша
   $this->content = gzuncompress($this->content);
}
else
{
   // Кеш не найден, выполняем код формирования данных
   $this->content = ...
}

// Сохранение кеша с сжатием данных
$this->cache->set('content', gzcompress($this->content, 2), Date::DAY/4);

Автор:  opensuse2008 [ 04 июн 2013, 21:05 ]
Заголовок сообщения:  Re: как хранить4 куски html-страницы, которые редко изменяют

тогда вопрос немного в другую тему, про кэш. Возможно уже такая есть. Когда им пользоваться в кохане - для каких случаев? :)

Автор:  WinterSilence [ 04 июн 2013, 21:48 ]
Заголовок сообщения:  Re: как хранить4 куски html-страницы, которые редко изменяют

почему именно в кохане не понятно, сама технология кеширования везде примерно одна, в своих проектах я обычно кеширую не страницы целиком, а отдельные блоки данных т.е. если речь о каталоге товаров, то для каждого товара предусмотрен свой кеш. это позволяет использовать данный кеш не только для каталога, но и для отображения результатов поиска по товарам. Вообще рекомендуют кешировать данные (массивы\объекты), т.ч. иногда делают даже многоуровневый кеш т.е. из кеша данных уже строятся html кеши блоков

Автор:  opensuse2008 [ 04 июн 2013, 21:58 ]
Заголовок сообщения:  Re: как хранить4 куски html-страницы, которые редко изменяют

Спасибо, буду разбираться. :)

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/