CI 프레임워크로서 엔트리 파일, 소스코드 읽기는 당연히 여기서부터 시작됩니다. 소스 코드를 읽는 과정에서는 한 줄씩 설명하지 않고 핵심 기능과 구현에 대해서만 설명합니다.
1. 애플리케이션 환경 설정
<span>define</span><span>('ENVIRONMENT', 'development');</span>
여기서 개발은 원하는 환경 이름으로 할 수 있습니다. (예를 들어, dev, 그다음 test) 그에 따라 아래의 스위치 케이스 코드 블록에서 설정된 환경에 대한 관련 오류 제어를 수행해야 합니다. 그렇지 않으면 CI 프레임워크는 해당 환경을 구성하지 않은 것으로 간주하여 종료됩니다. 프로세스를 실행하고 해당 오류 메시지를 제공합니다.
<span>default</span><span>: <span>exit</span>('The application environment is not set correctly.');</span>
먼저 왜 환경을 구성해야 합니까? 이는 CI 프레임워크의 많은 구성 요소가 ENVIRONMENT 구성에 의존하기 때문입니다. 시스템에서 ENVIRONMENT가 참조되는 위치를 살펴보겠습니다.
모두 ENVIRONMENT에 의존하는 구성 요소가 많다는 것을 알 수 있습니다. 예를 들어 system/config/Common.php를 보면 다음과 같이 구현되는 구성 파일을 소개하는 코드가 있습니다.
<span>if</span><span> ( ! <span>defined</span>('ENVIRONMENT') OR ! <span>file_exists</span>(<span>$file_path</span> = APPPATH.'config/'.ENVIRONMENT.'/config.php'<span>)) { </span><span>$file_path</span> = APPPATH.'config/config.php'<span>; }</span></span>
ENVIRONMENT 설정의 장점 중 하나는 시스템 코드를 수정하지 않고도 시스템 구성을 쉽게 전환할 수 있다는 것입니다. 예를 들어, 시스템이 테스트 단계에 진입하면 데이터베이스는 테스트 데이터베이스로 구성되고, 시스템 테스트가 완료되면 데이터베이스는 온라인 데이터베이스로 전환된다. 이는 스위치를 사용하여 시스템의 환경 전환을 제어하는 것과 같으며 이는 당연히 매우 편리합니다. 2. 시스템 디렉토리 및 애플리케이션 디렉토리 구성
CI 프레임워크를 사용하면 시스템 핵심 소스를 결합할 수 있습니다. 코드 및 응용 프로그램 코드는 별도로 배치되지만 시스템의 시스템 폴더와 응용 프로그램 폴더를 설정해야 합니다(마찬가지로 폴더 이름은 합법적인 폴더 이름일 수 있으며 반드시 '시스템' 및 '응용 프로그램'을 사용할 필요는 없습니다). 🎜>
다음에는 다음 코드가 있습니다.
<span>$system_path</span><span> = 'system'<span>; </span><span>$application_folder</span> = 'application';</span>
이 코드 조각은 무엇을 위한 것인가요? 우선
<span>if</span><span> (<span>defined</span>('STDIN'<span>)) { </span><span>chdir</span>(<span>dirname</span>(<span>__FILE__</span><span>)); }</span></span>
STDOUT, STDERR은 PHP CLI(명령어) Line Interface) 모드에서 실행하기 위해 정의된 세 가지 상수는 각각 Shell의 stdin, stdout 및 stdout과 유사하며 PHP CLI 모드의 표준 입력 및 표준 출력입니다. 및 표준 오류 스트림. 즉, 이 세 줄의 코드는 CI 프레임워크가 명령줄 모드에서 정상적으로 실행될 수 있도록 보장하기 위한 것입니다. PHP에 대하여 CLI에 대한 자세한 내용은 http://www.php-cli.com/을 참조하세요. 3. 시스템 디렉토리 정확성 검증 및 애플리케이션 디렉토리 검증
(1) 시스템 디렉터리의 정확성 확인
Realpath는 디렉터리 또는 파일의 절대 디렉터리 이름을 반환합니다(마지막 / 제외)
정의된 여러 상수(PATH 끝에 있는 상수는 디렉터리 경로를 나타내고 DIR 끝에 있는 변수는 디렉터리 이름을 나타냅니다):
<span>if</span><span> (<span>realpath</span>(<span>$system_path</span>) !== <span>FALSE</span><span>) { </span><span>$system_path</span> = <span>realpath</span>(<span>$system_path</span>).'/'<span>; } </span><span>$system_path</span> = <span>rtrim</span>(<span>$system_path</span>, '/').'/'<span>; </span><span>if</span> ( ! <span>is_dir</span>(<span>$system_path</span><span>)) { </span><span>exit</span>("xxxxxxxx"<span>); }</span></span>
a.Self (여기서는 index.php 파일 참조)
B. EXT (사용되지 않음, 폐기됨, 주의하지 않음)
C. BASEPATH(시스템 폴더 경로)
d. FCPATH(프런트엔드 컨트롤러 경로)
e.SYSDIR(시스템 디렉터리 이름)
f. APPPATH(응용 프로그램 경로)
정의된 상수 모두 보기 방법:
<span>Print_r</span><span>(<span>get_defined_constants</span>());</span>
코드는 비교적 간단하며 많은 설명이 필요하지 않습니다.
마지막 줄 항목 파일인
CodeIgniter.php
<span>if</span><span> (<span>is_dir</span>(<span>$application_folder</span><span>)) { </span><span>define</span>('APPPATH', <span>$application_folder</span>.'/'<span>); } </span><span>else</span><span> { </span><span>if</span> ( ! <span>is_dir</span>(BASEPATH.<span>$application_folder</span>.'/'<span>)) { </span><span>exit</span>("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".<span>SELF); } </span><span>define</span>('APPPATH', BASEPATH.<span>$application_folder</span>.'/'<span>); }</span></span>
요약하자면, index.php는 그다지 복잡한 작업을 하지 않지만, 물류와 유사하게 일련의 구성 매개변수를 제공하여 작업을 수행합니다. CI 프레임워크 및 정확성 검증, 이러한 구성 및 검증은 CI 프레임워크가 정상적으로 작동하는 데 핵심입니다.
이상은 관련 내용을 포함하여 CodeIgniter 항목 파일에 대한 분석을 소개한 것입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.