
Dmitry
20.12.2017
16:31:36
транзакционный DDL перевешивает многое ;)

Sergey
20.12.2017
16:31:37
а если я захочу упороться - буду думать в сторону polyglot persistence, обмажусь касандрами, всякими orientdb и т.д.

Dmitry
20.12.2017
16:32:07
в нем транзакционного DDL, это миф ;)

Google

Dmitry
20.12.2017
16:32:19
в нем атомарный DDL... это несколько другое

Shmaltorhbooks
20.12.2017
16:32:49
и как-то немного странно рассуждать о нагрузочном тестировании, если нету понимания какие именно запросы будут в основном нагружать базу

Sergey
20.12.2017
16:32:52

Dmitry
20.12.2017
16:33:11

Shmaltorhbooks
20.12.2017
16:33:28
выяснится, например, что мускуль делает на 10% больше селектов на таблице с миллионом записей, а постргес на 10% больше если делается джойн на 3 и больше таблиц
и что делать с этим знанием?
а всякие вмешные и свежие плюшки, которые вкручивают в базу - скорее всего, что они не будут использованы в реальном приложении, ибо нафиг ненужны

Sergey
20.12.2017
16:34:07

Алексей
20.12.2017
16:55:53

Max
20.12.2017
17:00:31


Алексей
20.12.2017
17:02:34
А какой брать? 9?
Если нужны автоинкременты в доктрине - 9.X. Если не нужны - можешь брать 10. У меня один проект на 10 работает, там либо UUID в качестве PK, либо заранее известный полученный из внешнего API идентификатор.
Господа, кстати, есть вопрос. Точнее, не совсем.
Может кто кинуть какого-нибудь полезного чтива либо библиотечек, которые помогают сравнивать тексты на похожесть?
Линки на встроенные функции в PHP типа levenshtein() и metaphone() можно не давать.
Задача - искать похожие объекты из различных источников данных и линковать их к общему каталогу. То есть, нужны инструменты, которые позволят вычислять похожесть текстов (коротких в основном - названий компаний и т.п.) и на основе схожести делать выводы.
Если есть примеры, где текст очищается от всякого мусора типа предлогов, артиклей и т.п., а потом разбивается на слова составляющие смысл - тоже хорошо.
В целом соображения как решать задачу есть, но интересно посмотреть на другие подходы - вдруг что интересного позаимствовать удастся.

Google

Алексей
20.12.2017
17:13:33
Помнится, где-то читал статью про то как сделан поиск в Кинопоиске (или типа того) - там тоже писалось что из текста лучше выкидывать, что нет и прочее. Такое чтиво тоже было бы полезно.
Если кто-то что-то кинет - просьба кинуть с меншном или реплаем (можно и в личку, если так удобнее).

Petr
20.12.2017
17:22:14

Алексей
20.12.2017
17:23:26

Vladislav
20.12.2017
20:03:30
Прив. можно сделать в симфони роутинге вот такой роут
/blabla/uploads/{path}
где path -> еще какой-то путь 2017/6/lol.png
надо чтобы все после uploads/ считало как слаг уже
регулярка?

Shmaltorhbooks
20.12.2017
20:08:59
Гуглить symfony routing slash in url

Vladislav
20.12.2017
20:10:25
та гуглил уже)
ну ща еще это попробую)

Shmaltorhbooks
20.12.2017
20:10:32
Есть отдельная статья на эту тему на оф доке
https://symfony.com/doc/2.3/cookbook/routing/slash_in_parameter.html
Хм
Старая дока
Но и в текущей может работать такая же шляпа

Sergey
20.12.2017
20:17:29
http://symfony.com/doc/current/routing/slash_in_parameter.html вот новая)

Vladislav
20.12.2017
20:42:03
бл, я это читал раза 2, но чет не обратил внимания. спасиб. думал это траилинг слэш

Alexandr
21.12.2017
08:36:45
подкажите плиз, можно ли как-то удобно в доктрине провернуть такое? проблема в том, что если и $a, и $b заданы, то доктрина не проигнорирует повторный джойн на t.relation
if ($a) {
$queryBuilder
->innerJoin('t.relation', 'r')
->andWhere('r.a = :a') ...
}
if ($b) {
$queryBuilder
->innerJoin('t.relation', 'r')
->innerjoin('r.anotherRelation', 'ar')
->andWhere('ar.b = :b') ...
}

Алексей
21.12.2017
08:39:17
Так а доктрина-то при чем? Может, условие пофиксить?
Хотя если хочется извращений - можно проверять запрос на наличие query parts соответствующих.

Sergey
21.12.2017
08:40:17

Google

Sergey
21.12.2017
08:40:25
вжух
но вообще стремная штука

Alexandr
21.12.2017
08:43:46
if ($a || $b) {}
тогда в условие могут попадать кейсы r.a is null, а в случае одного установленного $a будет избыточный джойн на r.anotherRelation

