Archive for the ‘php’ Category
Kohana – в первую очередь фреймворк, т.е. каркас приложений, и не обязательно для Web. Результатом работы Веб приложения может быть не только гипертекст(HTML) но и JSON, XML, изображения, простой текст, так и вовсе ничего.
Понятно, что в зависимости от размера проекта и назначения проекта иногда приходиться писать демоны, которые занимаются рассылкой почты, бэкапами бд, различными пересчётами, транскодингом и много чем ещё…
Всё-таки оказалось, что kohana сильно ориентирован на вэб, хотя казалось бы, компоненты должны быть отдельно друг от друга.
Для написания консольного приложения(впрочем как и “демона”) на основе Kohana нужно немного “допилить” контроллер. По-прежнему всю логику будет выполнять именно он, за одним исключением – если приложение и будет что то выводить – то это сообщения для отладки.
Важным моментом в этом является отлавливание ошибок. Стандартный отлов ошибок и исключений будет работать по-прежнему, но при малейшем E_NOTICE у вас в консоль отобразиться как минимум строк сто HTML кода – страница ошибки. Рано или поздно надоест прокручивать вверх и разбираться в коде – почему бы не представить ошибку в более понятном и читаемом виде?
Предлагаю необычный способ построения дерева меню из объектов любой степени вложенности, используя преимущества php5 и вызов методов цепочкой
Мне поставили задачу распарсить один крупный иностранный сайт скандинавского аукциона. Время на страницах выглядит так: “Aug-24-2009 at 12:04 PDT“, а нужно перевести его в стандартный unix timestamp.
Долго думал как назвать пост. Иногда очень достают километровые строки для доступа к массиву(как правило километры – именно в конфиге), например:
А хочется что – то более лаконичное, вроде
или может даже
Прочитав небольшой обзор фреймворка yii навеяло желание сделать одной очень нужной для CodeIgniter вещи – фильтра. Подробнее о том что это. В кратце – метод который вызывается сразу после конструктора контроллера перед выполнением метода, который был выбран фреймворком на основании правил роутинга.
Область применения – самая разная: различные проверки прав, xss фильтрация, установка каких-либо полей класса, загрузка и инициализация моделей/библиотек/хелперов и прочего.
$last_key = end(array_keys($spots));
foreach($spots as $k => $spot) {
$isLast = ($k === $last_key);
....
// что то делаем
}
Нужно просто получить последний ключ массива а потом сравнивать очередной ключ при каждой итерации. Можно конечно использовать $last_key = count($spots) – 1; но в случае ассоциативного массива это бы не сработало.
Мой любимый фреймворк CodeIgniter, который я сейчас использую для написания проекта не предоставляет возможности использовать наследование моделей и контроллеров. Read the rest of this entry »
(навеянно gentoo)
Часто бывает ситуация, когда для работы класса нужно подгрузить другие классы или библиотеки. Обычно так и делаем: в конструкторе заргужаем и инициализируем если надо.
ИМХО, так не красиво. Получается засоряем конструктор. Хотя кому-как ![]()
Read the rest of this entry »
