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

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

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

Сообщение samdark »

Не, такое смешение точно вызовет путаницу.
Аватара пользователя
nizsheanez
Сообщения: 814
Зарегистрирован: 2011.04.29, 13:09
Откуда: Москва

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

Сообщение nizsheanez »

Я не знаю есть ли такое в yii, заодно просвящусь.
В яве в спринге есть 2 стратегии зачистки окружения перед выполнением теста:
1. Убить все данные в БД и заново их проинициализировать.
2. Выполнять тест в транзакции, а после его завершения транзакция откатывается.

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

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

Сообщение samdark »

В Yii тестами звведует целиком PHPUnit. Yii кроме входного конфига особо к нему ничего не добавляет, так что искать на эту тему стоит в его фичах.
Аватара пользователя
nizsheanez
Сообщения: 814
Зарегистрирован: 2011.04.29, 13:09
Откуда: Москва

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

Сообщение nizsheanez »

хорошо. будем иметь ввиду.
Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

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

Сообщение Антон Смирнов »

1. Про капчу я уже говорил, но с того времени поиспользовал ее хорошо. Предлагаю для каждой капчи сделать в итоге поле, например, UID - этот уникальный код нужно самому писать и он будет однозначно идентифицировать капчу. Больше, в принципе, ничего не надо.

2. Предлагаю описать в документации как делать scopes для relation, т.е. есть скоп для модели Comment, который выбирает только опубликованные комментарии, как сделать так: $user->comment_ только применить к Comment'у скоп. В документации описывается только так: Comment::model()->publ()
FoxMax
Сообщения: 19
Зарегистрирован: 2011.11.16, 12:27

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

Сообщение FoxMax »

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

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

Сообщение samdark »

Антон Смирнов
1. Можно напомнить, для чего UUID?
2. См. «Реляционные запросы с именованными группами условий» тут http://yiiframework.ru/doc/guide/ru/database.arr

FoxMax
Чуть раньше, чем доделаем. Планируем выкатить предварительно альфу на GitHub. Архитектура чуть будет отличаться, но хорошие вещи мы оставим. Ну а по техническим деталям да, будут отличия в виде namespace, замыканий и других вкусняшек 5.3.
Аватара пользователя
Caveman
Сообщения: 152
Зарегистрирован: 2009.04.04, 20:56
Откуда: Москва
Контактная информация:

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

Сообщение Caveman »

В копилку:
1) Маппинг свойств AR-объектов в поля таблиц.
2) Использование protected вместо private по максимуму.
3) Более гибкая настройка используемых дефолтных классов (где-то выше уже было, когда невозможно переопределить метод, в котором только и требуется изменить некий класс)
4) На закуску - использование префикса для подключаемых файлов (для возможности использования кастомного обработчика файлового потока).
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark »

1) Это уже не AR будет, а ORM. По идее, сейчас можно добиться, если перекрыть схему.
2) Ой, не. Дела обстоят примерно так: http://www.yiiframework.com/forum/index ... roperties/
3) Это пробуем сделать.
4) А?
Аватара пользователя
Caveman
Сообщения: 152
Зарегистрирован: 2009.04.04, 20:56
Откуда: Москва
Контактная информация:

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

Сообщение Caveman »

Sam Dark писал(а):1) Это уже не AR будет, а ORM. По идее, сейчас можно добиться, если перекрыть схему.
2) Ой, не. Дела обстоят примерно так: http://www.yiiframework.com/forum/index ... roperties/
3) Это пробуем сделать.
4) А?
1) Ну да, но там не все так просто. Пытаюсь делать нечто работающее, довольно-таки много всего приходится перекрывать. Плюс, как учитывать код SQL, записываемый в скриптах, ведь хочется совсем забыть в скриптах о наименованиях столбцов?
2) Что-то топик не хочет открываться. На самом деле, совсем редко встречался с такой необходимостью, по большей части из-за 3 пункта.
4) Надо вечером четче пытаться формулировать мысли :)
Можно для всех импортируемых файлов (по сути - в нескольких местах) добавить префикс потока типа "yii:" и по умолчанию натравить на него обработчик файлового потока ( http://ru2.php.net/manual/ru/book.stream.php ). Тогда в дальнейшем можно будет управлять источником данных и какой-либо преобработкой файловых путей. Специфичная конечно штука, но кажется не очень сложная в плане реализации в ядре, а вот если поверх накручивать, то получается ад.
Такое есть в друпале вроде.
Кажется, наиболее продвинутый проект по этой части - https://github.com/mikey179/vfsStream
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark »

1) Какова вообще цель?
2) Там нужно 20 постов на оффоруме. Раздел по Yii2. Общий смысл в том, что если сделать всё-всё protected изначально, нам, как разработчикам нельзя будет менять как-либо код фреймворка т.к. у кого-то может что-то поломаться. С Kohana, насколько понимаю, именно на этой почве проблема (ломается многое с каждым релизом).
4) Зачем нужно?
maschingan
Сообщения: 75
Зарегистрирован: 2011.01.20, 23:52

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

Сообщение maschingan »

Надо уже отдельный форум сделать для Yii2 :)
Аватара пользователя
Caveman
Сообщения: 152
Зарегистрирован: 2009.04.04, 20:56
Откуда: Москва
Контактная информация:

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

Сообщение Caveman »

