Страницы

Поиск по вопросам

четверг, 13 декабря 2018 г.

php: чем плох mysql_query( )?

В одной из вакансий на позицию junior php среди прочих требований встретил такое: "вы нам подходите, если в вашем коде нет и намека на mysql_query("SELECT * ...."
Чем плох mysql_query( )? Это непрофессионально? Как надо писать "правильно"? Спасибо.


Ответ

Я не знаю, что имелось в виду конкретно на той вакансии, но могу предположить, что принципиальное значение придавалось не столько mysql или mysqli драйверу, и даже не PDO, сколько предпологалось наличие у кандидата знания и опыта работы с какими-либо ORM (а как следствие, хотя бы минимальный опыт с каким-нибудь фреймворком, либо умение подключить интересующий пакет через composer), которые представляют гораздо более высокий уровень абстракции и объектный подход для доступа к данным.
Плохой тон, опять же, не сам mysql_query, а бездумное смешивание логики работы с данными с логикой работы приложения и бизнес-логикой. Когда в контроллере встречается что-то типа:
SELECT * FROM products;
это плохой тон. С использованием ORM, у Вас будет что-то типа:
$productMapper = new ProductMapper(); $products = $productMapper->findAll();
И такой подход гораздо гибче и человекопонятнее (если правильно его использовать, конечно).
Почитайте про наиболее распространенные ORM для PHP (Doctrine, Eloquent, Yii\ActiveRecord), посмотрите как с ними принято работать, хотя бы поверхностно ознакомьтесь с паттернами объектно-реляционного отображения, такими как Table Gateway, Row Gateway, Active Record, Data Mapper, и сразите работодателей своим глубоким пониманием сути вопроса.

Комментариев нет:

Отправить комментарий