@symfony_php

Страница 1416 из 1418
Dmitriy
27.10.2018
12:05:00
это понятно, но конкретно в твоей задаче тебе это надо? я не предлагаю тебе везде юзать только sql + php.
В этом и беда гребаная. Мне нужно в одном моменте и первое и второе=\

Sergey
27.10.2018
12:05:03
Связи явно прописаны, но они не всегда нужны в ответе. Но их можно указать, что нужны
можно просто вторым запросом по where id in () еще и потом домэпливать. Тоже неплохой вариант и очень даже гибкий

В этом и беда гребаная. Мне нужно в одном моменте и первое и второе=\
подумай о том что все это можно достать не одним запросом а двумя или тремя

Dmitriy
27.10.2018
12:05:36
в запросе срез

Google
Sergey
27.10.2018
12:05:41
и при этом у тебя остается гибкость, не нужно нормализовывать выборку сложными способами, а по перформансу все ок будет

Dmitriy
27.10.2018
12:05:44
т.е. например 50 сущностей

Sergey
27.10.2018
12:05:47
в запросе срез
срез в первом запросе

во втором ты только для тех штук выбираешь историю

отдельно

и домэпливаешь

Dmitriy
27.10.2018
12:06:22
но это к каждой сущности из среза нужно дополнить

Sergey
27.10.2018
12:06:30
p.s. год назад я так проект разделял, что бы можно было изолировать таблички в базе по контекстам - было очень даже удобно

Dmitriy
27.10.2018
12:06:35
т.е. 100 - 150 запросов как с куста

Sergey
27.10.2018
12:06:46
нет необходимости делать это так как делает та же доктрина

where parent_id IN (ids from your slice)

Dmitriy
27.10.2018
12:07:45
и потом смапливать все дело между друг-другом?

Google
Dmitriy
27.10.2018
12:07:52
а это идея

Sergey
27.10.2018
12:07:55
да, это не оч сложно

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

и пофигу что будут те самые +N запросов

Dmitriy
27.10.2018
12:12:42
я понял за что нелюбят gql на бэке. Это его гребаная гибкость заставляет хуячить всякие костыли

сращивать такое несложно концептуально, но в результате мне нужно 1. Перебрать весь результирующий сэт из 1 запроса, чтобы выудить список ID 2. Запросит доп данные с where in (ids) 3. Перебрать результирующий сэт из п.2 чтобы индексировать его [id => StateDateTime] 4. Перебрать результаты, чтобы сростить данные из п.3 в п.4

Danil
27.10.2018
12:21:16
А как это сделать?
просто в запросе тянешь поле, которого нет в сущности и оно будет в result леежать рядом с сущностью

Dmitriy
27.10.2018
13:45:31
А сериалайзер не затригеррит подтягивание юзера, если в сущности есть метод getUser, но сам user еще не подтянут?

Sergey
27.10.2018
13:51:32
А сериалайзер не затригеррит подтягивание юзера, если в сущности есть метод getUser, но сам user еще не подтянут?
можно я использую данный комментарий (анонимизированный естественно) в своем докладе как пример почему все это от лукавого?)

Dmitriy
27.10.2018
13:52:24
конечно)

можно и не анонимно, какая разница?)

Sergey
27.10.2018
13:58:03
если что - it depends. если у тебя сериалайзер работает через методы - то при вызове метода будет затригерена доктриновская прокся

Dmitriy
27.10.2018
14:20:57
Это вообще все проделки магии, которой я уже нажрался на Yii2 - там она вообще везде. Должен быть метод fetchUser и getUser тогда у сущности, чтобы было все очевидно

Urmat
27.10.2018
14:35:50
Народ, как “правильно” с помощью ентити менеджера обновить существующую запись при on duplicate? я хотел UniqueConstraintException ловить, но тогда получается два запроса

Sergey
27.10.2018
14:42:28
наиболее разумный вариант - отказаться в этом месте от ORM и юзать DBAL

Icewild
27.10.2018
14:46:19
прям какой-то национальный день отказа от ORM

Dmitriy
27.10.2018
14:53:47
27 октября - Международный день народного единства в отказе от ОРМ)

Sergey
27.10.2018
14:55:04
прям какой-то национальный день отказа от ORM
ну что поделать если они делают штуки, которые не подходят под задачи orm

Google
Urmat
27.10.2018
14:56:02
наиболее разумный вариант - отказаться в этом месте от ORM и юзать DBAL
хмм.. проект новый, можно поэкспериментировать. Спасибо за наводку

Icewild
27.10.2018
14:57:46
а какая разница сколько проекту времени?

Sergey
27.10.2018
15:04:46
Ну смотря что делать, риски разные

Anton
27.10.2018
16:46:38
И никто не подскажет, мне надо просто проанализировать проект и понять какие там страницы есть. Вот в ларавеле - взяль центральный файл с роутами и примерно проверил все что отвечает или нажать можно. Есть ли какой плагинчик для шторма или еще что - чтобы все роуты сифони собрать?

Ну так чтобы прокликать и посмотреть

Icewild
27.10.2018
16:47:17
bin/console debug:router

Dmitry
27.10.2018
17:59:52
Ну смотря что делать, риски разные
Если руки из жопы, то хоть новый проект, хоть старый - здесь уже ничего не поможет

