::: SPAC (Simple Php Action Class) PHP Framework:::



Spac 은 PHP를 이용해 웹어플리케이션을 개발시 구조적이고 체계적인 개발을 할 수 있도록 도와주는 PHP를 위한 개발 프레임웍입니다.

최근 PHP 프레임웍이 외국으로부터 많이 알려지면서 프레임웍을 이용하여 개발하는 사례가 많아지며, 프레임웍에 대해 관심을 갖는 PHP 개발자들 또한 많아지고 있는 추세인것 같습니다.

이런 분위기를 타고 저 또한 개인적으로 사용하고 있는 PHP 개발 프레임웍 Spac을 소개하고자 합니다.

Spac은 작고, 가볍고,  빠른 PHP 웹어플리케이션 개발을 위한 프레임웍입니다.


Spac 이라는 PHP프레임웍에 대해 특징을 위주로 하나하나 소개하겠습니다.


1. 개인/기업/영리/비영리기관 관계없이 무료로 웹사이트 개발에 이용하실 수 있습니다. (수정배포 불가)


2. 클래스기반의 작고, 가볍고, 빠른  PHP 웹어플리케이션 개발 프레임웍입니다.


3. URL을 분석하여 액션클래스를 매핑, 실행합니다.


4. M.V.C 패턴을 기본으로 지원합니다.


5. 웹어플리케이션을 위한 디렉토리 구성이 자유롭습니다.


6. 호출되는 URL과 이에 매핑되는 액션클래스를 사용자가 임의로 설정할 수 있습니다. (액션클래스매핑)


7. 간편한 HTML 레이아웃 구성 도구가 제공됩니다.


8. 뷰에서 PHP코드의 활용이 자유롭습니다.


9. 뷰에 전용템플릿태그를 기본적으로 지원하며, 사용자가 직접 태그규칙을 작성하여 실행할 수도 있습니다.


10. 뷰파일은 캐시되어 좀 더 빠른 엑세스를 가능하게 합니다.


11. URL 암호화 기능을 지원하며, 이 암호화 처리는 사용자 암호화클래스를 로드하여 구성할 수도 있습니다. 


12. 개발에 중요한 사항은 기본적인 플러그인으로 제공됩니다. ( Dao,  Paging 등)


13. 기타 다양한 확장을 위해 외부컨트롤러로드 도구를 제공합니다.


14. 지속적인 업데이트가 진행되며 업데이트 반영시 이미 개발된 사용자 어플리케이션에 영향을 거의 주지 않습니다.






1. Spac(Simple Php Action Class)은 클래스기반 개발 프레임웍입니다.

아래는 간단한 "Hello World" 를 출력하는 간단한  예제입니다.


(1) "HelloWorld"  클래스 작성 

model/HelloWorld.Class.php
<?php
class HelloWorld extends Controller {
    function HelloWorld () {
       $this->message = "Hello World!";
    }
    function execute() {
       $this->result_uri = 'helloworld.html';
       $this->dispatcher();
    }
}
?>

view/helloworld.html
<html>
<head></head>
<body>
{=message}
</body>
</html>


(2) 브라우저 호출 / 출력





2. URL을 이용하여 직접 클래스/메소드를 호출하는 방식을 사용합니다.

Spac에선 URL에 실제 웹서버의 디렉토리 및 파일구조를 명시하는 방식이 아닌 가상의 URL을 사용합니다.
이 가상의 URL은 Spac 내부에 구성된 사용자 클래스를 기반으로 구성됩니다.

위의 예제와 같이 URL에 클래스명 및 메소드명을 직접 명시하여 호출하면 Spac 컨트롤러가 해당 클래스의 메소드를 실행시켜 줍니다.

아래는 Spac 을 이용하여 개발시 일반적인 URL 호출 유형입니다.

 





3. Model, View, Controller 의 구조를 기본으로 하는 개발 프레임웍입니다.

다른 일반적인 프레임웍과 마찬가지로 Spac 프레임웍이 비즈니스로직과 프리젠테이션 영역을 분리하여 개발할 수 있도록 도와줍니다.

Model 에서 수행된 비즈니스로직 수행 결과를 View에 전달하여 사용자에게 출력(프리젠테이션) 하는 구조를 가지고 있으며, 이때 Model 과 View를 연결해주는 연결자 역할을 Spac 프레임웍의 Controller 가 담당하고 있습니다.



