
Sergey
31.05.2017
07:50:24
если у тебя на клиенте хардкодиться информация о сервере - значит ты не пользуешься преимуществами гипертекста
структуры данных хардкодятся в 99% случаев
а делать так что бы все было максимально гибко экономически не выгодно

Google

Sergey
31.05.2017
07:51:29
короч у меня докладик есть на эту тему

Roman
31.05.2017
07:52:52
ссылочку бы на докладик

Sergey
31.05.2017
07:54:05
https://www.youtube.com/watch?v=2nELo4fJMNQ
так себе докладик, но может будет интересно

Roman
31.05.2017
07:59:42
интересно

Boris
31.05.2017
08:36:56

Max
31.05.2017
08:47:03
Спасибо. Просмотрел
Вспомнилась статья: https://habrahabr.ru/post/326080/

Sergey
31.05.2017
09:23:11

Boris
31.05.2017
09:24:16
а я чо-то офисы отлюбил =) все душа тянет куда-то из лесу кодить

Timur
31.05.2017
09:27:04
в прошлой жизни

Boris
31.05.2017
09:27:18
а может в будущей =)

Google

Daniel
31.05.2017
12:13:44
Вопрос по зоне ответственности
Есть сущность News, есть сущность User
Пользователи создают новости, у новости может быть своё изображение, а у пользователя аватарка.
Но! Задача такая: если у поста нет изображения, а у пользователя есть - мы даем аватарку пользователя как изображение к посту. Если нет и аватара пользователя, то отдаем пустую Image сущность.
Вопрос - весь этот перебор можно делать в News?
Типа:
public function getPosterImage() {
$imageVariants = [
$this->getPosterImage(),
$this->getAuthor()->getAvatar(),
new Image()
];
foreach ($imageVariants as $imageVariant) {
if ($imageVariant) {
return $imageVariant;
}
}
}

Dmitriy
31.05.2017
12:20:00
либо вынести в отдельную сущность )
может даже в виде во..

Daniel
31.05.2017
12:20:35
ValueObject?

Dmitriy
31.05.2017
12:20:59
ага

Daniel
31.05.2017
12:29:40
Блин
Чёт котел не варит
Я кнеш понимаю как с баблом например можно было сделать:
public function setMoney(MoneyValueObject $money) {
$this->amount = $money->getAmount();
$this->currency = $money->getCurrency();
}
И потом:
public function getMoney() {
return new Money(
$money->amount,
new Currency($money->currency)
);
}
А вот как с изображульками

Alex
31.05.2017
13:24:20
господа, подскажите, кто как в Doctrine подтягивает связанные сущности для списка сущностей? Нашел вот такое решение, насколько оно оптимальное?
https://ocramius.github.io/blog/doctrine-orm-optimization-hydration/

Sergey
31.05.2017
13:57:29

Alex
31.05.2017
13:59:20
не, хотелось бы связанные поднимать по требованию. Т.е. типа дергает некий метод и передаем имя связей, которые хочется поднять, и список моделей, для которых нужно поднять связи

Dinar
31.05.2017
14:00:31
А как работает доктрина? Вот у меня например связанная сущность, в которой связанная сущность, и так до 5 колена. И там oneToMany и manyToMany. Он вытаскивает все что есть сразу всегда при конфигурации по умолчанию?

Sergey
31.05.2017
14:00:57

Dinar
31.05.2017
14:02:52
Ну при вызове он уже не JOIN использует?
То есть все по умолчанию чистая симфония с доктриной.

Steven
31.05.2017
14:03:12
Не знаете Gmail умеет отображать base64 картиночки?

Google

Dinar
31.05.2017
14:03:16
Никаких настроек ленивости не указано к полям сущности

Sergey
31.05.2017
14:10:29

Dinar
31.05.2017
14:10:57
То есть типа SELECT WHERE IN()?

Sergey
31.05.2017
14:11:28
хуже) select where id = ?

Dinar
31.05.2017
14:12:21
То есть прям 20 запросов вместо одного? :)

Sergey
31.05.2017
14:15:36
ну вот у тебя скажем есть 5 записей юзера, и у каждого юзера по 10 ордеров
если ты в цикле у каждого юзера попробуешь достать ордера, у тебя будет 5 запросов к базе
если обратишься только к одной записи юзера, то один запрос
можешь сделать изначально выборку через джоин, тогда у тебя не будет лишних запросов, но будут лишние данные
а можешь сделать обычную выборку только юзеров, а следом сделать выборку ордеров по айдихам юзеров(скажем только 3х, вместо 5), тогда у тебя будет всего 2 запроса
с one-to-one без вариантов вообще, там всегда будут блядские доп запросы идти.. о наболевшем..

