А вы знали, что...

…проводится публичное тестирование русскоязычных доменов?

http://пример.испытание

Это example.test, но на русском :) Видимо буржуям не сообщили что в русском языке есть слово “тест” :)

Published on Thu, 13 Dec 2007 21:02

Баги в Kohana

На часах 7.42 утра, а я еще не уходил с работы…
Очень срочно нужно доделывать проект, в 11 утра презентация.
Зато параллельно с работой над этим проектом нашел очень неприятный баг в Kohana, заключается он в том что глобальный XSS фильтр, на который многие пользователи надеятся, не работает. Совсем. Подробнее здесь.

Published on Mon, 03 Dec 2007 06:45

Обновления Kohana

PHP фреймворк Kohana о котором я уже писал обновился наконец до полноценной версии 2.0.

Для тех кто не в курсе, версия 1.0 была по сути копией CodeIgniter'a, и никаких особых бенефитов не давала. Теперь же полноценный релиз, новый сайт фреймворка, и ожидание нормальной документации. Пробую её в своём новом проекте, посмотрим что из этого получится. По возможности буду описывать свои впечатления. Пока нравятся следующие вещи (в сравнении с CodeIgniter):

  • Helpers теперь статические объекты, т.е. есть имитация чего-то вроде NameSpace'ов. Таким образом вы можете иметь одноименные методы в разных хелперах, наследовать их и прочее.
  • Поддержка только PHP5. Это очень хорошо, что многие вещи делаются без оглядки на поддержку php4. Я в своих проектах использую только php 5.2+, так что поддержка php4 мне абсолютно не нужна.
  • Продуманное именование контроллеров и моделей, таким образом мы можем иметь одноименные модели и контроллеры, в CI приходилось делать например контроллер News, и модель к нему NewsModel. Теперь благодаря тому что контроллеры должны назваться NAME_Controller, а модели NAME_Model, мы можем иметь одноименные модели и контроллеры. Кроме того, логичнее сделано наследование системных классов. Все системные классы имеют суффикс _Core, хотя в вашем коде эти суффиксы нигде не используются. Т.е. скажем ваш контроллер имеет такое определение: class Welcome_Controller extends Controller { } и создав половину контроллеров вы вдруг решили что вам нужно переопределить этот родительский контроллер, унаследовав системный и добавив некоторые функции. В CodeIgniter'e вам бы пришлось создать класс с таким кодом: class MY_Controller extends Controller { } и описывать работу в нем, а во всех своих контроллерах менять class X extends Controller на class X extends MY_Controller. Теперь же, с учетом того что системные классы имеют суффикс _Core, вы просто переопределяете класс Controller таким образом: class Controller extends Controller_Core { } и больше нигде ничего менять не нужно, потому что у вас и так везде шло наследование от класса Controller, просто вместо него подставлялся Controller_Core

Вобщем сделали многое чуть лучше, минусов пока я вижу всего три:

  • Очень слабая документация, т.е. её практически нет, только API автоматически сгенерированный из кода
  • Слабое по сравнению с CI комьюнити, ввиду малой распространенности
  • Есть еще один минус на мой взгляд - этот фреймворк контроллируется комьюнити, а соответственно он очень сильно уязвим к кривым рукам, людей которые не получают за работу над ним заработную плату. Спорно конечно, может быть это и плюс, но мне кажется что CI всетаки более безопасный в этом плане, и количество потенциальных багов в нем должно быть на порядок меньше чем в аналогичном продукте от сообщества энтузиастов.
Published on Mon, 03 Dec 2007 02:30