Exemple:objet modifié après l'état de l'objet ou le stockage utilisé
class UserStorage {
public function addUser(User $user) { //saves to db }
}
class User {
public function setName($name);
}
si j'ajouter un utilisateur au stockage de l'utilisateur, puis modifier cet objet utilisateur? Dans ce cas, vous pourriez argumenter que les objets utilisateur seulement devraient être stockés sur __destruct. Mais parfois ce n'est pas une option (par exemple, imaginez que l'utilisateur est affiché et mis à jour par la suite).
Je ne suis pas un grand fan de l'enregistrement actif. Mais il a probablement l'avantage ici que $ object-> save() enregistre clairement l'état à un moment donné (par exemple, le code client sait ce qu'il a fait avec). Bien que l'inconvénient est peut-être aussi que lorsque plusieurs éléments de code travaillent avec $ object, il n'est pas clair qui est responsable du déclenchement de save(). – koen
ActiveRecord n'est pas le seul motif. ZF utilise (Data/Row) Data Gateway, par exemple. –
Je pense qu'il a le même problème. Le modèle va cacher la passerelle. – koen