Surcharger la méthode save() d'un objet
Bonjour à tous,
Je veux effectuer quelques actions (mise à jour de données secondaires) quand un objet est modifié. Naïvement, j'ai cherché à surcharger la méthode save() mais à mon grand désarroi, mes efforts sont vains.
Code:
1 2 3 4 5 6
| public function save(Doctrine_Connection $conn = null) {
parent::save($conn);
// $this->refresh();
$this->processParentCategories();
} |
Si j'appelle processParentCategories avant parent::save(), mon objet ($this) ne semble pas connaître les nouvelles informations à sauvegarder.
Si je l'appelle après... non plus, qu'il y ait un refresh() ou pas.
Du coup, processParentCategories() se comporte comme si l'objet n'avait pas été modifié.
Je connais la méthode doUpdateObject() dans sfFormObject mais je ne veux pas passer par là : mon objet peut être modifié en dehors d'un formulaire, je dois donc intervenir dans save() pour être sûr de ne rien rater. N'importe quel framework orienté objet permet de type de surcharges basiques, je ne comprends pas pourquoi Symfony me bloque ici - et ce n'est pas la "documentation" de l'API qui me renseigne beaucoup... :roll:
Snif.