@symfony_php

Страница 276 из 1418
Sergey
22.08.2017
12:55:36
Sergei
22.08.2017
12:55:53
А мы про юнит

Dmitry
22.08.2017
12:56:34
извини, тебе шашечки или ехать?

Google
Dmitriy
22.08.2017
12:56:51
Sergey
22.08.2017
12:56:52
и что? Модели сами что ли в базу ходят? или ты код пишешь этот
ну к примеру у меня все модели должны наследоваться от базового типа AR. сериализовать обьект просто так не выйдет, т.к он за собой потащит референсы. ты в любой момент у модели можешь вызвать find*(), save*() и че там еще в базовых классах есть

Dmitry
22.08.2017
12:57:11
именно. а doctrine2 репозитории зависимы от доктрины.
нет, не зависимы... все в твоих руках

Sergey
22.08.2017
12:57:43
именно. а doctrine2 репозитории зависимы от доктрины.
не зависимы. там есть четкий интерфейс который ты расширяешь. не хочешь его расширять - делай свой

Dmitriy
22.08.2017
12:58:22
Тото я везде вижу как люди юзают extends EntityRepository.

Sergei
22.08.2017
12:58:43
извини, тебе шашечки или ехать?
Мне юнит тесты) Как бы я по ним проверяю свою логику еще до того как база есть и прочее

Sergey
22.08.2017
12:58:49
никто не заставляет делать extends EntityRepository

Dmitriy
22.08.2017
12:59:15
никто не заставляет делать extends EntityRepository
это понятно. но люди это юзают и называют еще это паттерном

Dmitry
22.08.2017
13:00:11
Мне юнит тесты) Как бы я по ним проверяю свою логику еще до того как база есть и прочее
Ну если ехать, от у тебя твой юнит и зависимость от покрытого юнит тестами фреймворка. Ты видишь проблему, что у тебя не будет мокнута зависимость? Я нет, мне ехать.

Sergey
22.08.2017
13:00:23
это понятно. но люди это юзают и называют еще это паттерном
EntityRepository это всего лишь реализация интерфейс ObjectRepository и Selectable. если тебе не нужны они, тогда не расширяй. а так это все тот же репозиторий в который инжектится object manager

Dmitry
22.08.2017
13:01:44
Мне юнит тесты) Как бы я по ним проверяю свою логику еще до того как база есть и прочее
Основная проблема тут скорее скорость тестов, понимать фикстуры на каждый тест - долго. Но для простых проектов - соейдет, а сложные никто на ларавеле/yii делать не будут

Sergey
22.08.2017
13:01:57
Ну если ехать, от у тебя твой юнит и зависимость от покрытого юнит тестами фреймворка. Ты видишь проблему, что у тебя не будет мокнута зависимость? Я нет, мне ехать.
юнит тестами ты тестируешь свой код. при чем тут код фреймворка? ах да, ведь AR завязан на код фреймворка, вот беда

Google
Dmitry
22.08.2017
13:01:59
ну... вернее будут, но идиотизм - это отдельная тема

Sergey
22.08.2017
13:02:41
Основная проблема тут скорее скорость тестов, понимать фикстуры на каждый тест - долго. Но для простых проектов - соейдет, а сложные никто на ларавеле/yii делать не будут
если есть возможность проверить функциональность юнит тестами, зачем опускаться по пирамиде на другой уровень тестов?

Sergey
22.08.2017
13:03:19
быстрее что? написание тестов? исполнение тестов?

Dmitry
22.08.2017
13:03:24
написание

Sergei
22.08.2017
13:03:24
непонятно мне немного почему AR дает большую скорость разработки чем DM если человек знаком с обоими концепциями

Dmitry
22.08.2017
13:03:28
про исполнение я сказал

Sergey
22.08.2017
13:03:44
в юнит тестах ты паришься только об одном контексте юнита

Sergey
22.08.2017
13:04:08
в интеграционных тебе нужно уже думать о базе, фикстурах которых может быть очень много, транзакциях и тд

где же эта скорость написания?

Sergei
22.08.2017
13:04:24
не дает ;)
тогда зачем выбирать жтот патерн в чем его приемущество?

