Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
548,25 KB
Nội dung
Zend Framework (Bài thuyết trình sử dụng Zend Framework 1.8) Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn https://fb.com/tailieudientucntt Nội dung Giới thiệu chung Zend Framework (ZF) Mơ hình MVC ZF Cấu trúc ứng dụng viết ZF Giới thiệu Zend_Controller, Zend_Layout, Zend_Config, Zend_Db, Zend_View, Zend_Auth Demo ứng dụng đơn giản viết Zend Framework Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn https://fb.com/tailieudientucntt Software framework? Framework: Là cấu trúc ngôn ngữ giúp phát triển ứng dụng phần mềm Bên framework có thành phần : Code library Scripting language API Ngồi tích hợp phần mềm ngôn ngữ khác Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn https://fb.com/tailieudientucntt Các chuẩn để xây dựng Framework • MVC: Có hỗ trợ Model – Control – View? Multiple DB's: Làm việc với nhiều loại database? ORM: Có hỗ trợ object-record mapper? Templates: Có hỗ trợ cho Template engine? AJAX, Validation, Caching? Auth Module: Có module xác thực người dùng? Module: Tích hợp module tiện ích PDF, RSS,… EDPnew : (Event Driven Programming) Hướng kiện? Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn https://fb.com/tailieudientucntt Các framework phổ biến Zend Cake CodeIgniter Doctrine Propel Spring NET framework Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn https://fb.com/tailieudientucntt Mơ hình MVC Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn https://fb.com/tailieudientucntt MVC[1] Control: Lớp Xử lý Bussines case Model: Lớp giao tiếp với Database View: Lớp xử lý cho Bussines logic Cơ chế hoạt động đơn giản: Khi request gửi tới, lớp C xác định yêu cầu để lấy data từ lớp M sau trả cho lớp V hiển thị Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn https://fb.com/tailieudientucntt Zend Framework Zend Framework sản phẩm framework mã nguồn mở phát triển PHP 5.0 theo chuẩn hướng đối tượng Zend Framwork framework theo mơ hình MVC Zend Framework có hỗ trợ làm việc với Tempalate engine kết hợp tầng View Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn https://fb.com/tailieudientucntt Mơ hình MVC ứng dụng Zend Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn https://fb.com/tailieudientucntt Zend framework làm việc nào? Các lớp phân cấp theo tên thư mục Với class Zend_Db_Table Tương ứng có thư mục Zend |_Db |_Table |_ class Zend_Db_Table.php Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn 10 https://fb.com/tailieudientucntt Giới thiệu lớp theo mơ hình MVC Zend_Config Zend_Db Zend_Controller Zend_View Zend_Auth Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn 16 https://fb.com/tailieudientucntt Zend_config Chức năng: Load cấu hình giao tiếp webserver: Databse, đường dẫn lưu trữ Layout, css, js… Có lớp đại diện Zend_Config_Ini: Cho phép nhận diện đọc file “ ini”, “.txt”, … Zend_Config_Xml: Cho phép nhận diện đọc file “.xml” Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn 17 https://fb.com/tailieudientucntt Ví dụ Zend_Config File config.ini [database] db.adapter = PDO_MYSQL db.config.host = localhost db.config.username = demo_user db.config.password = 1234 db.config.dbname = newsDb Load cấu hình file ini $conDatabase = new Zend_Config_Ini(' /config/config.ini','database'); Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn 18 https://fb.com/tailieudientucntt Khai báo cấu hình & khởi tạo Thiết lập môi trường error_reporting(E_ALL|E_STRICT); date_default_timezone_set('Europe/London'); Định nghĩa đường dẫn đến thư viện Zend Framework set_include_path(' /library/' PATH_SEPARATOR ' /application/models'); Gọi lớp Zend_Loader include "Zend/Loader.php"; Gọi lớp sử dụng Zend_Loader::loadClass('Zend_Controller_Front'); Zend_Loader::loadClass('Zend_Registry'); Zend_Loader::loadClass('Zend_Layout'); Zend_Loader::loadClass('Zend_View'); Zend_Loader::loadClass('Zend_Config_Ini'); Zend_Loader::loadClass('Zend_Db'); Zend_Loader::loadClass('Zend_Db_Table'); Zend framework- AiTi conference kiennt02@aiti.com.vn CuuDuongThanCong.com 19 https://fb.com/tailieudientucntt Khai báo cấu hình & khởi tạo [1] Load thơng cấu hình database, khỏi tạo biến tồn cục $conDatabase = new Zend_Config_Ini(' /config/config.ini','database'); $registry = Zend_Registry::getInstance(); $registry->set('conDatabase', $conDatabase); Kết nối CSDL $db = Zend_Db::factory($conDatabase->db->adapter, $conDatabase->db->config->toArray()); Zend_Db_Table::setDefaultAdapter($db); $registry = Zend_Registry::getInstance(); $registry->set('db', $db); Load cấu hình đường dẫn ứng dụng $conDirApp = new Zend_Config_Ini(' /config/config.ini','dir'); $registry = Zend_Registry::getInstance(); $registry->set('conDirApp', $conDirApp); Thiết lập Controller $frontController = Zend_Controller_Front::getInstance(); $frontController->addControllerDirectory(' /application/controllers'); $frontController->throwExceptions(true); $frontController->dispatch(); Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn 20 https://fb.com/tailieudientucntt Zend_Db Chức năng: Giao tiếp với Database Load cấu hình connection Zend_Db_Table: Các thao tác thực thi với Table, Row, Column Zend_Db_Select: Thay tạo cách viết câu lệnh SQL query Lớp sử dụng tầng Model giao tiếp trực tiếp với Database Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn 21 https://fb.com/tailieudientucntt Cấu hình sử dụng lớp Zend_DB Kết nối database sử dụng Adapter $db = Zend_Db::factory('PDO_MYSQL', $params); Zend_Db_Table::setDefaultAdapter($db); Khai báo biến toàn cục $registry = Zend_Registry::getInstance(); $registry->set('db', $db); Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn 22 https://fb.com/tailieudientucntt Ví dụ Model Zend_Db Có thể dùng truy vấn để thực thao tác với CSDL $sql = “SELECT * FROM demo_table WHERE demo_id = 1”; $result = $db->query($sql); Hoặc sử dụng Zend_DB_Select $select = new Zend_Db_Select($db); $select->from(‘demo_table'); $select->where(‘demo_id = ?', ‘1'); $result = $select->query(); Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn 23 https://fb.com/tailieudientucntt Ví dụ Model Zend_Db[1] Khai báo lớp Model class Booking extends Zend_Db_Table { protected $_name = ‘'booking_region_tmp '; protected $_primary = ‘'booking_id '; public function loadListRegion($booking_id, $getAll=false) { $query = $this->_db->select() ->from('booking_region_tmp') ->where('booking_id = ?', $booking_id) ->order('booking_region_id'); $result = $this->_db->fetchAll($query); return $result; } } Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn 24 https://fb.com/tailieudientucntt Giới thiệu Zend Controller Controller ZF đặt tên theo quy định để sử dụng cho việc gọi hàm Controller qua tham số URL Việc xử lý Request thực thông qua phương thức khai báo Controller tương ứng Zend framework- AiTi conference CuuDuongThanCong.com kiennt02@aiti.com.vn 25 https://fb.com/tailieudientucntt Ví dụ Zend Controller AdminController.php tập hợp action xử lý phần admin Trong lớp có phương thức addAction() trả kế “Add me!” :