если нужно реализовать разную логику для получения платежа, то это уже паттерн стратегия, а не фабрика, фабрика предназначена для создания отднотипных объектов
и делается так
public static function getManager($managerName)
{
// тут может быть логика определения класса менеджера.
return new $managerName();
}
Url::userSettingsUrl($user) вот так делать не надо, надо делать так $this->get('user_manager')->getSettingsUrl($user); а в шаблонах, выводить {{ get_user_settings_url(app.user) }} и т.д
для представления создайте twig расширение, и используйте его в шаблонах, для других мест создайте класс который будет заниматься генерированием таких урлов, и используйте его как сервис, также этот сервис можн оиспользовать в twig расширении
ну а как без проблем-то??)) ищите контакты связывайтесь, спрашивайте, получайте фидбек и увидите, что может вообще вы супер сервис задумали, а может и нет. Ответить вам смогут только реальные владельцы магазинов, не надо сразу с крупными связываться, найдите средние магазины и вперёд!
айди просмотренных лучше хранить в отдельной базе redis (баз там можно много создавать), и использовать соотвествующую структуру для хранения + не вижу смысла хранить всю историю просмотров для одного юзера, обычно ограничиваются каким-то количеством (например 1000) а остальное удаляют.
ОЗУ хватит, если не хватит можн оустановить ещё или горизонтально масштабировать бсистему, но хранить массив с размером до 10000 int значений в поле, как-то не очень, похоже проблема в архитектуре приложения (но может я и ошибаюсь), в вопросе вы не написали, что вам нужно хранить большие данные в одном поле.
вам нужно хранить готовый массив данных, вот его и записывайте в redis, а сессии здесь вообще ни при чём, что такое ActionDispatch::Session::CacheStore я понятия не имею.
кстати в angular очень удобно, так как мы не трогаем основную разметку, а добавляем логику в качестве аттрибутов. а мешанина решается за счёт разделения шаблонов на логические ьлоки и вынос их в отдельные файлы
если сделать правильно, то к чертям надо всё переделывать, но решение всё равно есть, после отправки формы делайте редитект на основной файл, а в нём читайте файл и выводите переменную, как выделали это раньше.
он не плох просто hash предназначен для хранения json структуры, если бы у вам для юзера хранилось 2 значения, то да только hash, а так одно, так что смысла в нём нет.
если нужно реализовать разную логику для получения платежа, то это уже паттерн стратегия, а не фабрика, фабрика предназначена для создания отднотипных объектов
и делается так
public static function getManager($managerName)
{
// тут может быть логика определения класса менеджера.
return new $managerName();
}
$payment->process($order);