PHP 의 대상 프로 그래 밍 방식 을 간단하게 이해 합 니 다.

대부분의 대상 을 대상 으로 할 수 있 는 프로 그래 밍 언어 와 달리 PHP 는 프로 세 스 와 대상 을 대상 으로 하 는 프로 그래 밍 방식 을 동시에 지원 합 니 다.PHP 개발 자 는 프로 세 스 와 대상 을 대상 으로 하 는 두 가지 중에서 하 나 를 자 유 롭 게 선택 하거나 혼합 하여 사용 할 수 있 습 니 다.그러나 PHP 5 이전 버 전에 서 PHP 는 주로 프로 세 스 를 대상 으로 하 는 프로 그래 밍 언어 이기 때 문 입 니 다.그 렇 기 때문에 대부분 PHP 개발 자 는 과정 을 대상 으로 하 는 방식 으로 개발 해 야 한다.사실 Kayo 는 PHP 개발 자가 대상 을 대상 으로 하 는 코드 를 전혀 사용 하지 않 아 도 훌륭 한 PHP 프로그램 을 개발 할 수 있다 고 생각 합 니 다.우 리 는 웹 페이지 의 해석 자체 가 과정 화 되 고 HTML 에 과정 을 대상 으로 처리 하 는 코드 를 삽입 하 는 것 이 매우 자 연 스 러 운 수단 이 라 고 상상 할 수 있 습 니 다.따라서 대상 을 대상 으로 하 는 것 이 과정 을 대상 으로 하 는 것 보다 더 우수한 프로 그래 밍 방식 이 라 고 할 수 없고 다른 프로 그래 밍 선택 일 뿐 입 니 다.물론 여기 서 말 하 는 것 은 PHP 의 상황 입 니 다.
PHP 에서 과정 과 대상 을 대상 으로 하 는 각자 의 장단 점 에 대해 인터넷 에서 조금 만 찾 아 보면 알 수 있 을 것 이 라 고 믿 습 니 다.과정 을 대상 으로 하 는 개발 주기 가 짧 고 발표 가 빠 르 며 효율 이 높 으 며 대상 을 대상 으로 하 는 개발 주기 가 길 고 효율 이 낮 지만 유지 하기 쉽 고 개선,확장 과 API 개발 이 쉽 습 니 다.분명히 우 리 는 어떤 방식 이 더 우수 할 지 말 하기 어렵다.어떤 프로 그래 밍 방식 이 더 우수 할 지 논쟁 하기 보 다 는 두 가지 프로 그래 밍 방식 이 각자 의 장점 을 최대한 발휘 하 는 것 이 낫다.
PHP 의 대상 지향 프로 그래 밍 으로 돌아 가 대상 지향 프로 그래 밍 을 사용 하 는 과정 에서 그 장점 을 쉽게 느 낄 수 있 습 니 다.가장 뚜렷 한 부분 은 코드 기능 이 더욱 뚜렷 하고 데이터 처리,사용자 로그 인,내용 표현 등 이 각각 한 가지 유형 으로 쓰 여 있 습 니 다.페이지 에 이러한 유형,실례 화 대상 만 포함 한 다음 에 간결 한 문구 로 대상 을 응용 하면 됩 니 다.이것 은 대상 을 대상 으로 하 는 과정 에서 데이터 처리,사용자 로그 인,그리고 내용 등 부분 을 함께 쓰 는 것 보다 전자의 프로 그래 밍 방향 이 더욱 뚜렷 하고 이해 하기 쉬 울 것 이 며 팀 개발 에서 대상 을 대상 으로 프로 그래 밍 하 는 데 더욱 편향 되 어야 한다 고 믿 습 니 다.
다음은 간단 한 예 를 들 어 과정 과 대상 을 대상 으로 하 는 두 가지 방식 이 각자 의 장단 점 을 설명 한다.
폼 을 처리 하거나 url 인 자 를 받 아들 일 때 SQL 주입 등 문 제 를 방지 하기 위해 PHP 개발 자 들 은 문자열 을 걸 러 야 합 니 다.
프로 세 스 를 대상 으로 하 는 방식 에서 우 리 는 문자열 을 필터 해 야 하 는 문구 에서 각종 필터 문자열 의 라 이브 러 리 함수 나 사용자 정의 함 수 를 호출 합 니 다.그러면 페이지 에 서로 다른 필터 함수,심지어 복잡 한 정규 표현 식 이 많이 나타 납 니 다.페이지 에 충분 한 설명 을 써 도 혼 란 스 러 울 수 있 습 니 다.다음은 대상 을 대상 으로 하 는 처리 방식 을 살 펴 보 겠 습 니 다.
우선,간단 한 문자열 처리 클래스 를 정의 하고 복잡 한 문자열 처리 방법 을 작성 합 니 다.(PHP 대상 에 대한 지식 은 Google 에서 설명 하지 않 습 니 다.)

<?php 
/*       
 *   $length               
 *    SQL                
 *              
 *          
 *        
 
*/
 
//         
class StringFiltration {
 
  //   
  var $length;
 
  //   
  //     
  function __construct($the_length = NULL){
    $this->length = $the_length;
  }
  //    SQL                
  function realEscapeString($the_string){
    return mysql_real_escape_string($the_string);
  }
   
  //              
  function eregNumber($the_string){
    if( ereg("^[0-9]+$",$the_string) )
      return true;
    else
      return false;
  }
   
  //          
  function strlenString($the_string){
    return strlen($the_string);
  }
   
  //        
  function ifOverStrlenLength($the_string){
    if( strlen($the_string) > $this->length )
      return true;
    else
      return false;
  }
 
}
 
?>

그리고 필터 문자열 이 필요 한 페이지 에서 이 종 류 를 예화 합 니 다.

$string = new StringFiltration(); 
이 어 문자열 을 걸 러 내 거나 판단 할 때 클래스 에서 정 의 된 방법 이 있 기 때문에 페이지 에 호출 방법 이 있 는 문구 가 나타 납 니 다.

$email = $string->realEscapeString($_POST['email']);
$postId = $string->eregNumber($id);
 
위의 예 에서 우 리 는 대상 을 대상 으로 문자열 을 처리 하기 전에 우 리 는 하나의 종 류 를 정의 한 다음 에 필요 한 페이지 에서 이 종 류 를 예화 하고 이 종 류 를 호출 하 는 방법 을 볼 수 있다.여기 서 볼 때 대상 을 대상 으로 하 는 효율 이 과정 을 대상 으로 하 는 것 보다 낮 고 번 거 롭 지만 이런 장점 도 뚜렷 하 다.실제 문자열 을 처리 하거나 판단 하 는 문 구 는 모두 클래스 의 내부 에 쓰 여 있 습 니 다.호출 방법의 페이지 에 각종 복잡 한 사용자 정의 함수 와 정규 표현 식 과 같은 복잡 한 문 구 는 나타 나 지 않 습 니 다.페이지 의 구조,심지어 전체 사이트 의 구조 가 더욱 뚜렷 해 졌 습 니 다.또한 하나의 종 류 를 작성 한 후에 나중에 PHP 개발 을 할 때 이 종 류 를 다시 사용 할 수 있 습 니 다.장기 적 으로 보면 효율 이 오히려 높다.따라서 PHP 프로 세 스 프로 그래 밍 을 해 온 개발 자 들 은 방향 을 바 꿔 대상 을 향 해 시도 해 보 자.

좋은 웹페이지 즐겨찾기