일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 코드이그나이터
- 라즈베리파이
- 라라벨
- TiL
- 프레임워크
- 옵티머스g
- Raspberry Pi
- C
- 제주도
- MySQL
- ubuntu
- 업비트
- 회고
- 옵지
- 우분투
- 우분투 20.04
- 셀레니움
- FMS
- codeigniter
- 옵G
- Laravel
- 맛집
- 20.04
- php
- 라즈비안
- 옵티머스 g
- upbit
- Ubuntu 20.04
- Selenium
- 맥
- Today
- Total
평범한 이야기들
[PHP] Codeigniter (코드이그나이터) Helper 본문
CI의 Helper에 대해서 정리합니다.
Helper 란 자주 사용하는 함수를 재활용 할 수 있게 만든 일종의 Library 입니다. CI에서는 Library라는 개념도 별도로 존재합니다. 이 둘의 차이점은 Helper는 객체지향이 아닌 단순한 독립된 함수라고 할 수 있으며 Library는 객체지향인 클래스로 되어있습니다.
CI에서 제공하는 Helper는 아래와 같습니다.
배열(Array)
CAPTCHA 헬퍼
쿠키(Cookie)
날짜(Date)
디렉토리(Directory)
다운로드(Download)
이메일(Email)
파일(File)
폼(Form)
HTML
인플렉터(어형변화)
언어(Language)
숫자(Number)
경로(Path)
보안(Security)
스마일리(Smiley)
문자열(String)
텍스트처리(Text)
타이포그라피(Typography)
URL
XML
각각의 Helper 사용법은 매뉴얼을 참고해서 공부하는게 좋을꺼 같다.
Helper를 사용하기 위해서는 사용하고싶은 Helper를 로드해야합니다.
다음과 같이 사용하시면 됩니다.
$this->load->helper('헬퍼의 이름');
다양한 Helper를 로드하기 위해서는 다음과 같이 사용하시면 됩니다.
$this->load->helper(array('헬퍼의 이름1','헬퍼의 이름2'));
또한 applicatioin/config/autoload.php의 $autoload helper 값으로 Helper 리스트가 담긴 배열을 전달하는 방법도 존재합니다.
$autoload['helper'] = array('url','file');
Helper 제작 방법
Helper는 단순하고 가볍게 만들기 좋은 Library입니다. 만드는 방법도 단순합니다.
- application/helpers 디렉토리 밑에
- 헬퍼명_helper.php 파일을 만듭니다.
- 파일 안에 원하시는 함수를 만드시면 됩니다.
예제
application/views/some.php
<article> <h1><?=$test_item->title?></h1> <div> <?=auto_link($test_item->contents)?> </div> </article>
application/controller/test.php 의 some 메소드 부분
public function Some($parameter) { $this->load->view('header'); $test_list = $this->test_model->gets(); $this->load->view('test_list',array('test_list'=>$test_list)); $test_item = $this->test_model->get2($parameter); $this->load->helper('url'); $this->load->view('some',array('test_item'=>$test_item)); $this->load->view('footer'); }
CI에서 제공하는 Helper에서 url라는 Helper의 auto_link를 사용한 모습입니다.
auto_link는 해당 인자(문자열)에 인터넷 주소가 존재 할 경우 자동으로 링크를 걸어주는 함수입니다.
아래와 같이 링크가 생기는 모습을 볼 수 있습니다.
Helper를 직접 만들어서 테스트 하는 모습입니다.
application/helpers/test_helper.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); if ( ! function_exists('test')) { //인자로 들어오는 값을 2번 쓰는 잉여함수 function test($parameter) { return $parameter . " " . $parameter; } } ?>
application/views/some.php
<article> <h1><?=$test_item->title?></h1> <div> <?=auto_link($test_item->contents)?> <br/> <br/> <?=test("test sentence")?> </div> </article>
application/controller/test.php 의 some 메소드 부분
public function Some($parameter) { $this->load->view('header'); $test_list = $this->test_model->gets(); $this->load->view('test_list',array('test_list'=>$test_list)); $test_item = $this->test_model->get2($parameter); $this->load->helper(array('url','test')); $this->load->view('some',array('test_item'=>$test_item)); $this->load->view('footer'); }
test sentence가 두번 찍히는 모습이 보입니다.
Helper 가 제대로 생성되고 제대로 로드되어 작동되는 모습을 볼 수 있습니다.
※참고자료
Opentutorial - 생활코딩 Helper 편 : http://opentutorials.org/module/327/3836
Codeigniter Manual : http://codeigniter-kr.org/user_guide_2.1.0/general/helpers.html
#제 블로그 보다 Opentutoril의 생활코딩에 올라온 자료가 더 좋습니다.
공부하면서 정리하는 내용입니다.