Конечно возможны. Пых довольно мощный язык, так что защититься от влезания в код можно лишь, так, как делают все люди для песочниц - простым поднятием виртуалок. К примеру, докер. Большинство Ci на нём построены.
rumasterov: это ваш код будет блокировать выполнение. Используйте асинхронные запросы к базе, вроде fetch async драйвера mysqli и никаких блокировок не будет. Любой блокирующий запрос, не важно где (кроме тредов) будет блокировать исполнение асинхронных операций. Я думаю, что это очевидно даже новичкам.
Оффтоп:
1) Use PSR, Luke
2) Проверка на if (self::$db instanceof self) не нужна. Есть же final классы
3) exit - это плохой вариант, есть throw
4) Ну и естественно, да, синглтон тут не нужен. Использовать несколько соединений на БД, не стандартная, но вполне нормальная практика.
У xdebug профилировка не отображает значение переменных, есть только отображение функций (больше всего кушает PDO, но там всё ок, память чистится), а по шагам бегать что происходит... Ну проще повеситься =)
lilikon: lilikon: если всё же не понятно, то, думаю, это пока не тот уровень за который стоит браться. Самое простое решение в этом случае будет ajax опрос, делается элементарно на чистом js:
Юрий: ну на этом тогда мои полномочия - всё. Но я всё же склоняюсь к тому, что уровень поддержки повысится несоизмеримо с выгодами, учитывая что все подобные манипуляции мы уже проходили в 2000х годах, так что настроен крайне скептически.
Юрий: предлагаю просто протестировать на фейковых файликах, думаю это займёт минут 10, не больше. С другой стороны - что мешает просто отрубить сохранение док-блоков в опкеше? Будет, по-моему, совершенно тот же результат в итоге.
Юрий: P.P.S всё зависит от класса ридера в контейнере. Если там CachedReader со сборкой в файловую систему - да, на проде оно не будет использоваться и читаться, а будет браться из кеша (пока он существует).
Юрий: нужно смириться с тем, что симфони очень быстрый и легковесный на небольших проектах, если разработка тяжёлая, то там вклиниваются кернел эвенты, добавляются секюрити, регаются тысячи классов в контейнер и средненький проект начинает весить под 20 метров на запрос, работая со скоростью ленивого осетра.
Т.е. удаление аннотаций - это экономия на спичках, скорости оно не прибавит, т.к. не кешится в исполняемые опкоды. Просто увеличивает объём занимаемой озу и увеличивает время построения AST. Но с таким же успехом можно просто убрать какой-нибудь бандл из проекта. Нужные реальные замеры и тесты, но отличий более чем в 1% я, почти уверен, не будет.
P.S. У фронтэнда своя болячка, там объём кода влияет на скорость по экспоненте. Если бы каждый класс подключался по http, а не брался из файловой системы или оперативы, вот тогда стоило бы думать однозначно на счёт уменьшения их объёма. Так что сравнивать со сборками через gulp\webpack\etc - не корректно.