Что бы вы хотели получить в Yii 2?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
Не, такое смешение точно вызовет путаницу.
Нравится Yii? Давайте сделаем его лучше!.
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Что бы вы хотели получить в Yii 2?
Я не знаю есть ли такое в yii, заодно просвящусь.
В яве в спринге есть 2 стратегии зачистки окружения перед выполнением теста:
1. Убить все данные в БД и заново их проинициализировать.
2. Выполнять тест в транзакции, а после его завершения транзакция откатывается.
Естественно, что 2-я стратегия менее ресурсоемкая, подскажите есть ли 2-й подход в Yii или может быть есть 3-я стратегия еще более крутая?
В яве в спринге есть 2 стратегии зачистки окружения перед выполнением теста:
1. Убить все данные в БД и заново их проинициализировать.
2. Выполнять тест в транзакции, а после его завершения транзакция откатывается.
Естественно, что 2-я стратегия менее ресурсоемкая, подскажите есть ли 2-й подход в Yii или может быть есть 3-я стратегия еще более крутая?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
В Yii тестами звведует целиком PHPUnit. Yii кроме входного конфига особо к нему ничего не добавляет, так что искать на эту тему стоит в его фичах.
Нравится Yii? Давайте сделаем его лучше!.
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Что бы вы хотели получить в Yii 2?
хорошо. будем иметь ввиду.
- Антон Смирнов
- Сообщения: 284
- Зарегистрирован: 2011.07.08, 10:37
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
1. Про капчу я уже говорил, но с того времени поиспользовал ее хорошо. Предлагаю для каждой капчи сделать в итоге поле, например, UID - этот уникальный код нужно самому писать и он будет однозначно идентифицировать капчу. Больше, в принципе, ничего не надо.
2. Предлагаю описать в документации как делать scopes для relation, т.е. есть скоп для модели Comment, который выбирает только опубликованные комментарии, как сделать так: $user->comment_ только применить к Comment'у скоп. В документации описывается только так: Comment::model()->publ()
2. Предлагаю описать в документации как делать scopes для relation, т.е. есть скоп для модели Comment, который выбирает только опубликованные комментарии, как сделать так: $user->comment_ только применить к Comment'у скоп. В документации описывается только так: Comment::model()->publ()
Re: Что бы вы хотели получить в Yii 2?
Sam Dark, к какому сремени планируется выход версии 2.0? Архитектура сильно будет отличаться?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
Антон Смирнов
1. Можно напомнить, для чего UUID?
2. См. «Реляционные запросы с именованными группами условий» тут http://yiiframework.ru/doc/guide/ru/database.arr
FoxMax
Чуть раньше, чем доделаем. Планируем выкатить предварительно альфу на GitHub. Архитектура чуть будет отличаться, но хорошие вещи мы оставим. Ну а по техническим деталям да, будут отличия в виде namespace, замыканий и других вкусняшек 5.3.
1. Можно напомнить, для чего UUID?
2. См. «Реляционные запросы с именованными группами условий» тут http://yiiframework.ru/doc/guide/ru/database.arr
FoxMax
Чуть раньше, чем доделаем. Планируем выкатить предварительно альфу на GitHub. Архитектура чуть будет отличаться, но хорошие вещи мы оставим. Ну а по техническим деталям да, будут отличия в виде namespace, замыканий и других вкусняшек 5.3.
Нравится Yii? Давайте сделаем его лучше!.
Re: Что бы вы хотели получить в Yii 2?
В копилку:
1) Маппинг свойств AR-объектов в поля таблиц.
2) Использование protected вместо private по максимуму.
3) Более гибкая настройка используемых дефолтных классов (где-то выше уже было, когда невозможно переопределить метод, в котором только и требуется изменить некий класс)
4) На закуску - использование префикса для подключаемых файлов (для возможности использования кастомного обработчика файлового потока).
1) Маппинг свойств AR-объектов в поля таблиц.
2) Использование protected вместо private по максимуму.
3) Более гибкая настройка используемых дефолтных классов (где-то выше уже было, когда невозможно переопределить метод, в котором только и требуется изменить некий класс)
4) На закуску - использование префикса для подключаемых файлов (для возможности использования кастомного обработчика файлового потока).
[Редкие] Записки пещерного человека
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
1) Это уже не AR будет, а ORM. По идее, сейчас можно добиться, если перекрыть схему.
2) Ой, не. Дела обстоят примерно так: http://www.yiiframework.com/forum/index ... roperties/
3) Это пробуем сделать.
4) А?
2) Ой, не. Дела обстоят примерно так: http://www.yiiframework.com/forum/index ... roperties/
3) Это пробуем сделать.
4) А?
Нравится Yii? Давайте сделаем его лучше!.
Re: Что бы вы хотели получить в Yii 2?
1) Ну да, но там не все так просто. Пытаюсь делать нечто работающее, довольно-таки много всего приходится перекрывать. Плюс, как учитывать код SQL, записываемый в скриптах, ведь хочется совсем забыть в скриптах о наименованиях столбцов?Sam Dark писал(а):1) Это уже не AR будет, а ORM. По идее, сейчас можно добиться, если перекрыть схему.
2) Ой, не. Дела обстоят примерно так: http://www.yiiframework.com/forum/index ... roperties/
3) Это пробуем сделать.
4) А?
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?
1) Какова вообще цель?
2) Там нужно 20 постов на оффоруме. Раздел по Yii2. Общий смысл в том, что если сделать всё-всё protected изначально, нам, как разработчикам нельзя будет менять как-либо код фреймворка т.к. у кого-то может что-то поломаться. С Kohana, насколько понимаю, именно на этой почве проблема (ломается многое с каждым релизом).
4) Зачем нужно?
2) Там нужно 20 постов на оффоруме. Раздел по Yii2. Общий смысл в том, что если сделать всё-всё protected изначально, нам, как разработчикам нельзя будет менять как-либо код фреймворка т.к. у кого-то может что-то поломаться. С Kohana, насколько понимаю, именно на этой почве проблема (ломается многое с каждым релизом).
4) Зачем нужно?
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 75
- Зарегистрирован: 2011.01.20, 23:52
Re: Что бы вы хотели получить в Yii 2?
Надо уже отдельный форум сделать для Yii2
Re: Что бы вы хотели получить в Yii 2?
1) Чтобы разделить код и базу. Например, по соглашению в компании айдишник в БД должен быть вида ProductTypeID , но в коде-то хочется $type->id , а не $type->ProductTypeIDSam Dark писал(а):1) Какова вообще цель?
2) Там нужно 20 постов на оффоруме. Раздел по Yii2. Общий смысл в том, что если сделать всё-всё protected изначально, нам, как разработчикам нельзя будет менять как-либо код фреймворка т.к. у кого-то может что-то поломаться. С Kohana, насколько понимаю, именно на этой почве проблема (ломается многое с каждым релизом).
4) Зачем нужно?
2) Слишком редко туда захожу ))
4) Наиболее весомый аргумент в пользу (вроде как так делают)) - настройка тестирования. Честно говоря, сам пока не врубился в тему )
Мне это было нужно для идеи каскадной подгрузки файлов (нет файла в приложении -> берем из ядра).
Вообще, реализация файловых функций в php не очень-то нормальная. Невозможно переопределить 1 файловую функцию, необходимо создавать свой враппер и в нем описывать все файловые функции, и даже это не конец, т.к. есть функции, не входящие в т.н. файловый поток (сейчас не помню, кажется link не входит). По идее, проблему надо решать на уровне пхп - должны быть не отдельные функции, а базовый класс-врапер, который можно было бы переопределять как надо, но это совсем дебри
[Редкие] Записки пещерного человека
- Антон Смирнов
- Сообщения: 284
- Зарегистрирован: 2011.07.08, 10:37
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
1. Проблема с капчей возникает в 2-ух случаях: а) две капчи на странице, б) открыто несколько страниц с капчей. При изменении кода на одной капчи (с помощью кнопки или обновления страницы) - изменяется код другой. Примеры:Sam Dark писал(а):Антон Смирнов
1. Можно напомнить, для чего UUID?
2. См. «Реляционные запросы с именованными группами условий» тут http://yiiframework.ru/doc/guide/ru/database.arr
а) Есть страница входа на сайт, где есть формы "Восстановить пароль", "Регистрация", которые всплывают Dialog'ом из jQuery UI При этом они снабжены капчей. Изначально код у капчей одинаковый на картинках, но при обновлении одного кода (по кнопке "Обновить код"), на второй капчи также меняется валидный код, но 2-я капча, в отличие от первой, не перерисовывается.
б) Это блог с комментариями. Пользователь открыл несколько страниц, на одной из них обновил капчу, вернулся на другую - капча там, естественно, не обновлена, а код правильный уже другой.
2. Тут, наверное. мы друг друга неправильно поняли. Есть модель User, есть модель Comment у юзера есть relation HAS_MANY - comment_
Я могу получить все комментарии пользователя
Код: Выделить всё
$comments = $user->comment_;
Код: Выделить всё
$comments = $user->comment_('publ');
-
- Сообщения: 350
- Зарегистрирован: 2009.09.17, 16:47
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
2. делается через User::model()->with('commets_:publ')->findByPk(), или через описание with через массив
Предупрежден - значит вооружен.
devKP.ru
devKP.ru
- Антон Смирнов
- Сообщения: 284
- Зарегистрирован: 2011.07.08, 10:37
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
1) Вариант не подходит тем, что он вернет модель User, а модель user уже есть. Иными словами, получается:SpiLLeR писал(а):2. делается через User::model()->with('commets_:publ')->findByPk(), или через описание with через массив
Код: Выделить всё
$user = User::model()->findByPk(1);
...
...
if (....){
$comments = User::model()->with('commets_:publ')->findByPk(1);
... /* Вывод комментариев */
}
2) Через with в relations не подходит, т.к. нужна ленивая загрузка.
Re: Что бы вы хотели получить в Yii 2?
Есть 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) автоматом ставилась ссылка на главную модель.
Вот как-то так.
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) автоматом ставилась ссылка на главную модель.
Вот как-то так.
Re: Что бы вы хотели получить в Yii 2?
Ориентировочная дата выхода есть? Хотя бы крайне примерно. Начало 2012, середина или конец?Sam Dark писал(а):FoxMax
Чуть раньше, чем доделаем. Планируем выкатить предварительно альфу на GitHub. Архитектура чуть будет отличаться, но хорошие вещи мы оставим. Ну а по техническим деталям да, будут отличия в виде namespace, замыканий и других вкусняшек 5.3.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Что бы вы хотели получить в Yii 2?
When its done Если разрываетесь между Yii1 и Yii2 для проекта — делайте на Yii1.
Нравится Yii? Давайте сделаем его лучше!.
Re: Что бы вы хотели получить в Yii 2?
Да, как раз сейчас нужно планировать проект, реализация которого запланирована на лето 2012. Не раньше какого срока точно версия 2 не выйдет?Sam Dark писал(а):When its done Если разрываетесь между Yii1 и Yii2 для проекта — делайте на Yii1.