필자는 app_controller에서 함수를 사용하여 인터페이싱하는 정교한 로깅 및 오류보고 시스템을 만들었습니다. 컨트롤러가 app_controller를 확장함에 따라 시스템의 모든 컨트롤러에서이를 호출 할 수 있습니다. 내가 뭘 할 수 있기를 바라는 것은 모델 함수 내에서이 함수를 호출하는 것이다. 누구든지이 일을하는 방법이나 그런 일을하는 다른 방법에 대해 조언 할 수 있습니까?모델 내에서 app_controller 함수 액세스
답변
몇 가지 옵션 :
- 사용자 정의 AppModel이 (APP/app_model.php)를 사용하여 모델 층에 논리를 마이그레이션합니다. 모든 컨트롤러가 적어도 하나의 모델을 사용한다고 가정하면 모든 모델에 대해 로깅 기능을 호출 할 수 있습니다. 즉 :
$this->MyModel->customLog('test');
- 로직을 클래스로 마이그레이션하고 app/libs에 저장 한 다음 필요에 따라 컨트롤러 또는 모델에로드하십시오.
예는 :
App::import('Lib', 'CustomLog');
$this->CustomLog = new CustomLog();
$this->CustomLog->customLog('test');
감사합니다. 아마도 라이브러리 기능을 사용하는 것이 최선의 방법이라고 생각합니다. 설명해 주셔서 고맙습니다. – Excalibur
이 점에 대해 한 가지 더 자세히 설명합니다. 특정 상황에서이 함수 내에서 $ this-> Session-> setFlash() 또는 $ this-> redirect()를 호출 할 수 있기를 바랍니다. app_controller에서 함수를 제거하면 해당 함수를 사용할 수 없게 될 수도 있습니다 ... 아마도? – Excalibur
@Excalibur 사용자 상호 작용 흐름 논리와 로깅 논리를 섞어서는 안됩니다. 로깅 코드를 호출하고 필요할 때 리디렉션/깜박이는 컨트롤러 기능을 만드십시오. – deceze
- 1. Doctrine을 사용한 Zend 모델 함수 데이터 액세스
- 2. Django : ModelAdmin 내에서 모델 인스턴스에 액세스 하시겠습니까?
- 3. 어떻게 액세스 ActiveRecord :: AutosaveAssociation.marked_for_destruction? 상위 모델 내에서
- 4. 커스텀 EL 함수 내에서 JSP 컨텍스트에 액세스
- 5. 콜백 함수 내에서 $ (this)에 액세스
- 6. PHP에서 함수 내에서 함수에 액세스 하시겠습니까?
- 7. 개체 액세스 문제 및 함수 내에서 외부 함수 포함 문제
- 8. 함수 내에서 함수 호출
- 9. 함수 내에서 MIPS 함수
- 10. 모듈 내 모델 액세스
- 11. 함수 내의 함수 액세스 (중첩 함수?)
- 12. 액세스 모델
- 13. 몽구스 모델 함수 내보내기 문제
- 14. 는 usort 함수 내에서 전역 변수에 액세스 할 수 없습니까?
- 15. jQuery에서 전역 변수에 액세스 할 수 없습니다. 함수 내에서 .get.
- 16. 함수 내에서 순차적으로 $() 표시
- 17. jQuery 함수 내에서 오버레이
- 18. 루프를 함수 내에서 사용하기
- 19. foreach 내에서 함수 호출?
- 20. 라이브러리에서 모델 함수 호출
- 21. PHP에서 함수 내에서 함수 이름을 얻으려면 어떻게해야합니까?
- 22. JavaScript 함수 내에서 함수 이름을 얻으려면 어떻게해야합니까?
- 23. 호출하는 함수 내에서 외부 함수 중단
- 24. 멤버 함수 내에서 가상 함수 호출
- 25. 비동기 함수 내에서 함수 반환 true
- 26. 다른 함수 내에서 VBA 함수 호출 문제
- 27. .mm 파일의 함수 내에서 C 함수 호출
- 28. 상위 함수 내에서 덮어 쓴 하위 함수
- 29. WPF의 명령 내에서 컨트롤에 액세스
- 30. WebGrid의 모델 데이터 액세스
당신은 모델에서 컨트롤러에 액세스 할 안돼요. 이 함수가 구체적으로 무엇을 구체적으로 설명 할 수 있습니까? – deceze
기본적으로 개발/qa 서버에서 매우 자세한 로깅을 수행하고 프로덕션 서버에서는 적게 처리하는 상당히 고급 로깅 기능을 원합니다. 로그 항목에 심각도 (DEBUG, INFO, CRITICAL 등)가 부여됩니다. 응용 프로그램 코드의 여러 위치에서이 코드를 사용하고 싶습니다. 나는 fat-model 방법론을 선호하지만 app_controller에 존재하는이 로깅 기능은 그다지 잘 작동하지 않습니다. – Excalibur