SlideShare a Scribd company logo
1 of 30
Download to read offline
Zend Framework 
(Bài thuyết trình sử dụng Zend Framework 1.8) 
Zend framework- AiTi conference kiennt02@aiti.com.vn 1
Nội dung chính 
 Giới thiệu chung về Zend Framework (ZF) 
 Mô hình MVC trong ZF 
 Cấu trúc ứng dụng viết trên nền 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 bằng Zend 
Framework 
Zend framework- AiTi conference kiennt02@aiti.com.vn 2
Software framework? 
 Framework: Là một cấu trúc mới của ngôn ngữ giúp phát 
triển các ứng dụng phần mềm. 
 Bên trong framework có các thành phần cơ bản : 
1. Code library 
2. Scripting language 
3. API 
Ngoài ra còn được tích hợp các phần mềm hoặc ngôn ngữ 
khác. 
Zend framework- AiTi conference kiennt02@aiti.com.vn 3
Các chuẩn để xây dựng một 
Framework 
 MVC: Có hỗ trợ Model – Control – View? 
 Multiple DB's: Làm việc đượ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 các module tiện ích như PDF, RSS,… 
· EDPnew : (Event Driven Programming). Hướng sự kiện? 
Zend framework- AiTi conference kiennt02@aiti.com.vn 4
Các framework phổ biến 
 Zend 
 Cake 
 CodeIgniter 
 Doctrine 
 Propel 
 Spring 
 .NET framework 
Zend framework- AiTi conference kiennt02@aiti.com.vn 5
Mô hình MVC 
Zend framework- AiTi conference kiennt02@aiti.com.vn 6
MVC[1] 
 Control: Lớp Xử lý các 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 một request được gửi tới, lớp C xác định yêu cầu 
để lấy data từ lớp M sau đó trả về cho lớp V hiển thị 
Zend framework- AiTi conference kiennt02@aiti.com.vn 7
Zend Framework 
 Zend Framework là sản phẩm framework mã 
nguồn mở được phát triển trên nền PHP 5.0 
theo chuẩn hướng đối tượng. 
 Zend Framwork là framework theo mô hình 
MVC. 
 Zend Framework có hỗ trợ làm việc với 
Tempalate engine kết hợp cùng tầng View 
Zend framework- AiTi conference kiennt02@aiti.com.vn 8
Mô hình MVC cơ bản trong 
ứng dụng của Zend 
Zend framework- AiTi conference kiennt02@aiti.com.vn 9
Zend framework làm việc thế nào? 
Các lớp được phân cấp theo tên thư mục 
Với class Zend_Db_Table 
Tương ứng chúng ta có cây thư mục 
Zend 
|_Db 
|_Table 
|_ class Zend_Db_Table.php 
Zend framework- AiTi conference kiennt02@aiti.com.vn 10
Zend framework làm việc thế nào?[1] 
 Controller thể hiện trên URL 
http://domainname/controller/action/getID/value 
http://domainname/module/controller/action/getID/value 
Ví dụ 
http://localhost/zfdemo/admin/: Tìm tới indexAction trong adminController để thực thi 
http://localhost/zfdemo/admin/login: Tìm tới loginAction trong controller adminController 
để thực thi 
http://zend.com/news/views/id/15: Tìm tới vewsAction trong controller newsController và 
get id=15 để thực thi. 
Zend framework- AiTi conference kiennt02@aiti.com.vn 11
Mô hình MVC trong Zend Framework 
 Model : Cung cấp tập hợp các lớp được trừu tượng 
hóa sử dụng cho việc truy xuất dữ liệu. 
Lớp phục vụ: Zend_DB, Zend_DB_Table 
 View : Định nghĩa các thông tin hiển thị phía người 
dụng sau khi được xử lý và trả về từ controller. 
Lớp phục vụ: Zend_View 
 Controller : Kiểm soát dữ liệu vào ra. Xuất thông tin 
ra tầng View khi được thực thi. 
Lớp phục vụ: Zend_Controller 
Zend framework- AiTi conference kiennt02@aiti.com.vn 12
Mô hình MVC của Zend 
Zend framework- AiTi conference kiennt02@aiti.com.vn 13
Cấu trúc thư mục của project 
Zend framework- AiTi conference kiennt02@aiti.com.vn 14
Khởi tạo ứng dụng trong Zend 
Framework 
 Để khởi tạo ứng dụng ZF chúng ta trải qua 3 