Dmitry
22.08.2017
13:04:25
в юнит тестах ты паришься только об одном контексте юнита
смотри, мы говорим о тестировании юнита, который напрямую работает с базой

тогда зачем выбирать жтот патерн в чем его приемущество?
для основения он проще новичкам... но от этого он "писец каким нетестируемым не становится"

Dmitry
22.08.2017
13:07:00
ну да... в чем-то... все же та же доктрина посложнее, особо кода чуточку дальше копнешь

Boris
22.08.2017
13:07:09
Если да, то для новичка он очень привлекателен

Denis
22.08.2017
13:07:12
http://designpatternsphp.readthedocs.io/en/latest/README.html nice

Sergei
22.08.2017
13:07:42
Я начинал с доктрины Мне AR сложными казались Я вообще не понимал как писать тесты

Dmitry
22.08.2017
13:08:36
Проблема AR и тестов не в том, что оно AR, а в том, что для простоты используется статика для поиска... что к AR вообще отношения не имеет, к слову

Google
Sergey
22.08.2017
13:08:46
смотри, мы говорим о тестировании юнита, который напрямую работает с базой
ну скажем у тебя есть сервис Notify, с методом отправить сообщение админам. в реализации этого метода будет выборка из репоса всех админов, потом какая-нибудь дополнительная бизнес логика для этих сущностей и в конечном итоге отправка эмейлов меня не интересует то как работает репос, откуда эти данные берутся, какие там данные. у меня есть конкретный интерфейс, который предоставляет данные зачем мне поднимать базу, фикстуры и прочий булщит и писать интеграционный тест? как это ускоряет разработку?

Проблема AR и тестов не в том, что оно AR, а в том, что для простоты используется статика для поиска... что к AR вообще отношения не имеет, к слову
в AR у тебя модели имеют непосредственную связь с источником данных. они умеют себя сохранять и запрашивать доп данные из базы. это не детали реализации, это суть паттерна

Sergey
22.08.2017
13:14:49
мокнуть что именно?

Dmitry
22.08.2017
13:15:47
Да тот же save... я хз что ты там тестируешь.

Sergey
22.08.2017
13:18:20
ладно бесполезно с тобой спорить

Eugene
22.08.2017
13:54:34
Люди подскажите пожалуйста ) по SonataPageBundle Есть у страниц компосер который собирает страницу из блоков, как можно сделать их мультиязычными? может быть кто нибудь сталкивался или сможете предложить вариант решения?

Sergey
22.08.2017
15:28:25
Да тот же save... я хз что ты там тестируешь.
мокнуть метод теструемого класса? сильно.

vlad
22.08.2017
16:22:15
всем привет ребят, такой вопрос: сейчас параллельно работает порядка 500 процессов на сайте прямым запросом UPDATE удалось сделать так, чтобы все 500 сделали инкремент в одно поле в БД но вот такая проблема встала: мне нужно, чтобы процессы на определённом значении этого числа, которое увеличивают, остановили работу. Я попытался выдирать это значение с помощью SELECT, но не тут-то было если сначала там лежало число 10, то каждый процесс берёт себе это самое число 10, и не учитывает инкримент от других процессов как можно это обойти?

Borys
22.08.2017
16:25:36
можно назначить триггер на событие в базе, вызывать через консоль какой-то счетчик контроль (к примеру) и если надо заканчивать он поднимает какой-то флаг в этой же базе ну или делает невозможным чтение текущей таблицы

Valeriy
22.08.2017
16:33:01
Update where?

Affected rows чтобы проверить

vlad
22.08.2017
16:44:07
так, первый вариант более-менее понял, буду копать а второй не особо, сейчас разберусь в терминологии

vlad
22.08.2017
17:30:46
сейчас пробую Affected rows, по-идее это должно сработать если нет, то буду пробовать остальные варианты

а нет, сейчас понял, что это не сработает

Антон
22.08.2017
19:11:36
FOSRestBundle стандарт для построения api?

Boris
22.08.2017
19:14:24
Я без него

Своиии силами :)

Google
Антон
22.08.2017
19:18:15
Boris а какой либо сериалайзер используешь?

или просто JsonResponse?

vlad
22.08.2017
19:21:29
последовательно не получится, слишком долгий процесс вкупе получается

пробовал уже

