@symfony_php

Страница 868 из 1418
Borislav
18.04.2018
10:53:53
Небольшой отвлеченный вопрос, хорошая ли практика делать проверку count($array) > 0 перед foreach? Вроде как ранее выбрасывалось NOTICE если попробовать передать пустой массив в foreach, нет? P.S. Сейчас попробовал: <?php ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); $values = array(); foreach ($values as $value) { echo $value . PHP_EOL; } PHP 7 не 7.2.3 не выдает ошибку

Dinar
18.04.2018
10:54:43
нет

форич просто пройдет 0 раз

Konstantin
18.04.2018
10:55:52
guize

Google
Borislav
18.04.2018
10:55:53
хмм...

Konstantin
18.04.2018
10:56:06
на маленьком серваке 2гб оперативки, 1.5 свободно

делаю composer update (симфони проект) и он сжирает 1.5 гига и вылетает с can not allocate memory

в чем может быть косяк? только что сделал composer install и было норм, но изменил версию пхп (в композере) и теперь не воркает

Timur
18.04.2018
10:57:21
Небольшой отвлеченный вопрос, хорошая ли практика делать проверку count($array) > 0 перед foreach? Вроде как ранее выбрасывалось NOTICE если попробовать передать пустой массив в foreach, нет? P.S. Сейчас попробовал: <?php ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); $values = array(); foreach ($values as $value) { echo $value . PHP_EOL; } PHP 7 не 7.2.3 не выдает ошибку
Не помню такого, чтобы foreach выдавал какие то нотисы на пустых массивах. Можно сделать проверку на то, что это вообще массив, а еще можно сделать проверку на то, что массив содержит лишь определенные типы) но для этого нужны дженерики, не?

Konstantin
18.04.2018
10:59:01
че за свап

Bohdan
18.04.2018
10:59:01
хотя

типа диск в качестве рам

Konstantin
18.04.2018
10:59:49
а, ты про то что просто увеличить память

Bohdan
18.04.2018
11:00:00
может композер не может разрезолвить зависимости

Sergey
18.04.2018
11:00:03
на маленьком серваке 2гб оперативки, 1.5 свободно
сделай большой сервак для сборки на 8 гигов

Google
Konstantin
18.04.2018
11:00:21
тада уж проще снести вендоры и заново install )

Sergey
18.04.2018
11:00:22
и что бы он не много жрал - поднимай его по требованию

Bohdan
18.04.2018
11:00:23
Sergey
18.04.2018
11:00:38
у меня акенео и в 8 улетела
ну вообще update на CI это какая-то дикость

Bohdan
18.04.2018
11:01:02
Sergey
18.04.2018
11:01:12
ааа.... ну у меня 16 и пока все хорошо)

Bohdan
18.04.2018
11:01:17
но вообще да опасно

Konstantin
18.04.2018
11:02:37
хм просто инсталл сейчас всего около сотки жрет

Andrew
18.04.2018
11:04:06
делаю composer update (симфони проект) и он сжирает 1.5 гига и вылетает с can not allocate memory
нафига тебе глобальный апдейт в принципе? Если обновил версию пыхапе, делай composer update —lock, пересчитает только локфайл но те будет апдейтить зависимости, если обновления нужны — по одному пакету на локалке и гоняешь тесты

Konstantin
18.04.2018
11:06:11
спасиб за хинт, пока не продакшн не страшно )

Borislav
18.04.2018
11:07:44
Ладно, наверное действительно так оно и есть. Спасибо @Gaaarfild, @murtukov, @dmitriytk

Andrew
18.04.2018
11:07:58
спасиб за хинт, пока не продакшн не страшно )
а время на отлов OOM exceptions и всякх багов, когда внезапно в минорной версии чего-то поломалось апи или на сервере не те версии пакетов и там даже кеш не собирается, когда на локали все работает не жалко?)

Timur
18.04.2018
11:12:17
Вопрос по MySQL. У меня такая проблема: надо в таблице user найти все дубликаты (сравнение по firstname для простоты примера). Для этого я делаю джоин таблицы с самой собой, вот запрос: SELECT c.id, c.firstname, d.id, d.firstname FROM user u JOIN user d ON u.firstname = d.firstname AND c.id <> d.id # чтобы не сравнивать строки с собой Проблема в том, что сравнениваются все строки со всеми, чего, очевидно, делать не обязательно. Можно ускорить процесс на 40%, если сравнивать каждую строку лишь с последующими строками, но как написать запрос, я не знаю.

Dmitriy
18.04.2018
11:13:09
это агрегирующие функции нужны

Bohdan
18.04.2018
11:13:13
выбери id по distinct

Andrey
18.04.2018
11:13:17
SELECT firstname GROUP BY firstname HAVING COUNT(id) > 1

Bohdan
18.04.2018
11:13:37
id - name

затем оттуда только id и not in

Google
Shmaltorhbooks
18.04.2018
11:15:04
Если пользователей много, а имя не индекс - может быть тоскливо

А firstname скорее всего таки не индекс

Timur
18.04.2018
11:16:45
Если пользователей много, а имя не индекс - может быть тоскливо
В этом нет и сомнений, тоскливо будет в любом случае. Имя - не индекс.

Dmitriy
18.04.2018
11:17:35
`SELECT GROUP_CONCAT(id SEPARATOR ', ') AS ids, firstname GROUP BY firstname HAVING COUNT(id) > 1`

так будет еще и идшники показывать

Shmaltorhbooks
18.04.2018
11:17:59
md5 от имени и в отдельную таблицу в память)))

В памяти будет быстро)

Хотя можно и без md5

