Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Формирование даты согласно настройкам в конфиге http://forum.kohanaframework.su/viewtopic.php?f=38&t=409 |
Страница 1 из 1 |
Автор: | Sergey [ 12 окт 2012, 07:56 ] |
Заголовок сообщения: | Формирование даты согласно настройкам в конфиге |
В общем слегка расширил хелпер Date, дополнив его константой ZERO и 2-мя полезными методами: Код:
Хелпер должен лежать в по адресу application/classes. По порядку: ZERO - я использую эту константу для удобства и читаемости в конфигурационных файлах. Например: Код:
Хотя это больше эстетическое улучшение, чем практическое. get_timestamp_format - статичный метод для формирования формата даты. читает формат с конфигурационного файла $config и ключа $key. Например такой конфиг: Код:
В данном случае в $_new_format попадёт 'Y.m.d'. Если в конфиге 'date_format' пустой или не существует, тогда в $_new_format попадёт значение из родительского поля $timestamp_format. Если файл конфигов не найден - выскочит исключение. Обратите внимание на указанные мною значения по умолчанию formatted_datetime - возвращает дату и/или время в отформатированном виде. Например вам нужно указать дату создания заказа в магазине, и есть некая переменная $order (инстанс ORM::factory('order')): Код:
Все данные кешируются. С файла конфигов прочтётся один раз и далее будет использоваться статическое поле. Вот и всё P.S. Ах, да, забыл совсем Имея такой хелпер, можно не заморачиваться с хранением дат в MySQL. И не нагружать вашу СУБД лишними телодвижениями. Поле $order->created должно быть int и записи там должны быть типа 1350005555. Записать дату в таком формате можно так time(). Да что я вам говорю, подробнее здесь: http://www.php.net/manual/ru/function.time.php |
Автор: | Sergey [ 12 окт 2012, 08:10 ] |
Заголовок сообщения: | Re: Формирование даты согласно настройкам в конфиге |
Если будет время (и я не забуду ), в следующий раз расширю хелпер Text, портировав в него возможность т.н. срезов из Python |
Автор: | AmberLEX [ 12 окт 2012, 10:36 ] |
Заголовок сообщения: | Re: Формирование даты согласно настройкам в конфиге |
Че-то сложно для простого форматирования даты)) Зачем get_timestamp_format() с параметрами, если в formatted_datetime() он используется только так: self::get_timestamp_format() ? Т.е. если get_timestamp_format() - хелпер - в нашем случае предполагается использование в шаблоне. Зачем нам в шаблоне get_timestamp_format() если там мы используем formatted_datetime() ? А если не в шаблоне - зачем нам он нужен, когда формат можно прочитать из конфига, Kohana::$config->load($config) и то он скорее всего уже есть где-то выше в базовом контроллере и скорее всего можно сделать типа $this->config['timestamp_format']; |
Автор: | Sergey [ 13 окт 2012, 04:24 ] |
Заголовок сообщения: | Re: Формирование даты согласно настройкам в конфиге |
AmberLEX писал(а): Че-то сложно для простого форматирования даты)) Зачем get_timestamp_format() с параметрами, если в formatted_datetime() он используется только так: self::get_timestamp_format() ? Т.е. если get_timestamp_format() - хелпер - в нашем случае предполагается использование в шаблоне. Зачем нам в шаблоне get_timestamp_format() если там мы используем formatted_datetime() ? А если не в шаблоне - зачем нам он нужен, когда формат можно прочитать из конфига, Kohana::$config->load($config) и то он скорее всего уже есть где-то выше в базовом контроллере и скорее всего можно сделать типа $this->config['timestamp_format']; Вообще, функцией get_timestamp_format() не подразумевалось пользоваться. По хорошему её надо скрыть из области видимости public. Я лишь показал, как она у меня реализована. Зачем она мне в шаблоне? В шаблоне нужна formatted_datetime() и я лишь указал в get_timestamp_format() значения по дефолту. хотя конечно, можно доработать хелпер и сделать статические поля - аргументы-значения для get_timestamp_format() которые буду например инициализироваться в конструкторе |
Автор: | AmberLEX [ 13 окт 2012, 11:32 ] |
Заголовок сообщения: | Re: Формирование даты согласно настройкам в конфиге |
Я уже себе так написал (так нагляндее): Код:
В конфиге Код:
Используем: Date::format_date_time(); Date::format_date(); Date::format_time(); |
Автор: | Sergey [ 13 окт 2012, 12:05 ] |
Заголовок сообщения: | Re: Формирование даты согласно настройкам в конфиге |
Всё правильно сделал |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |