1. Trang chủ
  2. » Luận Văn - Báo Cáo

các thủ thuật (nguyên tắc) sáng tạo được dùng trong zend framework

13 414 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 13
Dung lượng 318,45 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC ĐỀ TÀI: CÁC THỦ THUẬT NGUYÊN TẮC SÁNG TẠO ĐƯỢC DÙNG TRONG ZEND FRAMEWORK Giả

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC

TRONG TIN HỌC

ĐỀ TÀI:

CÁC THỦ THUẬT (NGUYÊN TẮC) SÁNG TẠO ĐƯỢC DÙNG TRONG ZEND FRAMEWORK

Giảng viên hướng dẫn: GS TSKH Hoàng Kiếm Học viên thực hiện: Ngô Hải Linh

MSHV: CH1101019 Lớp cao học khóa 6

TP Hồ Chí Minh, tháng 3/2012

Trang 2

MỤC LỤC

Mở đầu 1

I Giới thiệu về Zend Framework 3

II Mô hình MVC 5

III Các thành phần (components) chính 6

IV Các nguyên tắc sáng tạo được dùng trong Zend Framework 7

Kết luận 11

Trang 3

MỞ ĐẦU

Trong thời đại công nghệ phát triển nhanh chóng như hiện nay, việc ứng dụng công nghệ thông tin vào trong mọi lĩnh vực là một trong những nhu cầu cấp thiết và tất yếu Đặc biệt là trong lĩnh vực thương mại điện tử, quản lý, số lượng thông tin và

dữ liệu cần quản lý sẽ tăng lên gấp bội, dẫn tới công việc quản lý trở nên phức tạp, khó khăn hơn Do đó, việc ứng dụng công nghệ thông tin lại càng cấp thiết hơn, cùng với sự hỗ trợ của các phần mềm quản lý, nó giúp chúng ta quản lý mọi việc dễ dàng, nhanh chóng, đáp ứng mọi yêu cầu lưu trữ và truy xuất dữ liệu, tiết kiệm được thời gian và chi phí cho công việc

Đối với các nhà phát triển phần mềm, công việc quản lý, sửa lỗi mã nguồn, tài nguyên… với một dự án phần mềm lớn là hết sức khó khăn Khối lượng modules, resources càng nhiều theo độ lớn của dự án Do đó, trước khi bắt đầu viết một phần mềm, chúng ta nên định hướng một nền tảng làm khung sườn cho dự án của mình Net Framework là một nền tảng lập trình do hãng Microsoft phát triển đã quá quen thuộc với chúng ta Nhưng trong bài viết này, tôi xin giới thiệu một nền tảng mã

tảng lập trình hướng đối tượng nên có thể thừa kế, quản lý, nâng cấp các ứng dụng

dễ dàng Mô hình MVC hoặc không theo chuẩn MVC trong Zend Framework rất linh hoạt giúp chúng ta có thể tùy biến cấu hình ứng dụng theo ý muốn Phiên bản hiện tại của Zend Framework 1.11 gần như hoàn chỉnh và không thay đổi nhiều Hiện nay, những thị trường phần mềm lớn Nhật, Mỹ, Châu Âu… cũng đã đang chọn Zend Framework để xây dựng các ứng mới của họ

Thông qua những buổi giảng dạy và hướng dẫn của thầy Hoàng Kiếm, tôi được biết thêm và hiểu hơn về cách vận dụng các thủ thuật (nguyên tắc) sáng tạo trong quá trình giải quyết các bài toán, cùng các vấn đề mang tính khoa học Do đó, tôi xin phân tích những thủ thuật (nguyên tắc) sáng tạo được áp dụng trong Zend Framework Do khả năng và kiến thức có hạn, nên bài viết cũng chỉ dừng ở mức

Trang 4

khái quát một số thủ thuật (nguyên tắc) cơ bản có trong Zend Framework Tôi xin chân thành cảm ơn thầy Hoàng Kiếm đã giảng dạy và hướng dẫn để hoàn thành bài viết rất bổ ích và lý thú này

