J'ai app php, il n'est pas compilant avec les principes SOLID, mais toute l'équipe essaie de refactore le code sur les changements. Je dois ajouter des logs globaux (stockés dans l'une des bases de données), sauvegardés sur des créations sur des mises à jour sur des modèles. Que les modèles n'utilisent pas ORM. Première solution: créer un enregistreur statique et appeler après l'opération sur le modèle:Ajouter des journaux globaux dans l'application - qu'en est-il SOLIDE
public function save(ObjectEntity $entity)
{
// Some code to prepare entity
$this->insert($entity);
Logger::saveLog('Object has been saved');
// Or maybe better - separate classes for logs with interface
Logger::save(new LogObjectEntitySave());
}
Mais ... est-ce correct? Je pense que n'est pas non plus compilant avec SOLID et ne voudrait pas faire de nouveaux dégâts dans le courant. Où dois-je ajouter quelque chose comme ça - sur les modèles, ou peut-être sur les contrôleurs après avoir appelé l'économie de modèle:
public function saveAction()
{
// Controller code here
$model->save($objectEntity);
Logger::save(new LogObjectEntitySave());
}
Mais il est question: Qu'en est-il d'une action pour sauvegarder et mettre à jour également des données dans le modèle (ajouter nouvel élément lorsque Je n'ai pas d'identifiant existant)? Si/else et deux classes de journal .. semble toujours mauvais. Aucune idée comment devrait-il être bon.