Live Brilliant

코드이그나이터 흐름도 본문

개발은 핵찜이야/codeigniter

코드이그나이터 흐름도

주인정 2013. 3. 21. 12:00

1. index.php

경로를 알고, 주요 경로 상수를 설정


define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); 
define('EXT', '.php');
define('BASEPATH', str_replace("\\", "/", $system_path));
define('FCPATH', str_replace(SELF, '', __FILE__));
define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/'));

define('APPPATH', $application_folder.'/');


//부트스트랩 파일 로드

require_once BASEPATH.'core/CodeIgniter.php';


2. /system/core/Codeigniter.php

> global functions 불러오기

 require(BASEPATH.'core/Common.php');

>framework 상수 불러오기

require(APPPATH.'config/constants.php'); 

>base 컨트롤러 클래스 불러오기

 require BASEPATH.'core/Controller.php';

>브라우저에 최종 렌더링 된 출력을 보내기

if ($EXT->_call_hook('display_override') === FALSE){
      $OUT->_display();

}



3./system/core/Common.php


4./system/core/Controller.php


5./system/core/Loader.php

>$this->load->library('someclass');

public function library($library = '', $params = NULL, $object_name = NULL){
    $this->_ci_load_class($library, $params, $object_name);

}


이 함수는 요청 된 클래스를로드합니다.

protected function _ci_load_class($class, $params = NULL, $object_name = NULL)

{

$subclass = APPPATH.'libraries/'.$subdir.config_item('subclass_prefix').$class.'.php';

$baseclass = BASEPATH.'libraries/'.ucfirst($class).'.php';

include_once($baseclass);

include_once($subclass);

}



Comments