Sergey
21.12.2017
08:46:11

Алексей
21.12.2017
08:46:20
if ($a) {} elseif ($b) {}
или чего ты хочешь?
Ты вообще про Symfony или про PHP спрашиваешь?

Alexandr
21.12.2017
08:47:26
про доктрину так-то, но симфонисты в ней как правило разбираются неплохо ))

Алексей
21.12.2017
08:47:56
А в чем вопрос про доктрину, если ты ее сам ломаешь?

Sergey
21.12.2017
08:48:23
у тебя по сути проблема с логикой составления запроса, но то есть с php
а не с доктриной

Alexandr
21.12.2017
08:53:32
неужели никому никогда не доводилось писать опциональных фильтров в репозиториях, где некоторые фильтры используют повторяющиеся джойны? ... я думал задача тривиальная и это я такой тупой ( ...
>проблема с логикой составления запроса
конечно, можно хитрыми условиями раскидать, когда какие джойны использовать ... но я думал есть решение проще

Sergey
21.12.2017
08:55:02
> задача тривиальная
правильно думал)
if ($a || $b) {
$queryBuilder
->innerJoin('t.relation', 'r');
}
if ($a) {
$queryBuilder
->andWhere('r.a = :a') ...
}
if ($b) {
$queryBuilder
->innerjoin('r.anotherRelation', 'ar')
->andWhere('ar.b = :b') ...
}

Shmaltorhbooks
21.12.2017
08:56:39
сколько php-шников нужно, чтоб написать if по трём условиям)

Sergey
21.12.2017
08:57:18
большинство вместо этой сатаны с if-ами просто делают 2 джойна с разными элиасами
либо оптимизируют сам запрос дабы избавиться от этих джойнов (подзопросы, выборки айдишников)

Эмин
21.12.2017
08:58:31
2 join'а одной и той же таблицы это вообще ад для базы
особенно если данные одни и те же

Sergey
21.12.2017
09:01:42

Google

Alexandr
21.12.2017
09:02:46

Sergey
21.12.2017
09:03:13

Admin
ERROR: S client not available

Sergey
21.12.2017
09:03:27
но щито поделать если у тебя логика выборок упорота и ты зачем-то это в одно место положил
нет, конечно можно поиграться вот с этим:
$qb->getDQLPart('join');
и сделать свою обертку которая будет учитывать джойнили мы уже или нет

Роман
21.12.2017
10:33:17
Здравствуйте. Подскажите пожалуйста, как при продакшн сборке заставить Symfony Encore добавлять префикс к путям в manifest.json? Сайт находится в подпапке на хостинге..

Boris
21.12.2017
11:20:21
Подскажите, старый sensio/generator-bundle не поддерживает symfony 4. А в новом не вижу команды для создания нового бандла, еще не подвезли?
Сталкивался кто или нет?

Dmitriy
21.12.2017
11:21:47
maker

Boris
21.12.2017
11:22:19
maker
Я его и имею ввиду под "новым" :)
В его командах и исходниках не вижу maker:bundle
Поэтому и спрашиваю, может кто создавал уже бандлы. Или ручками пока?

Andrey
21.12.2017
11:24:46

Dmitriy
21.12.2017
11:26:53
а зачем тебе создавать бандл?
https://github.com/symfony/maker-bundle/tree/master/src/Maker

Boris
21.12.2017
11:28:14

Dmitriy
21.12.2017
11:29:05
лучше не бандл а свою библу + рецепт

Artem
21.12.2017
11:34:14
вроде как бандлы - это дела давно минувших дней в sf4

Google

Boris
21.12.2017
11:37:24

Artem
21.12.2017
11:40:09
я имел ввиду это: https://symfony.com/blog/new-in-symfony-3-4-deprecated-bundle-inheritance

Boris
21.12.2017
11:41:04
Bundles will still exist as third-party plugins installed in vendor/

Artem
21.12.2017
11:45:23

Дмитрий
21.12.2017
11:45:50
http://github.com/symfony/thanks

Boris
21.12.2017
11:46:42

chesarhop
21.12.2017
12:13:49
Салют! Народ такой вопрос, мне надо определять попадает ли дата в диапазон заданный в определённом формате. Диапазоны могут быть вида:
а) С 14:30 первого января ДО 18:30 23 февраля
б) С 00:00 понедельника ДО 16:00 Среды
в) маловеротный сценарий но всё же: вторник и среду в январе, марте, июле
Чем можно проверить, попадает ли дата в диапазон?

Vladislav
21.12.2017
12:14:35
data >= x && data <= y
?

Nikolay
21.12.2017
12:15:03
strtotime и сравнение секунд

chesarhop
21.12.2017
12:16:35
Эх если бы