Поскольку никаких заявок на рассмотрение определенных Хелперов не поступило, я решил все-таки рассмотреть их основную часть, хотя бы кратко. Чтобы вы знали, какие Хелперы в Кохане существуют и могли в случае необходимости ими сразу воспользоваться. Итак, приступим.
Класс Date
Работа с датами в php достаточно сложна. Если честно, я ненавижу работу с датой и временем и их использование всегда вызывало у меня проблемы. Несмотря на то, что в php существует достаточно много функций для работы с датами, они не решают все задачи, которые постоянно встают перед разработчиками. Например, формирование разного рода селектов или определение количества дней, прошедших между двумя датами. Класс Коханы для работы с датами предлагает много методов, облегчающих решение некоторых таких задач.
Довольно часто нам требуется узнать, сколько дней в определенном месяце (а как вы знаете, оно бывает разным, особенно в феврале). И вместо того, чтобы писать несколько строк кода, достаточно воспользоваться всего-лишь одной строчкой. (в данном примере определяется количество дней для февраля 2015 года):
$days = Date::days(2, 2015);
Мы получим массив из 28 элементов следующего характера:
Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 [11] => 11 [12] => 12 [13] => 13 [14] => 14 [15] => 15 [16] => 16 [17] => 17 [18] => 18 [19] => 19 [20] => 20 [21] => 21 [22] => 22 [23] => 23 [24] => 24 [25] => 25 [26] => 26 [27] => 27 [28] => 28 )
Дальше уже можно распоряжаться этими данными по своему усмотрению. Например, создать селектор с днями для определенного месяца определенного года (в той же регистрации пользователя).
Абсолютно аналогично работают такие методы, как months, years, seconds, hours и minutes. Естественно параметры, передаваемые в метод, будут другими. Причем там могут быть несколько вариантов.
Получение количества месяцев в 2015 году:
$days = Date::months(2015);
Этот код вернет нам массив:
Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 [11] => 11 [12] => 12 )
А вот код:
$days = Date::months(Date::MONTHS_LONG);
Вернет нам уже другой массив:
Array ( [1] => January [2] => February [3] => March [4] => April [5] => May [6] => June [7] => July [8] => August [9] => September [10] => October [11] => November [12] => December )
Все варианты передаваемых параметров с подробным их описанием вы найдете в комментариях к каждому методу.
Еще один интересный метод — метод span позволяет получить разницу во времени между двумя числами.
$span = Date::span(10, 10000, 'hours,minutes,seconds');
В данном случае мы получим следующий массив: Array ( [hours] => 2 [minutes] => 46 [seconds] => 30 ) .
Естественно, вывод не ограничивается часами, минутами и секундами.
Ну и напоследок метод, переводящий время в 24-часовой формат.
$hour = Date::adjust(3, 'pm'); // 15
Это код из комментария к методу. Таким образом я еще раз напоминаю, смотрите комментарии, там все есть
Остальные методы этого класса предлагаю вам рассмотреть самостоятельно. Добавлю только, что для того, чтобы заменить в некоторых методах англоязычный текст на русскоязычный в том же в методе fuzzy_span ну или даже добавить что-то свое, вы должны создать класс Date внутри папки application/classes и вынести туда измененные и добавленные методы.
Класс HTML
Данный класс позволяет создавать HTML-элементы, но не только. Например, для защиты от XSS-атак имеется такой вот очень полезный метод:
$text = "<script>alert('XSS атака');</script>"; echo HTML::chars($text);
Ява-скрипт в данном случае не сработает и мы получим просто текст:
<script>alert('XSS атака');</script>
Причем, если посмотреть html-код страницы, то мы увидим следующую картину:
<script>alert('XSS атака');</script>
Ну а для создания, ссылок рекомендуется использовать следующий метод:
echo HTML::anchor('articles/article1', 'Статья 1');
С помощью этого кода будет сформирована ссылка, аналогичная ссылке Статья 1 в боковом меню нашего тестового блога.
Если необходима ссылка на файл, то она будет выглядеть так:
echo HTML::file_anchor('files/file1.zip', 'Файл 1');
А так выглядит изображение:
echo HTML::image('media/img/logo.png', array('alt' => 'Логотип'));
Чтобы подключить стили и скрипты, используем следующие методы:
echo HTML::style('media/css/screen.css'); echo HTML::script('media/js/jquery.min.js');
В уроках раздела «Для начинающих» мы работали со стилями и скриптами немного по другому, но теперь, используя Хелперы, вы можете переписать свой код.
Остальные методы этого класса вы опять же можете рассмотреть самостоятельно. Если возникнут какие-то вопросы по этим двум Хелперам, пишите на форуме в разделе
<< Назад | Вперед >> |
Пожалуйста, зарегистрируйтесь для комментирования.
Почему не приводите практические примеры? Например для Date можно было бы показать добавление даты в таблицу с комментариями и вывод ее после.
Обычно дата в базу пишется посредством NOW() или CURRENT_TIMESTAMP. А подсчет всякого там количества дней я использую для селекторов и приводить по ним пример не вижу смысла.
«метод span позволяет получить разницу во времени между двумя числами.»
с учётом что в примере не указан формат исходных данных (а это секунды)…
«крокодил более зелёный чем длинный»
Ну. Секунды. Стандарт измерения времени.
Вообще не понял замечания.