Примеры приложений на Kohana

Вурдалак

Продвинутый новичок
Спасибо.

-~{}~ 14.06.10 00:36:

По поводу алиасов:
PHP:
    public function get_text()
    {
        return DB::select('a.text')
               ->from(array('agreement', 'a'))
               ->join(array('languages', 'l'))
               ->on('a.language_id', '=', 'l.id')
               ->where('l.shorthand', '=', substr(I18n::$lang, 0, 2))
               ->execute()
               ->get('text');
    }
— так писать нельзя что ли?

У меня автоматически префикс добавляется и получается
[sql]SELECT `kohana_a`.`text` FROM `kohana_agreement` AS `a` JOIN `kohana_languages` AS `l` ON (`kohana_a`.`language_id` = `kohana_l`.`id`) WHERE `kohana_l`.`shorthand` = 'ru'[/sql]

То есть требуется писать так:
PHP:
    public function get_text()
    {
        return DB::select('agreement.text')
               ->from('agreement')
               ->join('languages')
               ->on('agreement.language_id', '=', 'languages.id')
               ->where('languages.shorthand', '=', substr(I18n::$lang, 0, 2))
               ->execute()
               ->get('text');
    }
?

-~{}~ 14.06.10 00:37:

P.S. Перед public была табуляция, отредактировать не могу.

-~{}~ 19.07.10 04:22:

Кстати, проблемы с 404 вообще решаеются через добавление правила в роутер, которое позволяет ловить всё:
PHP:
Route::set('catch_all', '<path>', array('path' => '.+'))
    ->defaults(array(
        'controller' => 'error',
        'action'     => '404'
));
 

zerkms

TDD infected
Команда форума
Кстати, проблемы с 404 вообще решаеются через добавление правила в роутер, которое позволяет ловить всё:
не решаются :) или ты удалил дефолтный роутер? кроме того есть Kohana_Request_Exception, который всё равно тебе придётся ловить. Плюс 404, который будет выброшен конкретно твоими контроллерами.
 

zerkms

TDD infected
Команда форума
melo
потому что кохана клёвая :)
кохана предоставляет самое минимальное, но уже рабочее и очень быстрое окружение. субъективно с моей колокольни - очень удобное и гибкое.
это не мешает мне брать куски зенда.

да и что люди подразумевают под "зенд"? тонну либ а-ля PEAR v2, или zend application, жутко тормозной и навязывающий кучу своего? (всё сказанное - на основе личного опыта)
 

melo

однажды
zerkms
да, имел в виду zend application. то есть вы используете кохану, но у вас отдельно есть папочка lib/zend? и какие куски вы тогда берете из зенда?
 

zerkms

TDD infected
Команда форума
melo
те, которые нужны :) обычно - Zend_OpenId, _Mail, _Http, _Acl

кохана - лишь каркас.
 

confguru

ExAdmin
Команда форума
zerkms

Как показывает практика - куски Zend, лучше портировать
в модули коханы :) Отрезая ненужное и тормозящее.
 

zerkms

TDD infected
Команда форума
melo
например Acl зендовский в кохановские модули портирован

admin
да, зенд чересчур раздутый, согласен. но пока для того, в чём я использую данную связку - оптимизация будет чересчур спичечной.
 

Вурдалак

Продвинутый новичок
Автор оригинала: zerkms
не решаются :) или ты удалил дефолтный роутер? кроме того есть Kohana_Request_Exception, который всё равно тебе придётся ловить. Плюс 404, который будет выброшен конкретно твоими контроллерами.
— а, ну да, я имею в виду ошибку с запросом, под который роутер не может найти правило. Именно с этим проблемы были.
 

zerkms

TDD infected
Команда форума
— а, ну да, я имею ввиду ошибку с запросом, под который роутер не может найти правило. Именно с этим проблемы были.
это только один пример из 3 (или даже 4) случаев возникновения 404 страницы. слишком частный.
 

zerkms

TDD infected
Команда форума
Вурдалак
да ладно - не мы вдвоём этот форум читаем :) пусть люди на будущее тоже знают, на что наступят
 

Вурдалак

Продвинутый новичок
По-хорошему, адреса в Kohana нужно через Route генерировать в какой-то обёртке для возможности в дальнейшем быстро сменить правила для роутера, не бегая по скрипту и не меняя вот такие куски:
PHP:
Request::instance()->redirect(Url::site('controller/action', true));
Ты с этим заморачивался или нет?

-~{}~ 19.07.10 17:27:

В шаблоне это проще реализовать через
Код:
<a href="{uri controller="blog" action="edit" id=$blog_id}">{$edit}</a>
В PHP через array() это выглядит более громоздко, проще плюнуть...

-~{}~ 19.07.10 17:34:

Ещё хрень такая не нравится:
PHP:
Route::get('default')->uri(array('controller' => 'index'))
вернёт «index/index».

-~{}~ 19.07.10 17:35:

То есть я ожидаю получить просто «index», приходится писать:
PHP:
Route::get('default')->uri(array('controller' => 'index', 'action' => NULL))
 

zerkms

TDD infected
Команда форума
Вот кстати кусок шаблона, забыл показать <a href="<?php echo Route::url('user_profile_email'); ?>">сменить</a>

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

melo

однажды
а есть какая-то популярная cms на kohana, чтоб посмотреть?
 

zerkms

TDD infected
Команда форума
хз, я не нашёл. вот счас рисую админку потребную для своих приложений
 

Вурдалак

Продвинутый новичок
С документацией и примерами пока очень плохо. Приходится часто код ковырять.

-~{}~ 21.07.10 03:13:

Стандартный View явно завязан под native шаблонизацию. Пришлось другую обёртку вокруг Smarty писать, не наследуемую от Kohana_View.

-~{}~ 21.07.10 03:23:

И ещё очень не нравится в самой структуре завязка некоторых классов Kohana_<Something> с классами <Something>. Тот же Kohana_View намертво привязан к View, не позволяет наследовать никаких других классов от него в принципе, кроме самого View. Смысла не вижу.
 
Сверху