내가 만들고있는 Catalyst 제품에는 본질적으로 똑같은 여러 가지 서브 루틴이 있지만 모두 앱의 다른 부분에 있습니다. Catalyst에서 어디에서든지 서브 루틴을 호출 할 수있는 중앙 위치가 있습니까? 나는 코드 반복을 피하고 싶다. 감사!촉매 글로벌 서브 루틴
1
A
답변
3
모범 사례인지 모르겠지만 메인 모듈을 이렇게 복잡하게 만드는 데 아무런 문제가 없습니다. 그런 다음 컨텍스트 개체가있는 모든 위치 (예 : 어디서나)에서 쉽게 호출 할 수 있습니다.
package MyApp;
...
sub my_frequently_used_sub {
my ($c, @args) = @_;
...
}
package MyApp::Controller::Foo;
...
sub some_action :Path {
my ($self, $c, @args) = @_;
...
my $result = $c->my_frequently_used_sub();
...
}
2
1
예를 들어 모델에서 사용하기 때문에 함수가 Catalyst 응용 프로그램 외부에서 사용 가능해야하는 경우 완전히 독립적 인 모듈로 이동해야합니다. 정말로 Catalyst에만 해당되는 경우 403 허용되지 않음 또는 404 찾을 수 없음 오류 페이지와 같이 전달하거나 분리 할 수있는 개인 작업을 생성 할 수 있습니다. 정상적인 Perl 서브 시스템이라면 mob이나 Root 컨트롤러가 제안한대로 앱 클래스에 넣을 수 있습니다. 더 나은 솔루션을 제공 할 수 있도록 함수의 이름을 지정할 수 있습니까?
관련 문제
- 1. 촉매 : 내가 컨트롤러에서 동일한 코드를 repeate 싶지 않아, 그래서 내가 주 MyApp를 패키지의 하위 생성하는 방법 글로벌 서브 루틴
- 2. 어셈블리 언어 서브 루틴
- 3. 배열 구성원으로 서브 루틴
- 4. perl 서브 루틴 참조
- 5. 포트란 배열과 서브 루틴 (서브 배열)
- 6. Fortran 90의 선택적 서브 루틴
- 7. 은 워드 감지 서브 루틴
- 8. perl의 재귀 서브 루틴 오류
- 9. 서브 루틴 내에서 TRAP 루틴 사용? - LC3 어셈블리
- 10. 서브 루틴 내가 MS 액세스 데이터베이스에 연결하기 위해이 서브 루틴 설정을 가지고
- 11. 서브 모듈 복제가 아닌 서브 루틴 재귀 적으로
- 12. Fortran에서 서브 루틴 호출 (세그먼트 오류)
- 13. Perl 오류 : non-lvalue 서브 루틴 호출을
- 14. 내가 얻는 이유 : 정의되지 않은 서브 루틴
- 15. Perl 모듈의이 서브 루틴 호출은 어떻게 작동합니까?
- 16. VBA에서 다른 모듈의 서브 루틴 호출
- 17. 동적으로 성장 문자열의 배열 및 서브 루틴
- 18. 는 서브 루틴 워크 시트를 전달
- 19. 시스템 서브 루틴 및 INT 신호 문제
- 20. File :: Find 및 $ _ 중첩 된 서브 루틴
- 21. 서브 루틴 호출에 스칼라/목록 컨텍스트 전달
- 22. ABAP에서 제한된 임시 서브 루틴 만들기
- 23. vb.net 사용자 정의 컨트롤에서 서브 루틴 호출하기
- 24. 특정 시간에 시작하도록 서브 루틴 일정을 잡으십시오.
- 25. FSO가 저장 파일을 복사합니다. 서브 루틴
- 26. 이러한 정규 Perl 서브 루틴 호출이 있습니까?
- 27. 포트란 원소 함수와 원소 서브 루틴 비교
- 28. 날짜 범위를 얻기위한 perl 서브 루틴
- 29. @INC의 서브 루틴 참조는 언제 호출됩니까?
- 30. 매개 변수를 통해 서브 루틴/함수 전달하기