소스코드


소스코드는 지니 프레임워크를 더 세부적으로 기능을 이해를 원하는 개발자들을 위한 공식 문서 입니다. 또한 소스코드에 대한 문서를 통하여 프레임워크를 더 깊게 이해하고, 기능을 향상시켜 많은 사림들이 더 좋은 프레임워크를 사용할 수 있도록 하기 위한 목적입니다.

내부 코드를 이해하기 위해서는 먼저 PHP언어에 대해서 충분히 숙지하고, 능숙해 져야 합니다.

지니코드는 지니프레임 워크의 세부적인 동작과 코드설명에 관한 문서 입니다.

지니의 코드 시작은 ./public 폴더 안에 있는 index.php 파일입니다. 모든 url의 서비스는 .htaccess REWRITE 설정을 통하여 처리가 위임됩니다.

new Application;

을 통해서 첫번째 클래스의 인스턴스로 진입을 하게 됩니다.


Application의 역할


Application 은 처음으로 호출되는 메인 클래스 입니다.

Application은 __construct 초기화 메서드 호출 한번으로 동작을 하게 됩니다. 이는 클래스의 인스턴스 생성 한번만으로 관련 처리를 모두 할 수 있습니다.

초기화


지니 프레임워크는 객체지향 프로그램으로 개발되어 있습니다. 수많은 클래스와 각각의 객체간의 통신을 통하여 동작을 하게 됩니다.

패키지


Application은 지니 프레임웍의 페키지들을 관리할 수 있는 클래스를 초기화 합니다. 페키지 관리를 통하여 동작 오류를 방지할 수 있습니다.

$this->Packages = new Package ($this);

레지스트리


레지스트리는 필요한 클래스의 인스턴스들을 만들고 관리하는 기능을 합니다.

이러헤게 동작에 필요한 클래스의 인스턴스의 중복생성을 막고, 체계적으로 관리하기 위해서 인스턴스 pool를 사용합니다. 다른 말로 레지스트리 라고도 합니다.

또한 레지스트리는 인스턴스를 한번만 만들고 관리하기 때문에 싱글톤 패턴과 매우 유사합니다. 즉, 싱클톤으로 생성된 클래스들을 관리하는 역확을 한다고 생각하시면 됩니다.

// 인스턴스 레지스터
$this->registry();

Application에서 레지스트리를 설정하는 호출을 하게 됩니다.

환경설정


프레임워크가 동적으로 동작을 하는데 있어서 중요한 시스템이 바로 환경 설정 파일입니다.

환경 설정 파일을 외부에 두고, 값을 참고하여 동적으로 시스템의 동작을 처리할 수 있습니다.

환경설정 파일을 통하여 다양한 고객과 시스템의 사향에 반응하여 동작을 처리할 수 있습니다.

// 환경설정 객체를 로드합니다.
$this->configure();

부트스트래핑


다음으로 처리해야 하는 동작은 부트스트래핑 입니다. 프레임워크는 모든 url에 대해서 .htaccess를 통한 리다이렉션 동작을 합니다.

따라서 입력된 url에 맞는 동작을 분석하여 클래스, 매소드, 인자값 등을 분리 해야 합니다.

// 부트스트래핑
$this->Boot = new Bootstrap($this);
$this->Boot->parser();