| 제목 | 중복 코드 리팩토링 문의 | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | 이시태 | 작성시각 | 2019/08/20 11:35:32 | 
|  | |||
| A 라는 컨트롤러에 C 라는 라이브러리 (자체 개발) 를 
 1천줄 가량 되는 각 함수마다 불러오는데요. 
 이걸 함수마다 불러오는게 아닌 
 모델 불러오는것 마냥 한번만 상단에 선언해주는 방법이 없을까요? 
 첨부파일 처럼 
 $array 배열에 담은 변수들은 모두 함수 내에 불러와야 하는 것들입니다. 
 
 
 
 | |||
| 다음글 | 페이지 번호 처리를 하기 위해서는 좀 쉬운 방법이 없을... (4) | ||
| 이전글 | 다른 컨트롤러의 함수를 이용 하고 싶습니다. (6) | ||
| 
                                배강민
                                /
                                2019/08/20 11:46:06 /
                                추천
                                1
                             | 
| 
                                kaido
                                /
                                2019/08/20 11:50:16 /
                                추천
                                1
                             무엇을 원하시는지는 잘 모르겠으나, 패턴이 반복되는 코드를 넣기 싫다는 것인가요? 매번 사용할것 같으면 라이브러리에서 떼어서 코어확장에 넣고 메소드 호출해서 사용하는 방법도 있습니다. 아니면 팩토리패턴 형태로 바꿔서 오브젝트형태로 받아간다든지, 코드의 형태가 바뀌는건 있으나, 알아서 잘 맞춰주는 방법은 없습니다. | 
| 
                                변종원(웅파)
                                /
                                2019/08/20 12:08:15 /
                                추천
                                1
                             hook을 이용해서 상수로 선언하는 방법도 있습니다. 컨트롤러 construct 에서 $this->arrayValue 형태로 선언해서 사용하는 방법도 있구요 | 
| 
                                이시태
                                /
                                2019/08/20 13:13:20 /
                                추천
                                0
                             배강민님 // 아항 그렇게 하면 되겠네요 그런 간단한 방법을 흐흐 감사합니다. 
 kaido 님 // 네 맞습니다. 그렇게 하면 코드량이 전체적으로 줄어들어서 보기도 좋을 거 같아서도 ㅋ 답변 감사드립니다!! 
 변종원님 // 아 이런 방법도 있군요! 한번 시도 해 보겠습니다! 답변 감사합니다. | 
방법은 여러가지가 있겠지만,
가장 간단히는 생성자에서 실행해서 멤버변수나 const나 static 등에 넣어두고 사용하는거지 않을까 싶네요