Nội dung của bài viết ngoài phần mở đầu và kết luận, có 4 mục sau:

I Giới thiệu về Zend Framework

II Mô hình MVC

III Các thành phần (components) chính

IV Các nguyên tắc sáng tạo được dùng trong Zend Framework

Trang 5

I Giới thiệu về Zend Framework

Zend Framework là một nền tảng mã nguồn mở, ứng dụng web hướng đối tượng sử dụng PHP 5 Zend Framework thường được gọi là “thư viện thành phần” (component library), bởi vì nó có nhiều thành phần linh động mà bạn có thể sử dụng nhiều hơn hoặc ít một cách độc lập Tuy nhiên, Zend Framework dựa theo mô hình Model-View-Controller (MVC) được sử dụng để thiết lập một cấu trúc cơ bản cho các ứng dụng của Zend Framework

Giống như bao nhiêu PHP Framework khác Zend Framework cũng đã ra đời, thời kỳ đầu tiên lúc nào cũng khó khăn và nhiều thử thách với bất kỳ việc gì Zend Framework cũng không ngoại lệ Trong thời gian đầu, Zend Framework có rất ít các thư viện xử lý và có rất nhiều khuyết điểm

Càng về sau Zend Framework càng hoàn thiện hơn và bổ xung những thư viện mới rất hữu ích cho các ứng dụng web Và đó cũng lý do tại sao có nhiều công ty lớn như IGN.com, RottenTomatoes.com, AskMen.com and IBM… đã chọn Zend Framework làm nền tảng phát triển các ứng dụng trực tuyến

Đến phiên bản 1.8 thì gần như những thư viện của Zend Framework trở nên hoàn chỉnh và không thay đổi nhiều Từ đó tạo nền tảng cho sự phát triển nhanh trong của các thư viện mới trong Zend Framework Hiện nay, những thị trường phần mềm lớn Nhật, Mỹ, Châu Âu… cũng đã đang chọn Zend Framework để xây dựng các ứng mới của họ Phiên bản ổn định hiện tại là 1.11, các nhà phát triển Zend Framework đang nâng cấp lên phiên bản 2 Hiện nay, họ đang cung cấp bản 2.0.0 beta 3 để cộng đồng sử dụng và góp ý

Điểm nổi bật của Zend Framework:

- Tất cả các thành phần (component) được viết theo hướng đối tượng của PHP5

và theo chuẩn E_STRICT

- Mô hình MVC mở rộng hỗ trợ tốt giao diện (layouts, templates)

Trang 6

- Hỗ trợ nhiều hệ cơ sở dữ liệu, như là: MariaDB, MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite, và Informix Dynamic Server

- Gửi/nhận email thông qua mbox, Maildir, POP3 and IMAP4

- Hệ thống phụ quản lý bộ nhớ đệm một cách linh hoạt với nhiều loại backends, như là bộ nhớ hay tập tin hệ thống

II Mô hình MVC

Mô hình MVC trở thành chuẩn mới trong thiết kế các ứng dụng web hiện nay Hầu hết các ứng dụng web theo mô hình 3 lớp (3 layers): lớp giao diện người dùng

MVC giúp cho người phát triển phần mềm cô lập các lớp nghiệp vụ và giao diện

nhiều thuận lợi cho việc bảo trì vì các lớp nghiệp vụ và giao diện ít liên quan với

Mô hình MVC

Trang 7

- Model: đây là một phần của ứng dụng, nó chứa các chức năng cơ bản và bộ các khái niệm trừu tượng (abstraction) Lớp dữ liệu và một số nghiệp vụ có thể được viết ở đây

- View: lớp giao diện người dùng Dữ liệu được truyền từ Controller tới đây để xuất ra một số định dạng như là HTML để hiển thị cho người xem

- Controller: quản lý sự trao đổi giữa lớp dữ liệu và lớp nghiệp vụ liên quan đến mô hình Nghĩa là, nó làm nhiệm vụ xử lý các request từ url và form để thao tác trực tiếp với Model, sau đó dùng View để hiển thị ra

