А вы знали, что...
…проводится публичное тестирование русскоязычных доменов?
Это example.test, но на русском :) Видимо буржуям не сообщили что в русском языке есть слово “тест” :)
Баги в Kohana
На часах 7.42 утра, а я еще не уходил с работы…
Очень срочно нужно доделывать проект, в 11 утра презентация.
Зато параллельно с работой над этим проектом нашел очень неприятный баг в Kohana, заключается он в том что глобальный XSS фильтр, на который многие пользователи надеятся, не работает. Совсем. Подробнее здесь.
Обновления 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 всетаки более безопасный в этом плане, и количество потенциальных багов в нем должно быть на порядок меньше чем в аналогичном продукте от сообщества энтузиастов.
![["Mmmmushrooms"] ["Mmmmushrooms"]](http://farm5.staticflickr.com/4030/4440914076_82fd461453_s.jpg)
![["Mmmmushrooms"] ["Mmmmushrooms"]](http://farm3.staticflickr.com/2750/4440914014_ce2e626c90_s.jpg)
![["***"] ["***"]](http://farm3.staticflickr.com/2754/4440914904_9ac6d34a3f_s.jpg)
![["***"] ["***"]](http://farm3.staticflickr.com/2731/4440139155_e75e9ee37c_s.jpg)