Что бы вы хотели получить в Yii 2?
- Антон Смирнов
- Сообщения: 284
- Зарегистрирован: 2011.07.08, 10:37
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
Пересмотрел "generateVerifyCode", согласен, лучше переопределить, т.к. можно еще туда написать какие-то особенности генерации кода.
Re: Что бы вы хотели получить в Yii 2?
Sam Dark писал(а):[...]
Что бы вы хотели увидеть в Yii 2?
- Как можно меньше использовать eval.
- Больше OOP Style, а не вложенных массивов.
- Описание валидации не массивами, а все теми же объектами с возможностью применять правила валидации к разным моделям или изменять их в ходе работы приложения.
- Уничтожить CGridView с его eval'ми, погрузкой содержимого грида (подгружается вся страница, а только потом вырезаться грид, париться, добавляется в DOM ).
- Поддерживать готовый грид (jq-grid или другие) c обменом данными в JSON XML и большим гибким API (client-side).
- Возможность описывать состояние базы как это делает доктрина. AR динамически получает схему, это круто но парой от миграций выкинутся в окно хочется, особенно если половина применялась, а потом Exception. С описанной схемой можно межить старую и новую генерируя миграцию
- Меньше магии.
Re: Что бы вы хотели получить в Yii 2?
подключайте CGridView аяксом.BuCeFaL писал(а):Sam Dark писал(а):[...]
[*]Уничтожить CGridView с его eval'ми, погрузкой содержимого грида (подгружается вся страница, а только потом вырезаться грид, париться, добавляется в DOM ).
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
В нём практически не будет необходимости ввиду повышения требований до 5.3 как минимум. На самом деле и сейчас почти во всех местах, где юзается eval можно его не юзать путём использования анонимных функций.Как можно меньше использовать eval.
Представляете, как будет в этом случае конфиг?Больше OOP Style, а не вложенных массивов.
Подробнее надо, ничего не понял.Описание валидации не массивами, а все теми же объектами с возможностью применять правила валидации к разным моделям или изменять их в ходе работы приложения.
Ему можно и не всю страницу отдавать, кстати. Какие гриды сейчас неплохие и при этом развиваются?Уничтожить CGridView с его eval'ми, погрузкой содержимого грида (подгружается вся страница, а только потом вырезаться грид, париться, добавляется в DOM ).
Мы как раз пытались уйти от ручного описания схемы. Ситуация когда миграции заканчиваются Exception означат, что кто-то не тестирует свой код…Возможность описывать состояние базы как это делает доктрина. AR динамически получает схему, это круто но парой от миграций выкинутся в окно хочется, особенно если половина применялась, а потом Exception. С описанной схемой можно межить старую и новую генерируя миграцию
Примеры?Меньше магии.
Нравится Yii? Давайте сделаем его лучше!.
Re: Что бы вы хотели получить в Yii 2?
ActiveRecord, добавить для методов find и findAll параметр - в каком виде возвращать результат, обьект или массив с данными(без схемы и другим значениями)
Re: Что бы вы хотели получить в Yii 2?
зачем тогда вообще AR использовать?nauska писал(а):ActiveRecord, добавить для методов find и findAll параметр - в каком виде возвращать результат, обьект или массив с данными(без схемы и другим значениями)
Re: Что бы вы хотели получить в Yii 2?
чтоб не писать самому класс и методы,rak писал(а):зачем тогда вообще AR использовать?nauska писал(а):ActiveRecord, добавить для методов find и findAll параметр - в каком виде возвращать результат, обьект или массив с данными(без схемы и другим значениями)
ну и имхо удобно, если надо использовать обьект, поменял только один параметр и все, в коде ничего больше менять не надо
Re: Что бы вы хотели получить в Yii 2?
Код: Выделить всё
$criteria = new CDbCriteria;
...
$command = Yii::app()->db->getCommandBuilder()->createFindCommand('tablename', $criteria);
$rows = $command->queryAll();
Re: Что бы вы хотели получить в Yii 2?
тем что эти строки я должен писать в каждом методе где нужны эти данные, и если структура таблицы поменяется, придется искать и менять вездеrak писал(а):Получаем асоц. массив. Чем это не устраивает?Код: Выделить всё
$criteria = new CDbCriteria; ... $command = Yii::app()->db->getCommandBuilder()->createFindCommand('tablename', $criteria); $rows = $command->queryAll();
Re: Что бы вы хотели получить в Yii 2?
Спасибо за ответ.
simplecoding много про него написал в том числе про интеграцию с Yii.
http://www.simplecoding.org/jquery-grid ... ariev.html
Demo: http://trirand.com/blog/jqgrid/jqgrid.html
github: https://github.com/tonytomov/jqGrid (последний коммит 2 дня назад)
C Yii работает отлично.
Как минимум что бы у каждого валидатора был единый интерфейс, благодаря которому можно легко вводить свои валидаторы.Sam Dark писал(а):Подробнее надо, ничего не понял.Описание валидации не массивами, а все теми же объектами с возможностью применять правила валидации к разным моделям или изменять их в ходе работы приложения.
использовал jq-grid на jquerySam Dark писал(а):Ему можно и не всю страницу отдавать, кстати. Какие гриды сейчас неплохие и при этом развиваются?Уничтожить CGridView с его eval'ми, погрузкой содержимого грида (подгружается вся страница, а только потом вырезаться грид, париться, добавляется в DOM ).
simplecoding много про него написал в том числе про интеграцию с Yii.
http://www.simplecoding.org/jquery-grid ... ariev.html
Demo: http://trirand.com/blog/jqgrid/jqgrid.html
github: https://github.com/tonytomov/jqGrid (последний коммит 2 дня назад)
C Yii работает отлично.
Re: Что бы вы хотели получить в Yii 2?
В jq-grid можно выделить определенные строки/ячейки другим цветом? (аналогично параметрам rowCssClassExpression и cssClassExpression)
- Антон Смирнов
- Сообщения: 284
- Зарегистрирован: 2011.07.08, 10:37
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
Допустим у нас есть три модели: юзеры, посты и комментарии к постам. Загрузка в Yii очень удобна: user->post_, post->comment_, user->post_[$i]->commen при установке правильных relations. А вот сохранение сразу всего (юзеров, постов и комментов) возможно только с ипользованием таких behaviour как, например, http://www.yiiframework.com/extension/c ... rbehavior/
В Yii ну очень хотелось бы делать так, к примеру:
В Yii ну очень хотелось бы делать так, к примеру:
Код: Выделить всё
$user = new User();
$post1 = new Post();
$post1->name = 1;
$post2 = new Post();
$post2->name = 2;
$comment1 = new Comment();
$comment1->name = 1;
$comment2 = new Comment();
$comment2->name = 2;
$post1->comment_ = array($comment1, $comment2);//comment_ = это рилэйшен
$user->post_ = array($post1, $post2); //post_ = это рилэйшен
$user->save(); //Все сохраняется
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
Антон Смирнов
Это уже есть в планах.
Это уже есть в планах.
Нравится Yii? Давайте сделаем его лучше!.
- Svyatov
- Сообщения: 459
- Зарегистрирован: 2010.08.12, 14:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
Присоединяюсь, хотя возможно лучше для этого отдельные методы ввести.nauska писал(а):ActiveRecord, добавить для методов find и findAll параметр - в каком виде возвращать результат, обьект или массив с данными(без схемы и другим значениями)
А вот чего еще AR не хватает - возвращать данные не массивом объектов AR, а специальным объектом-коллекцией AR, через который можно будет со всей коллекцией работать. Например, обновить атрибут или получить массив нужных атрибутов каждого объекта коллекции.
Код: Выделить всё
$posts = Post::model()->findAll();
$posts->update('status', 'readed');
$postsIds = $posts->getAttributes('post_id');
// вместо
foreach ($posts ...)
Re: Что бы вы хотели получить в Yii 2?
Если бы такой метод имел другое название (findAllToArr или что то такое) было бы явней. Один метод массив АР, другой массив данных.Svyatov писал(а):Присоединяюсь, хотя возможно лучше для этого отдельные методы ввести.nauska писал(а):ActiveRecord, добавить для методов find и findAll параметр - в каком виде возвращать результат, обьект или массив с данными(без схемы и другим значениями)
А вот чего еще AR не хватает - возвращать данные не массивом объектов AR, а специальным объектом-коллекцией AR, через который можно будет со всей коллекцией работать. Например, обновить атрибут или получить массив нужных атрибутов каждого объекта коллекции.
Код: Выделить всё
$posts = Post::model()->findAll(); $posts->update('status', 'readed'); $postsIds = $posts->getAttributes('post_id'); // вместо foreach ($posts ...)
Класс колекция (такой себе итератор) для набора Ar тоже интересно.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
Объясните мне в чем смысл? При работе с AR, он должен возвращать объекты АР, чтоб с ними работать. Если AR не нужен, а нужны массивы, то используйте DAO. Или я чего-то не понимаю?BuCeFaL писал(а):Если бы такой метод имел другое название (findAllToArr или что то такое) было бы явней. Один метод массив АР, другой массив данных.Svyatov писал(а):Присоединяюсь, хотя возможно лучше для этого отдельные методы ввести.nauska писал(а):ActiveRecord, добавить для методов find и findAll параметр - в каком виде возвращать результат, обьект или массив с данными(без схемы и другим значениями)
Жду Yii 3!
Re: Что бы вы хотели получить в Yii 2?
Вот и я понять не могу в чем смысл использовать объектную AR для формирования асоц массива, если это и так можно сделать, причем уложиться практически в столько же строк кода.mc-bear писал(а):Объясните мне в чем смысл? При работе с AR, он должен возвращать объекты АР, чтоб с ними работать. Если AR не нужен, а нужны массивы, то используйте DAO. Или я чего-то не понимаю?
- Svyatov
- Сообщения: 459
- Зарегистрирован: 2010.08.12, 14:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
Это просто вопрос удобства и однородности кода. Я не понимаю в чем проблема предоставить такую возможность?
При том, что в скопах best и inCommunityId находится дополнительная логика.
Покажи пожалуйста как это сделать в столько же строк кода для такого примера:Вот и я понять не могу в чем смысл использовать объектную AR для формирования асоц массива, если это и так можно сделать, причем уложиться практически в столько же строк кода.
Код: Выделить всё
$entities = Entity::model()->best()->inCommunityId($community->community_id)->with('type', 'user', 'group.community')->published()->orderByPublishedDate()->findAll();
- Svyatov
- Сообщения: 459
- Зарегистрирован: 2010.08.12, 14:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
На самом деле это возвращает нас к моему реквесту о методе toArray() для моделей. Таким образом, если AR будет возвращать объект-коллекцию, то все это можно будет элегантно писать как findAll()->toArray().
Re: Что бы вы хотели получить в Yii 2?
глянул код, таки да, многое там нельзя прописать. Меня сбило то, что CDbCommandBuilder::createFindCommand принимает параметром объект CDbCriteria, думал и все возможности тоже останутся. Поэтому кода придется написать немножко больше
upd. Хотя из этого запроса не получится добавить только with. Т.е. придется прописать джойны вручную
upd. Хотя из этого запроса не получится добавить только with. Т.е. придется прописать джойны вручную
Последний раз редактировалось rak 2011.07.15, 14:53, всего редактировалось 1 раз.