Skip to main content
조회 수 5206 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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() 함수를 살펴 봅니다.

1
2
3
4
5
6
7
8
function &getInstance() {
    static $theInstance = null;
    if(!$theInstance) {
        $theInstance = new Context();
    }
 
    return $theInstance;
    }

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


Context() 함수 분석

1
2
3
4
5
6
7
8
9
10
11
12
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(); 에 대한 추적시작~ 여기서 부터 양이 좀 많네요~ 다음 글에서...



  1. XE 위젯(Widget) 페이지 수정 권한 오류 (msg_is_not_administrator 메세지 출력)

  2. XE XML 쿼리 ORDER BY 대문자 사용하면 안됩니다.

  3. XE CKEditor 옵션 설정 (i 태그 유지하기)

  4. XE 비밀번호 찾기 질문/답변 필수 제거하기

  5. XE SSL 선택적으로 사용시 act에 따른 링크 적용이 잘 안될때...

  6. [기초튼튼] PHP is_a 의미, 삼항연산자

  7. XE index.php 파일 부터 관련된 부분을 분석합시다.(3)

  8. XE index.php 파일 부터 관련된 부분을 분석합시다.(2)

  9. XE index.php 파일 부터 관련된 부분을 분석합시다.(1)

  10. [기초튼튼] PHP -> 의미

  11. [기초튼튼] PHP & 의미, @ 의미, :: 의미, : 의미

  12. XE 외부페이지 이미지 리사이즈 애드온 적용하는 방법

  13. XE 구글 analytics 코드 어디에 넣어야 효율적인가?

  14. XE 외부페이지 javascript 주석 처리시 주의점

  15. php 5.3 대응하기

  16. XE 외부링크 이미지 썸네일 생성 문제

  17. xe 1.6.0 업그레이드를 위한 준비

  18. xe 외부페이지 mid 중복일때 다음페이지로 넘기는 방법

  19. XE firefox 디버그 모드에서 x.js 의 DEPRECATED 표시 관련

  20. XML 쿼리 sort 정렬 두개 처리하는 방법

Board Pagination Prev 1 2 3 4 Next
/ 4

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

나눔고딕 사이트로 가기

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5