#php #mysql
В одной из вакансий на позицию junior php среди прочих требований встретил такое: "вы нам подходите, если в вашем коде нет и намека на mysql_query("SELECT * ...." Чем плох mysql_query( )? Это непрофессионально? Как надо писать "правильно"? Спасибо.
Ответы
Ответ 1
Я не знаю, что имелось в виду конкретно на той вакансии, но могу предположить, что принципиальное значение придавалось не столько 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, и сразите работодателей своим глубоким пониманием сути вопроса.Ответ 2
mysql_query уже нет в 7 версии. Используйте PDO или хотябы mysqli_queryОтвет 3
это уже плохой тон) начиная с версии пхп 5.6 не рекомендуется использовать, а в пхп 7 вобще убрали. надо юзать pdo
Комментариев нет:
Отправить комментарий