'PHP Framework'에 해당되는 글 23건

  1. 2010.01.04 모델의 작성 및 실행
  2. 2010.01.04 Spac 액션 프로세스
  3. 2010.01.04 Spac 의 구조
  4. 2010.01.02 getModelInstance
  5. 2010.01.01 redirect
  6. 2010.01.01 initController
  7. 2009.12.04 회원데이터의 삭제 :: Spac에서 변수의 전달처리
  8. 2009.12.01 2. 회원리스트 조회
  9. 2009.12.01 1. 회원가입 예제
  10. 2009.11.18 예제3 : 데이터의 조회
Spac에서 모델은 사용자가 작성할 비즈니스로직을 뜻합니다.
Class 로 작성된 모델은  URL 을 통해 일정한 규칙대로 호출하게 되며, Spac 컨트롤러는 URL을 분석하여 해당 모델이 실행되도록 합니다.

::: 모델 클래스 작성 및 실행 방법 :::
1. 모델은 클래스(Class)로 작성해야 합니다.

2. 모델클래스는 model 영역에 작성해야 하며, Spac은 URL을 분석하여 model 영역의 사용자 모델클래스를 실행합니다.

3. 모델명명규칙은 아래와 같습니다.
    - 모델클래스 파일명은 "모델명.Class.php" 의 형태를 가져야 합니다.
    - 모델명은 알파벳 대/소 문자, 숫자, 언더바(_)만 사용가능합니다.
    - 모델명은 2글자 이상이어야 합니다.
    - 모델명의 첫글자는 반드시 대문자이어야 합니다.

4. 모델 클래스 작성시 Spac 컨트롤러의 메소드를 상속받아 사용하려면 반드시 Controller 를 상속받아야 합니다.

5. 작성된 모델 호출시에는 아래와 같은 URL 규칙으로 호출합니다.
    - http://www.mydomain.com/모델명/메소드명/전달변수1/전달변수2/전달변수3............

6. URL을 통해 모델 호출 시 메소드명은 생략 가능하며 생략할 경우 기본메소드인 "execute" 가 실행됩니다.

7. "model" 디렉토리 내에 하위 디렉토리를 만들고 그 안에 모델클래스를 작성하는 경우 호출 URL 의 모델명에 해당 하위디렉토리를 명시합니다.
    - http://www.mydomain.com/모델하위디렉토리명/모델명/메소드명/전달변수1/전달변수2/전달변수3............

Posted by webdata



Spac은 요청 URL을 분석하여 개발자가 작성한 모델 어플리케이션을 호출/실행 해 주고, 실행 결과값을 뷰를 통해 출력하는 역할을 합니다.

그림에서 보는바와 같이 사용자의 요청을 Spac 컨트롤러가 분석하여 수행해야 하는 모델클래스를 연결해주고, 모델에서 수행된 결과값을 받아 뷰로 출력하는 순환구조를 가지고 있습니다.

모델클래스를 작성하는데 필요한 확장컨트롤러(Dao, Paging 등)는 별도의 컨트롤러 형태로 제공되며, 사용자가 직접 개발한 클래스 또한 확장컨트롤러로 등록하여 사용할 수 있습니다.
Posted by webdata




Spac은 모델 및 사용자컨트롤러, 뷰 를 통합관리하는 PHP 개발 프레임웍입니다.
모든 파일들은 Spac 내에 위치하게되며 뷰를 제외한 모델 및 사용자컨트롤러는 PHP Class로 작성되어 집니다.

Posted by webdata
"getModelInstance" 는 getControllerInstance 와 비슷한 기능을 하는 메소드이지만 차이점은 모델디렉토리의 클래스를 가져온다는 것입니다.

사용법은 "getControllerInstance" 와 동일합니다.
class BBS extends Controller {
   
    function BBS() {
        $this->initController();
        $this->getModelInstance("Auth");
    }

    function login() {
        $this->Auth->Login();
    }

}

