SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Bài 1
Lập trình website theo mô hình MVC
Cách tổ chức mô hình MVC
Ưu điểm của mô hình MVC trong việc phát triển
ứng dụng web
Cách tạo và gọi hàm theo phong cách mô hình
MVC
Phân biệt khi nào nên forward hoặc chuyển
hướng yêu cầu HTTP
Giới thiệu về framework CakePHP
Mục tiêu
Bài 1 - Lập trình website theo mô hình MVC 2
Giới thiệu mô hình MVC
Cách viết một hàm
Cách chuyển hướng yêu cầu HTTP
Cách sử dụng mô hình MVC
Bài 1 - Lập trình website theo mô hình MVC 3
Mô hình MVC
Bài 1 - Lập trình website theo mô hình MVC 4
`
Browser
Controller
index.php
View
product_list.php
product_add.php
database_error.php
Model
database.php
product_db.php
category_db.php
Data store
HTTP
request
HTTP
response
Mô hình MVC
Model
View
Controller
Khái niệm
Bài 1 - Lập trình website theo mô hình MVC 5
Cú pháp:
Hàm không tham số trả về đối tượng
PDOStatement:
Hàm (function)
Bài 1 - Lập trình website theo mô hình MVC 6
function function_name{[parameterliat]) {
// statements that are executed by the function
}
function get_products() {
global $db;
$query = 1 SELECT * FROM products 1;
$products = $db->guery($guery);
return $products;
}
Hàm một tham số:
Ví dụ
Bài 1 - Lập trình website theo mô hình MVC 7
function delete_product($product_id) {
global $db;
$query = "DELETE FROM products
WHERE productID = 1$product_id'";
$row_count = $db->exec($query);
return $row_count;
}
Hàm bốn tham số:
Ví dụ
Bài 1 - Lập trình website theo mô hình MVC 8
function add_product($category_id, $name, $description,
$price) {
global $db;
$guery = "INSERT INTO products(categorylD,
productCode, productName, listPrice)
VALUES('$category_id', '$code', '$name', '$price')";
$row_count = $db->exec($guery);
return $row_count;
}
Gọi hàm
Bài 1 - Lập trình website theo mô hình MVC 9
//Gọi hàm không tham số và trả về đối tượng PDOStatement
$products = getproducts();
//Gọi hàm một tham số và trả về số lượng dòng đã xóa
$row_count = deleteproduct($product_id);
//Gọi hàm bốn tham số và trả về số dòng đã thêm
$rovr_count = add_product($category_id, $name,
$description, $price);
Danh sách tham số
Tham số
Danh sách đối số
Đối số
Từ khóa global
Một số khái niệm
Bài 1 - Lập trình website theo mô hình MVC 10
Hàm chuyển hướng yêu cầu:
Ví dụ:
Chuyển hướng yêu cầu
Bài 1 - Lập trình website theo mô hình MVC 11
Hàm Giải thích
header($header) Gửi header HTTP tới trình duyệt
header{' Location: .'); // Thư mục hiện tại
header{' Location: ..'); // Duyệt tới thư mục cha
header(' Location: ./admin'); // Duyệt tới thư mục con
admin
header('Location: error.php');
header('Location: http://www.murach.com/');
Không có tham số:
Có tham số:
Chuyển hướng một yêu cầu
Bài 1 - Lập trình website theo mô hình MVC 12
if ($action == 'delete') {
$product_id = $_POST['product_id'];
delete_product($product_id);
header('Location: .');
}
if ($action == 'delete') {
$product_id = $_POST['product_id'];
$category_id = $_POST['category_id'];
delete_product($product_id);
header("Location: .?category_id=$category_id");
}
Chuyển hướng một yêu cầu
Forward một yêu cầu
Các khái niệm
Bài 1 - Lập trình website theo mô hình MVC 13
Trang Product List
Bài 1 - Lập trình website theo mô hình MVC 14
Trang Add Product
Bài 1 - Lập trình website theo mô hình MVC 15
Khái niệm PHP framework
Các framework:
CakePHP
Zend
Symphony
Các framework PHP
Bài 1 - Lập trình website theo mô hình MVC 16
Mô hình MVC:
MODEL – Behaviors
CONTROLLER – Components
VIEW - Helpers
Trang chủ: http://cakephp.org/
Tra cứu và tham khảo:
http://manual.cakephp.org/
Download: http://cakephp.org/downloads
Diễn đàn CakePHP của VN:
http://cakephpvn.org/forum/
CakePHP
Bài 1 - Lập trình website theo mô hình MVC 17
Yêu cầu:
PHP Server: Apache
Database: mySQL
Cài đặt: giải nén file tải về vào thư mục httpdocs
Cấu hình: mở file /app/config
/database.php.default rồi Save as thành
database.php. Sau đó điều chỉnh lại thông số:
Cài đặt và cấu hình CakePHP
Bài 1 - Lập trình website theo mô hình MVC 18
var $default = array('driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'project_name',
'prefix' => ' ',
Lưu ý:
Với user, password, database lần lượt là: tên user,
password và database ở trong MySql.
Tên bảng trong cake nên ở dạng tiếng Anh số nhiều
(vd: users, customers, students, ... )
Bảng phải có primary key tên là 'id'
Nếu có sử dụng quan hệ trong các bảng vd: user_id
(user không có s và dấu _ cộng id)
Cài đặt và cấu hình CakePHP
Bài 1 - Lập trình website theo mô hình MVC 19
Người sử dụng truy cập vào ứng dụng
Class Router sẽ định tuyến cake gọi class
Controller và một hàm tương ứng trong
Controller đó để xử lý
Controller gọi hàm view
Hàm view gọi layout , element ,helper ... tương
ứng để trả về nội dung cần hiển thị cho
controller
Controller trả về cho trình duyệt nội dung đó
qua class CakeResponse
Cách thức hoạt động của CakePHP
Bài 1 - Lập trình website theo mô hình MVC 20
Kiến trúc cakePHP
Bài 1 - Lập trình website theo mô hình MVC 21
Cấu trúc thư mục chuẩn của
một ứng dụng cakePHP
Bài 1 - Lập trình website theo mô hình MVC 22
app: chứa mã nguồn ứng dụng
cake: chứa mã nguồn của CakePHP
vendors: chứa ứng dụng của bên thứ 3
plugins: chứa các thành phần mở rộng
Cấu trúc thư mục chuẩn của
một ứng dụng cakePHP
Bài 1 - Lập trình website theo mô hình MVC 23
Config: Chứa file cấu hình hệ thống
Controllers: Chứa các controller và component
Locale: Chứa file ngôn ngữ
Models: Chứa file Model và behavor, datasource
Plugins: Chứa các gói mở rộng
Tmp: Thư mục tạm của ứng dụng
Views: Chứa các file giao diện
Webroot: Chứa tài liệu (hình ảnh,file..), file CSS
, file javascript…
Cấu trúc thư mục chuẩn của
một ứng dụng cakePHP
Bài 1 - Lập trình website theo mô hình MVC 24
Mô hình MVC (Model-View-Controller) giúp tăng
hiệu năng của việc phát triển ứng dụng web
Khi gọi hàm thì thứ tự đối số phải giống thứ tự
tham số và phải cùng kiểu dữ liệu
Sử dụng hàm include để forward yêu cầu từ một
file PHP tới một file khác
Sử dụng hàm header để chuyển hướng một yêu
cầu tới một URL khác
cakePHP là một framework PHP thường được sử
dụng
Tổng kết bài học
Bài 1 - Lập trình website theo mô hình MVC 25

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Bài tập HTML/CSS
Bài tập HTML/CSSBài tập HTML/CSS
Bài tập HTML/CSS
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS
Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESSQuản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS
Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS
 
Lập trình web - HTML cơ bản
Lập trình web - HTML cơ bảnLập trình web - HTML cơ bản
Lập trình web - HTML cơ bản
 
BTL Lập trình C#
BTL Lập trình C#BTL Lập trình C#
BTL Lập trình C#
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
Đề tài: Quản lí Tour du lịch, HAY, 9đ
Đề tài: Quản lí Tour du lịch, HAY, 9đĐề tài: Quản lí Tour du lịch, HAY, 9đ
Đề tài: Quản lí Tour du lịch, HAY, 9đ
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
 
Hệ thống thông tin quản lý-website tin tức nhà đất
Hệ thống thông tin quản lý-website tin tức nhà đấtHệ thống thông tin quản lý-website tin tức nhà đất
Hệ thống thông tin quản lý-website tin tức nhà đất
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
Báo cáo tốt nghiệp
Báo cáo tốt nghiệpBáo cáo tốt nghiệp
Báo cáo tốt nghiệp
 
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTBÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
 
Báo Cáo Bài Tập Lớn Môn Lập Trình Web Xây Dựng Website Tin Tức
Báo Cáo Bài Tập Lớn Môn Lập Trình Web Xây Dựng Website Tin TứcBáo Cáo Bài Tập Lớn Môn Lập Trình Web Xây Dựng Website Tin Tức
Báo Cáo Bài Tập Lớn Môn Lập Trình Web Xây Dựng Website Tin Tức
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Design
 

Ähnlich wie Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc framework
Xuan Le
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsd
Vu Hung Nguyen
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việc
manhvokiem
 

Ähnlich wie Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web (20)

E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHP
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc framework
 
Web201 slide 7
Web201   slide 7Web201   slide 7
Web201 slide 7
 
Bai2 tong quan_mvc_0567
Bai2 tong quan_mvc_0567Bai2 tong quan_mvc_0567
Bai2 tong quan_mvc_0567
 
Web3012 slide 8
Web3012   slide 8Web3012   slide 8
Web3012 slide 8
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsd
 
[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập
[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập
[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập
 
Aspnet 3.5 _04
Aspnet 3.5 _04Aspnet 3.5 _04
Aspnet 3.5 _04
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi du
 
Asp.net mvc 3 (c#) (9 tutorials) egroups vn
Asp.net mvc 3 (c#) (9 tutorials)   egroups vnAsp.net mvc 3 (c#) (9 tutorials)   egroups vn
Asp.net mvc 3 (c#) (9 tutorials) egroups vn
 
01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5
 
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTBài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 
Yii
YiiYii
Yii
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
 
Mô Hình MVC 3.0
Mô Hình MVC 3.0Mô Hình MVC 3.0
Mô Hình MVC 3.0
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việc
 
Bài 6 - Quản lý ứng dụng web asp.net
Bài 6 - Quản lý ứng dụng web asp.netBài 6 - Quản lý ứng dụng web asp.net
Bài 6 - Quản lý ứng dụng web asp.net
 
Mvc Model
Mvc ModelMvc Model
Mvc Model
 
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
 

Mehr von MasterCode.vn

Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
MasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
MasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
MasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
MasterCode.vn
 

Mehr von MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 

Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

  • 1. Bài 1 Lập trình website theo mô hình MVC
  • 2. Cách tổ chức mô hình MVC Ưu điểm của mô hình MVC trong việc phát triển ứng dụng web Cách tạo và gọi hàm theo phong cách mô hình MVC Phân biệt khi nào nên forward hoặc chuyển hướng yêu cầu HTTP Giới thiệu về framework CakePHP Mục tiêu Bài 1 - Lập trình website theo mô hình MVC 2
  • 3. Giới thiệu mô hình MVC Cách viết một hàm Cách chuyển hướng yêu cầu HTTP Cách sử dụng mô hình MVC Bài 1 - Lập trình website theo mô hình MVC 3
  • 4. Mô hình MVC Bài 1 - Lập trình website theo mô hình MVC 4 ` Browser Controller index.php View product_list.php product_add.php database_error.php Model database.php product_db.php category_db.php Data store HTTP request HTTP response
  • 5. Mô hình MVC Model View Controller Khái niệm Bài 1 - Lập trình website theo mô hình MVC 5
  • 6. Cú pháp: Hàm không tham số trả về đối tượng PDOStatement: Hàm (function) Bài 1 - Lập trình website theo mô hình MVC 6 function function_name{[parameterliat]) { // statements that are executed by the function } function get_products() { global $db; $query = 1 SELECT * FROM products 1; $products = $db->guery($guery); return $products; }
  • 7. Hàm một tham số: Ví dụ Bài 1 - Lập trình website theo mô hình MVC 7 function delete_product($product_id) { global $db; $query = "DELETE FROM products WHERE productID = 1$product_id'"; $row_count = $db->exec($query); return $row_count; }
  • 8. Hàm bốn tham số: Ví dụ Bài 1 - Lập trình website theo mô hình MVC 8 function add_product($category_id, $name, $description, $price) { global $db; $guery = "INSERT INTO products(categorylD, productCode, productName, listPrice) VALUES('$category_id', '$code', '$name', '$price')"; $row_count = $db->exec($guery); return $row_count; }
  • 9. Gọi hàm Bài 1 - Lập trình website theo mô hình MVC 9 //Gọi hàm không tham số và trả về đối tượng PDOStatement $products = getproducts(); //Gọi hàm một tham số và trả về số lượng dòng đã xóa $row_count = deleteproduct($product_id); //Gọi hàm bốn tham số và trả về số dòng đã thêm $rovr_count = add_product($category_id, $name, $description, $price);
  • 10. Danh sách tham số Tham số Danh sách đối số Đối số Từ khóa global Một số khái niệm Bài 1 - Lập trình website theo mô hình MVC 10
  • 11. Hàm chuyển hướng yêu cầu: Ví dụ: Chuyển hướng yêu cầu Bài 1 - Lập trình website theo mô hình MVC 11 Hàm Giải thích header($header) Gửi header HTTP tới trình duyệt header{' Location: .'); // Thư mục hiện tại header{' Location: ..'); // Duyệt tới thư mục cha header(' Location: ./admin'); // Duyệt tới thư mục con admin header('Location: error.php'); header('Location: http://www.murach.com/');
  • 12. Không có tham số: Có tham số: Chuyển hướng một yêu cầu Bài 1 - Lập trình website theo mô hình MVC 12 if ($action == 'delete') { $product_id = $_POST['product_id']; delete_product($product_id); header('Location: .'); } if ($action == 'delete') { $product_id = $_POST['product_id']; $category_id = $_POST['category_id']; delete_product($product_id); header("Location: .?category_id=$category_id"); }
  • 13. Chuyển hướng một yêu cầu Forward một yêu cầu Các khái niệm Bài 1 - Lập trình website theo mô hình MVC 13
  • 14. Trang Product List Bài 1 - Lập trình website theo mô hình MVC 14
  • 15. Trang Add Product Bài 1 - Lập trình website theo mô hình MVC 15
  • 16. Khái niệm PHP framework Các framework: CakePHP Zend Symphony Các framework PHP Bài 1 - Lập trình website theo mô hình MVC 16
  • 17. Mô hình MVC: MODEL – Behaviors CONTROLLER – Components VIEW - Helpers Trang chủ: http://cakephp.org/ Tra cứu và tham khảo: http://manual.cakephp.org/ Download: http://cakephp.org/downloads Diễn đàn CakePHP của VN: http://cakephpvn.org/forum/ CakePHP Bài 1 - Lập trình website theo mô hình MVC 17
  • 18. Yêu cầu: PHP Server: Apache Database: mySQL Cài đặt: giải nén file tải về vào thư mục httpdocs Cấu hình: mở file /app/config /database.php.default rồi Save as thành database.php. Sau đó điều chỉnh lại thông số: Cài đặt và cấu hình CakePHP Bài 1 - Lập trình website theo mô hình MVC 18 var $default = array('driver' => 'mysql', 'connect' => 'mysql_connect', 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'project_name', 'prefix' => ' ',
  • 19. Lưu ý: Với user, password, database lần lượt là: tên user, password và database ở trong MySql. Tên bảng trong cake nên ở dạng tiếng Anh số nhiều (vd: users, customers, students, ... ) Bảng phải có primary key tên là 'id' Nếu có sử dụng quan hệ trong các bảng vd: user_id (user không có s và dấu _ cộng id) Cài đặt và cấu hình CakePHP Bài 1 - Lập trình website theo mô hình MVC 19
  • 20. Người sử dụng truy cập vào ứng dụng Class Router sẽ định tuyến cake gọi class Controller và một hàm tương ứng trong Controller đó để xử lý Controller gọi hàm view Hàm view gọi layout , element ,helper ... tương ứng để trả về nội dung cần hiển thị cho controller Controller trả về cho trình duyệt nội dung đó qua class CakeResponse Cách thức hoạt động của CakePHP Bài 1 - Lập trình website theo mô hình MVC 20
  • 21. Kiến trúc cakePHP Bài 1 - Lập trình website theo mô hình MVC 21
  • 22. Cấu trúc thư mục chuẩn của một ứng dụng cakePHP Bài 1 - Lập trình website theo mô hình MVC 22
  • 23. app: chứa mã nguồn ứng dụng cake: chứa mã nguồn của CakePHP vendors: chứa ứng dụng của bên thứ 3 plugins: chứa các thành phần mở rộng Cấu trúc thư mục chuẩn của một ứng dụng cakePHP Bài 1 - Lập trình website theo mô hình MVC 23
  • 24. Config: Chứa file cấu hình hệ thống Controllers: Chứa các controller và component Locale: Chứa file ngôn ngữ Models: Chứa file Model và behavor, datasource Plugins: Chứa các gói mở rộng Tmp: Thư mục tạm của ứng dụng Views: Chứa các file giao diện Webroot: Chứa tài liệu (hình ảnh,file..), file CSS , file javascript… Cấu trúc thư mục chuẩn của một ứng dụng cakePHP Bài 1 - Lập trình website theo mô hình MVC 24
  • 25. Mô hình MVC (Model-View-Controller) giúp tăng hiệu năng của việc phát triển ứng dụng web Khi gọi hàm thì thứ tự đối số phải giống thứ tự tham số và phải cùng kiểu dữ liệu Sử dụng hàm include để forward yêu cầu từ một file PHP tới một file khác Sử dụng hàm header để chuyển hướng một yêu cầu tới một URL khác cakePHP là một framework PHP thường được sử dụng Tổng kết bài học Bài 1 - Lập trình website theo mô hình MVC 25