Вопрос очень нубский, но я всё никак не могу понять, очень хотелось бы понятным языком получить ответ
В общем: пишу на фреймворке Yii2, данные мы можем из модели получать с помощью ActiveRecord вот так:
News::find()->where(['moderate' => 1])->orderBy(['id' => SORT_DESC])->all();
Вот это, как я знаю, называется ORM.
А можно получать вот так:
$posts = Yii::$app->db->createCommand('SELECT * FROM news WHERE moderate =:moderate ORDER BY DESC')->bindValue(':moderate', 1)->queryAll();
И это, по моему, DAO
На мой взгляд, первый вариант просто автоматически удобнее по синтаксису, с ним проще работать, и не надо заморачиваться с bindValue, по скольку ORM берет на себя всё это. Еще недавно говорили, мол, работать с БД с помощью SQL это уже каменный век
Так вот, поясните, пожалуйста, в каких ситуациях вообще нужно использоваться DAO, когда есть такая удобная штука как ORM? По-любому отличия какие то есть, и уверен что они значительные, но я никак не понял их еще.