getModelInstance("클래스명") 의 방식으로 클래스 Object를 가져오면 클래스명과 같은 이름으로 클래스 Object 변수가 자동으로 생성되어 위 예제처럼  "$this->Auth->Login();" 와 같이 사용할 수 있습니다.

또는 아래와 같이 메소드를 사용하지 않고 직접 불러사용할 수도 있습니다.

require_once("Spac/model/Auth.Class.php");
class BBS extends Controller {
   
    function BBS() {
        $this->Auth =  new Auth;
    }

    function login() {
        $this->Auth->Login();
    }

}




비슷한 메소드 참조
getControllerInstance
Posted by webdata
redirect 메소드는 현재 페이지에서 특정페이지로 바로 이동시키는 역할을 합니다.
redirect 메소드를 호출하기전에 Controller 의 멤벼변수인 result_uri 에 이동시킬 주소를 지정합니다.

아래는 모델클래스가 호출되면 즉시 다른 페이지로 이동되로록 하는 예제입니다.
class writeBBS extends Controller {

    function writeBBS() {}

    function execute() {

       $this->result_uri = "http://www.daum.net";
       $this->redirect();

    }

}


위 메소드가 호출되면 브라우저의 주소 자체가 변경되어 이동하게됩니다.
Posted by webdata
initController 메소드는 Spac Controller 의 환경을 초기화하는 역할을 합니다.
Spac Controller의 메소드를 상속받아 사용하기 위해선 이 초기화 메소드를 반드시 호출해야 합니다.

Spac 에서는 사용자가 작성한 모델클래스에서 Controller 를 확장하여 사용하는 경우에 이 초기화 메소드를 자동으로 호출하도록 구성되어 있으므로 사용자가 별도로 이 초기화 메소드를 호출할 필요는 없습니다.

다만, Spac 에서 initController 를 자동으로 호출하는 시점은 사용자 모델클래스의 생성자가 호출 된 이후의 시점이므로 모델클래스의 생성자 안에서 Spac Controller의 내부 매소드를 상속받아 사용하고자 하는경우에는 직접 initController 를 호출해야 합니다.

1. Spac 이 자동으로 initController 를 호출한 후에 사용하는 예제
class MyClass extends Controller {

    function MyClass () {}

    function initMyClass() {
       $this->getControllerInstance("MyExtClass");
    }

    function execute() {
       $this->initMyClass();

       //이하 사용자 프로그램 구성

    }

}


위 예제에서는 "getControllerInstance" 를 사용하였습니다.
이 메소드는 Spac Controller의 에서 상속받은 메소드입니다.
위 처럼 MyClass 생성자에서 사용하지 않는 경우에는 Controller 의 초기화 메소드인 initController 를 호출하지 않아도 Spac Controller 에서 자동으로 초기화를 수행해 줍니다.


2. 사용자의 모델클래스 생성자안에서 Spac Controller 의 메소드를 사용할 경우
class MyClass extends Controller {

    function MyClass () {
       $this->initController();
       $this->getControllerInstance("MyExtClass");
    }

    function execute() {

       //이하 사용자 프로그램 구성

    }

}

위처럼 사용자 모델클래스인 MyClass 의 생성자인 "MyClass" 내부에서 getControllerInstance 를 사용하고 자 할 경우에는 먼저 initController를 호출해야 합니다.

Posted by webdata
기본예제/회원관리2009. 12. 4. 23:47
이제 리스트 화면에서 특정회원을 삭제해 보도록 하겠습니다.

특정 회원을 삭제하기 위해선 해당 회원의 키값을 전달해야 하는데 회원가입예제에서 POST 처리를 했으므로 이번에는 GET방식으로 회원 키값을 받아 처리하는 예제를 해보겠습니다.

먼저 list.html 에 각 회원목록에 버튼을 만들어 회원의 정보를 삭제할 수있도록 GET방식으로 삭제 메소드에 변수를 전달하는 코드를 만듭니다.

