@phpclubru

Страница 67 из 956
Dmitry
10.01.2017
09:28:30
ну у нас магазин сам считал и давал уже простое продукт-продукты.... насколько я знаю, сначала считали по заказам, а потом перешли на ручное управление... вроде сопутствующих товаров

Alexandre
10.01.2017
09:31:39
мы сперва хотим проставить ручное управление

но потом считать по крону и выделять кластеры

Pavel
10.01.2017
09:52:42
find ./ -name '*.php' | xargs grep -lir '<?[^php|xml]' | xargs sed -i 's/<?[^php|xml]/<?php\ /g'
Nice try, но: 1) <?= тоже будут заменены, а не должны 2) <? внутри строк тоже будут заменены, редкий случай, но вообще говоря плохо 3) Любое (например `<?zhp`) будет переписано.

Google
zEvilz
10.01.2017
09:55:01
я для своего писал. немного регулярки переписать и ок

Pavel
10.01.2017
09:55:58
Вот это немного превращается в дичайший гемор)

<?echo 'aa'; ?> вот такое тоже будет некорректно заменено

zEvilz
10.01.2017
09:56:55
всегда после <? ставил пробелы)

и в команде выше после <?php есть пробел

можно сначала заменить <?= на <?php echo

Pavel
10.01.2017
10:15:02
http://php.net/manual/ru/function.token-get-all.php похоже вот это очень поможет

zEvilz
10.01.2017
10:43:53
Вот это немного превращается в дичайший гемор)
без поддержки <?xml find ./ -name '*.php' | xargs grep -lir '<?=' | xargs sed -i 's/<?=/<?\ echo\ /g' find ./ -name '*.php' | xargs grep -lir '<?php' | xargs sed -i 's/<?php/<?\ /g' find ./ -name '*.php' | xargs grep -lir '<?' | xargs sed -i 's/<?/<?php\ /g' find ./ -name '*.php' | xargs egrep -lir '<?php[[:blank?]{2,}' | xargs sed -i 's/<?php\ \{2,\}/<?php\ /g'

Pavel
10.01.2017
10:45:37
not bad

zEvilz
10.01.2017
10:53:59
find / -name 'php.ini' | xargs grep -lir 'short_open_tag\ =\ Off' | xargs sed -i 's/short_open_tag\ =\ Off/short_open_tag\ =\ On/g'

Pavel
10.01.2017
10:54:36
noooo

Dmitry
10.01.2017
11:07:13
жжжесть

ох божечки шторм 2017.1...

Google
Dmitry
10.01.2017
13:02:06
при вызове метода пишет теперь имя переменной аргумента ;)

Pavel
10.01.2017
13:02:35
Хм? То есть?

Контекстную подсказку выдает?

О здорово

Dmitry
10.01.2017
13:04:11
угу, непривычно но по ходу очень полезно

Pavel
10.01.2017
13:05:20
Это все время в коде висит? Или во время отладки? Пропадает во время редактирования?

Dmitry
10.01.2017
13:05:38
это при редактировании

выезжает после набора параметра... немного непривычно, посмотрим как пойдет

Pavel
10.01.2017
14:49:55
Кто-нибудь натягивал на yii2 repository+specification? Как оно?

В гиттере не нашлось таких практикантов

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

Dmitry
10.01.2017
15:19:20
ну я так понимаю, просто делаешь Query отдельный и туда лепишь

Pavel
10.01.2017
15:23:43
Вроде да, но Query больше похоже на specification pattern как-то

Dmitry
10.01.2017
15:38:23
ну если хочешь чистенько, то просто делаешь класс репозитория и все... какая фиг разница, что там за репозиторием скрыто - доктрина или yii2 ar

Pavel
10.01.2017
15:49:44
Сейчас у нас так сделано и это жутко неудобно. Реляции использовать нельзя, кастомные критерии тоже хрен задашь, иначе сразу начинаешь зависеть от yii query

Dmitry
10.01.2017
15:50:54
эм... конечно начниаешь зависеть, а как может быть репозиторий, который не зависит от ORM?

Pavel
10.01.2017
15:51:30
Репозиторий то да, а вот код который дергает репозиторий

Не должен.

А по факту чтобы сказать репозиторию какую выборку объектов сделать, придется оздать query объект, а это уже зависимость

В другом проекте у нас еще хлеще - там у каждого AR класса есть плоский объектный аналог с геттерами и сеттерами

Google
Dmitry
10.01.2017
15:52:38
ну да... не должен... $repository->find( MySpecification $query ) : array; :)

Pavel
10.01.2017
15:52:42
Но реляций и query там тоже нету

ну да... не должен... $repository->find( MySpecification $query ) : array; :)
Воо да. Просто хотел услышать работает ли это у кого в yii2 на практике

Dmitry
10.01.2017
15:53:39
а почему нет то? $query никакого отношения к ActiveQuery просто не имеет и все

Pavel
10.01.2017
15:53:48
Мне кажется вообще смешивать AR с репозиторийным подходом как-то криво

Где-нибудь да вылезет косяк

Constantine
10.01.2017
15:54:10
это все из ларавела пришло )

там мода такая

потому что Eloquent супер ОРМ все дела ебана

Pavel
10.01.2017
15:54:44
все это что?

Constantine
10.01.2017
15:54:59
репозитории + AR

