try{
$timestamp = now() - App::Db->latency;
$UserCollectionB = (new UserCollection)->setDatasource($ConnectorB)->setTimestamp($timestamp)->loadAll();
}catch(DbException $E){
App::log($E->errorMessage);
$ConnectorA->disconnectWithInternalFailure();
Юзер - ORM, аналогичный ActiveRecord. Код, вызывающий post у коннектора - в драйвере, который приписан в конфиге у коннектора. Нет, не в классе юзера.Но сохраняет себя сам юзер? Т.е. код, вызывающий post у коннектора - где? В классе юзера?
Я это и предполагал. Но согласись, это уже обработка состояний, которая ни коим образом на изначальную архитектуру не влияет. И чем мы ее изначально сделаем более модульной и слабосвязанной, тем легче потом все эти исключения ловить. Но это уже практика, которая никоим образом не ущемляет теорию. Я почему спрашивал, ибо может ты скажешь - "датамапер говно, ибо нельзя словить такой-то случай, что на практике выльется в такие-то проблемы".Каждая строка кода фиксера разворачивается во что-то вроде
Ну у AR итоговый код все же в модели, если смотреть вниз по иерархии классов. В таком случае и получение массива юзеров должно быть где-то там же, т.е. User::getAll и т.п.? Ну в общем все все-равно утыкается в AR vs DM, не смешивать же их.Юзер - ORM, аналогичный ActiveRecord. Код, вызывающий post у коннектора - в драйвере, который приписан в конфиге у коннектора. Нет, не в классе юзера.
Это знание на уровне интерфейса, а не на уровне конкретного коннектора/стораджа/драйвера. То есть юзер знает, что чтобы добавить себя, надо дернуть грубо говоря $this->Datasource->add($this)У @fixxxer была - там юзер знал, как себя добавить. Мое первое решение было аналогичное - юзер знает как достать себя и как добавить.
А, я под коннектором подразумевал более низкий уровень, вот как вышеупомянутое PDO. Т.е. по сути ->get($uri), ->post($uri, $data).Это знание на уровне интерфейса, а не на уровне конкретного коннектора/стораджа/драйвера. То есть юзер знает, что чтобы добавить себя, надо дернуть грубо говоря $this->Datasource->add($this)
да она, обработка состояний, эту архитектуру и определяет чуть менее чем полностьюобработка состояний, которая ни коим образом на изначальную архитектуру не влияет