기존 list.html 을 아래의 내용으로 수정합니다.

* Spac/view/list.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>회원리스트</title>

<script>
function deleteUser(user_id) {
    document.location.href="/User/deleteUser/"+user_id;
}
</script>

</head>
<body>

회원수는 <?=count($this->data_list)?> 명 입니다.
<br/><br/>

<table border="1">

    <tr bgcolor="#f2f2f2">
        <td width="100">아이디</td>
        <td width="120">이름</td>
        <td width="150">등록일</td>
        <td width="60">처리</td>       
    </tr>
 
<?php
foreach($this->data_list as $Rows) {
?>

    <tr>
        <td width="100"><?=$Rows['user_id']?></td>
        <td width="120"><?=$Rows['user_name']?></td>
        <td width="150"><?=$Rows['reg_date']?></td>
        <td width="60"><a href="#" onClick="deleteUser('<?=$Rows['user_id']?>')">삭제</a></td>              
    </tr>

<?php
}
?>

</table>

<!-- 회원가입버튼을 만들어주고 클릭하면 이전에 만든 가입폼으로 이동시킵니다. -->
<input type="button" value="회원가입" onClick="document.location.href='/User/viewUserRegForm'"></input>

</body>
</html>

회원 삭제처리 메소드는 User 클래스내에 "deleteUser" 로 하겠습니다.
따라서 위의 예제에서는 각 회원리스트중 "삭제" 버튼을 클릭하면 "/User/deleteUser/아이디" 를 브라우저로 호출하도록 했습니다.
URL에서 슬래시를 기준으로 첫번째는 클래스명, 두번째는 메소드명, 세번째이상은 전달 GET 변수입니다.
따라서 위 주소의 뜻은 User 클래스의 deleteUser 메소드를 "아이디"를 인자로 호출한다는의미입니다.

이제 실행할 실제 deleteUser 메소드를 작성합니다.
 
* Spac/model/User.Class.php
<?php
require_once("../Spac/controller/Dao/Dao.Class.php"); // getControllerInstance("Dao") 사용할경우 생략가능
class User extends Controller {

    var $user_id;
    var $user_pw;
    var $user_name;
   
    var $data_list = array();   

    function User () {
        $this->Dao = new Dao;             //$this->getControllerInstance("Dao"); 로 대체 가능.
        $this->Dao->transaction = true;
        $this->Dao->connect();
    }

    function viewUserRegForm() {
        $this->result_uri    = "user_reg.html";
        $this->dispatcher();
    }

    // POST 로 전송된 값을 맴버변수로 세팅합니다.
    function setPostVars() {
        $this->user_id       = $_POST['user_id'];
        $this->user_pw      = $_POST['user_pw'];
        $this->user_name  = $_POST['user_name'];
    }

    //위에서 저장된 맴버변수 값을 DB에 Insert 합니다.
    function regUser() {

        $this->setPostVars();

        //print_r($param);
        //exit;
       
        $query = " Insert Into user_info(user_id,user_pw,user_name,reg_date) values(?,password(?),?,NOW()) ";
        $this->Dao->prepareStatement($query);
      
        $param = array($this->user_id,$this->user_pw,$this->user_name);
       
        $this->Dao->setParam($param);
      
        $this->Dao->executeStatement();
      
        //echo "회원가입에 성공했습니다.";
        $this->result_uri    = "/User/getUserList";
        $this->redirect();

    }
   
    function getUserList() {
     
        $this->data_list = array();

        $query = " Select * From user_info ";
        $this->Dao->executeQuery($query);

        while($rows = $this->Dao->getFetchArray()) {
            $this->data_list[] = $rows;
        }

        $this->result_uri    = "list.html";
        $this->dispatcher();      

    }

    function getDeleteGetVars() {
        $this->user_id = $this->args[0];
    }
   
