2008. 8. 11. 23:45

[ Flex ] 플렉스 게시판 만들기 프로젝트 - [ php 연동 제1편 ]

오늘은 예정에 없었지만 꼭 필요할것 같아 보너스타임을 가져볼까 합니다..^^

현재 진행중인 플렉스게시판은 서버사이드 스크립트로 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탄에서.....

커밍쑤~~~~~ㄴ

2008. 8. 9. 12:56

[ Flex ] 플렉스 갤러리 슬라이더~~ gallery


오늘은 이미지갤러리를 하나 올립니다.
XML 파일을 읽어서 슬라이드 형식으로 뿌려주는 갤러리 하나 만들었습니다.







사용자 삽입 이미지
사용자 삽입 이미지