* * CI 에서 당신 만 의 라 이브 러 리 만 들 기
5617 단어 창설
라 이브 러 리 만 들 기
우리 가 용어 '라 이브 러 리' 를 사용 할 때, 우 리 는 일반적으로 libraries 에 있 는 것 을 가리킨다. 폴 더 의 클래스 는 위 키 의 '라 이브 러 리 참조' 판 에서 토론 되 었 습 니 다. 현재 이 화제 에서 우 리 는 어떻게 application/libraries 폴 더 에 클래스 라 이브 러 리 를 만 들 고 전체 프레임 워 크 의 자원 과 분리 합 니 다.
추가 기능 으로서 원본 클래스 에 간단하게 기능 을 추가 해 야 할 때 CodeIgniter 는 클래스 라 이브 러 리 extend 를 사용 할 수 있 습 니 다. 원본 클래스 에서. 응용 프로그램 / libraries 폴 더 에 같은 이름 의 라 이브 러 리 파일 을 설치 하 는 방법 으로 원본 클래스 를 완전히 바 꿀 수도 있 습 니 다.
어쨌든:
주의: 데이터베이스 클래스 를 제외 하고 확장 되 거나 바 꿀 수 없 으 며, 나머지 클래스 는 모두 가능 합 니 다.
라 이브 러 리 파일 만 들 기
라 이브 러 리 파일 은 저장 해 야 합 니 다. application/libraries 폴 더, CodeIgniter 는 이 폴 더 에서 찾 아 초기 화 합 니 다.
명명 규칙
모든 종 류 는 기본 원형 이 있어 야 한다. Someclass 이 이름 은 예):
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Someclass {
public function some_function()
{
}
}
/* End of file Someclass.php */
당신 의 종 류 를 사용 하 세 요.
모든 것 Controller 함수 에서 다음 과 같은 표준 방식 으로 클래스 를 초기 화 할 수 있 습 니 다.
$this->load->library('someclass');
... 해 야 한다 someclass 파일 이름 일 때 ". php" 확장 자 를 추가 하지 않 아 도 됩 니 다. 여기 이름 은 대소 문 자 를 가리 지 않 습 니 다.
사용자 정의 클래스 로 딩 이 완료 되면 다음 과 같은 방식 으로 클래스 를 호출 할 수 있 습 니 다. 사용 에 주의 하 십시오. 소문 자 이름:
$this->someclass->some_function(); //
사용자 정의 클래스 를 초기 화 할 때 매개 변 수 를 전달 합 니 다.
라 이브 러 리 를 초기 화 할 때 두 번 째 매개 변 수 를 통 해 동적 으로 배열 을 클래스 의 구조 함수 로 전달 할 수 있 습 니 다.
$params = array('type' => 'large', 'color' => 'red');
$this->load->library('Someclass', $params);
이 기능 을 사용 할 때, 클래스 의 구조 함수 에 인 자 를 추가 해 야 합 니 다.
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Someclass {
public function __construct($params)
{
// Do something with $params
}
}
?>
설정 파일 에 저 장 된 인 자 를 전달 할 수 있 습 니 다. 간단하게 만 들 고 클래스 파일 이름 이 같은 config 파일 을 저장 합 니 다. application/config/ 폴 더 에 있 습 니 다. 위 에서 말 한 방식 으로 파 라 메 터 를 동적 으로 전달 할 때 config 파일 의 옵션 이 작 동 하지 않 습 니 다.
사용자 정의 라 이브 러 리 에서 CodeIgniter 자원 초기 화
사용자 정의 라 이브 러 리 에서 CodeIgniter 의 원본 자원 에 접근 하려 면 사용 해 야 합 니 다. get_instance() 함수. 이 함 수 는 CodeIgniter 슈퍼 개 체 를 되 돌려 줍 니 다.
일반적으로 컨트롤 러 함수 에서 통과 할 수 있 습 니 다. $this 사용 가능 한 CodeIgniter 함수 호출:
$this->load->helper('url');
$this->load->library('session');
$this->config->item('base_url');
//etc.
$this 는 컨트롤 러, 모델, 보기 에 만 적 용 됩 니 다. 사용자 정의 클래스 에서 CodeIgniter 원본 클래스 를 사용 하려 면 다음 과 같이 할 수 있 습 니 다.
우선, CodeIgniter 대상 이 변 수 를 부여 하 는 것 을 정의 합 니 다.
$CI =& get_instance();
대상 을 변수 로 정의 하면 그 변수 이름 을 사용 할 수 있 습 니 다. 대체 하 다 $this:
$CI =& get_instance();
$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');
//etc.
주의: getinstance () 이 함 수 는 인 용 된 방식 으로 전 달 됩 니 다: $CI = & getinstance(); 이것 은 매우 중요 하 다. 인용 방식 으로 변 수 를 부여 하면 복사 본 을 만 드 는 대신 원본 CodeIgniter 대상 을 사용 합 니 다.
너 자신의 클래스 로 원시 클래스 를 교체 해라.
간단하게 클래스 를 원본 클래스 와 같이 명명 하면 CodeIgniter 에서 이 클래스 를 사용 할 수 있 습 니 다. 이 기능 을 사용 하려 면 파일 이름과 클래스 설명 이 원본 클래스 와 완전히 일치 해 야 합 니 다.예 를 들 어 원본 을 바 꾸 려 면 Email 분류 창고.응용 프로그램 / libraries / Email. php 파일 을 만 들 고 다음 과 같은 방식 으로 클래스 를 설명해 야 합 니 다.
class CI_Email {
}
대부분의 원시 클래스 는 CI접두사
표준 불 러 오기 함수 로 만 클래스 를 불 러 올 수 있 습 니 다:
$this->load->library('email');
주의: 이 때 Database 는 사용자 정의 클래스 로 바 꿀 수 없습니다.
기 존 클래스 확장
기 존 라 이브 러 리 에 한두 개의 새로운 기능 을 추가 해 야 한다 면 전체 라 이브 러 리 파일 을 교체 할 필요 가 없습니다. 기 존 클래스 를 간단하게 확장 (계승) 하면 클래스 에 예 외 를 추가 하 는 것 과 같 습 니 다.
class MY_Email extends CI_Email {
}
메모: 클래스 에서 구조 함 수 를 사용 해 야 한다 면 구조 함수 에서 부모 구조 함 수 를 명시 적 으로 계승 해 야 합 니 다.
class MY_Email extends CI_Email {
public function __construct()
{
parent::__construct();
}
}
하위 클래스 불 러 오기
확장 하위 클래스 를 불 러 오 려 면 표준 문자 이름 을 사용 해 야 합 니 다. 접 두 사 를 사용 하지 마 십시오. 예 를 들 어 앞에서 말 한 email 확장 하위 클래스 를 불 러 오 려 면 이렇게 써 야 합 니 다.
$this->load->library('email');
확장 하위 클래스 가 불 러 오 면 일반 클래스 처럼 사용 할 수 있 습 니 다. Email 클래스 의 모든 함수 가 호출 될 수 있 습 니 다.
$this->email->some_function();
사용자 정의 접두사 설정
하위 클래스 접 두 사 를 설정 하려 면 열 어 주 십시오. application/config/config.php 파일 을 찾 고 이 항목 을 찾 습 니 다:
$config['subclass_prefix'] = 'MY_';
모든 원본 CodeIgniter 라 이브 러 리 를 주의 하 십시오. CI_ 접두사 로 서 CI 를 사용 하지 마 십시오.당신 의 접두사 로...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 파일, 폴 더 생 성 및 삭제QQ 그룹 에서 어떤 사람 이 폴 더 의 삭 제 를 묻 자 인터넷 으로 찾 아 보 았 습 니 다. 프로그램 을 만 들 었 습 니 다. 주의해 야 할 점 은 폴 더 안의 내용 이 파일 인지 하위 폴 더 인지 판단 해 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.