bước cơ bản: 
1. Khởi tạo môi trường: Bật chức năng Debug, 
khai báo về múi giờ làm việc, … 
2. Khai báo đường dẫn: Load các class làm 
việc của nhân ZF 
3. Thiết lập controllers: Chỉ ra nơi đáp ứng các 
request. 
Zend framework- AiTi conference kiennt02@aiti.com.vn 15
Giới thiệu các lớp cơ bản theo 
mô hình MVC 
 Zend_Config 
 Zend_Db 
 Zend_Controller 
 Zend_View 
 Zend_Auth 
Zend framework- AiTi conference kiennt02@aiti.com.vn 16
Zend_config 
 Chức năng: Load cấu hình giao tiếp webserver: Databse, các 
đường dẫn lưu trữ Layout, css, js… 
 Có 2 lớp đại diện 
Zend_Config_Ini: Cho phép nhận diện và đọc các file “. ini”, 
“.txt”, … 
Zend_Config_Xml: Cho phép nhận diện và đọc file “.xml” 
Zend framework- AiTi conference kiennt02@aiti.com.vn 17
Ví dụ về 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 trong file .ini 
$conDatabase = new 
Zend_Config_Ini('../config/config.ini','database'); 
Zend framework- AiTi conference kiennt02@aiti.com.vn 18
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 của Zend 
Framework 
set_include_path('../library/'. PATH_SEPARATOR . '../application/models'); 
 Gọi lớp Zend_Loader 
include "Zend/Loader.php"; 
 Gọi các lớp được 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 19
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 toà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 của ứ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 kiennt02@aiti.com.vn 20
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 thế và tạo ra cách viết câu lệnh SQL query mới 
 Lớp này được sử dụng trong tầng Model và giao tiếp trực tiếp 
với Database 
Zend framework- AiTi conference kiennt02@aiti.com.vn 21
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 kiennt02@aiti.com.vn 22
Ví dụ về Model trên Zend_Db 
 Có thể dùng truy vấn để thực hiện 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 kiennt02@aiti.com.vn 23
Ví dụ về Model trên Zend_Db[1] 
 Khai báo lớp trong 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 kiennt02@aiti.com.vn 24
Giới thiệu về Zend Controller 
 Controller trong ZF được đặt tên theo quy 
định để sử dụng cho việc gọi hàm trong 
Controller đó qua tham số trên URL. 
 Việc xử lý Request được thực hiện thông qua 
phương thức được khai báo trong Controller 
tương ứng. 
Zend framework- AiTi conference kiennt02@aiti.com.vn 25
Ví dụ về Zend Controller 
 AdminController.php tập hợp các action xử lý trong phần admin . 
