CodeIgniter 항목 파일 분석

WBOY
풀어 주다: 2016-07-29 09:14:55
원래의
1289명이 탐색했습니다.
에서 CI 프레임워크의 기본 프로세스를 언급했습니다. 참고용으로 흐름도를 여기에 다시 게시했습니다.

CodeIgniter 항목 파일 분석

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가 참조되는 위치를 살펴보겠습니다.

CodeIgniter 항목 파일 분석
모두 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>
로그인 후 복사
CI 프레임워크에서는 이런 방식으로 많은 구성 파일이 도입되기 때문에 CI 프레임워크의 올바른 동작을 위해서는 ENVIRONMENT가 필요하므로 처음부터 ENVIRONMENT를 구성해 주어야 합니다.

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>
로그인 후 복사
STDIN,

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>
로그인 후 복사
(2) 응용 프로그램 디렉터리 확인.

CodeIgniter 항목 파일 분석

코드는 비교적 간단하며 많은 설명이 필요하지 않습니다.

마지막 줄 항목 파일인

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>
로그인 후 복사
를 소개합니다(다음 읽기 단계의 핵심이기도 함). CodeIgniter.php는 부트스트랩 파일이라고 하는데 이는 부트스트랩 파일이라는 뜻이며 CI 프레임워크 실행 프로세스의 핵심 파일이라는 뜻입니다.

요약하자면, index.php는 그다지 복잡한 작업을 하지 않지만, 물류와 유사하게 일련의 구성 매개변수를 제공하여 작업을 수행합니다. CI 프레임워크 및 정확성 검증, 이러한 구성 및 검증은 CI 프레임워크가 정상적으로 작동하는 데 핵심입니다.

이상은 관련 내용을 포함하여 CodeIgniter 항목 파일에 대한 분석을 소개한 것입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