@symfony_php

Страница 99 из 1418
Sergey
09.02.2017
18:54:17
finkel
09.02.2017
18:56:42
а ты в конце испыталки решаешь или если дошел до конца то скорее да чем нет?)
и вообще как часто ты говоришь нет на испытательном сроке)

Sergey
09.02.2017
18:57:17
Он возможно вообще много о чем не знал)
<?php $period = new DatePeriod( new DateTime('2017-01-01'), DateInterval::createFromDateString('1 day'), new DateTime('2017-09-09') ); foreach ($period as $dt) { if (in_array($dt->format("N"), [6, 7])) { echo $dt->format('Y-m-d').PHP_EOL; } }

я принят?)

Google
Dan
09.02.2017
18:57:51
я принят?)
Ты нанят

Выпить хочешь?

Sergey
09.02.2017
18:58:09
хочу, но нельзя ?

Big_Shark
09.02.2017
19:00:03
@Enleur ну мы можем это уже обсудить)

Sergey
09.02.2017
19:01:10
давайте лучше обсудим http://symfony.com/blog/new-in-symfony-3-3-getter-autowiring

я считаю что это дно. а вы?

не сам автовайринг, а идея getter injection

Big_Shark
09.02.2017
19:04:46
дно какоето

Sergey
09.02.2017
19:05:46
реализация только забавная разве что

Big_Shark
09.02.2017
19:40:47
Вопросик, а можно както доктрину заставить генерить ентити по стандарту пхп7

или 7.1

Sergey
09.02.2017
19:47:39
наверное еще никак. это не доктрину нужно заставлять, а sensio generator bundle

можешь даже законтрибьютить им) я думаю они будут рады

Google
Big_Shark
09.02.2017
19:49:04
спс гляну

Pavel
09.02.2017
20:38:27
Как через Twig создать линк на роут и не писать все параметры, а лишь заменить один? У роута параметры query и page, нужно создавать линк только заменяя page, без прописывания query

Pavel
09.02.2017
20:41:09
Big_Shark
09.02.2017
20:42:34
Можно подробнее?
class AppExtension extends \Twig_Extension с отдельной функцией.

Alexey
09.02.2017
20:44:53
@Alien6Killer вроде у себя на проекте юзал активно
Да, я даже реализовал свой cas для редиса

Pavel
09.02.2017
22:45:20
Так сделал {{ url(app.request.attributes.get('_route'), app.request.query.all|merge({page: pagination.page - 1})) }}

Heorhi
09.02.2017
22:50:42
Норм вроде. Главное работает. Смотри страницу в минуса тока не загони)

Народ, кто что для кеширования юзает. Амазон, 6 серваков, смотрю куда от мемкеша уйти. Что посоветуете?

Sergey
09.02.2017
23:09:12
https://github.com/symfony/symfony/pull/21530

Алексей
10.02.2017
07:38:12
Народ, вопрос. Есть ли какой-то инструмент для генерации документации по сущностям Doctrine? Суть проблемы в том, что нужно что-то типа автогенерации как phpdoc, но при этом чтобы ещё в документацию попали метаданные содержащие имена полей в таблицах и т.п. То есть, грубо говоря, автоматически сгенерить документацию по схеме БД.

Дмитрий
10.02.2017
07:41:17
ребята как вы тестируете новичка нужно проверить знает претендент симфони или нет, простую задачку ,которая решается за 1-2 дня

Алексей
10.02.2017
07:42:10
У нас для этого тестовое задание в виде проекта на Symfony, в который нужно внести изменения. Обычно по тому, как именно он реализовал, как организовал код и где что написал, становится ясно, что он (новичок) собой представляет.

Stepan
10.02.2017
07:43:36
можешь даже законтрибьютить им) я думаю они будут рады
У меня есть проект на эту тему, но на пхп-парсере. Есть желающие попилить может?

Всё сырое, но суть, думаю, ясна https://github.com/kix/generator-bundle

В старгейзерах немножко свэга :)) https://github.com/kix/generator-bundle/stargazers

Google
Stepan
10.02.2017
07:50:02
Конкретно нужны юзкейсы. И идеи о том, как сконфигурить. Написал из-за того, что выбесил Твиг в SensioGenerator, плюс тот факт, что при генерации, например, контроллера юнит-тесты тоже генерятся автоматом, и пофиг, что ты предположим ПХПЮнитом даже не собираешься пользоваться. И идея в том, что мы бросаем эвент типа «вау, чуваки, тут контроллер генерят», а пхпюнитовый листенер, если он включен, эвент ловит и сам генерит тесты по спеке контроллера А с ПХП-Парсером можно всякое вытворять, типа модификации кода с добавлением return type hints.

Жизни тут скорее всего мало потому что сенсио вообще на генераторы забили как на фигню для нубов. Но вообще я б не отказался для тех же крудов на ресте например из генератора фигарить

Sergey
10.02.2017
07:52:17
Evgeniy
10.02.2017
08:26:29
/link@yetanotherstatsbot

Heorhi
10.02.2017
08:27:01
/link@yetanotherstatsbot

и что это ? -)

Evgeniy
10.02.2017
08:27:41
команда) которую телеграм предложил

думаю статистика должна быть

/stat@combot

Combot
10.02.2017
08:28:02
combot.org/chat/-1001091570538

