
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

Big_Shark
09.02.2017
20:40:01

Pavel
09.02.2017
20:41:09

Roman
09.02.2017
20:41:19
{{ path(route, query|merge({(pageParameterName): page})) }}

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

Alexey
09.02.2017
20:44:53

Heorhi
09.02.2017
22:44:49

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
между скриптом и апи подними кеш, решит половину проблем
ну это если можно кеш юзать

finkel
10.02.2017
08:51:09

Виталий
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

Виталий
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


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

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

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

Sergey
10.02.2017
09:14:59
да

Виталий
10.02.2017
09:15:12

Rodion
10.02.2017
10:09:46