III Các thành phần (components) chính

1 Model-View-Controller (MVC)

Zend_Application_Resource

Zend_Controller_Dispatcher, Zend_Controller_Plugin,

Zend_Controller_Router

2 Tooling và Rapid Application Development (RAD)

3 Database

Zend_Db_Table

4 Internationalization (i18n) và Localization (I10n)

Trang 8

- Zend_Date

5 Quản lý Authentication, Authorization và Session

6 Web và web service

Zend_Rest_Client, Zend_Service, Zend_XmlRpc_Client

Zend_Server_Definition, Zend_Server_Reflection, Zend_Rest_Server,

Zend_Soap_Server, Zend_XmlRpc_Server

7 Mail, Formats và Search

8 Core

Zend_Loader, Zend_Loader_Autoloader, Zend_Log, Zend_Memory,

Zend_Registry, Zend_Validate, Zend_Version

IV Các nguyên tắc sáng tạo được dùng trong Zend Framework

Trong quá trình phát triển, cải tiến, Zend đã dùng các nguyên tắc sáng tạo sau:

Trang 9

- Nguyên tắc kết hợp

làm mới giao diện)

dữ liệu vào thời gian định sẵn; tự động gửi thông tin mới, báo giá, sản phẩm mới qua email khi khách hàng yêu cầu…)

1 Nguyên tắc phân nhỏ

Zend Framework tách nhỏ các thành phần (components) riêng biệt, chúng ta thêm bớt một hay nhiều thành phần một cách dễ dàng

Trong một ứng dụng web thực tế được viết theo mô hình MVC, chúng ta có thể tách biệt các modules, templates với nhau Điều này giúp các nhà phát triển ứng dụng trong việc quản lý, sửa lỗi, nâng cấp… sản phẩm của mình

Trang 10

Cấu trúc ứng dụng nhiều modules, nhiều templates

2 Nguyên tắc tách khỏi

Trong quá trình sử dụng phần mềm, chúng ta có nhu cầu thay đổi giao diện mới để làm mới website Khi đó, vấn đề đặt ra cho các nhà phát triển phần mềm là: Làm sao khi thay đổi giao diện thì tránh phải viết mã nguồn (code) lại tối đa Do vậy, mô hình MVC trong Zend Framework giúp cho người phát triển phần mềm cô lập các lớp nghiệp vụ và giao diện người dùng

Trong View tách ra 3 phần:

- Views/scripts: chứa các tag HTML để hiển thị giao diện người dùng

- Views/helpers: chứa các hàm xử lý, giúp cho việc hiển thị nội dung website ở phần Views/scripts

Trang 11

Khi cần thay đổi giao diện người dùng, chúng ta chỉ cần chỉnh sửa trong phần Views/scripts, mà không phải viết lại phần Views/helpers và Views/filters

3 Nguyên tắc kết hợp

Zend Framework được thiết kế các thành phần (components) riêng biệt nhau, nhưng khi cần thiết ta phải kết hợp chúng lại với nhau

Khi tạo 1 trang web đăng ký thông tin người dùng, chúng ta sử dụng lớp Zend_Form (tạo các textbox, checkbox, button…), Zend_Captcha (chống spam), Zend_Acl (xác thực người dùng khi đăng nhập)…

4 Nguyên tắc vạn năng

Trong lớp Zend_Form, ngoài chức năng tạo ra các textbox, checkbox, button, radio… nó đồng thời kiểm tra dữ liệu người dùng nhập vào Nếu người dùng nhập chưa đúng theo mẫu thì xuất thông báo lỗi và yêu cầu họ nhập lại cho tới khi đúng

Ví dụ: kiểm tra độ dài 1 chuỗi, kiểm tra email…

5 Nguyên tắc chứa trong

