vicmalkovich, i5/8gb это очень мало для современной разработки. Windows для питона тоже не очень вариант, лучше линукс (или мак, если уже есть с ним опыт, но для разработки по нему тоже мнения расходятся)
Найдите где лежат логи ошибок веб сервера (apache или nginx) и логи ошибок php, после того как найдете, нужно закопипастить ошибку в гугл, 99% что легко решается
Dos,
На каждый тип нотификейшена свой месседж.
посмотрела исходники notifier - лично меня напрягает, что та есть прослойка под messenger, но эти message и messagehandler не расширяют интерфейсы messenger, т.е. как он их подхватит - непонятно. Можно еще в канал поддержки symfony в slack написать, там контрибьюторы часто тусят могут лучше подсказать
Dos,
1.1. Да, event dispatcher
1.2. Да
- в листенере/сабскрайбере создать, заполнить и сохранить NotificationEntity.
- создать класс NotificationMessage, который будет совместим с NotificationEntity (как передать энтити в месседж - документация).
- написать хэндлер для NotificationMessage (который имплементит Symfony\Component\Messenger\Handler\MessageHandlerInterface)
- в листенере/сабскрайбере вызвать MessageBus и задиспетчить ему Notification Message.
NotificationEntity тут нужно только в случае, если помимо непосредственно отправки нотификейшена нужен какой-то сбор данных или статистики по ним, т.е. для самого Messenger это не нужно.
- проверить, что bin/console messenger:consume ловит и обрабатывает сообщение
Я не совсем понимаю, с чем у Вас проблемы с базой) У messenger есть возможность задать разный транспорт для хранения очереди сообщений - можно в обычной базе (нп. mysql) - тогда нужно указать doctrine в качестве транспорта, если нужно использовать брокер сообщений, то можно указать amqp как транспорт. И там и там можно задать асинхронный режим обработки. Также для failed messages и retry обычно указывают doctrine как транспорт.
Я не могу показать свой проект (он под NDA), но там для этого случая нечему помочь - там самописный фреймворк с очередями на редисе, а для понимания messenger лучше почитать тексты из их курса - Messenger! Queue work for later, там до пятого или шестого видео можно смотреть бесплатно, а дальше текст к видео
Имхо такие вещи решаются не на голом языке, нужно ставить какие-то пакеты или сервисы морфологического анализа (если загнать данные в elasticsearch и делать запросы поиска к нему, то он должен анализировать корректно)
Borysenko, тогда надо врубить отображение ошибок в скрипте плюс посмотреть потребление памяти (memory_get_usage(), memory_get_peak_usage()), если будет течь именно память, то надо пробовать рекомендации по парсингу больших xml файлов (XMLReader, как описал Adamos)
Aleksandr231224, если вы упираетесь в непонимание того, как работает многостраничный сайт, то нужно почитать про настройку веб сервера и роутинг (правила перехода на страницы задаются в конфиге веб сервера, а реализация работы этих правил пишется в проекте через роутинг). В каждом фреймворке и цмс это реализуется немного иначе, но достаточно прочесть документацию и все станет понятно
Encoders, думаю лучше декомпозировать - отдельно экшен для заказчиков (для генерации шаблона) и отдельно для услуг, но тут надо смотреть на логику приложения. Главное не смешивать получение всех данных так, чтобы в большинстве мест их потом игнорировать) Это может оказаться лишней нагрузкой на базу
squadbrodyaga, лучше прочитайте котерова, php7. Даже нормальные курсы на английском (symfonycasts, laracasts) не дадут той инфы, что даст нормальная книга, после нее все будет понятнее