Что бы вы хотели получить в Yii 2?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
mrix
Сообщения: 125
Зарегистрирован: 2010.08.30, 11:48
Откуда: Россия, Новосибирск

Re: Что бы вы хотели получить в Yii 2?

Сообщение mrix »

Есть же CMessageSource::onMissingTranslation.

Собирай все сообщения, просматривай, редактируй.

Можешь поймать файл, в котором оно вызвано.

Код: Выделить всё

<?php

class EventHandler
{
    /**
     * Отсутствующий перевод
     * 
     * @param CMissingTranslationEvent $event Событие
     * @return void
     */
    public static function handleMissingTranslation($event)
    {
        //вызываемый файл
        $files = array();
        
        //
        $needle = dirname(dirname(__FILE__));
        
        //находим файл, из которого вызван перевод
        $trace = debug_backtrace();
        foreach ($trace as $x)
        {
            //ищем файл, который начинается 
            if (isset($x['file']) && ($x['file'] !== __FILE__) && (stripos($x['file'], $needle) === 0))
            {
                $file = $x['file'];
                $line = isset($x['line']) ? $x['line'] : -1;
                
                $files[] = "{$file} ({$line})";
            }
        }
    }
} 
Johnatan
Сообщения: 167
Зарегистрирован: 2010.10.27, 13:06
Откуда: Reino de España

Re: Что бы вы хотели получить в Yii 2?

Сообщение Johnatan »

mrix писал(а):Есть же CMessageSource::onMissingTranslation.

Собирай все сообщения, просматривай, редактируй.

Можешь поймать файл, в котором оно вызвано.

Код: Выделить всё

<?php

class EventHandler
{
    /**
     * Отсутствующий перевод
     * 
     * @param CMissingTranslationEvent $event Событие
     * @return void
     */
    public static function handleMissingTranslation($event)
    {
        //вызываемый файл
        $files = array();
        
        //
        $needle = dirname(dirname(__FILE__));
        
        //находим файл, из которого вызван перевод
        $trace = debug_backtrace();
        foreach ($trace as $x)
        {
            //ищем файл, который начинается 
            if (isset($x['file']) && ($x['file'] !== __FILE__) && (stripos($x['file'], $needle) === 0))
            {
                $file = $x['file'];
                $line = isset($x['line']) ? $x['line'] : -1;
                
                $files[] = "{$file} ({$line})";
            }
        }
    }
} 
Во-первых это не решает изначально неправильную структуру процесса создания и перевода текстов в Yii. Во-вторых, onMissingTranslation вызывается только когда это окно показывается пользователю. То есть, чтобы собрать все переводы нужно обойти все возможные страницы и вызвать все возможные ошибки. Я не думаю, что это оптимальный путь. Это лучший из придуманных на данный момент, да. Но не оптимальный.
Конференция: yii@conference.jabber.ru
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Что бы вы хотели получить в Yii 2?

Сообщение rak »

johnatanb писал(а): 1) Ну у меня есть пример текста, который "переводчик" не может найти в массиве и из-за этого выводит оригинал постоянно. Куда кинуть? Там двадцать строк. Я профайлер включил, но ошибок-то он никаких не даёт. Просто нет такого перевода и всё.
Ну так а почему бы не поставить брейкпоинт на месадже, который не переводится и продебажить?
mrix
Сообщения: 125
Зарегистрирован: 2010.08.30, 11:48
Откуда: Россия, Новосибирск

Re: Что бы вы хотели получить в Yii 2?

Сообщение mrix »

johnatanb писал(а):
mrix писал(а):Есть же CMessageSource::onMissingTranslation.

Собирай все сообщения, просматривай, редактируй.

Можешь поймать файл, в котором оно вызвано.

Код: Выделить всё

<?php

class EventHandler
{
    /**
     * Отсутствующий перевод
     * 
     * @param CMissingTranslationEvent $event Событие
     * @return void
     */
    public static function handleMissingTranslation($event)
    {
        //вызываемый файл
        $files = array();
        
        //
        $needle = dirname(dirname(__FILE__));
        
        //находим файл, из которого вызван перевод
        $trace = debug_backtrace();
        foreach ($trace as $x)
        {
            //ищем файл, который начинается 
            if (isset($x['file']) && ($x['file'] !== __FILE__) && (stripos($x['file'], $needle) === 0))
            {
                $file = $x['file'];
                $line = isset($x['line']) ? $x['line'] : -1;
                
                $files[] = "{$file} ({$line})";
            }
        }
    }
} 
Во-первых это не решает изначально неправильную структуру процесса создания и перевода текстов в Yii. Во-вторых, onMissingTranslation вызывается только когда это окно показывается пользователю. То есть, чтобы собрать все переводы нужно обойти все возможные страницы и вызвать все возможные ошибки. Я не думаю, что это оптимальный путь. Это лучший из придуманных на данный момент, да. Но не оптимальный.
Ещё есть локализованные файлы. Я думаю, что разработчик должен посетить свои страницы раньше пользователя ;)
Psih
Сообщения: 31
Зарегистрирован: 2010.05.12, 12:20

Re: Что бы вы хотели получить в Yii 2?

Сообщение Psih »

Самое главное что бы я хотел - официальные дополнения. Без них, если честно, стрёмно брать хоть и полезное, но сторонее расширение, которое может через несколько версий застыть (автор прорпал) и начинается бедлам с поддержкой в рабочем состоянии.

