오늘은 예정에 없었지만 꼭 필요할것 같아 보너스타임을 가져볼까 합니다..^^
현재 진행중인 플렉스게시판은 서버사이드 스크립트로 php 를 사용합니다.
오늘은 설정부분입니다.
php 를 통해 디비접근과 결과리턴의 방법에는 여러가지가 있겠습니다만 개발의 편리성을 최대한 고려하여
개발을 하도록 하겠습니다.
1. 경로 - 땡땡슬래시 땡땡슬래시(../../) 이런방식의 경로지정은 하지 않습니다.
_PHP/ , _FLEX/ 와같이 한눈에 봐도 어떤 경로를 참조하는지 알도록 합니다.
2. 클래스 - php5 에서 지원하는 __autoload() 함수를 이용하여 include 없이 클래스를 사용하도록 합니다.
httpd.conf 의 VirTualHost 내에 아래 내용을 넣으면
사이트 로딩과 동시에 AutoLoad.php 를 읽습니다.
php_value auto_prepend_file "/home/Test/public_html/Site/_Config/AutoLoad.php"
그렇게 되면 클래스가 정의된 파일을 include 하지 않아도 정해진 디렉토리에서 해당클래스를 알아서
찾아서줍니다. 그냥
$DB = new DB();
$DB->Select();
뭐 이런식으로 바로 사용하면 되는겁니다.
AutoLoad.php
<?php
/*
*******************************************************************************
*
* 단어치환 및 __autoload() 를 통한 클래스자동로드 설정
*
********************************************************************************
*/
define ( '_SN', $_SERVER['SERVER_NAME'] ); // 서버명
define ( '_CLANG', $_SERVER['HTTP_ACCEPT_LANGUAGE'] ); // 사용언어(ko:한글, en:영어)
define ( '_PORT', $_SERVER['SERVER_PORT'] ); // 사용포트
define ( '_WS', (eregi('^windows',php_uname())) ? true : false ); // 윈도우 or 리눅스
define ( '_RE' , _WS ? "\r\n" : "\n" ); // 개행처리
define ( '_SEP' , _WS ? '\\' : '/' ); // 디렉토리 구분자
define ( '_DR', str_replace(_SEP, '/', $_SERVER['DOCUMENT_ROOT']) ); // Document Root
// define ('_ROOT', str_replace(_SEP, '/', dirname(__FILE__))); // Root of Framework
define ('_ROOT', "../"); // Root of Framework
define ( '_PHP', _ROOT.'/_PHP' ); // PHP Class
define ( '_JS', _ROOT.'/_JS' ); // JS Class
define ( '_CSS', _ROOT.'/_CSS' ); // CSS Class
define ('_HDIR', str_replace(_SEP, '/', realpath(getcwd())) ); // 현재 디렉토리의 절대경로
define ( '_CONFIG', _ROOT.'/_Config' ); // Config 파일의 경로
// Include Path 를 구한다.
function getIncludePath( $fileName, $Path='' )
{
if ( is_file(_PHP.'/'.$fileName.'.php') ) { return _PHP; }
$opath = @opendir( _PHP."/".$Path );
while( $dirName=readdir($opath) )
{
if ( ereg("^(\.|\.\.)$", $dirName) ) { continue; }
if ( is_dir(_PHP."/".$Path."/".$dirName) )
if ( $IPath = getIncludePath($fileName, $Path.'/'.$dirName) )
{
closedir( $opath );
return $IPath;
}
}
closedir( $opath );
return false;
}
// 클래스를 자동으로 읽어들임
function __autoload( $className )
{
if( !$Path = getIncludePath($className) )
{
echo $className.'.php File Not Found';
exit;
}
else { include_once $Path.'/'.$className.'.php'; }
}
?>
이렇게 하고 php 클래스를 _PHP 에다 만들어 놓으면 자동으로 찾아줍니다.
좀 어려운가요?? 자세한 적용사례는 제2탄에서.....
커밍쑤~~~~~ㄴ