Где лучше качество кода?
Все плохоГлобальные переменные — злоНа лицо некий код, который и с сессией работает и с БД — явное нарушение общепринятных принципов, например SRP$dao как инициализирована? Явно не через конструкторИспользование цифры, вот сиди гадай по ней — это плохо, используйте именованную константу. Например 3 — это некий статус для desktop, вот и назовите ее STATUS_DESKTOP, хотя далее...вы обращаетесь к одному методу, который шибко умный — работает с флагами, тем самым нарушая SRP и сам содержит if/else, сделайте просто 2 раздельных метода:getMobileOpinionList()
getDefaultOpinionList()Предикат лучше вынести в отдельный метод isMobileOnly(), тк условия могут поменяться в нем, не будете же везде в if менять по всему проекту
Oбернуть сессию в объект, использовать типы везде, где это возможно.
См. https://symfony.com/doc/current/components/http_fo...
p.s. число 3 вынести в именованную константу.