
Vitaliy
11.09.2017
08:58:26
Есть способ удалить свою тему на форуме клуба? А то неточно задал вопрос, в итоге тема пошла немного не так и не туда(да еще и как камень преткновения послужила)

Иван
11.09.2017
09:00:01

Vitaliy
11.09.2017
09:02:02
Модератор создал в мусорке "флейм из <тема>", но честно, неудобно мне, ибо создал такую ситуацию, что там и пофлеймили, да и особенно неудобно за то, что не пояснил правильно сразу то, о чем спрашиваю

Adel
11.09.2017
09:35:39
что за тема?

Google

Adel
11.09.2017
09:41:52
а.. дошло. забей. там не ты виноват

Dmitry
11.09.2017
10:59:24
хотя погуглить сам мог ;) эти вопросы обсасываются часто в разных форумах


Kirill
11.09.2017
11:21:48
Всем привет!
столкнулся с проблемой создания архива zip и отдачей его юзерам.
Задача была следующая: Когда юзер нажмет на кнопку "Скачать все документы", должен сформироваться архив (все файлы, разложенные по папкам) и система должна отдать его юзеру.
попробовал два варианта реализации:
1. попытался создавать через ZipArchive. Все круто, все супер, работало... когда было не так много файлов.
Далее заметил, что ZipArchive начал умирать, не отрабатывал до конца. Оказалось что когда слишком много файлов в архиве и общий размер превышает 1 ГБ он не может отработать.
Да и потом слишком долго ждал юзер пока сформируется архив, особенно если несколько юзеров одновременно нажимали на кнопку "Скачать все документы". Вариант отпал.
2. начал формировать архив в определенное время по крону из консоли, а далее юзерам выдавал готовый архив. Работало.. но стало забиваться слишком много места на диске.
По второму варианту, изначально я создавал каталог, копировал туда все файлы (нужные юзеру) и потом уже зиповал этот каталог, после чего каталог удалял.
кто нибудь с подобным сталкивался? Может есть еще варианты? Спасибо!


Pavel
11.09.2017
11:32:09
Ну так старый архив надо удалять при создании нового и не будет заниматься место лишнее

Kirill
11.09.2017
11:34:02
Нет, так не получится. Таких архивов может быть много и все они разные по набору документов и привязаны к одной сущности но к разным записям. к примеру: Архив 1 относится к записи 1 таблицы T1, Архив2 относится к записи 2 таблицы T1 и тд..

Adel
11.09.2017
11:34:23
1.
только кнопка должна запускать воркер. у которого будет памяти дофига. а юзер будет видеть лоадер

Pavel
11.09.2017
11:34:56
Ну тогда еще есть компромиссный вариант ставить генерацию архива в очередь и отдавать пользователю когда будет готово.
Иначе просто попросить у админов больше места на харде. По другому никак не впихнешь не впихуемое.

Kirill
11.09.2017
11:38:12
кто то мне еще советовал использовать mod_zip для nginx, но руки еще не дошли протестить...смысл там вроде простой. формируется массив линков до файлов и отдается юзеру примерно так
header('Content-Disposition: attachment; filename=' . $archiveName);
header('X-Archive-Files: zip');
echo implode("\r\n", $zip_files) . "\r\n";
но пока ничего не могу сказать за скорость работы..

mishaikon
11.09.2017
12:36:24
привет всем, рад что нашел первый проф. чат единомышленников )

Dmitriy
11.09.2017
12:36:43
Их всего 3 =)

Google

Kirill
11.09.2017
12:37:51
а как то нужно отдать...

Dmitriy
11.09.2017
12:38:18
Вопрос пользователь может подождать генерацию файла ?

Pavel
11.09.2017
12:38:35
Класть файл рядом на диск и давать юзеру ссылку

Kirill
11.09.2017
12:38:46
нет. гиговый файл может и час формироваться))
Павел, да, скорее всего так и будет. Сейчас думаю как можно разбить этот гиговый архив на несколько архивов, и дать право юзеру прочекать что именно он хочет взять и потом уже выплюнуть ему несколько архивов на скачивание.