다음 그림은 Spac 프레임웍의 일반적인 프로세스 구성도 입니다. 



 


 

4. 웹어플리케이션들이 위치하는 웹디렉토리 구성이 자유롭습니다.

Spac 프레임웍을 이용하여 개발하면 웹디렉토리 및 파일구성이 자유롭습니다.

Spac 의 핵심코어 및 개발자가 작성한 중요한 어플리케이션들은 웹에서 직접 접근 불가능한 위치에 둘 수 있으며, 이를 권장합니다.

웹에서 접근 가능한 디렉토리 (일반적으로 "public_html" 혹은 "www" 등..) 에는 "index.php" 파일과 이미지 및 자바스크립트, 스타일시트 파일등만 위치하고, 중요한 웹어플리케이션 파일들은 웹디렉토리 외 다른 디렉토리에 구성할 수 있습니다.


아래는 기본적인 Spac의 디렉토리 구성입니다. (그림에서 public_html 은 웹에서 접근 가능한 웹디렉토리를 의미합니다.)



(위의 디렉토리 구성은 예제이며 사용자의 환경에 맞추어 자유롭게 구성할 수 있습니다.)






5. 클래스매핑을 이용하여 URL 에 직접 명시되는 클래스명이 노출됨으로서 발생할 수 있는 미연의 사고를 방지할 수 있습니다.

Spac에서는 URL 에 비즈니스로직을 명시 호출하여 해당 클래스가 실행되도록 하고 있는데 이때 노출될 수 있는 클래스명을 클래스매핑을 이용하여 전혀 다른 클래스가 실행 되도록 설정할 수 있습니다.

이는 URL로 "AClass" 가 호출되면 실제 "AClass" 가 아닌 "BClass"가 실행되도록 설정 할 수 있음을 의미합니다.



 

6. Spac 프레임웍에는 간편하게 페이지 레이아웃을 구성할 수 있는 도구가 제공됩니다.

기존 PHP 개발시 여러개의 조각 파일을 하나의 레이아웃 파일에 인클루드로 삽입하여 사용하던 방식을 Spac Layout 기능을 이용하면 더욱 더 간편하게 작성하실 수 있고, 유지보수 또한 간편하게 하실 수 있습니다.




▼▼▼





7. HTML을 이용하여 뷰 화면을 구성 / 출력 할 수 있으며, 자유롭게 PHP코드를 사용할 수 있습니다.

사용자가 작성한 클래스에서 도출된 결과값을 특정한 View 파일을 이용하여 출력할 수 있습니다.
이 View 파일은 HTML 코드로 작성할 수 있으며, 이 파일내에서 PHP 코드의 사용 또한 자유롭습니다.





8. 위 View 파일내에 PHP코드를 섞어 쓰는대신 템플릿전용 태그를 사용하여 좀 더 간결한 View를 작성하실 수 있습니다.

View 파일은 기본적으로 HTML코드 및 PHP코드를 사용하여 작성하지만, 여러가지 이유로 PHP코드 섞어 사용하기 불편한 경우 이를 대신하여 전용 템플릿태그를 사용할 수 있습니다.






9. View 파일은 Cache 파일로 저장하여 좀 더 빠른 엑세스를 가능하게 합니다.


레이아웃 및 템플릿 전용 태그를 사용하는 경우 서버에 부담을 줄여주고 속도를 높이기 위해 해당 결과물을 캐시파일로 저장하여 다음번 호출시 해당 로직을 수행하지 않고 즉각 캐시파일을 실행합니다.

원본파일이 수정될 경우 캐시파일이 자동 업데이트 ON/OFF 기능 또한 내장되어 있습니다. 






10. 외부 플러그인 컨트롤러의 자유로운 사용

Spac 프레임웍에서 개발에 필요한 모든 기능을 제공하지 않는 대신, 유용한 외부 클래스를 플러그인으로 로드하여 사용할 수 있는 환경을 제공합니다.

개발의 주가 되는 비즈니스로직과 직접적인 관련인 없는 범용 클래스들을 Spac에서는 외부컨트롤러로 인식하여 로딩하여 사용할 수 있도록 해줍니다.

 

이상 Spac의 일반적인 소개를 마칩니다.




Posted by webdata