CI4

[코드이그나이터] 헬퍼(Helper)

으누아빠 2020. 9. 2. 17:46
반응형

헬퍼(helper)

출처:
http://ci4doc.cikorea.net/general/helpers.html

헬퍼는 작업을 도와주는 역활을 하며 함수의 모음

  • URL 헬퍼: 링크를 만드는데 도움
  • Form 헬퍼: form을 만드는데 도움
  • Text 헬퍼: 텍스트 생성에 도움
  • Cookie 헬퍼: 쿠키관련하여 도움
  • File 헬퍼: 파일 처리등에 도움

Codeigniter(CI4) 는 기본적으로 헬퍼를 로드 하지 않기 때문에 필요한 헬퍼는 로드를 해야함

헬퍼는 system/Helpers, app/Helpers 디렉토리에 저장 되며 먼저 app/Helpers 디렉토리를 검사한 다음 존재하지 않을 경우 system/Helpers 디렉토리를 찾음

헬퍼 로드

형식은 helper('name'); 이며 name은 관련파일의 파일명임

helper('cookie');

// 여러개의 헬퍼를 로드할 경우
helper(['cookie', 'date']);

대부분의 헬퍼는 컨트롤러 메서드에서 로드함.

컨트럴러 생성자 또는 특정함수에서도 로드 할 수 있음

URL 헬퍼는 항상 로드되므로 직접 로드 할 필요는 없음

헬퍼 사용

일반적인 함수 호출 형태로 사용

<?php 
echo anchor('blog/comments', 'Click Here');

헬퍼 확장

app/Helpers/ 디렉토리에 기존 헬퍼와 동일한 이름으로 파일을 생성

예를 들어 기본 array helper를 확장하려면 app/Helpers/array_helper.php라는 파일을 만들고 함수를 추가

app\Helpers\array_helper.php

<?php

function any_in_array($needle, $haystack)
{
    $needle = is_array($needle) ? $needle : [$needle];

    foreach ($needle as $item) {
        if (in_array($item, $haystack)) {
            return TRUE;
        }
    }

    return FALSE;
}
app\Controllers\Home.php

<?php

namespace App\Controllers;

use App\ThirdParty\Greetings;

class Home extends BaseController
{
    public function index()
    {
        helper('array');

        $result = any_in_array("a", array('a', 'b', 'c'));

        echo $result; // 출력: 1 
    }
}