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

Bài giảng mã nguồn mở chương 7

42 262 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 42
Dung lượng 656,3 KB

Nội dung

Môn Các Hệ Thống Mã Nguồn Mở Chương : Mô hình php mvc Giảng viên : ThS Nguyễn Minh Thành Email : thanhnm@itc.edu.vn Môn Các Hệ Thống Mã Nguồn Mở Nội Dung Khái niệm kiến trúc phần mềm Tổng quan kiến trúc lớp Tổng quan kiến trúc MVC So sánh MVC lớp Xây dựng website PHP MVC đơn giản Framework MVC cho website PHP Môn Các Hệ Thống Mã Nguồn Mở Khái niệm kiến trúc phần mềm “Kiến trúc phần mềm chương trình hệ thống tính toán cấu trúc cấu trúc hệ thống đó, gồm thành phần phần mềm, thuộc tính trông thấy từ bên thành phần này, mối quan hệ chúng.” Phát triển phần mềm theo kiến trúc định giúp cho việc quản lý hệ thống tốt tận dụng tài nguyên hệ thống hiệu Đồng thời dễ bảo trì mở rộng Môn Các Hệ Thống Mã Nguồn Mở Tổng quan mô hình lớp Để dễ quản lý thành phần hệ thống, không bị ảnh hưởng thay đổi, người ta hay nhóm thành phần có chức lại với phân chia trách nhiệm cho nhóm để công việc không bị chồng chéo ảnh hưởng lẫn Một mô hình lập trình Mô hình lớp (Three Layers) Môn Các Hệ Thống Mã Nguồn Mở Các thành phần 3-Layer Mô hình lớp cấu thành từ: Presentation Layers, Business Logic Layers, Data Access Layers Môn Các Hệ Thống Mã Nguồn Mở Cách vận hành mô hình Đối với 3-Layer, yêu cầu xử lý qua layer hình - Đầu tiên User giao tiếp với Presentation Layers (GUI) để gửi thông tin yêu cầu Tại layer này, thông tin kiểm tra, OK chúng chuyển xuống Business Logic Layer (BLL) - Tại BLL, thông tin nhào nặn, tính toán theo yêu cầu gửi, không cần đến Database BLL gửi trả kết GUI, ngược lại đẩy liệu (thông tin xử lý) xuống Data Access Layer (DAL) - DAL thao tác với Database trả kết cho BLL, BLL kiểm tra gửi lên GUI để hiển thị cho người dùng - Một gặp lỗi (các trường hợp không liệu) layer quăng lên layer cao bậc GUI quăng cho người dùng biết - Các liệu trung chuyển Layer thông qua đối tượng gọi Data Transfer Object (DTO), đơn giản Class đại diện cho đối tượng lưu trữ Database Tổ chức mô hình 3-Layer Có nhiều cách đặt tên cho thành phần lớp như: Cách 1: GUI, BUS, DAL Cách 2: GUI, BLL, DAO, DTO Cách 3: Presentation, BLL, DAL Môn Các Hệ Thống Mã Nguồn Mở Tổng quan mô hình MVC • MVC mô hình phát triển phần mềm chuyên giành cho website Môn Các Hệ Thống Mã Nguồn Mở Các Thành Phần Trong MVC • Trong kiến trúc này, hệ thống chia thành tầng tương ứng với tên gọi (Model – View – Controller) Ở nhiệm vụ cụ thể tầng phân chia sau: Model (Tầng liệu): đối tượng tập hợp đối tượng biểu diễn cho phần liệu chương trình Nó giao nhiệm vụ cung cấp liệu cho sở liệu lưu liệu vào kho chứa liệu Tất nghiệp vụ logic thực thi Model Dữ liệu vào từ người dùng thông qua View đến Controller kiểm tra Model trước lưu vào sở liệu Việc truy xuất, xác nhận, lưu liệu phần Model Môn Các Hệ Thống Mã Nguồn Mở Các Thành Phần Trong MVC • View (Tầng giao diện): phần giao diện với người dùng, bao gồm việc liệu hình, cung cấp menu, nút bấm, hộp đối thoại, chọn lựa …, để người dùng thêm, xóa sửa, tìm kiếm làm thao tác khác liệu hệ thống Thông thường, thông tin cần hiển thị lấy từ thành phần Models Controller (Tầng điều khiển): phần điều khiển ứng dụng, điều hướng nhiệm vụ (task) đến phương thức (method) có chức xử lý nhiệm vụ Nó chịu trách nhiệm xử lý tác động mặt giao diện, thao tác models, cuối chọn view thích hợp để hiển thị hình Môn Các Hệ Thống Mã Nguồn Mở 10 Ưu – nhược điểm • Ưu điểm: Phát triển phần mềm: Có tính chuyên nghiệp hóa, chia cho nhiều nhóm đào tạo nhiều kỹ khác nhau, từ thiết kế mỹ thuật lập trình đến tổ chức database Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp Bảo trì: Với lớp phân chia theo nói, thành phần hệ thống dễ thay đổi, thay đổi cô lập lớp, ảnh hưởng đến lớp gần kề nó, không phát tán náo loạn chương trình Mở rộng: Với lớp chia theo ba lớp nói, việc thêm chức vào cho lớp dễ dàng phân chia theo cách khác Nhược điểm: Đối với dự án nhỏ việc áp dụng mô hình MC gây cồng kềnh, tốn thời gian trình phát triể Tốn thời gian trung chuyển liệu tầng Môn Các Hệ Thống Mã Nguồn Mở 28 Framework MVC cho website PHP • Bước : Tạo file index.php thư mục public để định nghĩa gọi file bootstrap.php Môn Các Hệ Thống Mã Nguồn Mở Framework MVC cho website PHP • Bước : Tạo file config.php routing.php thư mục config 31 Môn Các Hệ Thống Mã Nguồn Mở 32 Framework MVC cho website PHP • Bước : Tạo file shared.php, file phân tích request gọi controller tương ứng /** Main Call Function **/ function callHook() { global $url; $urlArray = array(); $urlArray = explode("/",$url); $controller = $urlArray[0]; array_shift($urlArray); $action = $urlArray[0]; array_shift($urlArray); $queryString = $urlArray; $controllerName = $controller; $controller = ucwords($controller); $model = rtrim($controller, 's'); $controller = 'Controller'; $dispatch = new $controller($model,$controllerName,$action); if ((int)method_exists($controller, $action)) { call_user_func_array(array($dispatch,$action),$queryString); } else { /* Error Generation Code Here */ } } callHook(); Môn Các Hệ Thống Mã Nguồn Mở 33 Framework MVC cho website PHP • Bước : file shared.php chứa hàm autoload từ động tìm kiếm khai báo lớp có đối tượng tạo function autoload($className) { if (file_exists(ROOT DS 'library' DS strtolower($className) '.class.php')) { require_once(ROOT DS 'library' DS strtolower($className) '.class.php'); } else if (file_exists(ROOT DS 'application' DS 'controllers' DS strtolower($className) '.php')) { require_once(ROOT DS 'application' DS 'controllers' DS strtolower($className) '.php'); } else if (file_exists(ROOT DS 'application' DS 'models' DS strtolower($className) '.php')) { require_once(ROOT DS 'application' DS 'models' DS strtolower($className) '.php'); } else { /* Error Generation Code Here */ echo "Can not load class {$className}."; } } Môn Các Hệ Thống Mã Nguồn Mở 34 Framework MVC cho website PHP • Bước : ta xây dựng đối tượng mô hình MVC Các controller kế thừa từ lớp Controller gốc chứa file library/controller.php class Controller { protected $_model; protected $_controller; protected $_action; protected $_template; function construct($model, $controller, $action) { $this->_controller = $controller; $this->_action = $action; $this->_model = $model; $this->_template = new Template($controller,$action); } function set($name,$value) {$this->_template->set($name,$value); } function destruct() { $this->_template->render(); } } Môn Các Hệ Thống Mã Nguồn Mở Framework MVC cho website PHP • Bước : Controller có gọi lớp Template lớp thực việc render nội dung với view tương ứng class Template { protected $variables = array(); protected $_controller; //tacgias protected $_action; //viewall function construct($controller,$action) { $this->_controller = $controller; $this->_action = $action; } function set($name,$value) { $this->variables[$name] = $value; } function render() { … } } 35 Môn Các Hệ Thống Mã Nguồn Mở 36 Framework MVC cho website PHP • Bước : lớp Controller theo ứng dụng Ví dụ : TacgiasController (trong thư mục application/controllers) Môn Các Hệ Thống Mã Nguồn Mở 38 Framework MVC cho website PHP • Bước : lớp TacgiasController có gọi tạo lớp Tacgia (lớp model) thư mục application/models/tacgia.php Các lớp model thực chất lớp kết nối CSDL để lấy liệu theo câu truy vấn Môn Các Hệ Thống Mã Nguồn Mở Framework MVC cho website PHP • Bước : lớp Model cha (trong library) class Model extends SQLQuery { protected $_model; function construct() { $this->connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME); $this->_model = get_class($this); //$this->_table = strtolower($this->_model)."s"; $this->_table = strtolower($this->_model); } function destruct() { $this->disconnect(); } } 39 Môn Các Hệ Thống Mã Nguồn Mở Framework MVC cho website PHP • Bước : lớp SqlQuery gốc (trong library) [...]... books\buy.php… Môn Các Hệ Thống Mã Nguồn Mở Framework MVC cho website PHP • Mô hình hoạt động 25 Môn Các Hệ Thống Mã Nguồn Mở 26 Framework MVC cho website PHP • Bước 2 : Tạo file htaccess trong thư mục gốc để chuyển tất cả các request đến thư mục public RewriteEngine on RewriteRule ^$ RewriteRule (.*) public/$1 public/ [L] [L] Môn Các Hệ Thống Mã Nguồn Mở 27 Framework MVC cho... Thống Mã Nguồn Mở Xây dựng website PHP MVC đơn giản • B5 : Xây dựng trang chủ của website 19 Môn Các Hệ Thống Mã Nguồn Mở Xây dựng website PHP MVC đơn giản • B6 : Thực Thi Website 20 Môn Các Hệ Thống Mã Nguồn Mở Xây dựng website PHP MVC đơn giản • B6 : Thực Thi Website 21 Môn Các Hệ Thống Mã Nguồn Mở 22 Framework PHP MVC cơ bản • Framework (FW) là một kiến trúc nền tảng để phát triển phần mềm • FW cung... Thống Mã Nguồn Mở 15 Xây dựng website PHP MVC đơn giản • B2 : Xây dựng các đối tượng dữ liệu • File Database.php chứa các thao tác kết nối CSDL để lấy dữ liệu, ở đây để thao tác đơn, ví dụ chỉ demo có một mảng dữ liệu cho trước Môn Các Hệ Thống Mã Nguồn Mở Xây dựng website PHP MVC đơn giản • B3 : Xây dựng các đối tượng view • File booklist.php để xem danh sách book 16 Môn Các Hệ Thống Mã Nguồn Mở Xây... File viewbook.php để xem một cuốn sách 17 Môn Các Hệ Thống Mã Nguồn Mở 18 Xây dựng website PHP MVC đơn giản • B4 : Xây dựng các đối tượng controller • File controller.php điều khiển các luồng truy cập, • Khi Website có nhiều đối tượng dữ liệu, thì các controller sẽ được đặt tên theo từng loại dữ liệu (vd : BookController, AuthorController…) Môn Các Hệ Thống Mã Nguồn Mở Xây dựng website PHP MVC đơn giản... '5'); 30 Môn Các Hệ Thống Mã Nguồn Mở Framework MVC cho website PHP • Bước 6 : Tạo file config.php và routing.php trong thư mục config 31 Môn Các Hệ Thống Mã Nguồn Mở 32 Framework MVC cho website PHP • Bước 7 : Tạo file shared.php,... lý này có hình tam giác Môn Các Hệ Thống Mã Nguồn Mở Xây dựng website PHP MVC đơn giản • Xây dựng website bookstore theo mô hình MVC • B1 : Xây dựng cấu trúc Website như sau • Thư mục controller chứa các thành phần điều kiển của ứng dụng • Thư mục model chứa các lớp đối tượng dữ liệu • Thư mục view chứa các thành phần giao diện 13 Môn Các Hệ Thống Mã Nguồn Mở Xây dựng website PHP MVC đơn giản • B2... [PT,L] Môn Các Hệ Thống Mã Nguồn Mở 28 Framework MVC cho website PHP • Bước 4 : Tạo file index.php trong thư mục public để định nghĩa các hằng và gọi file bootstrap.php ... Mã Nguồn Mở Xây dựng website PHP MVC đơn giản • B5 : Xây dựng trang chủ website 19 Môn Các Hệ Thống Mã Nguồn Mở Xây dựng website PHP MVC đơn giản • B6 : Thực Thi Website 20 Môn Các Hệ Thống Mã. .. Presentation, BLL, DAL Môn Các Hệ Thống Mã Nguồn Mở Tổng quan mô hình MVC • MVC mô hình phát triển phần mềm chuyên giành cho website Môn Các Hệ Thống Mã Nguồn Mở Các Thành Phần Trong MVC • Trong... trước Môn Các Hệ Thống Mã Nguồn Mở Xây dựng website PHP MVC đơn giản • B3 : Xây dựng đối tượng view • File booklist.php để xem danh sách book 16 Môn Các Hệ Thống Mã Nguồn Mở Xây dựng website PHP

Ngày đăng: 03/12/2015, 07:53

TỪ KHÓA LIÊN QUAN