평범한 이야기들

[PHP] Codeigniter (코드이그나이터) Helper 본문

평범한 개발 이야기/PHP

[PHP] Codeigniter (코드이그나이터) Helper

songsariya 2014. 12. 12. 00:50
728x90



CIHelper에 대해서 정리합니다.


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입니다. 만드는 방법도 단순합니다.


  1. application/helpers 디렉토리 밑에
  2. 헬퍼명_helper.php 파일을 만듭니다.
  3. 파일 안에 원하시는 함수를 만드시면 됩니다.



예제


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라는 Helperauto_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의 생활코딩에 올라온 자료가 더 좋습니다.

공부하면서 정리하는 내용입니다.




728x90
Comments