XE index.php 파일 분석 : 주석을 제거하면 아래와 같습니다.

define('__NURI__',   TRUE);
define('__XE__',   TRUE);

require dirname(__FILE__) . '/config/config.inc.php';

$oContext = &Context::getInstance();
$oContext->init();

if($oContext->checkSSO()) {
	$oModuleHandler = new ModuleHandler();

	try {
		if($oModuleHandler->init())	{
			$oModule = &$oModuleHandler->procModule();
			$oModuleHandler->displayContent($oModule);
		}
	}catch(Exception $e) {
		htmlHeader();
		echo Context::getLang($e->getMessage());
		htmlFooter();
	}
}

$oContext->close();


$oContext = &Context::getInstance();

Context 객체의 getInstance() 함수를 $oContext에 할당합니다.


그러면 Context 객체의 getInstance() 함수를 살펴 봅니다.

function &getInstance() {
	static $theInstance = null;
	if(!$theInstance) {
		$theInstance = new Context();
	}

	return $theInstance;
	}

$theInstance 변수에 null을 선언하고, $theInstance에 Context()함수를 실행하여 이에 대한 결과를 할당합니다.


Context() 함수 분석

function Context() {
	$this->oFrontEndFileHandler = new FrontEndFileHandler();
	$this->get_vars = new stdClass();
	$this->sslActionCacheFile = FileHandler::getRealPath($this->sslActionCacheFile);

	if(is_readable($this->sslActionCacheFile)) {
		require_once($this->sslActionCacheFile);
		if(isset($sslActions)) {
			$this->ssl_actions = $sslActions;
		}
	}
	}

$this->oFrontEndFileHandler은 Context()에 FrontEndFileHandler 클래스 할당.
특별한건 없으며, classes 폴더 frontendfile 폴더에 
FrontEndFileHandler.class.php 파일의 클래스 호출
아래와 같은 텅빈 배열함수만 할당된다~

var $cssMap = array();
var $jsHeadMap = array();
var $jsBodyMap = array();
var $cssMapIndex = array();
var $jsHeadMapIndex = array();
var $jsBodyMapIndex = array();

$this->get_vars = new stdClass();은 stdClass()라는게 없어서 그냥 할당됨~


index.php파일의 $oContext = &Context::getInstance(); 까지 실행된 부분을 debugPrint($oContext); 로 찍어보면 아래와 같다.


앞서 설명한대로 Context 객체에 있는 변수들을 기본적으로 $oContext에 불러오게 된다.
불러온것은 알겠는데... 아직까지 각각 정확히 어느곳에 쓰이는 지는 이후부터 나오게 되겠죠? (저도 잘 몰라요~ 지금 분석하면서 글 쓰는 겁니다. -0-)


$oContext->init(); 에 대한 추적시작~ 여기서 부터 양이 좀 많네요~ 다음 글에서...


 
댓글은 로그인 사용자만 작성 가능합니다. 로그인하기