Sam Dark писал(а):1) Какова вообще цель?
2) Там нужно 20 постов на оффоруме. Раздел по Yii2. Общий смысл в том, что если сделать всё-всё protected изначально, нам, как разработчикам нельзя будет менять как-либо код фреймворка т.к. у кого-то может что-то поломаться. С Kohana, насколько понимаю, именно на этой почве проблема (ломается многое с каждым релизом).
4) Зачем нужно?
1) Чтобы разделить код и базу. Например, по соглашению в компании айдишник в БД должен быть вида ProductTypeID , но в коде-то хочется $type->id , а не $type->ProductTypeID
2) Слишком редко туда захожу ))
4) Наиболее весомый аргумент в пользу (вроде как так делают)) - настройка тестирования. Честно говоря, сам пока не врубился в тему )
Мне это было нужно для идеи каскадной подгрузки файлов (нет файла в приложении -> берем из ядра).

Вообще, реализация файловых функций в php не очень-то нормальная. Невозможно переопределить 1 файловую функцию, необходимо создавать свой враппер и в нем описывать все файловые функции, и даже это не конец, т.к. есть функции, не входящие в т.н. файловый поток (сейчас не помню, кажется link не входит). По идее, проблему надо решать на уровне пхп - должны быть не отдельные функции, а базовый класс-врапер, который можно было бы переопределять как надо, но это совсем дебри
Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

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

Сообщение Антон Смирнов »

Sam Dark писал(а):Антон Смирнов
1. Можно напомнить, для чего UUID?
2. См. «Реляционные запросы с именованными группами условий» тут http://yiiframework.ru/doc/guide/ru/database.arr
1. Проблема с капчей возникает в 2-ух случаях: а) две капчи на странице, б) открыто несколько страниц с капчей. При изменении кода на одной капчи (с помощью кнопки или обновления страницы) - изменяется код другой. Примеры:

а) Есть страница входа на сайт, где есть формы "Восстановить пароль", "Регистрация", которые всплывают Dialog'ом из jQuery UI При этом они снабжены капчей. Изначально код у капчей одинаковый на картинках, но при обновлении одного кода (по кнопке "Обновить код"), на второй капчи также меняется валидный код, но 2-я капча, в отличие от первой, не перерисовывается.
б) Это блог с комментариями. Пользователь открыл несколько страниц, на одной из них обновил капчу, вернулся на другую - капча там, естественно, не обновлена, а код правильный уже другой.

2. Тут, наверное. мы друг друга неправильно поняли. Есть модель User, есть модель Comment у юзера есть relation HAS_MANY - comment_
Я могу получить все комментарии пользователя

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

$comments = $user->comment_; 
В модели Comment есть scope publ() который возвращает только опубилкованные комментарии (по статусу). Я хочу написать примерно так:

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

$comments = $user->comment_('publ');  
В докементации этого нет, но вроде я на yii.com где-то видел решение, хотя так и не пробовал.
SpiLLeR
Сообщения: 350
Зарегистрирован: 2009.09.17, 16:47
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение SpiLLeR »

2. делается через User::model()->with('commets_:publ')->findByPk(), или через описание with через массив
Предупрежден - значит вооружен.
devKP.ru
Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

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

Сообщение Антон Смирнов »

SpiLLeR писал(а):2. делается через User::model()->with('commets_:publ')->findByPk(), или через описание with через массив
1) Вариант не подходит тем, что он вернет модель User, а модель user уже есть. Иными словами, получается:

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

$user = User::model()->findByPk(1);
...
...
if (....){
    $comments = User::model()->with('commets_:publ')->findByPk(1);
    ... /* Вывод комментариев */
}
 
что не правильно, мне кажется.


2) Через with в relations не подходит, т.к. нужна ленивая загрузка.
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

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

Сообщение mitaichik »

Есть 2 предложения по AR:
1. Для всех findAll (в т.ч. и MANY релейшенов) возвращать не массив, а как-либо обертку с поддержкой array iterator (я правда не помню, поддерживают ли они функции работы с массивами, если нет - то так лучше не делать :) ) - тогда мы сможем выполнять какие-либо действия сразу с группой записей, например для релейшена HAS_MANY:
$models->masManyRelation->delete() - удалит все связанные строки
$models->loadRelation('anyRelation') - загрузит одним запросом anyRelation для всей группы моделей.
Имхо - удобно.

2. Устанавливать автоматом связанные релейшены. Сейчас поясню. (Может конечно, так уже есть)
есть две модели, связанные друг с другом, у одной допустим связи HAS_MANY у другой - BELONGS_TO.
Допустим, мы пишем:

$models = Any::model()->findAll( array( 'with' => 'hasManyRelation' )).

И чтоб у выбранных моделей hasManyRelation, для обратного релейшена (BELONGS_TO) автоматом ставилась ссылка на главную модель.
Вот как-то так.
FoxMax
Сообщения: 19
Зарегистрирован: 2011.11.16, 12:27

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

Сообщение FoxMax »

Sam Dark писал(а):FoxMax
Чуть раньше, чем доделаем. Планируем выкатить предварительно альфу на GitHub. Архитектура чуть будет отличаться, но хорошие вещи мы оставим. Ну а по техническим деталям да, будут отличия в виде namespace, замыканий и других вкусняшек 5.3.
Ориентировочная дата выхода есть? Хотя бы крайне примерно. Начало 2012, середина или конец?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark »

When its done ;) Если разрываетесь между Yii1 и Yii2 для проекта — делайте на Yii1.
FoxMax
Сообщения: 19
Зарегистрирован: 2011.11.16, 12:27

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

Сообщение FoxMax »

Sam Dark писал(а):When its done ;) Если разрываетесь между Yii1 и Yii2 для проекта — делайте на Yii1.
Да, как раз сейчас нужно планировать проект, реализация которого запланирована на лето 2012. Не раньше какого срока точно версия 2 не выйдет?
Закрыто