Web301 slide 1

60 %
40 %
Information about Web301 slide 1
News & Politics

Published on May 11, 2014

Author: tuanduongcntt

Source: slideshare.net

Description

Lập Trình Web PHP Nâng Cao - Giáo Trình FPT

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

Add a comment

Related presentations

Cfbp barometre octobre

Cfbp barometre octobre

November 10, 2014

VITOGAZ vous présente: CFBP baromètre gpl carburant

Ata Escrita da 16ª Sessão Ordinária realizada em 16/10/2014 pela Câmara de Vereado...

Ata Escrita da 10ª Sessão Extraordinária realizada em 16/10/2014 pela Câmara de Ve...

Rx1 nasil kullanilir

Rx1 nasil kullanilir

November 8, 2014

Rx1 zayiflama hapi, kullanimi nasildir, yan etkileri var mi? yan etkiler var ise h...

Esposto del MoVimento 5 Stelle sul Patto del Nazareno

Slide Servizi postali

Slide Servizi postali

November 7, 2014

Slides per i servizi postali presentati in occasione dell'incontro azienda e organ...

Related pages

ENGLISH OPERATING INSTRUCTIONS 2 DEUTSCH ...

ENGLISH OPERATING INSTRUCTIONS .....2 DEUTSCH BEDIENUNGSANLEITUNG ... Slide the lever to the direction of “DOCK”, ... DFQW5049XAT-1(CF-WEB301) ...
Read more

web301-dark > Sliders > Skin Integration Slider ...

Bootstrap Carousel. Root / Sliders / Skin Integration Slider / Bootstrap Carousel
Read more

Havis Products | C-3334-1 Adapter Mounting Plate Assembly ...

Adapter mounting plate assembly for Panasonic docking station Model CF-WEB301; Mounts CF-WEB273, CF-WEB273-2 & CFWEB301M to C-MD-202 tilt swivel (sold ...
Read more

Pete LePage Senior Product Manager Microsoft Corporation ...

Pete LePage Senior Product Manager Microsoft Corporation SESSION CODE: WEB301. Published byDavid Gordon Modified 11 months ago
Read more

Slide - 1 - Bend Veterinary Clinic | Blue Sky Veterinary ...

Slide - 1 - Bend Veterinary Clinic | Blue Sky Veterinary Clinic | Veterinarian Bend Oregon
Read more

web301-dark > Sliders > Slider Container > Revolution Slider

web301-dark. Home; Sliders. Slider Container. Revolution Slider; Accordion slider; Nivo Slider; CameraSlider; Flex Slider; Skin Integration Slider. OWL ...
Read more

Pete LePage Senior Product Manager Microsoft Corporation ...

Pete LePage Senior Product Manager Microsoft Corporation SESSION CODE: WEB301. by david-gordon
Read more

web301-dark > Features > CSS3 Animation Sheet

web301-dark. Home; Sliders. Slider Container. Revolution Slider; Accordion slider; Nivo Slider; CameraSlider; Flex Slider; Skin Integration Slider. OWL ...
Read more