    function deleteUser() {
       
        $this->getDeleteGetVars();
       
        $query = " Delete From user_info Where user_id = ?";
        $this->Dao->prepareStatement($query);       
        $param = array($this->user_id);       
       
        $this->Dao->setParam($param);
      
        $this->Dao->executeStatement();
        $this->Dao->closeStatement();

        $this->result_uri    = "/User/getUserList";
        $this->redirect();
       
    }
   
   
   
   
   
   

}
?>


:::[getDeleteGetVars] 설명:::
위 내용중 파란색 글자 부분이 기존 User 클래스에서 추가된 내용입니다.
"getDeleteGetVars" 메소드를 보면 GET변수를 받는 방법을 알 수 있습니다.

 도메인/클래스명/메소드명/parameter1/parameter2.....

위의 형식 중 parameter를 받는 방법은
$param1 = $this->args[0];
$param2 = $this->args[1];


위의 getDeleteGetVars 예제에선 전달 변수가 1개이므로
    function getDeleteGetVars() {
        $this->user_id = $this->args[0];
    }

이처럼 변수를 받아 맴버변수로 저장했습니다.


[deleteUser] 설명

먼저 위의 getDeleteGetVars 메소드를 호출하여 전달된 변수를 맴버변수로 받습니다.
해당 변수를 user_id  조건으로 삭제 SQL 문을 처리합니다.

처리 후엔
        $this->result_uri    = "/User/getUserList";
        $this->redirect();

이처럼 회원 리스트 화면으로 이동시킵니다.


이제 브라우저에서 삭제처리를 실행하여 제대로 삭제가 이루어 지는지 테스트합니다.


'기본예제 > 회원관리' 카테고리의 다른 글

2. 회원리스트 조회  (0) 2009.12.01
1. 회원가입 예제  (0) 2009.12.01
Posted by webdata
기본예제/회원관리2009. 12. 1. 21:32
이전 예제에서 가입된 회원들의 리스트를 조회하는 예제를 해보겠습니다.

회원에 관련된 내용은 모두 User 클래스에서 실행합니다.
이전에 작성된 User 클래스에 몇가지 메소드를 추가해 보겠습니다.

* Spac/model/User.Class.php
<?php
require_once("/home/sue/www/Spac/controller/Dao/Dao.Class.php"); // getControllerInstance("Dao") 사용할경우 생략가능
class User extends Controller {

    var $user_id;
    var $user_pw;
    var $user_name;

    var $data_list = array();

    function User () {
        $this->Dao = new Dao;             //$this->getControllerInstance("Dao"); 로 대체 가능.
        $this->Dao->transaction = true;
        $this->Dao->connect();
    }

    function viewUserRegForm() {
        $this->result_uri    = "user_reg.html";
        $this->dispatcher();
    }

    // POST 로 전송된 값을 맴버변수로 세팅합니다.
    function setPostVars() {          //예제를 위해 POST 값을 직접 맴버변수에 등록했음.
        $this->user_id       = $_POST['user_id'];
        $this->user_pw      = $_POST['user_pw'];
        $this->user_name  = $_POST['user_name'];
    }

    //위에서 저장된 맴버변수 값을 DB에 Insert 합니다.
    function regUser() {
       
        $this->setPostVars();
       
        $query = " Insert Into user_info(user_id,user_pw,user_name,reg_date) values(?,password(?),?,NOW()) ";
        $this->Dao->prepareStatement($query);
       
        $param = array($this->user_id,$this->user_pw,$this->user_name);
        $this->Dao->setParam($param);
       
        $this->Dao->executeStatement();
       
        echo "회원가입에 성공했습니다.";

        $this->Dao->closeStatement();

    }

    function getUserList() {
      
        $this->data_list = array();

        $query = " Select * From user_info ";
        $this->Dao->executeQuery($query);

        while($rows = $this->Dao->getFetchArray()) {
            $this->data_list[] = $rows;
        }

        $this->result_uri    = "list.html";
        $this->dispatcher();       

    }
}
?>

