@prophp7

Страница 853 из 1387
Dmitry
26.12.2017
14:08:36
и как он работает?

Sergey
26.12.2017
14:09:49
хм... неужто нельзя без fork дочерний процесс породить? я уже не помню...

в целом... по идее копирование памяти происходить не будет...

Google
Dmitry
26.12.2017
14:12:06
да с копированием понятно, там cow везде, да и fork+exec отдельной темой идет... тут скорее сам exec дорогой ... ну, относительно по-этому и говорю, что раздражает, но если начать аргументировать, то оказывается, что по сравнению с затратами на генерацию pdf - сам exec теряется

типа не будешь же ты делать exec cat file что бы файл прочитать ;) а кто-то, может, и на такое способен ;)

Евгений
26.12.2017
18:44:23
Почему PHP Amazon EC2 SDK не работает?

Возвращает класс AWS-клиента

Вместо именно ec2

На питоне все окей

Bohdan
27.12.2017
08:58:32
гайзы. я опять вернулся с вопросом про json schema валидаторы есть для php какие-то, которые поддерживают draft 6 и $data + json поинтеры?

сразу отвечаю на свой вопрос https://github.com/opis/json-schema

указан в implementations на сайте json-schema как единственный с поддержкой draft 6 и draft 7

Stephen
27.12.2017
13:46:58
Всем привет. Вопрос к адептам ReactPHP (или, хотя бы amphp). Как потоком сделать multipart/form-data отправку файла? т.е. нужен некий пайп между ReadableResourceStream() и HTTP клиентом (WritableResourceStream).

https://github.com/reactphp/http-client вообще не умеет multipart/form-data из коробки. Это мы у себя реализовали. Но, кроме всего прочего проблема в заголовке Content-Length

Борис
27.12.2017
14:00:42
https://github.com/reactphp/http-client вообще не умеет multipart/form-data из коробки. Это мы у себя реализовали. Но, кроме всего прочего проблема в заголовке Content-Length
Скорее всего из коробки никак. Да и вообще не понятно, зачем вам такие сложности именно в асинхронном php. Можно просто на пхп принимать асинхронные события и куда-то (редис, реббит) их складывать. А дальше старым добрым синхронным PHP их разгребать, обрабатывать (вот тут и посылать сложные запросы) и обратно отдавать события ответом. Интересно, Вы уже прям в проде под нагрузкой пользуетесь реактом?

Stephen
27.12.2017
14:02:48
Google
Борис
27.12.2017
14:03:09
Ну на крайняк, вы можете скомуниздить код отсюда https://github.com/guzzle/guzzle/blob/master/src/Handler/CurlMultiHandler.php чтобы использовать неблокирующий curl (если не ошибаюсь, curl умеет в multipart/form-data)

Stephen
27.12.2017
14:04:34
Ну на крайняк, вы можете скомуниздить код отсюда https://github.com/guzzle/guzzle/blob/master/src/Handler/CurlMultiHandler.php чтобы использовать неблокирующий curl (если не ошибаюсь, curl умеет в multipart/form-data)
Сам мультипарт мы реализовали немного костыльным, но вполне приемлемым способом) Там же просто определенный формат запроса надо сделать, и пару заголовков добавить

Борис
27.12.2017
14:04:41
В проде еще не пробовал, но под нагрузкой отдельные модули тестировал. Результаты радуют. Очереди можно и без реакта вообще делать, но, смысл в них тогда? Тут задача хотя бы Content-Length получить без блокирования. Либо, может как-то можно без него отправить?
Я же не знаю зачем вы вообще реакт всунули ))) У меня был опыт, чатик на PHP, потому что не было тогда centrifugo и не было других разрабов? Мы вебсокет открыли и слушали (вот для этого и нужен был реакт) А дальше все синхронно.... работало норм, потому что воркеры умирали (php must die)

Сам мультипарт мы реализовали немного костыльным, но вполне приемлемым способом) Там же просто определенный формат запроса надо сделать, и пару заголовков добавить
Ну, да, ваш К.О. - все протоколы передачи данных - это "просто отпределенный формат" Просто я тогда не понимаю, в чем у тебя вопрос то?

Stephen
27.12.2017
14:06:24
@benbor » Я же не знаю зачем вы вообще реакт всунули ) потому что никто не умеет в node.js ))) » в чем у тебя вопрос то? Как без блокирования посчитать размер файла?)

Maksim
27.12.2017
14:11:13
react filesystem

Stephen
27.12.2017
14:12:59
react filesystem
Вот только про размер файла я у них ни слова не нашел. https://github.com/reactphp/filesystem

Maksim
27.12.2017
14:13:52
https://github.com/reactphp/filesystem/blob/master/src/Node/File.php#L63 srsly?

Stephen
27.12.2017
14:15:02
Maksim
27.12.2017
14:16:16
ждёшь пока зарезолвится промис, ну а потом так же тправляешь. в случае с реактом смотреться будет так себе (портянка из промисов), но в целом работать должно

Яўген
28.12.2017
09:19:04
народ, нужен совет. Задача такая: по потере фокуса с поля надо проверить, существует аккаунт с таким email или нет и, если существует, там своя логика дальше. Юзеры рулятся в своей REST апишке. Не могу придумать какими статусами возвращать инфо о том, что да, чувак с email существует. Пока что вариант: HEAD /users/email@example.com, если нету, вернуть 404 Not Found, если есть 303 See Other c линком на профиль в Location. Собсна, хотелось бы получить подтверждение, что моя идея нормальная, либо совет как сделать вернее

Яўген
28.12.2017
09:29:36
мне только проверить существование надо, данные нельзя возвращать

Sergey
28.12.2017
09:29:50
почему тебе нельзя возвращать данные?