Pavel
10.01.2017
15:54:59
AR был в yii еще в 2008, а репозитории в доктрине тоже давно

Pavel
10.01.2017
15:55:06
А, гибрид такой?

Я вот вообще не сталкивался

Constantine
10.01.2017
15:55:14
такое делать, ага )

Pavel
10.01.2017
15:55:24
Это вообще законно? Где почитать?

Dmitry
10.01.2017
15:55:24
репозиторий у тебя будет между твоим кодом и ORM... т.е. по идее для замены ORM тебе нужно будет только реализацию репозиториев переписать

Constantine
10.01.2017
15:55:34
как сделать усложнить ООП в своем проекте. 1000 и 1 способ )

зачем тебе выкидывать AR yii2 и херачить туда Eloquent например?

Google
Pavel
10.01.2017
15:56:01
Мне вот дали ссылку http://felicianoprochera.com/introduction-to-repository-pattern-with-laravel-5/ Это из серии картинок как нарисовать сову.

Очевидные вещи там расписаны, а реляций и спецификаций нету.

Dmitry
10.01.2017
15:57:48
и как часто ты будешь менять?)
к частосте изменений это не имеет отношения, это имеет отношения к SRP... ну и тестированию, не говоря у же о том, что это позволит тебе не только ORM менять, но и стораджи... ну, в какой-то мере

Constantine
10.01.2017
15:58:33
если копать дальше в сторону того, как стоит проектировать архитектуру сложных приложений, то AR будет выкинут первым

Pavel
10.01.2017
15:58:41
зачем тебе выкидывать AR yii2 и херачить туда Eloquent например?
В моем случае стоит задача максимально остраниться от ar yii2 в сторону собственного велосипеда репозиториев, и чтобы это было относительно просто

Dmitry
10.01.2017
15:59:11
Павел, я не понимаю вообще в чем твоя проблема ;)

Pavel
10.01.2017
15:59:11
Так как мы до сих пор не определились между yii2 и sf3, а переезжаем мы с yii1

Admin
ERROR: S client not available

Pavel
10.01.2017
15:59:18
... уже почти год... :D

Constantine
10.01.2017
15:59:20
:D

пиздец

а что значит не определились?

переписываете на yii2 и думаете про sf3?

может все таки пойти в сторону микросервисности с yii2 + silex тогда уже? может быть симфони агрегат и не нужно тащить весь

Pavel
10.01.2017
16:00:07
Пока что нам надо сделать рефакторинг БД и убрать DynamoDB

У нас есть сервисы, но есть также парочка интерфейсных проектов, так вот туда идеально ложатся все эти йишные виджеты, пагинаторы и т.д.

Я понимаю что на симфони придется все это собирать по кусочкам из разных бандлов.

Dmitry
10.01.2017
16:03:11
так где ты видишь зависимость application слоя от ActiveQuery при использовании репозиториев?

Pavel
10.01.2017
16:04:13
Ну если упаковать ActiveQuery в свой собственный Query то нигде

хотя ActiveQuery просто офигенно гибкий и удобный.

Google
Pavel
10.01.2017
16:04:41
Его есть соблазн применять везде

С подзапросами, фильтрами и прочими ништяками.

Dmitry
10.01.2017
16:07:32
ну типа спецификацию, да.... которая будет разбираться и транслироваться в вызовы activequery уже где-то внутри репозитория....

Pavel
10.01.2017
16:08:05
Как сложна ? Учитывая что мы максимум что когда-то мигрируем с mysql на postgres

А там 95% запросов идентичные

Dmitry
10.01.2017
16:08:53
ага, если идентификаторы с заглавными буквами использовать не начнешь ;)

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

а более сложные запросы обозначал бы разными методами репозитория... а уже потом, по необходимости и мере распухания репозитория, смотрел бы в сторону спецификации....

Pavel
10.01.2017
16:13:48
> передачей объекта с набором условий имеешь в виду обычный ActiveQuery объект?

Dmitry
10.01.2017
16:14:22
не... просто что-то вроде DTO

типа "дай сортировку", дай значени этого поля и т.п....

Pavel
10.01.2017
16:15:15
Это очень похоже на спецификацию

Dmitry
10.01.2017
16:17:53
ну не... https://habrahabr.ru/post/171559/ вот я про реализацию 2, только чуть более сложную, когда входные параметры представлены объектом, и репозиторий может менять запрос в зависимости от того, какие свойства у объекта есть, а каких нет....

Pavel
10.01.2017
16:19:55
Спс подумаю

Dmitry
10.01.2017
16:28:02
хотя ActiveQuery просто офигенно гибкий и удобный.
ну в доктрине query builder тоже удобный, да и DQL неплох, но никто же не делает $myEntityRepository->find(QueryBuilder $qb);

Pavel
10.01.2017
16:29:18
Мне кажется потому что все это не обладает реальной портируемостью. И кто бы не говорил что там становится легко менять хранилища, драйверы и т.д., в моей практике еще никогда это не проходило без гемора

Dmitry
10.01.2017
16:30:28
потому что это херит всю идею репозитория ;) заменить DoctrineRepository на InMemoryRepository уже не получится

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

м... есть две сущности А и Б со связью 1:м ... выгребаю Б с условиями... нужно получить А, с инициализированными набором Б коллекциями, т.е. что бы А->getБ давало не все Б, а только ранее выдернутые...

Страница 67 из 956