회원리스트를 모두 배열로 가져오는 메소드  getUserList 를 추가했습니다.
회원 리스트는 "list.html" 로 출력합니다.

이제 list.html 파일을 뷰에 생성합니다.

* Spac/view/list.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>회원리스트</title>
</head>
<body>

회원수는 <?=count($this->data_list)?> 명 입니다.
<br/><br/>

<table border="1">

    <tr bgcolor="#f2f2f2">
        <td width="100">아이디</td>
        <td width="120">이름</td>
        <td width="150">등록일</td>
    </tr>
 
<?php
foreach($this->data_list as $Rows) {
?>

    <tr>
        <td width="100"><?=$Rows['user_id']?></td>
        <td width="120"><?=$Rows['user_name']?></td>
        <td width="150"><?=$Rows['reg_date']?></td>
    </tr>

<?php
}
?>

</table>

<!-- 회원가입버튼을 만들어주고 클릭하면 이전에 만든 가입폼으로 이동시킵니다. -->
<input type="button" value="회원가입" onClick="document.location.href='/User/viewUserRegForm'"></input>

</body>
</html>



이제 브라우저로 출력해 보겠습니다.
아래와 같이 호출합니다.
http://localhost/User/getUserList



회원 리스트가 잘 출력되는지, 회원가입버튼을 클릭하면 이전 예제에서 만든 가입품으로 이동하는지 확인합니다.

이제  회원 가입을 하면 가입처리된 후에 위 리스트 화면으로 이동하도록 수정해 보겠습니다.

User 클래스의 "regUser" 메소드의 마지막 부분만 수정해주면 되겠습니다.

* Spac/model/User.Class.php
<?php
require_once("/home/sue/www/Spac/controller/Dao/Dao.Class.php"); // getControllerInstance("Dao") 사용할경우 생략가능
class User extends Controller {

    var $user_id;
    var $user_pw;
    var $user_name;

    var $data_list = array();

    function User () {
        $this->Dao = new Dao;             //$this->getControllerInstance("Dao"); 로 대체 가능.
        $this->Dao->transaction = true;
        $this->Dao->connect();
    }

    function viewUserRegForm() {
        $this->result_uri    = "user_reg.html";
        $this->dispatcher();
    }

    // POST 로 전송된 값을 맴버변수로 세팅합니다.
    function setPostVars() {
        $this->user_id       = $_POST['user_id'];
        $this->user_pw      = $_POST['user_pw'];
        $this->user_name  = $_POST['user_name'];
    }

    //위에서 저장된 맴버변수 값을 DB에 Insert 합니다.
    function regUser() {
       
        $this->setPostVars();
       
        $query = " Insert Into user_info(user_id,user_pw,user_name,reg_date) values(?,password(?),?,NOW()) ";
        $this->Dao->prepareStatement($query);
       
        $param = array($this->user_id,$this->user_pw,$this->user_name);
        $this->Dao->setParam($param);
       
        $this->Dao->executeStatement();

        $this->Dao->closeStatement();
       
        //echo "회원가입에 성공했습니다.";
        $this->result_uri    = "/User/getUserList";
        $this->redirect();

    }

    function getUserList() {
      
        $this->data_list = array();

        $query = " Select * From user_info ";
        $this->Dao->executeQuery($query);

        while($rows = $this->Dao->getFetchArray()) {
            $this->data_list[] = $rows;
        }

        $this->result_uri    = "list.html";
        $this->dispatcher();       

    }
}
?>

위 소스중 echo 로 출력해주는 부분은 주석처리하고 아래 해당 페이지로 바로 이동 (redirect) 시켜줍니다.


브라우저에서 확인하여 회원가입 -> 리스트화면 -> 회원가입화면 의 형식으로 이동이 되는지 확인합니다.

'기본예제 > 회원관리' 카테고리의 다른 글

