나는 php 앱을 가지고 있습니다. 솔리드 원칙을 준수하지는 않지만 전체 팀은 변경 사항에 대해 리펙토 코드를 시도합니다. 모델의 업데이트에 생성 된 전역 로그 (데이터베이스 중 하나에 저장 됨)를 추가해야합니다. 그 모델은 ORM을 사용하지 않습니다. 첫 번째 해결 방법 : 모델에서 정적 로거 및 호출 후 작업을 호출하십시오.앱에 글로벌 로그 추가 - 솔리드에 대해
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());
}
... 맞습니까? 나는 또한 고체와 compilant 아니 생각하고 현재의 새로운 혼란을 만들고 싶지 않아요. 어디에서 이런 식으로 뭔가를 추가해야합니다 - 모델 절약 호출 한 후 모델, 아니면 컨트롤러 :
public function saveAction()
{
// Controller code here
$model->save($objectEntity);
Logger::save(new LogObjectEntitySave());
}
을하지만 질문이 : 하나 개의 동작에 대해 저장하고 또한 모델에서 데이터를 업데이트 할 것을 (나는 새로운 요소 경우 추가 나는 기존 ID가 없다)?/else와 두 개의 로그 클래스가 여전히 나 빠진다. 어떻게 그것이 옳을 지 모른다.