1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Phát triển ứng dụng Web: Bài 6 - Nguyễn Hữu Thể

24 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 782,65 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Phát triển ứng dụng Web: Bài 6 Mô hình MVC trong PHP cung cấp cho người học những kiến thức như: Mô hình MVC; Ưu và nhược điểm của mô hình MVC; Phát triển ứng dụng Web theo mô hình MVC; Tài liệu tham khảo.

Trang 1

MÔ HÌNH MVC TRONG PHP

NGUYỄN HỮU THỂ

Trang 2

Nội dung

2

Trang 3

1 M odel V iew C ontroller (MVC)

− MVC: một kiến trúc phần mềm (hay mô hình thiết kế) được sử dụng trong kỹ thuật phần mềm.

− Tách một ứng dụng web ra làm 3 thành phần đảm nhiệm chức năng tách biệt, thuận tiện cho việc xử lý và bảo trì.

1 Mô hình MVC

2.Ưu/nhược điểm

3.Ứng dụng MVC (1)

4.Ứng dụng MVC (2)

Trang 4

1 M odel V iew C ontroller (MVC)

− Model: Quản lý dữ liệu, lưu trữ và truy xuất các dữ liệu từ cơ sở

dữ liệu, các logic xử lý.

− View: Hiển thị dữ liệu đã được truy xuất từ model.

− Controller: Trung gian, giúp cho model và view tương tác với

nhau.

Trang 5

2 Ưu và nhược điểm của MVC

− Thể hiện tính chuyên nghiệp trong lập trình, phân tích

thiết kế

− Phát triển ứng dụng theo cấu trúc đơn giản, dễ nâng

cấp, bảo trì, triển khai.

=> Sử dụng phổ biến nhất trong các PHP Framework

− Tốn nhiều thời gian để xây dựng thư viện, cấu trúc.

− Yêu cầu về chuyên môn khá cao, có kiến thức vững về

Trang 6

3 Thiết kế ứng dụng Web theo mô hình MVC

Trang 7

− Controller: nơi đầu tiên nhận các yêu cầu (request).

− Controller được gọi từ file index.php

Trang 8

public function construct(){

$this-> modelStudent = new StudentModel ();

}

Controller.php

▪ Contructor: gọi và khởi tạo lớp Model

▪ Invoke: quyết định data nào được phép trả ra từ model => gọi model

để lấy dữ liệu => gửi dữ liệu ra view.

Trang 10

"01" => new Student ( "01" , "Nguyễn Đình A" , "15-06-2000" , "Nam" , "Vĩnh Long" ),

"02" => new Student ( "02" , "Nguyễn Đình B" , "16-06-2000" , "Nam" , "Vĩnh Long" ),

"03" => new Student ( "03" , "Nguyễn Văn C" , "17-06-2000" , "Nam" , "Cần Thơ" ),

"04" => new Student ( "04" , "Nguyễn Văn D" , "18-06-2000" , "Nam" , "Cần Thơ" ) );

Trang 11

return $this-> name ;

}

return $this-> birthday ;

}

return $this-> gender ;

}

return $this-> address ;

}

public function construct($id, $name,

$birthday, $gender, $address){

$this-> id = $id;

$this-> name = $name;

$this-> birthday = $birthday;

$this-> gender = $gender;

$this-> address = $address;

} }

Trang 12

− View: định đạng lại dữ liệu nhận được từ model.

− Trình bày nhiều dạng dữ liệu (xml, json, array,…).

12

< table >

< tr >< td > Mã số </ td >< td > <?php echo $student->getID() ?> </ td ></ tr >

< tr >< td > Họ và tên </ td >< td > <?php echo $student->getName() ?> </ td ></ tr >

< tr >< td > Ngày sinh </ td >< td > <?php echo $student->getBirthday()?> </ td ></ tr >

< tr >< td > Giới tính </ td >< td > <?php echo $student->getGender() ?> </ td ></ tr >

< tr >< td > Địa chỉ </ td >< td > <?php echo $student->getAddress() ?> </ td ></ tr >

Trang 16

$this->connection = mysqli_connect ( 'localhost' , 'root' , '' ,

'mvc_student' ) or die ( 'Không thể kết nối CSDL' );

mysqli_set_charset ( $this-> connection , 'utf8' );

}

Chứa phương thức kết nối/ hủy kết nối đến database

Trang 18

18 18

include_once ("model/StudentModel.php");

class Controller {

private $modelStudent;

public function construct(){

$this-> modelStudent = new StudentModel ();

}

public function invoke(){

if (!isset( $_GET ['id'])){

$students = $this-> modelStudent

->getStudentList();

include 'view/student-list.php';

}

else {

$student = $this-> modelStudent

->getStudent( $_GET ['id']);

include 'view/student.php';

} }

public function construct(){

$this-> modelStudent = new StudentModel ( (new Database())->getConnection() );

}

public function invoke(){

if (!isset( $_GET [ 'id' ])){

$students = $this-> modelStudent

->getStudentList();

include 'view/student-list.php';

}

else {

$student = $this-> modelStudent

->getStudent( $_GET ['id']);

include 'view/student.php';

} }

}

Controller.php

Trang 19

$sql = "Select * from Student";

$result = mysqli_query ( $this->connection, $sql );

while ( $row = mysqli_fetch_array ( $result ) ) {

$data [] = new Student($row["id"],

$row["name"],$row["birthday"],$row["gender"],$row["address"]);

}return $data;

}functiongetStudent($id) {

$sql = "Select * from Student where id = $id";

$result = mysqli_query ( $this->connection, $sql );

if (mysqli_num_rows ( $result ) > 0) {

$row = mysqli_fetch_assoc ( $result );

$student = new Student($row["id"],

$row["name"],$row["birthday"],$row["gender"],$row["address"]);

return $student;

}return null;

}

Trang 20

public function getName(){

return $this-> name ; }

public function getBirthday(){

return $this-> birthday ; }

public function getGender(){

return $this-> gender ; }

public function getAddress(){

return $this-> address ; }

public function construct($id, $name, $birthday, $gender, $address){

public function getName(){

return $this-> name ; }

public function getBirthday(){

return $this-> birthday ; }

public function getGender(){

return $this-> gender ; }

public function getAddress(){

return $this-> address ; }

public function construct($id, $name, $birthday, $gender, $address){

}

Trang 21

< table >

< tr >< td > Mã số </ td >< td > <?phpecho $student->getID() ?></ td ></ tr >

< tr >< td > Họ và tên </ td >< td > <?phpecho $student->getName() ?></ td ></ tr >

< tr >< td > Ngày sinh </ td >< td > <?php echo $student->getBirthday() ?></ td ></ tr >

< tr >< td > Giới tính </ td >< td > <?phpecho $student->getGender() ?></ td ></ tr >

< tr >< td > Địa chỉ </ td >< td > <?phpecho $student->getAddress() ?></ td ></ tr >

< tr >< td > Giới tính </ td >< td > <?phpecho $student->getGender() ?></ td ></ tr >

< tr >< td > Địa chỉ </ td >< td > <?phpecho $student->getAddress() ?></ td ></ tr >

</ table >

view/student.php

Trang 22

</table>

Trang 23

View: student-list.php

View: student.php

http://localhost/MVC/mvc-student-datebase/index.php

Trang 24

Tài liệu tham khảo

Ngày đăng: 13/07/2021, 12:02

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w