회원데이터의 삭제 :: Spac에서 변수의 전달처리  (0) 2009.12.04
1. 회원가입 예제  (0) 2009.12.01
Posted by webdata
기본예제/회원관리2009. 12. 1. 18:12
이번 회원가입 예제는 Spac 기본 Mysql Dao를 사용하여 작성됩니다.
Spac 의 Database 개발 환경은  http://spac.tistory.com/10 를 참고하여 준비합니다.

1. 테이블 생성
Create Table `user_info` (
  `user_id` varchar(12) not null,
  `user_pw` varchar(40) not null,
  `user_name` varchar(20) not null,
  `reg_date` datetime,
  primary key (`user_id`)
) engine=innodb;

위의 내용을 참고하여 테이블을 생성합니다.


이제 회원관련 클래스를 만들겠습니다.
클래스는 User.Class.php 로 생성하며, 회원에 관련된 모든 처리를 이 클래스에서 하도록 하겠습니다.
먼저 User 클래스의 뼈대만 간략하게 만들어보겠습니다.

* Spac/Model/User.Class.php
<?php
class User extends Controller {

    var $user_id;
    var $user_pw;
    var $user_name;

    function User () {}

    function viewUserRegForm() {

    }

    function setPostVars() {

    }

    function regUser() {

    }

}

viewUserRegForm : 로그인 폼 보여주기
setPostVars : POST로 전송된 변수를 맴버변수로 등록하기
regUser : 회원 정보 등록하기

간단하게 User 클래스를 만들어보았습니다.
이제 먼저 회원 가입폼을 보여주는 메소드인 "viewUserRegForm" 를 작성해 보겠습니다.
function viewUserRegForm() {
     $this->result_uri    = "user_reg.html";
     $this->dispatcher();
}

위 메소드가 호출되면 뷰인 "user_reg.html" 을 출력합니다.
이제 위에서 설정한 "user_reg.html" 를 만들어봅니다.

* Spac/view/user_reg.html"
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<form name="user_reg_form" method="post" action="/User/regUser">
    아이디 : <input type="text" name="user_id" value="" size="12">
    <br/>
    비밀번호 : <input type="password" name="user_pw" value="" size="12">
    <br/>
    이름 : <input type="text" name="user_name" value="" size="12">
    <br/>
    <input type="submit" value="회원가입">
</form>

</body>
</html>



User 클래스의 viewUserRegForm 메소드를 호출하면 뷰의 user_reg.html 가 출력되도록 만들었습니다.
제대로 출력되는지 보겠습니다.
이번에는 메소드명까지 브라우저에 명시합니다. (아직 execute 메소드가 없음)

브라우저 호출
http://localhost/User/viewUserRegForm


결과




이제 User 클래스의 setPostVars 와 regUser 메소드에 내용을 넣어 폼에서 전송된 값을 DB에 저장해 보겠습니다.
DB 작업을 하기 위해서 Dao를 사용하겠습니다. 파란색 글자를 보시면 되겠습니다.

* Spac/Model/User.Class.php
<?php
require_once("/home/sue/www/Spac/controller/Dao/Dao.Class.php"); // getControllerInstance("Dao") 사용할경우 생략가능
class User extends Controller {

    var $user_id;
    var $user_pw;
    var $user_name;

    function User () {
        $this->Dao = new Dao;             //$this->getControllerInstance("Dao"); 로 대체 가능.
        $this->Dao->transaction = true;
        $this->Dao->connect();
    }

    function viewUserRegForm() {
        $this->result_uri    = "user_reg.html";
        $this->dispatcher();
    }

    // POST 로 전송된 값을 맴버변수로 세팅합니다.
    function setPostVars() {
        $this->user_id       = $_POST['user_id'];
        $this->user_pw      = $_POST['user_pw'];
        $this->user_name  = $_POST['user_name'];
    }

