Friday, 15 April 2011

Khái quát về mô hình MVC trong PHP



Khái quát về mô hình MVC trong PHP

MVC = Model - View - Controller 
Mô hình này quá nổi tiếng vì tính hữu dụng không như mô hình View Model ( hiện thị - cơ sở sở dữ liệu) nhưng trong PHP lại có những ví dụ rất lằng nhằng và khó hiểu, tìm kiếm lại thấy rất ít ví dụ. Sau đây chỉ là một tí kinh nghiệm rút ra từ đại ca google
    + Model: tương tác với csdl ==> Có bao nhiêu lệnh SQL viết được viết hết luôn ở lớp này.
    + View : hiển thị kết quả lấy từ csdl.==> Cần cho người dùng xem cái gì thì hiển thị ở đây nhưng phải hỏi  thằng cầm lái là Controller. Controller cho cái gì mới được cái đó.
   + Controller: Tiếp nhận yêu cầu từ trình duyệt xem nên gọi View hay Model, theo cơ bản thì mình cứ làm các bước sau:
    1. Liên kết cở dữ liệu và cần cái gì thì gọi hết ra trong Model.
    2. Cần hiển thị cái gì cho người xem và thực thi yêu cầu gì thì viết ở em Controller này.
    3. Cho người dùng biết là được xem cái gì và người dùng yêu cầu cái gì sau khi qua Controller thì được thể hiện ở View.
Đây là ví dụ cơ bản:
(cài trong wampp server, tạ thư mục mvc trong www ,vào mysql tạo database "autoshop")
model.php
 <?php

 function dbconnect()
 {
    static $connect=null;
    if($connect==null){
    $connect=mysql_connect("localhost","root","root");
    mysql_select_db("autoshop");
   }
   return $connect;
 }
 function closedb()
 {
    mysql_close($con);
 }
 function getuser($usersId)
 {
    $query=mysql_query("SELECT * FROM users WHERE usersId='$usersId'",dbconnect());
    return mysql_fetch_assoc($query);

 }
?>
view.php
 <?php
echo $users["usersName"];
?>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>">
<input type="text" name="usersId"/>
<input type="submit" value="Submit"/>
</form>
control.php
 <?php
 require_once("../mvc/model.php");
 if($_SERVER["REQUEST_METHOD"]=="POST")
 {
     header("HTTP/1.1 301 Moved Permanently");
    header("location:".$_SERVER["PHP_SELF"]."?usersId=".$_POST["usersId"]);
    exit;
 }else
 {

   $users=getuser($_GET["usersId"]);
    require("../mvc/view.php");
 }
?>

 
 

No comments:

Post a Comment