CI 프레임 워 크 학습 노트(2)-입구 파일 index.php
6865 단어 CI 프레임 워 크입구 파일
CI 프레임 워 크 의 입구 파일 로 서 원본 코드 를 읽 으 면 자 연 스 럽 게 시 작 됩 니 다.소스 코드 를 읽 는 과정 에서 우 리 는 한 줄 한 줄 해석 하지 않 고 핵심 적 인 기능 과 실현 만 설명 한다.
1.프로그램 환경 설정
define('ENVIRONMENT', 'development');
여기 development 는 당신 이 좋아 하 는 환경 이름(예 를 들 어 dev,test)일 수 있 습 니 다.이에 대응 하 는 것 은 아래 switch case 코드 블록 에서 설정 한 환경 에 대해 잘못된 통 제 를 해 야 합 니 다.그렇지 않 으 면 CI 프레임 워 크 는 해당 하 는 환경 을 설정 하지 않 았 다 고 생각 하고 프로 세 스 를 종료 하고 해당 하 는 오류 정 보 를 제공 합 니 다.
default: exit('The application environment is not set correctly.');
왜 처음부터 ENVIRONMENT 를 설정 해 야 합 니까?이 는 CI 프레임 워 크 의 많은 구성 요소 가 ENVIRONMENT 설정 에 의존 하기 때 문 입 니 다.system 에서 ENVIRONMENT 를 참조 하 는 곳 을 살 펴 보 겠 습 니 다.이 를 통 해 알 수 있 듯 이 많은 구성 요소 들 이 ENVIRONMENT 에 의존 하고 있 습 니 다.예 를 들 어 system/config/Common.php 를 보면 설정 파일 을 도입 하 는 코드 가 있 습 니 다.이렇게 이 루어 집 니 다.
if ( ! defined('ENVIRONMENT') OR ! file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/config.php'))
{
$file_path = APPPATH.'config/config.php';
}
CI 프레임 워 크 에 서 는 이러한 방식 으로 많은 프로필 이 도입 되 기 때문에 ENVRION MENT 는 CI 프레임 워 크 가 올 바 르 게 실 행 될 때 필수 적 이 므 로 시작 할 때 ENVIRONMENT 를 설정 해 야 합 니 다.ENVIRONMENT 를 설정 하 는 장점 중 하 나 는 시스템 코드 를 수정 하지 않 고 시스템 설정 을 편리 하 게 전환 할 수 있다 는 것 이다.예 를 들 어 시스템 이 테스트 단계 에 들 어 갈 때 database 는 테스트 데이터베이스 로 설정 되 고 시스템 테스트 가 끝 날 때 database 는 온라인 데이터 베이스 로 전환 합 니 다.이것 은 마치 하나의 스위치 로 시스템 의 환경 전환 을 제어 하 는 것 과 같 아서 자연히 매우 편리 하 다.2.시스템 디 렉 터 리 와 응용 프로그램 디 렉 터 리 설정
CI 프레임 워 크 는 시스템 의 핵심 소스 코드 와 응용 프로그램 코드 를 분리 해서 배치 할 수 있 습 니 다.그러나 시스템 의 system 폴 더 와 application 폴 더 를 설정 해 야 합 니 다.(마찬가지 로 폴 더 이름 은'system'과'application'을 사용 하지 않 고 합 법 적 인 폴 더 이름 일 수 있 습 니 다.)
$system_path = 'system';
$application_folder = 'application';
다음은 다음 코드 가 있 습 니 다.
if (defined('STDIN'))
{
chdir(dirname(__FILE__));
}
이 코드 는 무엇 입 니까?우선,STDIN,STDOUT,STDERR 은 PHP 가 CLI(Command Line Interface)모드 로 실행 되 는 세 개의 상수 로 정 의 된 것 이다.이 세 개의 상수 가 Shell 의 stdin,stdout,stdout 과 유사 하 다.각각 PHP CLI 모드 에서 의 표준 입력,표준 출력 과 표준 오류 흐름 이다.즉,이 세 줄 코드 는 명령 행 모드 에서 CI 프레임 워 크 가 정상적으로 작 동 할 수 있 도록 하기 위 한 것 이다.PHP CLI 에 대한 자세 한 내용 은 다음 과 같 습 니 다.http://www.php-cli.com/3.system 디 렉 터 리 의 정확성 검증 과 application 디 렉 터 리 검증
(1).system 디 렉 터 리 의 정확성 검증
Realpath 는 디 렉 터 리 나 파일 의 절대 디 렉 터 리 이름 을 되 돌려 줍 니 다(마지막/없 음)
if (realpath($system_path) !== FALSE)
{
$system_path = realpath($system_path).'/';
}
$system_path = rtrim($system_path, '/').'/';
if ( ! is_dir($system_path))
{
exit("xxxxxxxx");
}
몇 개의 정 의 된 상수(PATH 끝 에 있 는 상수 가 디 렉 터 리 경 로 를 표시 하고 DIR 끝 에 있 는 변 수 는 디 렉 터 리 이름 을 표시 합 니 다):a.SELF(index.php 파일 을 가리 키 는 말)
b.EXT(deprecated,폐기,관심 필요 없 음)
c.BASEPATH(system 폴 더 의 경로)
d.FCPATH(전단 컨트롤 러 의 경로)
e.SYSDIR(시스템 디 렉 터 리 이름)
f.APPPATH(응용 프로그램 경로)
모든 정 의 된 상수 보기:
Print_r(get_defined_constants());
(2)application 의 디 렉 터 리 검증.
코드 가 비교적 간단 해서 너무 많은 설명 을 하지 않 습 니 다.
if (is_dir($application_folder))
{
define('APPPATH', $application_folder.'/');
}
else
{
if ( ! is_dir(BASEPATH.$application_folder.'/'))
{
exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF);
}
define('APPPATH', BASEPATH.$application_folder.'/');
}
입구 파일 의 마지막 줄 에 CodeIgniter.php 를 도입 합 니 다.CodeIgniter.php 는 boottstrap file 이 라 고 불 린 다.즉,안내 파일 로 CI 프레임 워 크 실행 프로 세 스 의 핵심 파일 이다.
require_once BASEPATH.'core/CodeIgniter.php';
요약 하면 index.php 는 복잡 한 작업 을 많이 하지 않 고 하나의 후방 근무 와 유사 하여 CI 프레임 워 크 의 운행 에 일련의 설정 매개 변수 와 정확성 검증 을 제공 했다.이런 설정 과 검증 은 CI 프레임 워 크 가 정상적으로 운행 할 수 있 는 관건 이다.마지막 으로 관례 에 따라 전체 파일 의 원본 코드(주석 판 간소화)를 붙 입 니 다.
<?php
define('ENVIRONMENT', 'development');
if (defined('ENVIRONMENT'))
{
switch (ENVIRONMENT)
{
case 'development':
error_reporting(E_ALL);
break;
case 'testing':
case 'production':
error_reporting(0);
break;
default:
exit('The application environment is not set correctly.');
}
}
/*
* SYSTEM FOLDER NAME
*/
$system_path = 'system';
/*
* APPLICATION FOLDER NAME
*/
$application_folder = 'application';
/*
* Resolve the system path for increased reliability
*/
if (defined('STDIN'))
{
chdir(dirname(__FILE__));
}
if (realpath($system_path) !== FALSE)
{
$system_path = realpath($system_path).'/';
}
$system_path = rtrim($system_path, '/').'/';
if ( ! is_dir($system_path))
{
exit("xxxxxxxx");
}
/*
* set the main path constants
*/
// The name of THIS file
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
// this global constant is deprecataaed.
define('EXT', '.php');
// Path to the system folder
define('BASEPATH', str_replace("\\", "/", $system_path));
// Path to the front controller (this file)
define('FCPATH', str_replace(SELF, '', __FILE__));
// Name of the "system folder"
define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/'));
// The path to the "application" folder
if (is_dir($application_folder))
{
define('APPPATH', $application_folder.'/');
}
else
{
if ( ! is_dir(BASEPATH.$application_folder.'/'))
{
exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF);
}
define('APPPATH', BASEPATH.$application_folder.'/');
}
require_once BASEPATH.'core/CodeIgniter.php';
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
CI 프레임 워 크 인증 코드 CAPTCHA 보조 함수 용법 인 스 턴 스본 논문 의 사례 는 CI 프레임 워 크 인증 코드 CAPTCHA 보조 함수 의 용법 을 설명 하여 여러분 께 참고 하도록 공유 합 니 다.구체 적 으로 다음 과 같다. CAPTCHA 보조 함 수 를 사용 하면 인증...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.