CI 묻고 답하기

제목 컨트롤러(클래스) 관련 질문입니다.
카테고리 CI 2, 3
글쓴이 엘제이 작성시각 2020/05/20 23:39:37
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 12708   RSS

최근 유지보수 건 이 있는데요 3.0 버전이고요

그런데 해당 컨트롤러 클래스에 생성자(__construtor()) 가 존재하지 않더라고요

생성자는 필수가 아니었나 생각했는데 문제는 _remap 이라는 멤버메소드가 하나씩 존재하더라고요.

컨트롤러(혹은 클래스) 에 _remap 이라는 것이 PHP OOP 관련해서 검색이 되지 않던데요

코드이그나이터관련해서 검색되더라고요.

CI를 좀 써왔지만 _remap 이라는 것은 요번에 처음 보는데 코드이그나이터에 

무엇을 위해 필요한 것인지 그리고 해당 메소드가 해당 컨트롤러에서 생성자처럼

클래스(컨트롤러) 실행시 전처리를 하게끔 되어 있는건가요? 

코드이그나이터만의 특수함수인지요?

 

 다음글 ajax set_select 유지 질문드립니다!! (4)
 이전글 AWS SES 메일 발송 개선 및 email queue... (3)

댓글

벤지 / 2020/05/21 00:04:10 / 추천 0

예에....메뉴얼을 보니 ci 에 정의된 함수입니다 .  

무슨 이유로 그렇게 구조를 잡았는지 궁금해지네요

 

** 메뉴얼 내용 **

만약 컨트롤러가 _remap()함수를 포함하고있다면,

URI가 어떻든 간에 _remap() 함수를 호출하게될것입니다.

왜냐하면 _remap()은 CI 가 정의해 놓은 일반루틴 대신

여러분 자신만의 라우팅방법으로 재정의 해버리기 때문입니다.

 

메뉴얼

http://www.ciboard.co.kr/user_guide/kr/general/controllers.html#passing-uri-segments-to-your-methods

https://codeigniter4.github.io/userguide/incoming/controllers.html#defining-a-default-controller

 

 

한대승(불의회상) / 2020/05/21 08:50:27 / 추천 0

_construct()는 필수는 아닙니다.

_remap() 메소드는 코드이그나이터에서 사용되는 특수 메소드입니다.

메뉴얼에 언급된대로 내부적으로 라우팅 규칙을 바꿀때 사용합니다.

작업하신분이 생성자 개념으로 사용하신듯 하네요.