Trong lớp Zend_Db chứa các lớp liên quan, hỗ trợ việc kết nối, xử lý câu lệnh truy vấn, giám sát truy vấn dữ liệu như: Zend_Db_Adapter, Zend_Db_Profiler, Zend_Db_Select, Zend_Db_Table

Trong lớp Zend_Db_Adapter chứa các lớp xử lý việc kết nối tới nhiều hệ cơ sở

dữ liệu khác nhau như: MySQL, SQL Server, DB2, Oracle, SQLite…Trong từng lớp Zend_Db_Adapter_Sqlsrv chứa có lớp xử lý câu truy vấn tương ứng với nó Zend_Db_Statement_Sqlsrv…

6 Nguyên tắc thực hiện sơ bộ

Để tạo 1 trang web đăng nhập, nếu chúng ta làm từ đầu: trước tiên viết đoạn HTML (input tag), kiểm tra dữ liệu đầu vào (do người dùng nhập), xuất thông báo nếu người dùng nhập sai Còn Zend Framework đã làm hết các bước này, chúng ta chỉ cần gọi hàm và công việc còn lại Zend sẽ làm hết

Ví dụ về class tạo 1 form đăng nhập:

Trang 12

class Front_Form_User_Login extends Zend_Form {

public function init() {

// create a textbox input[type=text]

$this->addElement( 'text' , 'email' , array( 'filters' => array( 'StringTrim' , 'StringToLower' ), 'validators' => array(

array( 'StringLength' , true, array(3, 128)),

array( 'EmailAddress' ),

),

'required' => true,

'label' => 'Email' ,

));

$this->addElement( 'password' , 'passwd' , array(

'filters' => array( 'StringTrim' ),

'validators' => array(

array( 'NotEmpty' , true, array(

'messages' => array( 'isEmpty' => 'Custom: No

)),

array( 'StringLength' , true, array(6, 128,

=> "'%value%' is less than %min%"

)

),

'required' => true,

'label' => 'Password' ,

));

$this->addElement( 'submit' , 'login' , array(

'required' => false,

'ignore' => true,

'label' => 'Login' ,

));

// And finally add some CSRF protection

$this->addElement( 'hash' , 'csrf' , array(

));

$this->setDecorators(array(

'FormElements' ,

array( 'HtmlTag' , array( 'tag' => 'dl' , 'class' =>

array( 'Description' , array( 'placement' => 'prepend' , 'class' => 'error' )),

'Form'

}

Trang 13

7 Nguyên tắc linh động

Zend Framework được xem như là “thư viện thành phần” nên việc thêm bớt 1 thành phần nào đó rất đơn giản

Zend Framework được xây dựng trên nền tảng lập trình hướng đối tượng nên

có thể thừa kế, nâng cấp các ứng dụng dễ dàng, linh động

KẾT LUẬN

Qua bài viết trên cho chúng ta có cái nhìn khái quát nhất về Zend Framework và mô hình MVC Nó là một sản phẩm trí tuệ của nhiều chuyên gia, đồng thời qua đó, chúng ta cũng thấy được một số nguyên tắc (thủ thuật) sáng tạo được vận dụng

Trong chúng ta, chắc hẳn ai cũng từng sử dụng 1 trong 40 nguyên tắc sáng tạo trong học tập hoặc đời sống Tuy chúng ta sử dụng nguyên tắc đó một cách vô tình hay ngẫu nhiên Do đó, việc nắm vững kiến thức về 40 nguyên tắc sáng tạo là điều thiết thực Khi đó, nó giúp chúng ta chủ động hơn trong tư duy sáng tạo hay trong sinh hoạt đời sống Nó có thể coi như là chìa khoá để mở cánh cửa thành công

Tài liệu tham khảo chính:

(1) Slides bài giảng môn ‘‘PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC’’ – GS.TSKH Hoàng Kiếm

(2) 40 Thủ thuật (nguyên tắc) sáng tạo cơ bản – GS.TSKH Phan Dũng

(3) www.framework.zend.com

Ngày đăng: 29/08/2014, 18:59

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w