Dmitriy
11.09.2017
12:41:15
Не юзать пхп тогда. exec ('zip '). Быстрее файл с генерируется
Если может ждать то делаем как написал Павел.
Пользователь нажал на кнопку.
Генерируем в воркере. как готово отдаем ссылку юзеру. и в течении сколько то часов удаляем файл. Если место жалко тупо их хранить постоянно.

Adel
11.09.2017
12:50:34
Что я и посоветовал.

mishaikon
11.09.2017
12:53:25

Gleb
11.09.2017
12:55:56

mishaikon
11.09.2017
12:58:17
ну допустим обращение не напрямую к файлу, а через скрипт, который отдаст файл юзеру через fread и т.п., при этом удалив его после, элементарно ...

Dmitriy
11.09.2017
12:58:41
Бедные 1 гб архивы =)

mishaikon
11.09.2017
12:58:55
некий download.php , если присмотритесь, все репрозитарии файлов так работают

Dmitry
11.09.2017
13:09:06
mod_zip хороший вариант, если выделить отдельный nginx на это

Vitaliy
11.09.2017
13:44:33

Dmitry
11.09.2017
13:45:37
Возможно там другой случай был. Например, пароль для доступа в какой-то апи, ну т.е. случай, когда исходный пароль нужен для дальнейшей работы на сервере.

Vitaliy
11.09.2017
13:48:02
Просто это было в бд user_accounts. Вообще, когда увидел - сначала был в шоке, а потом задумался, что может я чего-то не понимаю...

Dmitriy
11.09.2017
13:48:49
У нас шифруются все сторонние логины пароли для api. Конечно шифр нам известный. но зато в бд ничего не понять.

Dmitry
11.09.2017
13:49:42
Это все-равно полумера, конечно. Такие случаи нужно выносить в обособленные микросервисы, где уже спрятан пароль.

Dmitriy
11.09.2017
13:51:29
Если это мне. то это требование сторонних api. с кем мы интегрируемся.

Dmitry
11.09.2017
13:53:39
Я про то, что нужно делать микросервис-прослойку между своим приложением и стронним АПИ. Максимально простую, чем проще такой микросервис, тем сложнее там ошибку посадить. Ну и регулировать число лиц, у которых есть доступ к этому сервису.

Google

Dmitriy
11.09.2017
13:57:13
Ну такое выносить в msa мне кажется перебор. мне не нравится концепция msa ради msa.
В нашем же случаи пароли узнают если сольют бд и код.
Даже работники не смогут слить доступы. доступа к бд продакшена то у них нет.

Dmitry
11.09.2017
13:58:05
> В нашем же случаи пароли узнают если сольют бд и код
Ну не такой уж и редкий случай

Dmitriy
11.09.2017
13:59:59
Это возможно, но мало вероятно со стороны 3х лиц. Если только работники спецом что-то не сделают. но опять же к проду доступа нет. да и к ssh CI

Dmitry
11.09.2017
14:00:40
ну я скорее не про работников, а про уязвимости

Серёга
11.09.2017
14:44:38
Всем привет, Protocol Buffers для php реализовывал или собирал кто?

Василий
11.09.2017
19:17:02
нужен клон сайта freelansim.ru.
Есть какой-нибудь готовый движок, где реализован максимум функционала для быстрого старта?

Иван
12.09.2017
04:29:05

Olga
12.09.2017
08:26:22
Привет! Вакансия ведущего разработчика по ссылке: https://goo.gl/rnyNuy

Vladimir
12.09.2017
08:56:21

Vogel
12.09.2017
09:01:59

