Jelly — Пишем сложные запросы

Все разработчики, рано или поздно, начинают понимать что стандартными средствами ORM библиотеки невозможно реализовать сложные и удобные запросы. То тут, мы не знаем как написать простейших запрос для подсчёта суммы, без вынимания всех значений, то там, мы не можем составить нетривиальное условие. В большинстве случаев, кроме удобного доступа к данным, ORM библиотеки доставляют нам головную боль с составлением сложных запросов и огромное количество избыточных выборок. Сегодня я хочу рассказать, как мы можем обойти часть сложностей и упростить себе работу и, возможно, снизить нагрузку на сервер, используя ORM Jelly....

March 23, 2011 · ukko

Модуль для простых миграций

В предыдущем посте я рассказывал о модулях миграций для Коханы 3. К сожалению ни один из модулей мне не понравился или по каким-то причинам не подошёл. Сейчас же, я хочу представить свой форк модуля для миграций. Он основан на kohana-3-migrations. И получился сам по себе лёгкий и лишённый нескольких детских болезней своего родителя. Итак, встречайте :) (он пока без нового названия и в экспериментальной ветке) Вкратце, что он умеет: Миграция сохраняется в виде обычной SQL-инструкции....

January 16, 2011 · ukko

Миграции в Kohana 3.0.*

Недавно восторженные апологеты «yii» опубликовали новость о том что теперь их фреймворк поддерживает миграции к базе данных. Имея опыт работы с миграциями в doctrine, я давно уже задумывался об использовании миграций в кохане. И решил что настал момент самостоятельно во всём разобраться. Если вы не знаете что такое миграции к базе данных, то вот вам небольшая теория. Теория про Петю и Васю и миграции Допустим Вася и Петя работают над одной программой — веб-сайтом для хомячков....

January 5, 2011 · ukko

Kohana 3.1 RC1

Все мы любим получать подарки, и наши любимые разработчики Kohana, похоже, решили нас поздравить по-своему, выпустив первый релиз-кандидат Kohana версии 3.1. Изменений достаточно много, официальный анонс разработчики пока делать не спешат. И выуженная информация крайне скупа.. Переписан класс Request Добавлен класс Response Лямбда-функции в роутах Добавлены http_* классы, для ответа (например страница 404) Из разных занимательных мелочей: Отказ от параметров в контроллерах, вместо них следует использовать $this->request->param() Перенос вызова Request из bootstrap....

January 4, 2011 · ukko

PHP Code Sniffer для Kohana 3

Как вы знаете, для того что бы написать хороший поддерживаемый код, нужно не только хорошо знать синтаксис языка программирования, но и писать код, удовлетворяющий общепринятым требованиям к оформлению кода. Понятно, что после строительства Вавилонской башни, общепринятых требований только увеличилось. В том числе и для Kohana появились специальные соглашения. Что бы регулярно следить за качеством своего кода, была создана удобная консольная утилита phpcs. Суть её крайне проста. После написания нового или отредактированного кода, мы запускаем утилиту и проверяем наши файлы с исходниками на соответствие с требованиями к оформлению кода....

September 22, 2010 · ukko

Универсальный git репозитарий для Kohana

Наверное многие из вас мучались в поисках нового модуля для Kohana, и мучались с периодическими обновлениями то системного ядра, то каких-либо модулей. Про всё это можно забыть, если подключиться к git репозитарию, kohana-universe, который содержит external (тут сложно назвать это понятно по-русски) ссылки на актуальные репозитарии со сторонними модулями и ядром системы. Т.е. каждый раз обновляя этот репозитарий, вы обновляете и системное ядро, и все те 150+ модулей для Kohana....

September 21, 2010 · ukko

Jelly — Добавляем тип поля «Изображение»

В дополнение к отличной статье о Jelly я решил рассказать о реализации типа поля «Image». На самом деле я не изобретаю тут абсолютно ничего нового, я просто адаптировал оригинальную библиотеку от нестабильной версии Jelly к текущей, самой популярной, но уже не развивающейся версии. Перед созданием нового типа, нужно немного изменить класс Field_File в файле /modules/jelly/classes/field/file.php Добавим туда метод set(), перекрывающий родительский метод. Без него, мы не смогли бы сохранить файл....

September 19, 2010 · ukko