Eshently
английская версия легче читается и понимается
I need implement basic scraping websites.I don't steal data. It's just tech task for get offer.
So, I worring with app performance, 'cause I have to implement multiple requests to different websites and get data from them and return back it as json or array all in the one collection.
So my question about parallel jobs. Performing multiple tasks at the same time, plus waiting for the last request
Eshently
I hope I can explain myself clearly.
Eshently
So, any advice, tutos or anything that might tell me what to do...
Vadim
Maxim Kainov
Maxim Kainov
Sander
Всем привет,
помогите пожалуйста разобраться, как сделать чтоб выводилась кастомная 404 ошибка, при помощи twig templates,
читал документацию, пробовал разные варианты - но не получается настроить,
продолжает подсасывать twig шаблоны из vendor-а.
Vadim
Всем привет,
помогите пожалуйста разобраться, как сделать чтоб выводилась кастомная 404 ошибка, при помощи twig templates,
читал документацию, пробовал разные варианты - но не получается настроить,
продолжает подсасывать twig шаблоны из vendor-а.
Вешаешь слушатель на событие KernelEvents::EXCEPTION, проверяешь, что пришла 404 ошибка, переопределяешь респонс своим, где рендеришь ошибку. Работает безотказно.
Alexander
https://symfony.com/doc/current/controller/error_pages.html
Все проще простого
Sander
делюсь решением
Sander
https://pastebin.com/kkZKyFnS
Sander
https://pastebin.com/Zkw59c9x
Alexander
Sander
Vadim
Sander
я перезаписываю текущие конфиги, а не добавляю какой-то дополнительный listener
Sander
Liskov Substitution Principle
Sander
но если я не прав, то я всегда готов принять критику в адрес своего кода,
Sander
как я понял он должен вообще сам подсасываться симфони,
Eshently
Асинхронный PHP
Подскажите куды копать.
Есть запрос от пользователя, на который нужно как можно скорее ответить.
Бизнес логика такова что надо обращаться к третьей стороне, получить данные от нее, обработать их и отправить обратно их в виде одной коллекции.
Второй день копаюсь в данной тематике, пока не пришел к решению.
Как называется мой кейс, какие инструменты есть для этого и как лучше поступить?
Стек: nginx, symfony, php7.1
Пока пришел к выводу что
1 Нужно разделить каждый запрос третьей стороне как подзадачу
2 дождаться ответа от всех подзадач
3 и отправить обратно ответ юзеру
Для коллекции использовать какой-то storage (session, redis and etc. 🤔), конечный результат каждой подзадачи записывать в этот storage
kix
amphp как вариант, там и клиент, и сервер можно прикрутить
Vadim
Dmitriy
Dmitriy
Имхо очереди
Dmitriy
Флоу такой.
- пользователь запросил контент
- ты быстро создаешь ордер. И возвращаешь клиенту ид ордера.
- при этом ложешь событие в очередь
- крутится воркер который слушает события.
- как только появилось событие, воркер походил по внешним источникам.
- после успешного выполнения, воркер ставит статус ордеру комплетед.
- клиент ходит каждые там 10-15 сек. Если увидел у ордера комплетед. Запрашивает полученные данные у сервера.
Флоу *примерно* такой. Дальше все по ситуации
Eshently
Dmitriy
На симфони
Dmitriy
Там вроде новый компонент мессенджер завезли. Можно попробывать в него
Eshently
Eshently
в общем, ребята большое спасибо за все предложения
реально помогли разобраться во всем этом, теперь буду писать
Вадим
Dmitrij
Привет всем
Dmitrij
как кеши почистить в симфе ?
Dmitrij
php bin/console cache:clear
Dmitrij
не всё чистят
Dmitrij
где то какие то еще остаются
ILΨλ
я на проде так чищу
bin/console cache:clear --env=prod --no-debug --no-warmup
Maks
юзеры погреют)
ILΨλ
так исторически сложилось :(
Dmitrij
удаляю, при этом очищается не весь кеш
Dmitrij
то есть только папка var/cache ?
Alexander
Eshently
Доброго дня всем
Я новенький в symfony,
Как валидировать форму в беке, если мне не требуется база данных для проекта?
То есть у меня нет никаких Entity
После ларки все это непривычно и странно
Vadim
Vadim
И при чем здесь база данных?
Eshently
Vadim
Да уж. Ладно. У форм есть метод configureOptions, где ты в в ключе data_class указываешь класс, на который мапить:
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Filter::class,
]);
}
Кирилл
Ентити просто чего-то описывают. Они и понятия не имеют про базы данных.
Eshently
Eshently
Vadim
А тут что, по-твоему, запрос сразу в базу лезет? Тут то же самое. Учи концепции, а не фреймворки, в общем.
Vadim
Eshently
я практически понял все остальное, только с валидацией и формами пока напряг
а так ничего так, мне нравится что можно собирать и/или удалять ненужные компоненты
Eshently
Vadim
Как по мне, Assert\NotBlank() как-то надежнее, чем ['username' => 'required']
Eshently
Anonymous
Подскажите фильтр в твиг, чтобы не читал теги
Vadim
raw
Anonymous
Он на оборот их читатет
Vadim
Что значит "не читал теги"?
Maks
escape?
Anonymous
escape?
Ничего не изменило
Maks
Vadim
striptags
Ты сначала спроси, что он хочет. Он хочет, чтобы теги, которые есть на странице, не показывались и не применялись, т.е. вырезать их.
Maks
так стриптагс как раз про это)
Гречушников
Коллеги, помогите найти ошибку.
Кеш чистил ./bin/console cache:clear
есть сервис, я в него добавил две новых зависимости в аргументы
locale_service:
class: Framework\Src\Common\Service\Locale\Locale
lazy: true
public: true
arguments:
- '@locale_country_service'
- '@locale_timezone_service'
- '@locale_language_service' //—
- '@locale_currency_service' //—
но ловлю
Type error: Too few arguments to function Framework\Src\Common\Service\Locale\Locale::__construct(), 2 passed in /framework/var/cache/Editor/dev/ContainerJxuo1wp/EditorDevDebugProjectContainer.php on line 4529 and exactly 4 expected
не понимаю что с этим делать
Сергей
var/cache возможно со старыми данными
Гречушников
rm -R framework/var/cache/*