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

Есть ли приемущества хранить роуты в БД?
http://forum.kohanaframework.su/viewtopic.php?f=31&t=798
Страница 1 из 1

Автор:  arhont [ 21 янв 2014, 13:56 ]
Заголовок сообщения:  Есть ли приемущества хранить роуты в БД?

А то я тут сначала седлал хранение роутов в БД. Но потом мне самому это не очень понравилось и я всё стёр и вернулся опять по старинке.

Просто потому, что роутов у меня получилось довольно много. И я начал делать отдельные файлы роутов для каждого компонента.

Идеально по моему было бы хранение роутов в виде xml дерева. Но так как сами роуты, имеют "<>" то нужно что-то мудрить и с этим... Кроме того не понятно как организовать кеширование больших объёмов роутов в этом случае...

Автор:  Sergey [ 21 янв 2014, 23:59 ]
Заголовок сообщения:  Re: Есть ли приемущества хранить роуты в БД?

Цитата:
Идеально по моему было бы хранение роутов в виде xml дерева.

А почему не Yaml? Там нет "<>" :)

Автор:  WinterSilence [ 22 янв 2014, 00:58 ]
Заголовок сообщения:  Re: Есть ли приемущества хранить роуты в БД?

а смысл их в базе хранить если всё равно каждый раз надо все извлекать, если только у тебя это дело в админке не настраивается

Автор:  Sergey [ 22 янв 2014, 01:20 ]
Заголовок сообщения:  Re: Есть ли приемущества хранить роуты в БД?

arhont писал(а):
Идеально по моему было бы хранение роутов в виде xml дерева. Но так как сами роуты, имеют "<>" то нужно что-то мудрить и с этим... Кроме того не понятно как организовать кеширование больших объёмов роутов в этом случае...


А вообще не понятно, что вам мешает хранить это дело в XML, если уж вы его выбрали, как формат для хранения. Вы же не html-разметку там хранить собираетесь, не php-код, а всего лишь параметры роута.

Что мешает скажем, для вот такого роута (к примеру):

Код:
Route::set('resize''media/imagecache/<type>/<dimensions>(/<file>)', array(
    
'dimensions' => '\d+x\d+',
    
'type'       => 'crop|ratio|resize',
    
'file'       => '.+'
))
->
defaults(array(
    
'controller' => 'resize',
    
'action'     => 'image',
    
'type'       => 'resize'
));
 


Использовать вот такой xml:

Код:
<route name="resize">
   <pattern name="resize" value="media/imagecache/$type/$dimensions(/$file)">
      <dimensions>\d+x\d+</dimensions>
      <type>crop|ratio|resize</type>
      <file>.+</file>
   </pattern>
   <defaults>
      <controller>resize</controller>
      <action>image</action>
      <type>resize</type>
   </defaults>
</route>



?

Автор:  arhont [ 22 янв 2014, 23:09 ]
Заголовок сообщения:  Re: Есть ли приемущества хранить роуты в БД?

Sergey писал(а):
arhont писал(а):
Идеально по моему было бы хранение роутов в виде xml дерева. Но так как сами роуты, имеют "<>" то нужно что-то мудрить и с этим... Кроме того не понятно как организовать кеширование больших объёмов роутов в этом случае...


А вообще не понятно, что вам мешает хранить это дело в XML, если уж вы его выбрали, как формат для хранения. Вы же не html-разметку там хранить собираетесь, не php-код, а всего лишь параметры роута.

Что мешает скажем, для вот такого роута (к примеру):

Код:
Route::set('resize', 'media/imagecache/<type>/<dimensions>(/<file>)', array(
    'dimensions' => '\d+x\d+',
    'type'       => 'crop|ratio|resize',
    'file'       => '.+'
))
->
defaults(array(
    'controller' => 'resize',
    'action'     => 'image',
    'type'       => 'resize'
));
 


Использовать вот такой xml:

Код:
<route name="resize">
   <pattern name="resize" value="media/imagecache/$type/$dimensions(/$file)">
      <dimensions>\d+x\d+</dimensions>
      <type>crop|ratio|resize</type>
      <file>.+</file>
   </pattern>
   <defaults>
      <controller>resize</controller>
      <action>image</action>
      <type>resize</type>
   </defaults>
</route>



?


По моему там реально много писать кода и для моего проекта этого в данный момент не требуется. Хотя он разросся. Может быть кто нибудь писал модуль для хранения роутов в виде xml? Если нет, то по моему, самое время в будущем мне попробовать его написать.

Вопрос ещё вот какой, как ограничить доступ к этому дереву от прямого вызова? И второй вопрос чем лучше читать это XML дерево, что-бы кешировать его элементы?

Автор:  arhont [ 22 янв 2014, 23:16 ]
Заголовок сообщения:  Re: Есть ли приемущества хранить роуты в БД?

WinterSilence писал(а):
а смысл их в базе хранить если всё равно каждый раз надо все извлекать, если только у тебя это дело в админке не настраивается

Где-то я видел странный код, где вообще один роут сделан и в него всё подставляется...
Ну, а в админке можно сделать раздел управления роутами.

Дело в том, что неудобно реально так работать... Каждый роут уникален. У некоторых нет параметров, а у других их двадцать. Хотя можно и это запрограммировать. Если долго "коханить" то точно пригодится.

База данных есть база данных - все данные лучше хранить в ней, т.к. так будет быстрее и правильнее. За исключением древовидных структур.

Автор:  Sergey [ 23 янв 2014, 16:11 ]
Заголовок сообщения:  Re: Есть ли приемущества хранить роуты в БД?

arhont писал(а):
WinterSilence писал(а):
а смысл их в базе хранить если всё равно каждый раз надо все извлекать, если только у тебя это дело в админке не настраивается

Где-то я видел странный код, где вообще один роут сделан и в него всё подставляется...
Ну, а в админке можно сделать раздел управления роутами.

Дело в том, что неудобно реально так работать... Каждый роут уникален. У некоторых нет параметров, а у других их двадцать. Хотя можно и это запрограммировать. Если долго "коханить" то точно пригодится.

База данных есть база данных - все данные лучше хранить в ней, т.к. так будет быстрее и правильнее. За исключением древовидных структур.


Я сторонник обоих методов. Хотя методов больше и они имеют право на существование. Я для Kohana пишу всего 2 года, но уже сейчас это совершенно не сложно — реализовать такую структуру на xml, например или на yaml. Так что от времени работы с Kohana это не зависит

Автор:  Sergey [ 23 янв 2014, 16:12 ]
Заголовок сообщения:  Re: Есть ли приемущества хранить роуты в БД?

arhont писал(а):
По моему там реально много писать кода и для моего проекта этого в данный момент не требуется. Хотя он разросся. Может быть кто нибудь писал модуль для хранения роутов в виде xml? Если нет, то по моему, самое время в будущем мне попробовать его написать.

Вопрос ещё вот какой, как ограничить доступ к этому дереву от прямого вызова? И второй вопрос чем лучше читать это XML дерево, что-бы кешировать его элементы?


.htaccess?

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