Dinar
31.05.2017
14:18:58
1 to 1 то есть всегда со всем что есть тащится?

Sergey
31.05.2017
14:26:13
угу

Dinar
31.05.2017
14:26:26
Любопытненько :)

Sergey
31.05.2017
14:26:29
но вроде только если двунаправленная связь

Dinar
31.05.2017
14:26:34
В общем доктрина не всегда прекрасна :)

Dinar
31.05.2017
14:26:39
А ок.

Alex
31.05.2017
15:04:15
а обычный lazy не подходит?
получается, будут отдельные запросы на выборку каждой связанной коллекции для каждой энтити. А хотелось бы предзагрузить все связанные коллекции все сразу и разобрать по энтитям

Sergey
31.05.2017
15:04:45
тогда либо джоины, либо отдельный запрос

Алексей
31.05.2017
15:05:07

Alex
31.05.2017
15:06:10
3. https://ocramius.github.io/blog/doctrine-orm-optimization-hydration/

Dmitriy
31.05.2017
15:06:16
можно еще денормализировать в какой-то степени

Alex
31.05.2017
15:06:52
не, структуру менять - не труъ

Sergey
31.05.2017
15:08:17

Google

Alex
31.05.2017
15:10:48

Sergey
31.05.2017
15:12:31

Dmitriy
31.05.2017
15:12:37
тебе лучше знать.. мы же не знаем ваших кишочков

Sergey
31.05.2017
15:12:37
ну или кастомный гидратор написать
ИМХО для таких вещей где тебе надо много чего забирать и джойнить плохо подходят ORM. По сути ты только ради lazy load ее юзаешь в таких вещах
а тут ты даже этого не хочешь

Dinar
31.05.2017
15:17:12
Кстати, когда я пишу сам DQL, то он же достает ровно то, что я запросил?

Alex
31.05.2017
15:17:14
не вижу особой проблемы использовать для этого ORM, она же знает обо всех связях, нужно только указать ей, что сделать

Dinar
31.05.2017
15:17:28
А при гидрации получается все, что я не просил, в сущности будет отсутствовать?
Или будет запрашиваться при обращении новым запросом?

Admin
ERROR: S client not available

Alex
31.05.2017
15:20:26
а насчет кастомного гидратора кто может что сказать?

Sergey
31.05.2017
15:35:23
который тебе в этих запросах не нужон
или ищешь готоывй
на гитхабе есть парочка
я свой пишу, с блэкджеком
тип хочу сделать гидратор с кодогенерацией
что бы максимально быстрый и примитивный код генерило

Google

Sergey
31.05.2017
15:37:29
но это просто по фану
врядли это дорастет до прода

Jan
01.06.2017
00:03:49
Юнит-тесты контроллеров. Такого еще не было. Блджад...

Дмитрий
01.06.2017
06:30:45
вопрос по гиту, подскажите в чем проблема
склонировал проект себе на комп, сделал изменения и пытаюсь сделать git push origin dkostin
выдает
Counting objects: 13, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 682 bytes | 0 bytes/s, done.
Total 7 (delta 5), reused 0 (delta 0)
и висит на этом

Daniel
01.06.2017
06:38:16
http://www.hoonzis.com/git-stops-after-unpacking-objects-or/
У тебя origin где то в зимбабве находится, с mega HTTPS, VPN?

Дмитрий
01.06.2017
06:56:59
нет

Vania
01.06.2017
08:58:49
На убунту сервер постоянно говорит об ошибке записи в папку кеш, меняю права доступа к папке кое какое время работает норм потом опять права доступа сами меняются и опять ошибка, почему????

Artem
01.06.2017
09:02:29
кто-то меняет права. посмотри права созданных файлов и процессы, которые работают с этими правами

Дмитрий
01.06.2017
10:22:39
ребята, кто работал на симфони с эксельками, какой бандл используете?
https://github.com/liuggio/ExcelBundle

Andrew
01.06.2017
11:30:50

Дмитрий
01.06.2017
11:31:19
генерация пока нужна, позже может и парсинг но врядли

Daniel
01.06.2017
11:36:06
https://github.com/liuggio/ExcelBundle/blob/master/Resources/config/services.yml
Вся логика
Нахера целый бандл для этого подключать
Что за бред
http://symfony.com/doc/current/setup/file_permissions.html

Lezhnev
01.06.2017
11:41:57
mk-j/php_xlsxwriter