Контент


KO3: бета №2

Kohana v.3 движется вперед нереальными темпами. Вчера Shadowhand сообщил в второй бете, доступной для скачивания и тестирования.

По сравнению с первой бетой есть два главных изменения:

  • Имена файлов и классов теперь формируются в стиле Zend Framework, а классы ядра (библиотеки и хэлперы), ранее лежавшие в корне директории classes, собраны в папке kohana. Например, хэлпер date ранее имел имя класса date_Core и находился в файле classes/date.php, теперь его следует искать в файле classes/kohana/date.php, а класс называется соответственно Kohana_Date. В корне папки classes теперь лежат файлы с пустыми потомками этих классов, дабы можно было использовать именно date::months(), а не Kohana_Date::months():

    <?php defined('SYSPATH') or die('No direct script access.');
     
    class date extends Kohana_Date {}

    Обратите внимание, что суффикс ‘_Core‘ больше не используется, т.к. теперь по сути хэлперы и библиотеки для системы ничем не отличаются от моделей и контроллеров. Кроме того, первые буквы слов в именах классов капитализированы, так что отличить библиотеку от хэлпера можно только по наличию статических методов, да по имени класса-потомка (т.к. класс date написан с маленькой буквы ‘d‘, то это хэлпер). Однако полного порядка в именах пока нет.

  • Добавлен Query Builder в модуль Database. Поддерживаются стандартные типы запросов (select/insert/update/delete), условия (where и having), группировки и прочие вкусности. Внутри это все организовано достаточно революционным по сравнению с QB версии 2.3, например помимо собственно базового класса Database_Query_Builder наличествует аж 6 его потомков, например Database_Query_Builder_Delete и Database_Query_Builder_Where. Использование достаточно просто и понятно — через статический класс DB, например так:

    	$query = DB::select()
    		->from('forum_posts')
    		->where('id', '>', 10)
    		->or_where_open()
    			->where('author_id', '<', '5')
    			->or_where('created', '>', strtotime('now -10 day'))
    		->or_where_close()
    		->execute();
    // SELECT * FROM `forum_posts` WHERE `id` > 10 OR (`author_id` < 5 OR `created` > 1244963254)
    // теперь $query содержит объект Database_MySQL_Result

    Как видно, открытие и закрытие вложенных условий происходит через специальные методы (or_where_open(), or_where_close(), and_having_open() и т.д.). Есть выражения (expressions), которые удобно создавать через DB::expr(). Чего до сих пор — это кэширования, но, судя по всему, скоро будет.

Еще одно изменение скорее организационное, и касается разработчиков, использующих git. Фреймворк окончательно распределен между маленькими репозиториями (system вынесен в kohana-core, database — в kohana-database и т.д.), в главном репозитории осталась только папка application и корневые файлы типа install.php и index.php.

Ах да, в качестве примера Shadowhand предложил свой сайт, а также исходники. Также на github’е есть исходники будущего сайта третьей версии.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Опубликовано в Kohana3.

Теги: .


Комментарии (7)

Будьте в курсе обсуждения, подпишитесь на RSS ленту комментариев к этой записи.

  1. Мáкса пишет:

    Что ж, ждем RC1 и вперед и с песнями! :)

  2. porcelanosa пишет:

    А насколько все таки велико отличие от 2.2.3 ?
    Стоит ли начинать изучение сразу с 3-ки — или проще начать с 2.2.3 где много разных примеров и обсуждений.

  3. BIakaVeron пишет:

    Вообще от всей второй ветки мало что осталось (разве что отдельные хэлперы). Вроде как база данных (точнее query builder) портирована из 2.4, но ее тоже изучать надо ;)
    «Трешка» еще долго может находиться в бете, да и пока обрастет необходимыми модулями и выпустит более-менее стабильный пропатченный релиз…
    С другой стороны, неизвестно, когда выйдет 2.4 и насколько она будет удачна — зато есть уже какая-то документация, которая писалась под 2.3.x, но будет на 80% актуальна и для 2.4.

    PS. А почему 2.2.3-то? Текущая версия 2.3.4.

  4. porcelanosa пишет:

    описочка вышла с версией — имелась ввиду последняя во 2-ой ветке.

    Т.е. на данный конкретный момент вы посоветуете 2.3.4 ?

  5. BIakaVeron пишет:

    Конечно, и на форуме говорят о том же. Если на данный момент имеются начатые проекты или планируется новый — используйте 2.3, далее перейдете на 2.4.
    Третья версия еще не вышла из беты, под нее нет документации и достаточного количества модулей — все говорит в пользу второй ветки.

  6. git noob пишет:

    >>Фреймворк окончательно распределен между маленькими репозиториями
    А как теперь собирать всё вместе — исключительно дёргая каждый репозиторий или есть какой-нибудь ключ для гита чтобы все зависимости вытянул из основного /kohana?

  7. BIakaVeron пишет:

    Есть команда git submodule update. Если после update указать имя конкретного модуля (например, system или modules/database), то обновится только он.



Можно включить подсветку кода: <code><pre lang="">...</pre></code>
Разрешены некоторые HTML теги

или используйте trackback.