Во многих статьях (в том числе и англо.) дается сухое описание типо:
1. AR это нарушение первого принципа SOLID;
2. AR тяжело тестировать;
3. AR позволяет писать чистый SQL везде где попало.
4. Чем сложнее бизнес-логика тем раздутее становится объект AR
5. AR зло
...
и прочие "минусы", которые я смело могу повторить применяя ту же Doctrine(за исключением пожалуй тестирования).
Применяя ActiveRecord ни что не мешает мне сделать класс User, который будет использоваться только для проецирования данных на таблицу:
Код: Выделить всё
class User extends ActiveRecord {
public function table()
{
return 'users';
}
}
Код: Выделить всё
class User extends ActiveRecord {
private const STATE_ENABLE = 'enable';
private const STATE_DISABLE = 'disable';
public function table()
{
return 'users';
}
public function isActive()
{
// return state
}
public function hasSocialNet()
{
// наличие привязки соц сетей
}
}
Буду рад примерам, где применение AR вылилось в нечто устрашающее и неподдерживаемое, а применение DataMapper исправило бы ситуацию(или же не привело к такой ситуации).
PS: ВАЖНО: ActiveRecord рассматриваю не в контексте Yii2