Heorhi
10.02.2017
08:31:28
Виталий
10.02.2017
08:49:22
Коллеги, подскажите как лучше всего построить архитектуру которая будет гарантировать получение ответа от АПИ стороннего сервиса? Например есть такая задача: нужно получить 10 объектов по pk из апи сервиса A и записать в базу. Можно просто в цикле пройтись и отправить 10 запросов, но что делать, если какой-то из запросов вернет ошибку? Нужно ее зарегистрировать и повторять запрос до тех пор, пока он не вернет нужный результат. Есть мысль выдавать заданий Gearman`у. Но может есть путь проще?

Heorhi
10.02.2017
08:50:16
и повесить всё нафиг -)

Виталий
10.02.2017
08:50:22
Самая распространенная ошибка - many requests

Heorhi
10.02.2017
08:50:30
у меня пять попыток и ухожу по таймауту

Sergey
10.02.2017
08:50:45
ну retry без ограничений у тебя будут бесконечные опросы. так не надо делать)

Heorhi
10.02.2017
08:50:50
между скриптом и апи подними кеш, решит половину проблем

ну это если можно кеш юзать

Виталий
10.02.2017
08:51:10
давайте свои кейсы подробнее :)

Google
Виталий
10.02.2017
08:51:30
между скриптом и апи подними кеш, решит половину проблем
а что кешировать-то? запросы каждый раз уникальные

Admin
ERROR: S client not available

Heorhi
10.02.2017
08:51:35
попроси формочку сделать)
с collectiontype и трансформерами -))))

Виталий
10.02.2017
08:52:28
в германе и правда может быть вечный круг запросов... есть еще варианты?

Sergey
10.02.2017
08:53:58
Коллеги, подскажите как лучше всего построить архитектуру которая будет гарантировать получение ответа от АПИ стороннего сервиса? Например есть такая задача: нужно получить 10 объектов по pk из апи сервиса A и записать в базу. Можно просто в цикле пройтись и отправить 10 запросов, но что делать, если какой-то из запросов вернет ошибку? Нужно ее зарегистрировать и повторять запрос до тех пор, пока он не вернет нужный результат. Есть мысль выдавать заданий Gearman`у. Но может есть путь проще?
делаешь очередь, скажем на кролике. туда пишешь все что нужно опросить делаешь вторую очередь DLE, из которой по таймауту будут выбрасываться задачи обратно в основную очередь. в нее пишешь те что фейляться. когда фейляться навешиваешь счетчик. после 3х попыток просто логишь эту запись и присылаешь нотифай поднимаешь N количество консьюмеров, которые опрашивают апи. если где-то случился too many requests, пишешь в редис или куда-нибудь в мемкеш об этом. на каждой итерации демоны проверяют кеш, и если там есть блокировка, тогда они мирно сидят в слипе и ждут пока она пройдет

есть еще вариант сделать без кроликов и редисов через multicurl, но вариант сложнее и хреновее масштабируется

Stepan
10.02.2017
09:01:02
В сенсио? Ну, там сначало надо дофига переработать просто

Чтобы покрыть те кейсы, которые сейчас генерятся

Виталий
10.02.2017
09:04:31
делаешь очередь, скажем на кролике. туда пишешь все что нужно опросить делаешь вторую очередь DLE, из которой по таймауту будут выбрасываться задачи обратно в основную очередь. в нее пишешь те что фейляться. когда фейляться навешиваешь счетчик. после 3х попыток просто логишь эту запись и присылаешь нотифай поднимаешь N количество консьюмеров, которые опрашивают апи. если где-то случился too many requests, пишешь в редис или куда-нибудь в мемкеш об этом. на каждой итерации демоны проверяют кеш, и если там есть блокировка, тогда они мирно сидят в слипе и ждут пока она пройдет
так, я понял что в кролике есть две очереди: рабочая и для ошибок. Рабочую слушают демоны и выполняют запросы. Если в ходе выполнения запроса возникла ошибка, тогда прямо тут на месте пробует еще 2 раза и если ошибка не ушла, тогда логируем это в лог и помещаем запрос в очередь ошибок. Но как дальше обрабатываются эти ошибочные запросы?

Sergey
10.02.2017
09:05:23
>огда прямо тут на месте пробует еще 2 раза и если ошибка не ушла не. не прямо тут. там задержка будет в минуту скажем(ну или сколько поставишь)

если она не ушла за 3 попытки, где гарантия что уйдет через 5 попыток?

>помещаем запрос в очередь ошибок. Но как дальше обрабатываются эти ошибочные запросы? кролик с TTL помещает сообщения обратно в рабочую очередь

т.е у тебя вышла ошибка, помещаем на минуту в отстойник, через минуту это сообщение перемещается в основную очередь и обрабатывается как обычно

Виталий
10.02.2017
09:06:48
ааа

то есть, если в ходе выполнения запросы возникла ошибка то мы помещаем ее в отстойник на N минут, и потом через время закидываем ее обратно в основную очередь.

Sergey
10.02.2017
09:07:55
да

Виталий
10.02.2017
09:09:14
да
ок, а как организовать это закидывание обратно? Ты что-то про редис писал ...

я так понял что кролик сам такого не умеет

Google
Sergey
10.02.2017
09:10:46
это как раз таки кролик умеет https://www.rabbitmq.com/dlx.html

Виталий
10.02.2017
09:12:04
это как раз таки кролик умеет https://www.rabbitmq.com/dlx.html
отлично! Тогда зачем редис\мемкеш? :)

Sergey
10.02.2017
09:12:15
для хранения блокировки

у тебя ж одно API на всех, которое говорит "чувак, слишком дохуя запросов от тебя, посиди подожди немного, а потом опять присылай запросы"

вот для этого и нужна распределенная блокировка всех демонов

Виталий
10.02.2017
09:13:38
Любой демон может заблочить всех на время, чтобы те посидели тихонько :)

Sergey
10.02.2017
09:14:59
да

Rodion
10.02.2017
10:09:46
попроси формочку сделать)
уже не раз порывался поплакаться про формы)

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