    //위에서 저장된 맴버변수 값을 DB에 Insert 합니다.
    function regUser() {
       
        $this->setPostVars();
       
        $query = " Insert Into user_info(user_id,user_pw,user_name,reg_date) values(?,password(?),?,NOW()) ";
        $this->Dao->prepareStatement($query);
       
        $param = array($this->user_id,$this->user_pw,$this->user_name);
        $this->Dao->setParam($param);
       
        $this->Dao->executeStatement();

        echo "회원가입에 성공했습니다.";

        $this->Dao->closeStatement();


    }


}
?>



브라우저로 결과값을 확인합니다.

* 가입폼 입력 및 전송.


* 가입처리 및 결과 출력


* DB 저장내역 확인



다음에는 User 클래스에 메소드를 추가하여 가입된 회원 조회 및 수정/삭제 프로그램을 작성해 보도록 하겠습니다.

Posted by webdata
Spac 매뉴얼/MySQL Dao2009. 11. 18. 22:35
먼저 데이터 조회 예제를 수행하기 위해 기본 데이터를 넣어 놓겠습니다.

Insert Into member ( user_id, user_name, reg_date) values ( 'dukman', '덕만', now() );
Insert Into member ( user_id, user_name, reg_date) values ( 'misil', '미실', now() );
Insert Into member ( user_id, user_name, reg_date) values ( 'bidam', '비담', now() );

위의 쿼리문을 실행하여 데이터를 3건 등록한 후 예제2의 회원수구하는 클래스인 "Member" 를 바로 호출해 보도록 하겠습니다.


브라우저에서 결과를 확인 합니다.

결과는 "회원수는 3 명 입니다." 라고 메세지가 출력될 것입니다.


그럼 이제 실제 3명의 상세 데이터값을 가져와 봅니다.
Member 클래스를 좀 더 보완하겠습니다.

* Spac/model/Member.Class.php
<?php
class Member extends Controller {

    var $data_list;
    
    function Member() { }

    function initMember() {               //맴버클래스 초기화메소드를 만들고 여기서 DB 연결을 합니다.
        $this->getControllerInstance("Dao");        // Dao 클래스를 로드합니다.
        $this->Dao->transaction = true;                    // 트랜젝션을 Start 합니다.
        $this->Dao->Connect();                            // DB를 연결합니다.
    }

    function getCount() {
        $query = " Select count(*) From member ";
        $this->Dao->
executeQuery($query);
        echo "<p>회원수는 " . $this->Dao->getResult() ." 명 입니다.</p>";
    }

    function getList() {
   
        $this->data_list = array();                         //결과를 담을 변수를 초기화 합니다.

        $query = " Select * From member ";          //전체 데이터 검색 쿼리문 작성
        $this->Dao->
executeQuery($query);                //쿼리문 실행

      $Result = $this->Dao->result;
        while( $Rows = $this->Dao->getFetchArray() ) { //결과값을 행을 돌며
             $this->data_list[] = $Rows;               //결과 변수에 배열로 담습니다.
        }

        echo "<pre>";                                      //배열로 담긴 결과값을 보기 쉽도록 출력합니다.
        print_r($this->data_list);
        echo "</pre>";

    }



    function execute() {                                     //Spac의 기본 액션메소드를 정의합니다.
        $this->initMember();                               
//기본메소드가 호출되면 DB연결을 수행합니다.
        echo "<p>데이터베이스 연결에 성공했습니다.</p>"; 


      $this->getCount();
       $this->getList();
  


    }

}
?>




브라우저에서 결과를 확인 합니다.

결과는 "회원수는 3 명 입니다." 와 회원 테이블의 정보들이 배열형태로 출력될 것입니다.





지금까지는 뷰를 거치지 않고 클래스에서 바로 출력하는 예제를 실행 해봤습니다.
다음 예제에서는 클래스에서 출력하지 않고 해당 클래스와 연결된 뷰에서 데이터를 출력하는 예제를 작성해 보겠습니다.

Posted by webdata