YiiFramework Yii PHP framework 2 public preview

fixxxer

К.О.
Партнер клуба
Эмм. Выбирают фреймворк для тестирования?
Я правильно понимаю, что это означает, что в yii2 еще не написано ни одного класса? :D

Вообще я не понял о чем речь, ядро фреймворка очевидно должно быть покрыто юнит тестами, bdd - для бизнес логики приложения - я не вижу никаких проблем использовать что угодно и как угодно, какая разница, на каком оно фреймворке?
 

Ragazzo

TDD interested
fixxxer
имеется ввиду поддержка тестирования "изкоробки", т.е. чем люди будут пользоваться потом, сейчас только phpunit есть в 1.1. Тебе таки понравилось BDD? :D
 

fixxxer

К.О.
Партнер клуба
паблик-апи тестировать удобно, понравилось. в остальном пока не особо понял, когда оно мне надо. :)

а в чем заключается поддержка из коробки на уровне фреймворка? вот правда не понимаю. у меня все, что приходится обвязывать в тестовой среде относится к аппликейшену. фреймворк то чего, скушал конфиг тестовой среды и все
 

Ragazzo

TDD interested
fixxxer
проблема состоит в том что всегда вылезают косяки интеграции с чем-либо для тестирования, тот же codeception тоже требователен к тому как себя должна вести другая сторона(для функц. тестов без curl надо решать проблему заголовков, сессий и т п), тот же behat аналогично не особо просто интегрируется. Проблема в том чтобы дать разработчикам максимум для тестирования, особенно для приемочного и функционального (интеграционного) тестирования, не у всех есть $this->crawler :D
 

fixxxer

К.О.
Партнер клуба
ну вот потому я и за unit tests first - они не дают такого нагородить. ;)

а чего заголовки-сессии
PHP:
$Response->begin();
блаблабла;
$Response->getHeaders();
$Response->getCookies();
$Response->getBody();
$Response->rollback();
;)
 

Ragazzo

TDD interested
fixxxer
нагородить чего? ты видимо не понял в чем вопрос. Вопрос в том чтобы сделать корректную "обвязку" для других средств тестирования, сейчас есть хорошая интеграция для phpunit (CDbTestCase, FixtureManager), но печалит phpunit-вские функц. тесты с селениумом, по понятным причинам. Вот сейчас пытаются выбрать что можно еще кроме phpunit поддерживать видимо, увидим что Тян и Александр скажут/решат.
 

fixxxer

К.О.
Партнер клуба
а, ну то есть хочется сразу красиво, а не чтобы люди пошли и разобрались с dbunit и тд. ясно =)
 

Ragazzo

TDD interested
fixxxer
да, поэтому и аутовзебокс, боюсь что мало кто дойдет до dbunit, или собственного писания фикстур как в примерах на phpunit сайте, можно все таки "неасилить" столько))
>>а чего заголовки-сессии
1.1 дампит так, у нас нету response-object =(
 

Redjik

Джедай-мастер
как то грустно все с AR...
ну хотя бы автозагрузку пофиксили наконец
 

Ragazzo

TDD interested
хз, мне норм, главное что сделали asArray и ок, остальное все почти с 1.1 осталось, ну и всякие hasMany/hasOne тоже найс, ну и теперь Query будет выступать вроде Criteria чтоли)
 

Redjik

Джедай-мастер
А что не так с AR? Почему грустно?
Я для giny выделил ConnectionPool, в котором можно указывать slave/master для Connection
+ много фишек из Propel взял (forceMaster и т.п) для репликации.

Так же выделил SchemaPool и вынес создание схем в фабричный метод, что неплохо для шардинга (хотя этот кусок я еще наверное перепишу). Все схемы "кешируются" в SchemaPool.

Просто так и осталась основная проблема в AR - привязка к одно бд и одной схеме.

ЗЫ. в любом случае - хорошенько засяду за код после пасхи и отпишу на форуме Yii свои соображения.

ЗЫЫ. что порадовало - разделили Command и QueryBuilder - я это в первую очередь сделал когда начал AR переделывать.
 

fixxxer

К.О.
Партнер клуба
Эмм, проблему с обновлением связанных моделей так и не стали решать, или я не понял куда смотреть?

Код стало читать намного проще, да. Хотя, наверное, в первую очередь это впечатление из-за смены кодстайла :)
 

Sam Dark

Новичок
Смотреть на две штуки:

1. ActiveRecord::link и ActiveRecord::unlink.
2. dirty attributes (если ничего в модели не меняли, save() ничего в базу не пишет).
 

fixxxer

К.О.
Партнер клуба
Все, уже понял.

Блин, местами 1 в 1 как в моем велосипеде, с ужасающей похожестью в деталях :D
 

Ragazzo

TDD interested
Ну кстати не совсем логичных и последовательных решений тоже хватает, особенно в Command/Builder, не понятно по какому принципу методы распихивали но получилось уж слишком путанно, с учетом того что теперь и через Query можно получить результаты :S
 
Сверху