Сами расширения могли-бы поддерживаться внешними разработчиками (можно иметь возможность назначать другого главного разработчика если автор пропал/ушел), но окончательный контроль качества (помимо сообщества) мог бы быть за коммандой Yii.
Аватара пользователя
because
Сообщения: 689
Зарегистрирован: 2010.09.30, 22:01

Re: Что бы вы хотели получить в Yii 2?

Сообщение because »

хотелось бы появления метода saveAll(), updateAll() для CactiveRecord, который бы делал один запрос, чтобы не нужно было к примеру при обработке табличного ввода, в цикле сохранять каждую запись.
RTFM !
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Что бы вы хотели получить в Yii 2?

Сообщение samdark »

johnatanb
1. Если воспроизводится на мелком наборе — сразу в трекер: http://code.google.com/p/yii/issues/list

Psih
Текущей командой не вытянем. Возможно только если набрать extension review team. Но дело это не очень интересное и, боюсь, народу надоест.

because
Пример можно?
Аватара пользователя
because
Сообщения: 689
Зарегистрирован: 2010.09.30, 22:01

Re: Что бы вы хотели получить в Yii 2?

Сообщение because »

видимо я погорячился ) просто подумал, например findAll() же возвращает массив объектов и к примеру у нас есть табличная форма, и когда данные приходят в $_POST, они присваиваются массово сразу специальному объекту, который коллекционирует все пришедшие записи и вызывался бы метод saveAll() который компонует данные и выполняет один INSERT/UPDATE, ну и автоматическая валидация всех моделей. наверное так не получится, да и будет ли большая польза от этого..
RTFM !
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Что бы вы хотели получить в Yii 2?

Сообщение samdark »

Скорее вред будет… путаница и магичность.
mitallast
Сообщения: 207
Зарегистрирован: 2010.02.21, 20:40
Откуда: Голицыно
Контактная информация:

Re: Что бы вы хотели получить в Yii 2?

Сообщение mitallast »

Пришла в голову идея добавить возможность прототипов моделей и\или компонентов.
Например, что-бы можно было вместо

Код: Выделить всё

/** @var $postList Post[] */
foreach( $postList as $post)
  $post->attachEvent(...);
 
вызывать что-то типа

Код: Выделить всё

Post::model()->prototype->attachEvent("afterFind", ...);
Post::model()->findByPk(...);
 
Это позволит писать менее связанный код, но при этом магия очевидна.
Psih
Сообщения: 31
Зарегистрирован: 2010.05.12, 12:20

Re: Что бы вы хотели получить в Yii 2?

Сообщение Psih »

Sam Dark писал(а): Psih
Текущей командой не вытянем. Возможно только если набрать extension review team. Но дело это не очень интересное и, боюсь, народу надоест.
Ну надо не только review, но и тех, кто может поддерживать. Как с yiiext по сути. ИМХО, наверно стоит развивать Yiiext дальше и подключить как официальную библиотеку и по немногу принимать народ именно по доработке/поддержке расширений.
Аватара пользователя
alexy
Сообщения: 12
Зарегистрирован: 2010.10.22, 13:40

Re: Что бы вы хотели получить в Yii 2?

Сообщение alexy »

Неплохо было бы реализовать получение lastInsertId а AR )
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Что бы вы хотели получить в Yii 2?

Сообщение slavcodev »

alexy писал(а):Неплохо было бы реализовать получение lastInsertId а AR )
lastInsertId - никакого отношония к AR не имеет, это свойство базы данных, вот оттуда и бери это значение. AR должен работать независимо от базы и от типа подключения.
Жду Yii 3!
Аватара пользователя
alexy
Сообщения: 12
Зарегистрирован: 2010.10.22, 13:40

Re: Что бы вы хотели получить в Yii 2?

Сообщение alexy »

Точно, это совершенно излишне
Yii::app()->db->lastInsertID;
tipugin
Сообщения: 5
Зарегистрирован: 2010.06.05, 13:50

Re: Что бы вы хотели получить в Yii 2?

Сообщение tipugin »

1. git
2. решения для более комфортного тестирования моделей/контроллеров (голый phpunit совсем не торт). + присоединяюсь за Behat. Еще кстати в Symfony 2 тоже неплохо устроено в плане tdd (контроллеры например удобно тестировать с помощью встроенного Crawler). Хотелось бы похожее в Yii.
tipugin
Сообщения: 5
Зарегистрирован: 2010.06.05, 13:50

Re: Что бы вы хотели получить в Yii 2?

Сообщение tipugin »

И еще хочется конфиги в YAML, а то обычные массивы иногда просто в мясо превращяются
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Что бы вы хотели получить в Yii 2?

Сообщение samdark »

tipugin,
1. Почему не mercurial?
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Что бы вы хотели получить в Yii 2?

Сообщение slavcodev »

потому что гит модно в последнее время )
Жду Yii 3!
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Что бы вы хотели получить в Yii 2?

Сообщение samdark »

Ну, mercurial тоже модно :)
Аватара пользователя
Stamm
Сообщения: 407
Зарегистрирован: 2010.03.14, 18:59
Откуда: Россия, Москва
Контактная информация:

Re: Что бы вы хотели получить в Yii 2?

Сообщение Stamm »

Самое классное в git: это наличие гитхаба, на котором можно сделать форк проекта, что-то пофиксить или что-то добавить, а потом делать так называемый pull request, т.е. попросить принять изменения в upstream (работает из веб-морды). Т.е. потенциально более удобно вливать "чужие" фиксы.
Кстати, сегодня с утра конвертил репозиторий в git с сохранением всей истории: https://github.com/Stamm/yii. Только у некоторых коммитеров не знаю email'ов. Осталось прикрутить тэги =)
Закрыто