Юрий: P.P.S всё зависит от класса ридера в контейнере. Если там CachedReader со сборкой в файловую систему - да, на проде оно не будет использоваться и читаться, а будет браться из кеша (пока он существует).
Юрий: нужно смириться с тем, что симфони очень быстрый и легковесный на небольших проектах, если разработка тяжёлая, то там вклиниваются кернел эвенты, добавляются секюрити, регаются тысячи классов в контейнер и средненький проект начинает весить под 20 метров на запрос, работая со скоростью ленивого осетра.
Т.е. удаление аннотаций - это экономия на спичках, скорости оно не прибавит, т.к. не кешится в исполняемые опкоды. Просто увеличивает объём занимаемой озу и увеличивает время построения AST. Но с таким же успехом можно просто убрать какой-нибудь бандл из проекта. Нужные реальные замеры и тесты, но отличий более чем в 1% я, почти уверен, не будет.
P.S. У фронтэнда своя болячка, там объём кода влияет на скорость по экспоненте. Если бы каждый класс подключался по http, а не брался из файловой системы или оперативы, вот тогда стоило бы думать однозначно на счёт уменьшения их объёма. Так что сравнивать со сборками через gulp\webpack\etc - не корректно.
MaxKorz: декларативное программирование не является прямым исполняемым кодом в отличие от императивного. Аннотации являются средствами реализации подходов декларативного программирования, например маппинг данных в сущностях/моделях, роутинг или независимые от самого фрейма подходы, вроде контрактного программирования (ака DbC например в пакете php-deal), включая аспектно-ориентированное программирование. Ну и прочее.
Так что подытоживая, тут вопрос не в спичках. Аннотации довольно давно стали таким же инструментом программирования в современном php, как и сам исходный код и вырезать конкретно куски доков (т.е. входящие в стандарт PSR-5), оставляя логику при этом как минимум каждый месяц и тратить на это неделю времени... Сомнительное удовольствие.
Создание нового объекта без уничтожения не увеличивает оперативу, изменение одного поля в этом объекте увеличивает оперативу ровно на один элемент zval контейнера. В том случае, если один из объектов выходит за пределы рабочей области и на него не остаётся ссылок - создание нового объекта занимает оперативу старого объекта.
LLIuLLIMan: на тостере нет лички, хороших авторов курсов не знаю, а себя рекламировать не собираюсь.
Если в целом, кто действительно грамотные знания давали на моём опыте - это разве что господин Борисов, преподаватель в МГТУ и Матвеев - бывший преподаватель в ДНТТМ. В теории, можно в виде свободного посещения к первому ходить, если попробовать договориться. Но там везде основы.
Sayto: зачем - хз, аргументация простая - в инете полно "спецов", которые может что-то и могут предложить, но по-факту ничего из себя не представляющих. Я не буду утверждать, что все, кто не работают в крупных IT компашках - ничего не умеют, т.к. это просто глупо, но то, что шанс напороться на "мутного типчика" в таких заведениях стремиться к нулю - очевидный факт.
1) У книг есть огромный минус - они устаревают за пару-тройку лет.
2) Онлайн курсы почти всегда от тех людей, которых я призываю обходить стороной.
2.1) Стримы - на них надо тратить излишне много времени и они профита мало какого дают на практике.
3) Университеты и институты - тоже самое что с книгами, люди оторваны от мира и последние N лет не практиковались и безбожно устарели, дай боже если попадётся такой препод, который осознаёт это и вкладывает в голову именно знания "вне времени" - алгоритмику, базовые концепции и прочее, а не практическую часть по какому-либо языку.
4) Стажировка - может быть, но если это мелкая компашка, то см. п.2 и п.3 - люди непонятно какие.
5) Персональные занятия с тем чуваком, которого видел и уважаешь - самое оно. Постучись в личку, спроси, мол так и так. Ну и пошло-поехало, все ведь люди =)
Не советую, человека вконец запутает. MVC в понимании большинства веб-разработчиков совсем не MVC в понимании других специалистов. Разрабатывать веб-приложения на нормальном MVC же для веба - это антипаттерн скорее и подозреваю, физически невозможно, т.к. отсутствует постоянное соединение с сервером.
0leg5ergeev: всё зависит от реализации. Читать весь код что внутри, уж прости, не особо охота. Твой пример на jsfiddle вообще не работает, так что я даже оценить не могу. Так что описал проблему - в указанном контексте vm отсутствует поле products.
Александр +: учитывая то, что в этих "старых браузерах" половина интернета не будет работать, подозреваю, что ответ скорее положительный. Некоторые из сервисов гугла требуют минимум IE11: https://support.google.com/a/answer/33864?hl=en Gmail, если не путаю - IE10+ и проч. Да и вообще в jquery довольно мало смысла, некоторые операции на ванилле даже быстрее пишутся, чем используя jq.
Сразу видно Js'ера не знакомого с пыхом. У меня откровенное отвращение к JS как к языку, который настолько полон костылей и недоделок, что несогласованность функций в PHP - это детский лепет. Взять к примеру полную несовместимость yield с async+await, отсутствие нормальной работы с декораторами + пропертями ну и как крайний пример - это набор из common, amd, umd, system и прочего. За такое надо руки отрубать. Как верх извращений - можно понять логику работы вебпака, люди откровенно обкурились выдумывая его.
В этом плане пых - идеален. ;) Не судите по языку, не зная его полностью. Доллары в пыхе позволяют делать распаковку значения из переменных и визуально отличать переменные от константных конструкций, что в JS просто невозможно.
Макс: проверял же, MySQL версии 5.7.16, данные выдаёт аналогично. Коллейшн utf8_general_ci.
В любом случае, даже учитывая то, что в просьбе помочь упоминалось "желательно без подзапросов, т.к. с подзапросами я и сам могу справиться" - спасибо за помощь. Проблему решил немного иначе, просто переархитектурировал структуру БД так, что запросы на получение данных стали более простыми.