Dmitriy
18.04.2018
11:18:54
блин, сколько должно быть записсей в таблице users, чтобы печаль была заметна на глаз?

Shmaltorhbooks
18.04.2018
11:19:06
Но это баловство

Dmitriy
18.04.2018
11:19:50
оракл сложные просчеты делает по объединенным таблицам, в которых 7-10 млн записей в каждой за минуту-две. При чем разрабы особо не парились с индексами

Timur
18.04.2018
11:20:10
SELECT firstname GROUP BY firstname HAVING COUNT(id) > 1
Возможно я зря упростил пример, потому что должны выдаваться результаты не только по точному сравнению но и по soundex и по LIKE (то есть = OR LIKE OR soundex). Да, запрос будет оцень тяжелым. Но это не страшно, ведь мне всего 28, вся жизнь впереди)

Timur
18.04.2018
11:20:36
`SELECT GROUP_CONCAT(id SEPARATOR ', ') AS ids, firstname GROUP BY firstname HAVING COUNT(id) > 1`
Я смогу твой пример изменить под свои нужды? В смысле возможно ли это в принципе?

Shmaltorhbooks
18.04.2018
11:20:50
А записей много?

Sergey
18.04.2018
11:21:12
Timur
18.04.2018
11:21:56
Окола 7000 тысяч юзеров. Если сравнивать всё со всем получится декартово произведение, это 49 миллионов строк

Точнее 49 миллионов сравнений строк

Это если делать джоином, как я написал выше

Google
Ad
18.04.2018
11:26:51
Обьясните, почему симфони отказалась от поддержки hhvm?

Из-за говенного ООП в ххвм?

?
18.04.2018
11:27:22
Виктор
18.04.2018
11:27:26
Обьясните, почему симфони отказалась от поддержки hhvm?
А зачем? PHP7 соразмерим по производительности c hhvm

Timur
18.04.2018
11:27:30
Ad
18.04.2018
11:28:21
А зачем? PHP7 соразмерим по производительности c hhvm
Вот тут неясно, независимый бы бенчмарк, потому что штук десять статей перечитал, все по разному пишут

Я с села просто

Admin
ERROR: S client not available

Shmaltorhbooks
18.04.2018
11:29:45
Вот тут неясно, независимый бы бенчмарк, потому что штук десять статей перечитал, все по разному пишут
Back then, the most attractive selling point of HHVM compared to PHP was performance. HHVM was way faster than PHP. But soon enough, the PHP team embarked on a quest to find ways to drastically improve the performance of PHP. PHP 7 was born. Nowadays, the performance difference between HHVM and PHP is not significant anymore.

это из ссылки цитата

разрабы симфони решили, что разница несущественная

Shmaltorhbooks
18.04.2018
11:31:17
источники Фадьена, по всей видимости, таких данных не предоставляют)

Timur
18.04.2018
11:31:18
Абсолютно, это ж SQL
Что-то не разумею, куда soundex вставлять?

Artem
18.04.2018
11:31:56
Shmaltorhbooks
18.04.2018
11:32:03
ой

Фабьен, сорри

Dmitriy
18.04.2018
11:32:58
Timur
18.04.2018
11:33:37
функция, принимает строку, выдает другую строку - код. Так можно сравнить две строки на схожесть звучания, если две разные строки выдают один код

Google
Ad
18.04.2018
11:33:39
Есть сервак на 32гб оперативки. Nginx + php-fpm, 30к уников в час, (порно), LA 0.3

Ad
18.04.2018
11:34:15
Правда поток через цдн

Так что в принципе зря выебываюсь

Timur
18.04.2018
11:36:03
не пользовался, не знаю
soundex('Max') == soundex('Maks') Потому как функция вернет один код для обех строк, примерно такой M967

задача самому наваять?
Нет, soundex это известный алгоритм, ему сто лет уже)

Он в мускуле встроен

Artem
18.04.2018
11:36:34
ок, я думал ты спрашиваешь

Dmitriy
18.04.2018
11:36:41
GROUP BY soundex(firstname)

SELECT GROUP_CONCAT(id SEPARATOR ', ') AS ids GROUP BY soundex(firstname) HAVING COUNT(id) > 1

Timur
18.04.2018
11:56:40
SELECT GROUP_CONCAT(id SEPARATOR ', ') AS ids GROUP BY soundex(firstname) HAVING COUNT(id) > 1
Вряд ли я сам смогу переделать твой пример, под свои нужды (а возможно это и не возможно). Я скажу, что требуется: Есть таблица user с firstname и lastname Мне надо найти всех юзеров, имена которых (одновременно firstname и lastname) 1) равны между собой ИЛИ 2) входят друг в друга по LIKE, т.е. Alexander Schultz = Alex Schultz = exander Schult ИЛИ 3) равны по алгоритму soundex

Artem
18.04.2018
12:05:26
сорри, что не в тему комьюнити, но может кто знает нормальное живое java комьюнити? мне иногда кажется, что это самый нормальный тг-канал)

Andrew
18.04.2018
12:05:57
Обьясните, почему симфони отказалась от поддержки hhvm?
для того чтобы что-то поддерживать, нужно, чтобы хотя бы кто-то из кор тима его юзал. А полтора индивидуума, которые симфу на hhvm гоняют в полупродакшне — не целевая аудитория

Timur
18.04.2018
12:12:36
Тебе нужно просто перечислить всех таких пользователей или знать какой пользователь на какого похож?
Мне нужно перечислить все пары с их ид. Потом результаты занесутся в таблицу dublicates

Shmaltorhbooks
18.04.2018
12:13:15
а какая цель этого мероприятия?

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