>  기사  >  백엔드 개발  >  003 - CI는 라이브러리의 CodeIgniter 리소스를 사용합니다.

003 - CI는 라이브러리의 CodeIgniter 리소스를 사용합니다.

不言
不言원래의
2018-04-08 14:39:321116검색


클래스 라이브러리에서 get_instance() 함수를 사용하여 액세스하세요. CodeIgniter의 기본 리소스인 이 함수는 CodeIgniter 슈퍼 개체를 반환합니다.

일반적으로 컨트롤러 메소드에서는 $this을 사용하여 사용 가능한 모든 항목을 호출합니다. CodeIgniter 방법:


$this->load->helper('url');
$this->load->library('session');
$this->config->item('base_url');
// etc.

하지만 $this은 자신의 클래스에서 사용하려는 경우 컨트롤러, 모델 또는 뷰에서만 직접 사용할 수 있습니다. CodeIgniter 클래스에서 다음을 수행할 수 있습니다.

먼저 CodeIgniter 객체를 변수에 할당합니다:

$CI =& get_instance();

CodeIgniter 객체를 변수에 할당하면 해당 변수를 대신 에 사용할 수 있습니다. $this

$CI =& get_instance();

$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');
// etc.


참고:

위의 get_instance() 함수가 참조로 전달되는 것을 볼 수 있습니다.


$CI =& get_instance();

이것은 매우 중요한 점은 참조 할당을 사용하면 복사본을 만드는 대신 원본 CodeIgniter 개체를 사용할 수 있다는 것입니다.


클래스 라이브러리는 클래스이므로 OOP 원칙을 최대한 활용하는 것이 좋습니다. 따라서 클래스의 모든 메서드가 CodeIgniter 슈퍼 객체를 사용할 수 있도록 속성에 할당하는 것이 좋습니다. :

class Example_library {

    protected $CI;

    // We'll use a constructor, as you can't directly call a function
    // from a property definition.
    public function __construct()
    {
        // Assign the CodeIgniter super-object
        $this->CI =& get_instance();
    }

    public function foo()
    {
        $this->CI->load->helper('url');
        redirect();
    }

    public function bar()
    {
        echo $this->CI->config->item('base_url');
    }

}

관련 권장 사항:

002 - PDO와 MySQLi의 차이점과 선택

001 - PDO 사용에 대한 자세한 분석

위 내용은 003 - CI는 라이브러리의 CodeIgniter 리소스를 사용합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.