Виктор
22.08.2017
19:22:28
FOSRestBundle стандарт для построения api?
Сейчас как раз изучаю его. До этого смотрел api-platform и nemio - печаль печалью. Проще самому silex+swagger заколбасить, чем упираться в их ограничения.

Правда FOS что то у меня пока туго пошёл, и не знаю пока устроит он или нет

Sergey
22.08.2017
19:24:41
последовательно не получится, слишком долгий процесс вкупе получается
у тебя либо на уровне базы будет на блокировках последовательность, либо в коде

ещё оптимистические Локи в доктрине посмотри

Admin
ERROR: S client not available

Alan
22.08.2017
19:29:20
там скоро lock component обещали

Sergey
22.08.2017
19:31:02
он в 3.3 есть вроде

Alan
22.08.2017
19:31:20
читал что до 3.4 отложили вроде

можно ченить такое просто взять https://github.com/ronnylt/redlock-php

блокировать до задачи и снимать лок в конце + retry если залочено

select for update может в дедлоки выйти

Виктор
22.08.2017
20:26:42
Boris а какой либо сериалайзер используешь?
jms/serializer-bundle - вроде этот несколько раз сегодня натыкался что советуют юзать к FOS

Антон
22.08.2017
20:27:27
jms/serializer-bundle - вроде этот несколько раз сегодня натыкался что советуют юзать к FOS
на хабре читал что наоборот не рекомендуют. в частности @fes0r писал об этом

Valeriy
22.08.2017
20:28:38
у симфы свой сериализатор уже давно есть

Виктор
22.08.2017
20:32:24
Э, невнимательно сегодня прочел: http://symfony.com/doc/master/bundles/FOSRestBundle/1-setting_up_the_bundle.html - из чего сделал неправильный вывод что раз он в конце - то и не айс...

Google
Виктор
22.08.2017
20:33:34
https://habrahabr.ru/post/278123/ - вот нашел недавно статейку - но еще не читал. Если есть что-то под рукой дельное на эту же тему - поделитесь плз. Что-то у меня не очень оф дока идет:( Правда сф только изучаю...

Антон
22.08.2017
20:37:24
у симфы свой сериализатор уже давно есть
а где то пример можно увидеть?

Valeriy
22.08.2017
20:38:21
так там и ссылка))

http://symfony.com/doc/current/serializer.html

Антон
22.08.2017
20:39:37
меня прям пугает столько настроен а по факту надо просто json отдать в контроллере пока что

Виктор
22.08.2017
20:49:45
Вот и я сижу и охреневаю) сф полез изучать - из-за орм, и надеялся на то что уж на таком фреймворке то должно быть все готовое для разработки апи. делал сам всегда на связке сваггер/сайлекс и бед не знал...

Антон
22.08.2017
20:51:23
да я тоже изза доктрины пошел симфони изучать

потом уж решил проект тестовый на симфони. блин пока тяжеловато после ларавел. все надо руками

там все из коробки, много магии. здесь вообще ничего =)

Виктор
22.08.2017
21:00:39
Я писал долго на битриксе (лет 6-7 уже наверно) либо с нуля (с мелкими библиотеками). Надоел как раз либо говнокод, либо свой велосипед изобретать. Но все из коробки - так не бывает - если не совсем типовые задачи... Мне кажется - тут как раз лучше опытному разработчику своими бандлами типа разрастись на все случаи жизни. И будешь иметь под рукой готовое решение - и будешь иметь возможность в нем что-то более быстро поправить - а не заседать над чужим кодом часами ради правки пары строк.

Виктор
22.08.2017
21:03:27
ага - отлично реализует CRUD. И все. Я вчера кипятком писался как за полчаса описал с 15 сущностей

и все типа заработало

вместе с СУБД

а потом херак - и надо было написать 3 свои операции - и тут я сел...

и вообще там ошибки - например у меня не работала работа АПИ со своими операциями по адресу отличному от /

то есть я привык делать /api/

чтобы это устранить - пришлось лезть в их код

в общем я потрахался часик - и понял что сыровато и так себе - только если чисто CRUD сделать надо - тогда сойдет

Sergey
22.08.2017
21:06:33
может ты просто не разобрался?)

вообще я сам не юзаю подобное

Страница 276 из 1418