Интеграция Doctrine в Kohana

Интеграция doctrine(далее доктрины) осуществляеться с помощью создания модуля к Kohana (далее кохана). На исключительное авторство не претендую. Метод взял у какого-то буржуя и немного доточил.
Кто незнает что такое доктрина — это ORM. Намного более продвинутый чем в кохане. Один только ее исходный код раза в три больше чем вся кохана. Так например модели строятся автоматически из базы или конфига (схемы). Есть возможность начальный данные перегнать в текстовые файлы. Есть мигрирование. Полная поддержка связей (one to many, many to many, ono to one). Вобщем могу сказать что она сильно ускоряет разработку, работать с ней одно удовольствие. Но есть только один минус как по мне — тормознутость. По умолчанию она раз в 10 медленнее встроенного орма в кохане. При выполнении она занимает 5 Mb в памяти
После того как создадим модуль, для его корректоной установки понадобиться всего несколько действий:
  • Добавить в корень проекта папку modules (если ее еще нет) а в нее папку doctrine. Это и есть наш модуль.


( Читать дальше )

Обновился до ubuntu 9.04

Я работал на ubuntu 8.10 (вернее kubuntu). Решил обновится до последней версии. Но увы! После первого ребута машина отказалась запускаться. Зашел с LiveCD изменил конфиг menu.list что в грабе — запустил. Обнаружил что отвалился звук. Пересобрал из сорцов драйвер ALSA — звук завел. Теперь вроде работает.

Невероято злой на такие обновления. Вот почему на серверах используют старое ПО, в такие моменты это становится понятным.

Компоненты. Продолжение

Получив несколько комментариев на свой предыдущий пост, на хабре и здесь, возникли мысли написать этот пост.
Такое впечатление что я все это время чесал правое ухо левой рукой. Впредь компонент для меня — это класс со статическими методами лежащий в библиотеках. Теперь в шаблоне достаточно вызвать метод и сделать ему echo.
Пишем класс widget.php. Кидаем его в папку libraries:
<?php
class widget
{
    public static function example()
    {
        return View::factory('_example',array('var'=>'Привет мир'));
    }
}

?>


( Читать дальше )

Реализация компонентов в Kohana

Представим себе ситуацию, что у нас на сайте есть виджет. Этот виджет повторяется на сайте на каждой странице. Как нам сделать дизайн кода так, чтобы забыть про этот виджет и сконцентрировать внимание на других проблемах?

Конечно мы не можем себе позволить обращаться к области данных из шаблона, иначе это указывало бы на нашу неграмотность. Во многих фрейверках есть для этого свои решения. Но я проведу аналогию с symfony. В последнем имеется такое понятие как компонент. Выглядит это примерно так: вы вызываете в шаблоне статический метод с указанием названия компонентов, далее происходит обращение к одноименному контроллеру, извлекаются данные из области данных и передаются в фрагмент шаблона, последний рендерится и код вставляется в нативный шаблон. Таким образом получается архитектура MVC вложенная друг в друга. Я немного упростил эту схему, сразу говорю, но суть передал точно.

( Читать дальше )

Debug Toolbar теперь в kohana

Теперь и в kohana есть такой же замечательный тулбар как в symfony. Вернее просто под чистую передраный. Почитать можно тут

Сегодня я его протестил — работает отменно.

Скоро начну цикл статей про то как из kohana зделать удобнейший фреймверк для быстрой разработки. Ожидайте.

Opera vs FireFox

Как то сложились у меня ассоциации что веб-разработчик должен пользоваться браузером firefox, и долгое время я даже не рассматривал другие варианты. Здесь — мощные средства отладки, наибольшее соответствие стандартам w3, мощная плагинная система и большое количество последних. Короче это громадный комбайн. Но так как я работаю под линуксом то к этому всему еще и добавляется страшная глючность — это и тормоза и чисто откровенные баги. Так уж получилось что разработчики «положили» на пользователей Linux.
Пришлось искать альтернативу. И я ее нашел — Opera. Это браузер который работает под линуксом без единого бага и с огромной скоростью. Полное соответствие windows-версии.
Что мне в ней нравиться:
* Имеется большой выбор виджетов
* Просто сказочная юзабельность
* заметки, навороченый поиск, прекрасная реализация bookmarks и много чего еще
* прекрасный внешний вид
* большая скорость работы

И все это синхронизируется с интернетом, т.е я прихожу домой с работы и все закладки, история и все-все у меня автоматически появляется здесь. В firefox конечно тоже можно такое сделать с помощью плагинов но здесь это все работает монолитно.

Вот отладка конечно отстоет немного от уважаемого FF. Но это тоже не беда так как есть DragonFly.

Рекомендация Хостинга

Недавно пришлось разместить сайт одного своего знакомого на хостинге. Решил попробовать компанию ukraine.com.ua. Хостинг оказался очень интересным. Все работает на nginx + php fcgi, c возможностью тонкой настройки — какие запросы отдавать через apache а какие через nginx. .htaccess нормально работает, так что проблем с переписыванием деректив серверу быть не должно.


( Читать дальше )

Переехали на гугловский фид

Мой блог использовал транслятор rss-фидов feedburner.com, теперь объявили что нужно переезжать. Так что переехали с адреса feeds.feedburner.com/org/kazK на feeds2.feedburner.com/org/kazK

CodeIgniter??? Подумайте про Kohana

Так исторически сложилось что работаю я в основном с фреймверком Symfony. Но к сожалению она очень тяжела и не для всех проектов годится, поэтому помню каково же открытие для меня был CodeIgniter. Ведь в основном я использую только 20% возможностей symfony, и как раз то что мне чаще всего нужно было у CodeIgniter. А мне в основном от фреймверка нужно следующее:
  • Фронтконтроллер( +Routing )

  • MVC

  • ActivaRecord / ORM

  • 2-x проходное отображение

  • Система конфигов

  • I18N, L10N

  • Cache (Drivers)

  • Куча хелперов и либ



( Читать дальше )