Trong lớp này có phương thức addAction() trả về kế quả “Add 
me!” : 
 <?php 
 Zend::LoadClass('Zend_View'); 
 class AdminController extends Zend_Controller_Action 
 { 
 public function addAction() { 
 $ this->view->assign('title', ‘Add me!'); } 
 } 
 Việc gọi action này được thực hiện qua URL request như sau :: 
http://localhost/public/admin/add 
 (trong đó http://localhost/public là đường dẫn của ứng dụng, 
admin : tên controller, add : action thực hiện trong controller 
admin) 
Zend framework- AiTi conference kiennt02@aiti.com.vn 26
Zend_View 
 Thực thi Zend_View_Interface giúp tạo ra 
template engine riêng. 
 Mặc định Zend_View sử dụng PHP Taglib 
 Gán và trả về giá trị dưới dạng đối tượng . 
$view->content = $body 
 Truy cập biến trong view sử dụng con trỏ $this 
 <?= $this->content ?> 
Zend framework- AiTi conference kiennt02@aiti.com.vn 27
Ví dụ Zend_View 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title> <?php echo $this->escape($this->pageTitle); ?> </title> 
</head> 
<body> 
<div id="page"> 
<div id="title"><h2>Title</h2></div> 
<div id="content"> 
<?php echo $this->layout()->content ?> 
</div> 
</div> 
</body> 
</html> 
Zend framework- AiTi conference kiennt02@aiti.com.vn 28
Xác thực người dùng bằng 
Zend_Auth 
 //Bien duoc truyen vao tu form 
$username= $this->getRequest()->getPost('username'); 
$password= $this->getRequest()->getPost('password'); 
Zend_Loader::loadClass('Zend_Auth'); 
 //Kiem tra tai khoan trong CSDL 
$authAdapter = new Zend_Auth_Adapter_DbTable($db, 
'sysadm', 
'username', 
'password', 
'MD5(?) AND status != "compromised"'); 
$authAdapter->setIdentity($username) 
->setCredential($password); 
 //Tra ve ket qua xac thuc 
$result= $authAdapter->authenticate(); 
Zend framework- AiTi conference kiennt02@aiti.com.vn 29
Demo ứng dụng sử dụng ZF tổ chức 
theo mô hình MVC 
Bài thuyết trình đến đây kết thúc 
Chóc c¸c b¹n cã mét nam míi víi nhiÒu 
thμnh c«ng míi, trμn ®Çy niÒm vui vμ 
h¹nh phóc 
AITI-APTECH 
Zend framework- AiTi conference kiennt02@aiti.com.vn 30

More Related Content

What's hot

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 duKim Hyun Hai
 
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 MVCMasterCode.vn
 
Spring mvc
Spring mvcSpring mvc
Spring mvcBa Big
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webMasterCode.vn
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTMasterCode.vn
 
Lập trình web – cgi
Lập trình web – cgiLập trình web – cgi
Lập trình web – cgiSon Nguyen
 
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng CaoBài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng CaoTuan Nguyen
 
Bài 2: J2EE - Lập Trình Mạng Nâng Cao
Bài 2: J2EE - Lập Trình Mạng Nâng CaoBài 2: J2EE - Lập Trình Mạng Nâng Cao
Bài 2: J2EE - Lập Trình Mạng Nâng CaoTuan Nguyen
 
Ebook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng caoEbook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng caoTrung Thanh Nguyen
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaANHMATTROI
 
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 2KhanhPham
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaHuy Vũ
 

What's hot (20)

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
 
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
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Yii
YiiYii
Yii
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
 
Jsf
JsfJsf
Jsf
 
Lập trình web – cgi
Lập trình web – cgiLập trình web – cgi
Lập trình web – cgi
 
Laptrinh jdbc
Laptrinh jdbcLaptrinh jdbc
Laptrinh jdbc
 
JSP and Database
JSP and DatabaseJSP and Database
JSP and Database
 
Bai 09 Basic jsp
Bai 09 Basic jspBai 09 Basic jsp
Bai 09 Basic jsp
 
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng CaoBài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
 
Bài 2: J2EE - Lập Trình Mạng Nâng Cao
Bài 2: J2EE - Lập Trình Mạng Nâng CaoBài 2: J2EE - Lập Trình Mạng Nâng Cao
Bài 2: J2EE - Lập Trình Mạng Nâng Cao
 
Ebook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng caoEbook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng cao
 
Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
 
Aspnet 3.5 -06
Aspnet 3.5 -06Aspnet 3.5 -06
Aspnet 3.5 -06
 
Giao Trinh Jquery
Giao Trinh JqueryGiao Trinh Jquery
Giao Trinh Jquery
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong java
 
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 trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với Java
 

Similar to Co ban ve_zend_framework 1

Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc frameworkXuan Le
 
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 winformMasterCode.vn
 
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 vnNguyen Van Hung
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...MasterCode.vn
 
All zend
All zendAll zend
All zendkuetli
 
01-Introduction.pdf
01-Introduction.pdf01-Introduction.pdf
01-Introduction.pdfBird Web
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
 
01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5Thanh Nguyen
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...MasterCode.vn
 
Jdeveloper12c
Jdeveloper12cJdeveloper12c
Jdeveloper12cle larry
 
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-hdsdVu Hung Nguyen
 
Book storeonline it-slideshares.blogspot.com
Book storeonline it-slideshares.blogspot.comBook storeonline it-slideshares.blogspot.com
Book storeonline it-slideshares.blogspot.comphanleson
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupKhanhPham
 
429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdf429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdfToNguyen16
 

Similar to Co ban ve_zend_framework 1 (20)

Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc framework
 
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
 
Aspnet 3.5 _02
Aspnet 3.5 _02Aspnet 3.5 _02
Aspnet 3.5 _02
 
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
 
Aspnet 3.5_03
Aspnet 3.5_03Aspnet 3.5_03
Aspnet 3.5_03
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
 
Thutap
ThutapThutap
Thutap
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
All zend
All zendAll zend
All zend
 
01-Introduction.pdf
01-Introduction.pdf01-Introduction.pdf
01-Introduction.pdf
 
Web301 slide 2
Web301   slide 2Web301   slide 2
Web301 slide 2
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
 
01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
 
Jdeveloper12c
Jdeveloper12cJdeveloper12c
Jdeveloper12c
 
Asp.net 3.5 _1
Asp.net 3.5 _1Asp.net 3.5 _1
Asp.net 3.5 _1
 
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
 
Book storeonline it-slideshares.blogspot.com
Book storeonline it-slideshares.blogspot.comBook storeonline it-slideshares.blogspot.com
Book storeonline it-slideshares.blogspot.com
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress Meetup
 
429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdf429157477-Slide-Bao-Cao.pdf
429157477-Slide-Bao-Cao.pdf
 

Recently uploaded

cuộc cải cách của Lê Thánh Tông - Sử 11
cuộc cải cách của Lê Thánh Tông -  Sử 11cuộc cải cách của Lê Thánh Tông -  Sử 11
cuộc cải cách của Lê Thánh Tông - Sử 11zedgaming208
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx22146042
 
Linh kiện điện tử - Điện tử số sáng tạo VN.pdf
Linh kiện điện tử - Điện tử số sáng tạo VN.pdfLinh kiện điện tử - Điện tử số sáng tạo VN.pdf
Linh kiện điện tử - Điện tử số sáng tạo VN.pdfXem Số Mệnh
 
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfMạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfXem Số Mệnh
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem Số Mệnh
 
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptxGame-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptxxaxanhuxaxoi
 
kỳ thi bác sĩ nội trú khóa 48, hướng dẫn
kỳ thi bác sĩ nội trú khóa 48, hướng dẫnkỳ thi bác sĩ nội trú khóa 48, hướng dẫn
kỳ thi bác sĩ nội trú khóa 48, hướng dẫnVitHong183894
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...Nguyen Thanh Tu Collection
 
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hardBookoTime
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào môBryan Williams
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Học viện Kstudy
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...Nguyen Thanh Tu Collection
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdfdong92356
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Xem Số Mệnh
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...PhcTrn274398
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

cuộc cải cách của Lê Thánh Tông - Sử 11
cuộc cải cách của Lê Thánh Tông -  Sử 11cuộc cải cách của Lê Thánh Tông -  Sử 11
cuộc cải cách của Lê Thánh Tông - Sử 11
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
 
Linh kiện điện tử - Điện tử số sáng tạo VN.pdf
Linh kiện điện tử - Điện tử số sáng tạo VN.pdfLinh kiện điện tử - Điện tử số sáng tạo VN.pdf
Linh kiện điện tử - Điện tử số sáng tạo VN.pdf
 
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfMạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
 
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptxGame-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
 
kỳ thi bác sĩ nội trú khóa 48, hướng dẫn
kỳ thi bác sĩ nội trú khóa 48, hướng dẫnkỳ thi bác sĩ nội trú khóa 48, hướng dẫn
kỳ thi bác sĩ nội trú khóa 48, hướng dẫn
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
 
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
 

Co ban ve_zend_framework 1

  • 1. Zend Framework (Bài thuyết trình sử dụng Zend Framework 1.8) Zend framework- AiTi conference kiennt02@aiti.com.vn 1
  • 2. Nội dung chính  Giới thiệu chung về Zend Framework (ZF)  Mô hình MVC trong ZF  Cấu trúc ứng dụng viết trên nền 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 bằng Zend Framework Zend framework- AiTi conference kiennt02@aiti.com.vn 2
  • 3. Software framework?  Framework: Là một cấu trúc mới của ngôn ngữ giúp phát triển các ứng dụng phần mềm.  Bên trong framework có các thành phần cơ bản : 1. Code library 2. Scripting language 3. API Ngoài ra còn được tích hợp các phần mềm hoặc ngôn ngữ khác. Zend framework- AiTi conference kiennt02@aiti.com.vn 3
  • 4. Các chuẩn để xây dựng một Framework  MVC: Có hỗ trợ Model – Control – View?  Multiple DB's: Làm việc đượ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 các module tiện ích như PDF, RSS,… · EDPnew : (Event Driven Programming). Hướng sự kiện? Zend framework- AiTi conference kiennt02@aiti.com.vn 4
  • 5. Các framework phổ biến  Zend  Cake  CodeIgniter  Doctrine  Propel  Spring  .NET framework Zend framework- AiTi conference kiennt02@aiti.com.vn 5
  • 6. Mô hình MVC Zend framework- AiTi conference kiennt02@aiti.com.vn 6
  • 7. MVC[1]  Control: Lớp Xử lý các 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 một request được gửi tới, lớp C xác định yêu cầu để lấy data từ lớp M sau đó trả về cho lớp V hiển thị Zend framework- AiTi conference kiennt02@aiti.com.vn 7
  • 8. Zend Framework  Zend Framework là sản phẩm framework mã nguồn mở được phát triển trên nền PHP 5.0 theo chuẩn hướng đối tượng.  Zend Framwork là framework theo mô hình MVC.  Zend Framework có hỗ trợ làm việc với Tempalate engine kết hợp cùng tầng View Zend framework- AiTi conference kiennt02@aiti.com.vn 8
  • 9. Mô hình MVC cơ bản trong ứng dụng của Zend Zend framework- AiTi conference kiennt02@aiti.com.vn 9
  • 10. Zend framework làm việc thế nào? Các lớp được phân cấp theo tên thư mục Với class Zend_Db_Table Tương ứng chúng ta có cây thư mục Zend |_Db |_Table |_ class Zend_Db_Table.php Zend framework- AiTi conference kiennt02@aiti.com.vn 10
  • 11. Zend framework làm việc thế nào?[1]  Controller thể hiện trên URL http://domainname/controller/action/getID/value http://domainname/module/controller/action/getID/value Ví dụ http://localhost/zfdemo/admin/: Tìm tới indexAction trong adminController để thực thi http://localhost/zfdemo/admin/login: Tìm tới loginAction trong controller adminController để thực thi http://zend.com/news/views/id/15: Tìm tới vewsAction trong controller newsController và get id=15 để thực thi. Zend framework- AiTi conference kiennt02@aiti.com.vn 11
  • 12. Mô hình MVC trong Zend Framework  Model : Cung cấp tập hợp các lớp được trừu tượng hóa sử dụng cho việc truy xuất dữ liệu. Lớp phục vụ: Zend_DB, Zend_DB_Table  View : Định nghĩa các thông tin hiển thị phía người dụng sau khi được xử lý và trả về từ controller. Lớp phục vụ: Zend_View  Controller : Kiểm soát dữ liệu vào ra. Xuất thông tin ra tầng View khi được thực thi. Lớp phục vụ: Zend_Controller Zend framework- AiTi conference kiennt02@aiti.com.vn 12
  • 13. Mô hình MVC của Zend Zend framework- AiTi conference kiennt02@aiti.com.vn 13
  • 14. Cấu trúc thư mục của project Zend framework- AiTi conference kiennt02@aiti.com.vn 14
  • 15. Khởi tạo ứng dụng trong Zend Framework  Để khởi tạo ứng dụng ZF chúng ta trải qua 3 bước cơ bản: 1. Khởi tạo môi trường: Bật chức năng Debug, khai báo về múi giờ làm việc, … 2. Khai báo đường dẫn: Load các class làm việc của nhân ZF 3. Thiết lập controllers: Chỉ ra nơi đáp ứng các request. Zend framework- AiTi conference kiennt02@aiti.com.vn 15
  • 16. Giới thiệu các lớp cơ bản theo mô hình MVC  Zend_Config  Zend_Db  Zend_Controller  Zend_View  Zend_Auth Zend framework- AiTi conference kiennt02@aiti.com.vn 16
  • 17. Zend_config  Chức năng: Load cấu hình giao tiếp webserver: Databse, các đường dẫn lưu trữ Layout, css, js…  Có 2 lớp đại diện Zend_Config_Ini: Cho phép nhận diện và đọc các file “. ini”, “.txt”, … Zend_Config_Xml: Cho phép nhận diện và đọc file “.xml” Zend framework- AiTi conference kiennt02@aiti.com.vn 17
  • 18. Ví dụ về 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 trong file .ini $conDatabase = new Zend_Config_Ini('../config/config.ini','database'); Zend framework- AiTi conference kiennt02@aiti.com.vn 18
  • 19. 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 của Zend Framework set_include_path('../library/'. PATH_SEPARATOR . '../application/models');  Gọi lớp Zend_Loader include "Zend/Loader.php";  Gọi các lớp được 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 19
  • 20. 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 toà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 của ứ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 kiennt02@aiti.com.vn 20
  • 21. 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 thế và tạo ra cách viết câu lệnh SQL query mới  Lớp này được sử dụng trong tầng Model và giao tiếp trực tiếp với Database Zend framework- AiTi conference kiennt02@aiti.com.vn 21
  • 22. 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 kiennt02@aiti.com.vn 22
  • 23. Ví dụ về Model trên Zend_Db  Có thể dùng truy vấn để thực hiện 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 kiennt02@aiti.com.vn 23
  • 24. Ví dụ về Model trên Zend_Db[1]  Khai báo lớp trong 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 kiennt02@aiti.com.vn 24
  • 25. Giới thiệu về Zend Controller  Controller trong ZF được đặt tên theo quy định để sử dụng cho việc gọi hàm trong Controller đó qua tham số trên URL.  Việc xử lý Request được thực hiện thông qua phương thức được khai báo trong Controller tương ứng. Zend framework- AiTi conference kiennt02@aiti.com.vn 25
  • 26. Ví dụ về Zend Controller  AdminController.php tập hợp các action xử lý trong phần admin . Trong lớp này có phương thức addAction() trả về kế quả “Add me!” :  <?php  Zend::LoadClass('Zend_View');  class AdminController extends Zend_Controller_Action  {  public function addAction() {  $ this->view->assign('title', ‘Add me!'); }  }  Việc gọi action này được thực hiện qua URL request như sau :: http://localhost/public/admin/add  (trong đó http://localhost/public là đường dẫn của ứng dụng, admin : tên controller, add : action thực hiện trong controller admin) Zend framework- AiTi conference kiennt02@aiti.com.vn 26
  • 27. Zend_View  Thực thi Zend_View_Interface giúp tạo ra template engine riêng.  Mặc định Zend_View sử dụng PHP Taglib  Gán và trả về giá trị dưới dạng đối tượng . $view->content = $body  Truy cập biến trong view sử dụng con trỏ $this  <?= $this->content ?> Zend framework- AiTi conference kiennt02@aiti.com.vn 27
  • 28. Ví dụ Zend_View <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> <?php echo $this->escape($this->pageTitle); ?> </title> </head> <body> <div id="page"> <div id="title"><h2>Title</h2></div> <div id="content"> <?php echo $this->layout()->content ?> </div> </div> </body> </html> Zend framework- AiTi conference kiennt02@aiti.com.vn 28
  • 29. Xác thực người dùng bằng Zend_Auth  //Bien duoc truyen vao tu form $username= $this->getRequest()->getPost('username'); $password= $this->getRequest()->getPost('password'); Zend_Loader::loadClass('Zend_Auth');  //Kiem tra tai khoan trong CSDL $authAdapter = new Zend_Auth_Adapter_DbTable($db, 'sysadm', 'username', 'password', 'MD5(?) AND status != "compromised"'); $authAdapter->setIdentity($username) ->setCredential($password);  //Tra ve ket qua xac thuc $result= $authAdapter->authenticate(); Zend framework- AiTi conference kiennt02@aiti.com.vn 29
  • 30. Demo ứng dụng sử dụng ZF tổ chức theo mô hình MVC Bài thuyết trình đến đây kết thúc Chóc c¸c b¹n cã mét nam míi víi nhiÒu thμnh c«ng míi, trμn ®Çy niÒm vui vμ h¹nh phóc AITI-APTECH Zend framework- AiTi conference kiennt02@aiti.com.vn 30