GET /used_emails?email=someone@example.com 204/404

если хочешь

Яўген
28.12.2017
09:30:49
по логике, если пользователь существует, мы, вместо регистрации предлагаем лолгиниться. Только после этого данные можно вернуть

Sergey
28.12.2017
09:31:03
в моем варианте это used_emails (ну или занятые если хочешь)

Яўген
28.12.2017
09:31:17
то есть даже не Users?

Google
Sergey
28.12.2017
09:31:47
да, анонимные чуваки по идее к юзерам доступа иметь не должны,а HEAD должен действовать так же как и GET

проще сделать еще один ресурс

это вполне валидно

Яўген
28.12.2017
09:32:56
ок, тогда мне в моей идее можно 303 на 204 заменить и, в принципе, гуд

ну ресурс всё же users, только action check

ясно, спасибо

Sergey
28.12.2017
09:33:47
но вообще если ты подобное завязываешь на статус коды http и у тебя проект не маленький ты столкнешся с проблемой что тебе их не хватит)

да и потом, чаще удобнее сделать просто всегда 200 и json вида {used: false}

Яўген
28.12.2017
09:34:42
тут всегда сложность выбора

Sergey
28.12.2017
09:34:57
тогда на клиенте я смогу сделать что-то типа

Яўген
28.12.2017
09:35:18
ну проще всегда отреогировать на статус-код

Sergey
28.12.2017
09:35:38
тебе или фронтендеру?

Яўген
28.12.2017
09:36:18
обоим

Sergey
28.12.2017
09:36:29
фронтендеру вообще плевать

если ты сделаешь 204 и 404

Яўген
28.12.2017
09:37:18
даже если думать про запросы не из фронта: вернёшь 2xx, газл скажет - ок, если 404, кинет Exception

да, 204 - норм вариант

тем более, что HEAD

Sergey
28.12.2017
09:38:12
даже если думать про запросы не из фронта: вернёшь 2xx, газл скажет - ок, если 404, кинет Exception
но в этой ситуации отсутствие email-а как и его присутствие не исключительная ситуация, тут нет ошибки

тот и другой вариант по факту корректные

Google
Яўген
28.12.2017
09:38:37
потому и включил email в url

/users/email@example.com

Sergey
28.12.2017
09:39:01
воу воу, не надо так

хотя как хочешь. всеравно у тебя свой вижен

но я все же поясню

Яўген
28.12.2017
09:39:41
по этому поводу ещё думать буду

Sergey
28.12.2017
09:39:54
с точки зрения операции проверки есть такой чувак или нет, фронтендеру нужно будет сделать что-то типа

isUserExists(email).then( () => this.askForLogin(), () => this.emailIsAvailable() );

Admin
ERROR: S client not available

Sergey
28.12.2017
09:40:46
99% что фронтендер твой не будет проверять конкретные статус коды

ему достаточно того что у тебя один в 2xx а другой в 4xx

более того причин для 404 может быть больше чем "нет такого email-а"

у меня был как-то такой метод API который возвращал 200/404 и если чего-то небыло надо было очень важный флоу запустить....

вопервых в силу того что фронтендеры редко статус коды чекают у меня флоу запустился бы как на 404 так и на 500

во вторых, 404 не совсем корректный статус код для операции поскольку, проще всегда говорить что ресурс такой есть но он не занят

если коротко - флоу запустился для пары десятков юзеров хотя этого для них делать не нужно было. И не смотря на то что количество людей было небольшое - проблем я потом хлебнул

Victor
28.12.2017
09:44:39
Ребзя, маленький оффтоп, кто то из тех кто под саком работает, юзает kaleidoscope(+tower/source tree) или cli / стандартной тулзы шторма хватает ?

Артур
28.12.2017
12:35:11
isUserExists(email).then( () => this.askForLogin(), () => this.emailIsAvailable() );
А как так код обрамлять, в телеграмме?

Shmaltorhbooks
28.12.2017
12:36:04
` вот этим вот символом

с обоих сторон выделяй

Google
Shmaltorhbooks
28.12.2017
12:36:39
а если по три символа - будет многострочная фигня

Артур
28.12.2017
12:37:33
Если `, то оно красным делает текст только

code

Shmaltorhbooks
28.12.2017
12:37:52
ну он и моноширинный становится

Like
28.12.2017
12:38:10
isUserExists(email).then( () => this.askForLogin(), () => this.emailIsAvailable() );

Артур
28.12.2017
12:38:24
а в том сообщении просто серый фон и черный текст

Like
28.12.2017
12:38:41
Так?

Shmaltorhbooks
28.12.2017
12:38:46
а в том сообщении просто серый фон и черный текст
это так тема у тебя сконфигурирована

Артур
28.12.2017
12:39:11
? спасибо

Shmaltorhbooks
28.12.2017
12:39:54
code
у меня это сообщение вот так выглядит

сорри за картинки в чатике

Sergey
28.12.2017
12:40:12
\`\`\` your code goes here \`\`\`

слэшики надо убрать конечно

Артур
28.12.2017
12:40:37
спасибо

Shmaltorhbooks
28.12.2017
12:40:40
это будет многострочный

Like
28.12.2017
12:40:59
Screenshot (02:40PM, дек. 28, 2017)



Shmaltorhbooks
28.12.2017
12:41:29
с разрывом строк. а если нужно одно слово в предложении - с обоих сторон слово/слова обрамляешь кавычечками и привет

Артур
28.12.2017
12:42:21
ага) понял, еще раз спасибо)

Батманов
28.12.2017
13:06:00
да и потом, чаще удобнее сделать просто всегда 200 и json вида {used: false}
А если это например GET /users/{id}, то лучше тоже разруливать в json ответе?

Страница 853 из 1387