Чем грозит использование прямых запросов к БД через DB::select() ? Мне проще написать запрос на SQL или написать сложную процедуру в БД, чем использовать правила Eloquent ORM.
Если использовать привязку параметров в запросах, то инъекция не пройдёт:
DB::select('SELECT * FROM users WHERE id = ?', array($userId));
Опасность представляет непосредственная вставка пользовательских данных:
DB::query('SELECT * FROM users WHERE id = ' . $userId); // НИКОГДА так не делайте!
Я солидарен с вами в отказе от ORM, и всегда использую parameter binding.
Плюсы от использования ORM:
Минусы использования ORM:
Как всегда, использование или неиспользование ORM есть инженерный компромисс, и нужно четко понимать, что и зачем вы делаете.
Предполагаю, что SQL удобно использовать в двух случаях - простых скриптах уровня Hello World, и наоборот - в случае необходимости серьезных оптимизаций.
В обычных проектах, особенно в тех, где участвует большая географически распределенная команда, лучше использовать ORM как средство устранения хаоса и упрощения написания кода.
На самом деле, ORM это не единственный путь абстрагирования от "чистых" SQL запросов со всеми их плюсами/минусами. Существует еще один слой абстракции, позволяющий с одной стороны избавиться от SQL кода в приложении, а с другой не вносить лишних усложнений в проект. Я говорю о концепции Query Builder.
Query Builder -- это дополнительный слой абстракции, который позволяет строить SQL запросы через объектный интерфейс. Query Builder позволяет практически полностью абстрагироваться от различий в диалектах SQL для различных БД.
Плюсы использования Query Builder'а:
Минусы использования Query Builder'а:
В Laravel, есть даже специальный сервис реализующий концепцию Query Builder. Существуют и другие реализации Query Builder, например, Doctrine DBAL, который можно использовать независимо от фреймворка.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Существует модель Image в которой хранятся, как понятно из названия, изображенияКаждое отдельное изображение прикрепляется к любой другой...
Есть таблица, в которой поле для Primary Key типа VARCHARИспользую factory для заполнения таблицы записями
Создаю в ISP Manager новый почтовый ящик для roundcube - user@domainru И несколько псевдонимов для него - user0, user1
Пользователи заполняют гугл-формы и нажимают отправитьФорма не вставлена на сайте