일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 삼성전자 소프트웨어멤버십 SSM
- 가상화
- NarwalFreo
- 삼성소프트웨어멤버십
- 빅데이터
- 멤버십
- 동아리
- 물걸레자동세척로봇청소기
- 인공지능
- 신경회로망
- Python
- 하이퍼바이저
- 물걸레로봇청소기추천
- SSM
- Google App Engine
- 패턴인식
- 삼성
- 갤럭시탭S8울트라
- BAM
- Friendship
- 구글 앱 엔진
- 나르왈프레오
- Bidirectional Associative Memory
- Neural Network
- 증강현실
- 패턴 인식
- 고려대학교
- hopfield network
- 신경망
- 파이썬
- Today
- Total
정보공간_1
[4기 부산 김솔] Codeigniter 5 본문
안녕하세요. 부산 멤버십 22-1기 김솔입니다.
이번에는 PHP 기반의 프레임워크인 Codeigniter에 대한 다섯번째 글을 써보려 합니다.
1. Core 확장
Codeigniter 프레임워크를 사용하여 개발하다 보면, 프레임워크에서 제공하는 코어 기능들이 진행하는 프로젝트에 맞지 않아 코드를 바꾸어야 할 경우가 생깁니다. 이 때 코어 파일을 변경하게 되면, 프레임워크를 업데이트 할 때 코어 파일들의 코드를 일일이 변경해주어야 하고 이를 위해 코드의 수정사항을 기록해두어야 하는 번거로운 작업을 해야 합니다.
이와 같은 상황에서 유연하게 코어 파일을 수정하거나, 확장하기 위해서 개발자가 /application/ 하위에 코어를 확장해서 사용할 수 있게 기능을 제공하고 있습니다.
2. Core Class
Codeigniter Core Class 들은 공식 홈페이지에서 제공하는 매뉴얼을 통해 Benchmark, Config, Controller, Exceptions, Hooks, Input, Language, Loader, Log, Output, Router, URI, Utf8 의 클래스를 명시해놓고 있습니다. 위 Core Class 의 경우에 다른 Class로 대체를 하거나 확장해서 사용할 수 있습니다.
3. Core Class 대체
Core Class를 대체 해서 사용 하기 위해서는 위에서 설명드린 Core Class 명과 같은 이름의 파일을 생성하고, Class를 생성하여 코드를 작성하시면 됩니다. 대체할 Core Class 파일이 존재하는 위치는 /application/core/ 가 되겠습니다.
예로 Controller Class를 대체 해보겠습니다.
먼저 /application/core/ 의 경로에 Controller.php 파일을 생성하고, 해당 파일의 내용에 Controller Class를 선언해주시면 됩니다. Source Code를 열어보면 아래와 같습니다.
위 그림에서 Class 명이 CI_Controller 인 것을 볼 수 있는데요, Class 선언 시 접두어로 CI_ 가 붙어야 합니다.
4. Core Class 확장
Core Class를 그대로 사용하되, 개발자가 함수를 추가한다거나 하는 작업을 할 수 있습니다.
위와 마찬가지로 Controller Class를 확장해보도록 하겠습니다.
먼저 확장을 위한 환경설정을 해야 합니다. 환경설정을 위한 경로는 /application/config/config.php 이 되겠습니다. 해당 파일을 열어보시면
위와 같은 부분이 있을 겁니다. 개발자가 기존의 Core를 확장시켜 사용할 Class의 접두어를 정하는 부분인데, 기본값이 MY_로 지정이 되어 있으며 입맛에 따라 이 부분을 변경해서 사용하시면 됩니다.
저는 이 부분의 접두어를 SSM_ 이라고 지정을 했습니다.
이제 환경설정이 끝났으니, 환경설정을 한대로 Core를 확장한 Class를 만들어 보겠습니다.
확장 Class의 파일 위치는 /application/core/ 입니다. 여기서 저는 Controller를 확장할 것이기 때문에 생성한 파일 명은 SSM_Controller.php 파일이 되겠습니다. Core Class를 대체하는 것과 비슷하게 Core Class 명으로 생성하지만, 환경설정에서 설정한 접두어가 붙는 다는 점만 유의 하시면 되겠습니다.
SSM_Controller.php 의 파일 내용은 다음과 같은 구조가 되겠습니다.
위의 코드에서 보시면 CI_Controller 라는 Core Class에서 확장해 환경설정에 지정된 접두어로 Class를 선언하고 안에 구현하고자 하는 함수를 코딩하시면 됩니다.
Core Class를 대체하는 것과 달리 Core Class를 확장하는 것은 기존의 Core Class 인 CI_ 로 시작하는 Class를 사용하는 것이 아닌, 환경설정에서 지정한 접두어로 시작하는 Class를 사용해야 합니다.
위의 Controller를 확장한 것을 예로 들어 Controller를 작성해보면,
위 코드에서 보시면 Controller의 Class를 선언하는 부분에서 extends 뒤 부분이 CI_Controller 가 아닌 SSM_Controller 인 것을 확인 할 수 있습니다. 이 부분이 CI_Controller가 되더라도 문제가 발생하는 것은 아닙니다. SSM_Controller 로 지정하셔야 확장한 Class를 사용하실 수 있습니다.
위와 같은 Controller를 작성해서 브라우저에서 확인을 해보시면 화면에 아무것도 표시 되지 않으실텐데요,
위와 같이 확장 Class를 작성한 이후에 브라우저에서 확인을 하시면
위 그림과 같이 표시가 될 겁니다.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[4기 강남 안태형] Java Class Loader #1 (0) | 2013.12.01 |
---|---|
[4기 대구 박병권] 데이터베이스 EXPLAIN을 활용한 슬로우 쿼리 검색 (0) | 2013.12.01 |
[4기 부산 김솔] Codeigniter 4 (0) | 2013.12.01 |
[4기 대구 유승범] 모터의 원리 및 이해#2(리니어, 서보, AI) (1) | 2013.11.30 |
[4기 대구 유승범] 모터의 원리 및 이해(스텝모터, DC모터) (0) | 2013.11.30 |