0

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

Posted in web2.0 at декабря 13, 2007 / No Comments »

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

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

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

4

Баги в Kohana

Posted in Kohana, framework, php at декабря 3, 2007 / 4 Comments »

На часах 7.42 утра, а я еще не уходил с работы… Очень срочно нужно доделывать проект, в 11 утра презентация.

Зато параллельно с работой над этим проектом нашел очень неприятный баг в Kohana, заключается он в том что глобальный XSS фильтр, на который многие пользователя надеются, не работает. Совсем.

Подробнее здесь

9

Обновления Kohana

Posted in Kohana, codeigniter, framework, php at декабря 3, 2007 / 9 Comments »

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 всетаки более безопасный в этом плане, и количество потенциальных багов в нем должно быть на порядок меньше чем в аналогичном продукте от сообщества энтузиастов.