Valentin
27.10.2018
18:38:22
Если руки из жопы, то хоть новый проект, хоть старый - здесь уже ничего не поможет
Когда в старом проекте наговнокодишь - никто не уберёт, потому что сложно, и разбираться лень, а в новом - дадут по шапке и скажут как исправить

f4rt~
27.10.2018
19:07:34
Гайз, есть тут кто кто переодически посматривает/отслеживает всякие штуки,вне доктрины, которые пилит Марко @Ocramius Скажите мне,пожалуйста, почему: Он зовет инвочные классы, аля QueryFunction через $obj->__invoke($args) а не $someKindOfUsers(); Почему, он вносит __invoke в интерфейс, если это не является частью контракта класса с остальными ньюансами, я как то еще могу мириться :)

Bohdan
27.10.2018
19:10:56
на мой вкус - чтобы не ломать глаза странным синтаксисом

Andrew
27.10.2018
20:24:37
Плюс если такой объект - свойство другого обьекта, то $this->prop() будет дергать метод prop(), тут или через явный __invoke или через call_user_func нужно дергать

Petr
27.10.2018
21:10:18
потому что ты можешь всегда сделать grep __invoke(..) по проекту и найти где у тебя это используется
Весьма странная мысль. Кто ж грепом вызовы методов по проекту ищет?

Bohdan
27.10.2018
21:15:27
ну даже если не грепом, то глобальным поиском в шторме - разницы никакой

Petr
27.10.2018
21:20:56
чем ищешь?
Ctrl+click по методу в шторме

Google
f4rt~
27.10.2018
21:26:19
просто я не вижу юзкейса с QueryFunction как часть какой-то проперти

обычно эта штука, исключительно что бы сделала свое дело где-то в контексте и повысить читаемость

а аргумент про грепы, ну это конечно такое тебе ничего не даст, если ты будешь искать тупо __invoke()

а то же время что так что эдак ты знаешь какой класс ищешь и можешь найти его

но никто так и не сказал про инвок в интерфейсах

Arky
27.10.2018
22:06:56
А мне интересно, почему у сериалайзера в интерфейсе только методы: serialize и deserialize, а остальных нет)

Shmaltorhbooks
27.10.2018
22:07:15
Например, какие?

Arky
27.10.2018
22:07:41
denormalize, decode etc

Vladislav
27.10.2018
22:07:59
Например, какие?
$arky->ROForAMonth()

Shmaltorhbooks
27.10.2018
22:08:06
Наверное, потому что это не его ответственность?

Arky
27.10.2018
22:08:54
Наверное, потому что это не его ответственность?
а почему тада у реализации есть эти методы?

Shmaltorhbooks
27.10.2018
22:10:11
Нужны они ей потому что)

Программируй интерфейсами и их не будет)

f4rt~
27.10.2018
22:10:35
а почему тада у реализации есть эти методы?
эти методы... и они не приватные ты хотел сказать

Arky
27.10.2018
22:21:27
а, знач их просто забыли сделать приватными?)0

тогда понятно, спасибо)

Sergey
27.10.2018
22:22:51
Программируй интерфейсами и их не будет)
ты смотри, некотторые этот совет воспринимают слишком буквально и реально создают по интерфейсу (сущность языка, а не понятие публичного интерфейса объекта, поведение объекта, контракт) на каждый класс

Sergey
27.10.2018
22:30:45
а как надо? Интерфейс на модуль?)
интерфейсы нужны в двух ситуациях: - общие контракт (абстракция) - множество реализаций - интерфейс в одном модуле а реализация в другом (пример - Logger Interface из PSR, общая договоренность между модулями, инверсия зависимостей). Если у тебя появляется модуль Interfaces - то ты не разобрался с темой

Shmaltorhbooks
27.10.2018
22:30:46
На ответственность

Google
Den
27.10.2018
22:32:08
тут по симфе спрашивать можно?..

Sergey
27.10.2018
22:32:10
На ответственность
слишком широкое понятие, потому не соглашусь

Den
27.10.2018
22:32:21
ну всмысле, каждый может спрашивать?..

Sergey
27.10.2018
22:32:35
а как же закрыть своим интерфейсом штуки, что бы они не "менялись"/быть уверенным что не "поменяются"
ты когда в класс публичный метод добавляешь - это уже часть публичного интерфейса и тебе уже надо следить за обратной совместимостью

но если вопрос гуглится за 5 минут то ты идешь в РО на сутки

Den
27.10.2018
22:33:06
Если я в webpack не использую версионирование, то и manifest не нужен?

Sergey
27.10.2018
22:33:06
если же ты гуглил - опиши что именно гуглил, какие варианты уже пробовал и т.д.

бля, ты ж говорил по симфони вопрос

Den
27.10.2018
22:33:22
РО - это что?

Bohdan
27.10.2018
22:33:28
ридонли

Den
27.10.2018
22:33:48
ну в 4й жеж..

или я уже в РО?

Evgenii
27.10.2018
22:34:08
plain object же

Vladislav
27.10.2018
22:34:13
но если вопрос гуглится за 5 минут то ты идешь в РО на сутки
Ро должно біть пропорционально тупости вопроса

Bohdan
27.10.2018
22:34:14
я тебя не понимать

ну в 4й жеж..
в 4й что?

Den
27.10.2018
22:34:29
вебпак..

Sergey
27.10.2018
22:34:35
в 4й что?
там замена ассетика на вэбпак

но я хз, у меня вэбпаки отдельно живут

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