Поздравляю! Вы на собственном опыте узнали, что такое SQL-инъекция! Все данные, которые вы используете в запросах нужно приводить к безопасному виду. А лучше всего использовать PDO.
Я бы обратил ваше внимание на стандартизированный UUID. Да, он длиннее и 5, и тем более 8 символов. Но он защищён от коллизий. И как плюс поддерживается "из коробки" большинством SQL баз данных (MySQL точно).
Вроде все хорошо и быстро рендерится. Вероятно у вас сетевые проблемы были/есть. Проверьте скорость доступа к Интернет. А также проверьте не установлены ли ограничения на скорость в браузере (Chrome Developer Tools).
Ничего не потеряется, если правильно подготовить миграции. Мы переехали с Битрикс на Yii2 почти безболезненно. Да, для этого нужен толковый разработчик, который напишет скрипты-миграции для переноса/конвертации данных из одной структуры в другую.
Другой вариант: используйте ВАШУ бд от битрикса с любым фреймворком. Как правило, фреймворки не накладывают никаких своих требований на структуру БД.
Комбинированный поиск + dropdown. В dropdown отображаются только те элементы, которые соответствуют строке поиска. Пример реализации select2.github.io/select2/#basics
В Postman данные должны быть введены в режиме `form-data`. Тогда эти данные появятся в массиве $_POST. Проверьте, возможно у вас установлен режим `x-www-form-urlencoded`.
Мне кажется, вы что-то делаете не так. По канонам composer, папка vendor - это "приватная" папка, не доступная извне. Только папка app/web (или аналогичная) может быть доступна пользователям извне.
Как правило, исключения должны срабатывать в тех ситуациях, когда не возможно вернуть user friendly ответ пользователю. Все исключения должны писаться в логи, и не должны выводиться на экран (в production-режиме). Вы же как я понимаю, хотите вывести пользователю статусное сообщение. Так что нет - в вашем случае исключения не к месту.
Не задавались вопросом, почему так a > span сделано в PHPStorm? Потому что есть такое понятие как семантика. Блочные элементы не могут быть встроены в линейные.