Роман
12.09.2017
12:58:38
Всем привет, Я начинающий в php (да и в программировании в целом), и вот у меня проблема, поиски решения которой завели меня сюда:
Есть массив:
array(1) { [0]=> array(3) { ["id"]=> string(2) "10" ["old"]=> string(17) "https://*****.com/" ["new"]=> string(5) "1Y0OR" } }
моя задача в переменную выдернуть "https://*****.com/", которая под ключом(?) "old", для дальнейшего редиректа.
Вот что я пытался использовать: header("Location: $link['old']");
Но Var_dump $link['old'] выдаёт NULL

Igor
12.09.2017
12:59:59
$link[0]['old']

Роман
12.09.2017
13:00:35
Спасибо.

Сергей
13.09.2017
05:40:51
Всех с профессиональным праздником!

sergey
13.09.2017
05:43:48
Привет, каким?

Aleserche
13.09.2017
05:49:11
256

Олег
13.09.2017
05:49:30
2^8

Иван
13.09.2017
06:11:03

sergey
13.09.2017
06:13:46
так тут же пхп =)

Alexandr
13.09.2017
06:15:58
Тямнота - мы давно на bigint перешли, у нас не переполняется ;-)

Google

sergey
13.09.2017
07:07:48
=)

Ilya
13.09.2017
14:47:16
Кто знает как определить, находился ли пользователь на сайте больше 5 секунд?

Dmitry
13.09.2017
14:47:54
А что значит "находится на сайте"?
Вот я пишу в телеграме, а у меня на втором экране сайт открыт - я нахожусь на сайте или нет? ;)

Andrei
13.09.2017
14:48:25
"вызвать гадалку"

Ilya
13.09.2017
14:49:08
От момента подключения к серверу до момента отключения

Dmitry
13.09.2017
14:49:58
От момента подключения к серверу до момента отключения обычно 100-200мс, в отдельных случаях - до секунды. Больше уже очень плохо ;)

Pavel
13.09.2017
14:52:03
Обычно считают по активной вкладке
От момента загруза страницы до того как вкладка закрывается или теряет фокус

Andrei
13.09.2017
14:53:37
google analytics yandex metrica - js проверяют скролл, движение мыши, нажатие мыши, нажатие клавиш

Ilya
13.09.2017
14:53:38
Спасибо за идею

Dmitry
13.09.2017
14:54:53
Если вкладку только, то есть Page Visibility API

Остап
13.09.2017
15:02:02
С днем программиста всех!!!

Дмитрий
13.09.2017
21:53:54
всем доброй ночи. #вопрос - нужно курлом обратиться к двум страницам, но так, чтобы при обращении к первой (в ней пишутся параметры в сессию), и после обращения к другой странице, на второй странице было видно данные сессии
Все в разрезе одного домена
и можно ли в разрезе одного curl_init делать несколько curl_exec()
решил вопрос через file_get_contents ))))

Максим
14.09.2017
09:57:12

dypa
14.09.2017
11:00:33
шутка про HR за 300

Vyacheslav
14.09.2017
13:07:06
GraphQL придерживается ктось?

Dmitry
14.09.2017
13:30:14
https://t.me/prophp7 вот тут @fes0r говорил, что сейчас занимется им

Google

Dmitriy
14.09.2017
13:39:37
У нас тоже graphql есть

Dmitry
14.09.2017
13:44:55
Мне вот кажется, что немного хайповая технология.... у нее есть плюсы, но для весьма крупных проектов со сложным апи

Dmitriy
14.09.2017
13:57:24
Ну у нас аналитический сервис. вот тут GraphQL хорошо зашел . парнтеры могут просто получить любые данные через него. В остальном не вижу смысла в нем

Dmitry
14.09.2017
13:58:00
ну да, когда много разных данных и апи для третьих лиц, наверное это идеальное решение

Dmitriy
14.09.2017
14:04:10
Минусов тоже полно. не понимаю что так все суют GraphQL во все дыры
Скажем под ждаву нет не одной нормальной реализации.

dypa
14.09.2017
16:05:04
мне показалось что подходит для апи, где нужно реализовать через него queryBuilder
следующим шагом будет апи с своим dsl и маленьким интерпретатором