답변:
CodeIgniter 도우미는 여러 기능을 가진 PHP 파일입니다. 수업이 아닙니다
파일을 만들고 다음 코드를 넣습니다.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('test_method'))
{
function test_method($var = '')
{
return $var;
}
}
이것을 application / helpers /에 저장하십시오 . 우리는 그것을 "new_helper.php"라고 부를 것입니다
첫 번째 행은 파일을 CodeIgniter 범위 외부에서 포함하고 실행할 수 없도록하기위한 것입니다. 이것 이후의 모든 것은 자명하다.
이것은 컨트롤러 , 모델 또는 보기에 있을 수 있습니다 (바람직하지 않음)
$this->load->helper('new_helper');
echo test_method('Hello World');
이 헬퍼를 여러 위치에서 사용하는 경우 자동로드 구성 파일에 추가하여 자동으로로드되도록 할 수 있습니다 (예 :) <your-web-app>\application\config\autoload.php
.
$autoload['helper'] = array('new_helper');
매튜
$this
속성으로 설정하여 도우미를 CI 인스턴스에로드 할 수 있습니다.
cool_helper
). $this->load->helper('cool_helper')
자동로드 후 잊어 버린 경우 수동으로 호출 하면 "이미 정의 된"PHP 오류 또는 다른 오류가 발생합니다. 이렇게하면 같은 코드를 두 번로드 할 수 없습니다 ( include_once()
PHP 함수 와 비슷 하지만 CodeIgniter 도우미의 경우 문제를 피할 수 있습니다). 기본적으로 약간 번역 : 함수가 존재하지 않으면 도우미가 이전에로드되지 않았 음을 의미합니다. 그것을 정의합시다.
헬퍼 내에서 CI 인스턴스를 사용할 수있는 일부 코드 :
function yourHelperFunction(){
$ci=& get_instance();
$ci->load->database();
$sql = "select * from table";
$query = $ci->db->query($sql);
$row = $query->result();
}
나를 위해 "_helper"
다음과 같이 PHP 파일에 텍스트를 추가하는 것만 작동 합니다.
그리고 폴더 aplication-> 파일 autoload.php 에 도우미를 자동으로로드하려면 다음과 같이 "_helper"없이 배열 도우미의 이름을 추가하십시오.
$ autoload [ 'helper'] = 배열 ( 'comunes');
그로 인해 모든 도우미 기능을 사용할 수 있습니다
_helper
파일 이름 끝에 필요할 것임을 발견했습니다 .
새로운 도우미를 만들려면 Pixel Developer 의 지침을 따를 수 있지만 특정 응용 프로그램의 특정 부분에 필요한 논리에 대해서만 도우미를 만드는 것은 아닙니다. 대신 컨트롤러에서 해당 논리를 사용하여 어레이를 최종 의도 한 값으로 설정하십시오. 일단 얻은 후에는 템플릿 파서 클래스를 사용하여 뷰에 전달하면 (반복적으로) 반향이나 foreachs 대신 간단한 변수 또는 변수 태그 쌍을 사용하여 PHP처럼 보이는 항목에서 뷰를 깨끗하게 유지할 수 있습니다. 즉 :
{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}
대신에
<?php foreach ($blog_entries as $blog_entry): ?>
<h5><?php echo $blog_entry['title']; ?></h5>
<p><?php echo $blog_entry['body']; ?></p>
<?php endforeach; ?>
이 방법의 또 다른 이점은 사용자 지정 도우미를 사용하여 모든 작업을 수행 할 때처럼 CI 인스턴스 추가에 대해 걱정할 필요가 없다는 것입니다.
/ application / helpers 에서 헬퍼 이름으로 파일을 작성 하고 자동로드 구성 파일에 추가하거나 수동으로로드하십시오.
예를 들어 user_helper.php 파일 을 / application / helpers 에 다음 내용으로 저장하십시오.
<?php
function pre($var)
{
echo '<pre>';
if(is_array($var)) {
print_r($var);
} else {
var_dump($var);
}
echo '</pre>';
}
?>
이제 헬퍼를 통해로드 $this->load->helper(‘user’);
하거나 application / config / autoload.php 구성에 추가 할 수 있습니다 .
응용 프로그램 도우미 디렉토리에 도우미를 정의한 다음 컨트롤러에서 함수 이름과 같이 호출하십시오.
helper name = new_helper.php
function test_method($data){
return $data
}
컨트롤러에서 도우미로드
$this->load->new_helper();
$result = test_method('Hello world!');
if($result){
echo $result
}
출력은
Hello World!
구성 파일에서 항목을 검색하려면 다음 기능을 사용하십시오.
$this->config->item('item name');
여기서 item name은 검색하려는 $ config 배열 색인입니다. 예를 들어, 언어 선택을 가져 오려면 다음을 수행하십시오.
$lang = $this->config->item('language');
가져 오려는 항목이 존재하지 않으면 함수는 FALSE (부울)를 반환합니다.
구성 항목을 특정 색인에 할당하기 위해 $ this-> config-> load 함수의 두 번째 매개 변수를 사용하는 경우 $ this-> config-의 두 번째 매개 변수에 색인 이름을 지정하여 구성 항목을 검색 할 수 있습니다. > item () 함수. 예:
// blog_settings.php라는 구성 파일을로드하고 "blog_settings"라는 인덱스에 할당합니다.
$this->config->load('blog_settings', TRUE);
// blog_settings 배열에 포함 된 site_name이라는 구성 항목을 검색합니다.
$site_name = $this->config->item('site_name', 'blog_settings');
// 같은 항목을 지정하는 다른 방법 :
$blog_config = $this->config->item('blog_settings');
$ site_name = $ blog_config [ 'site_name'];