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 c hú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.
13 trang |
Chia sẻ: lylyngoc | Lượt xem: 2678 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Đề tài Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
0
ĐẠ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
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 1
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
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 2
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ã
nguồn mở khác, đó là Zend Framework. 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ế, 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
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 3
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 .
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 4
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.
- Kiến trúc Use-at-will với các thành phần linh hoạt và ít phụ thuộc lẫn nhau.
- Mô hình MVC mở rộng hỗ trợ tốt giao diện (layouts, templates).
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 5
- 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
(presentation), lớp nghiệp vụ (business logic) và lớp dữ liệu (data access). Mô hình
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
người dùng một cách rõ ràng hơn. Phần mềm phát triển theo mô hình MVC tạo
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
nhau, đặc biệt là khi có nhiều người phát triển cùng làm trên một dự án.
Mô hình MVC
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 6
- 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, Zend_Application_Bootstrap, Zend_Application_Module,
Zend_Application_Resource
- Zend_Controller_Front, Zend_Controller_Action,
Zend_Controller_Dispatcher, Zend_Controller_Plugin,
Zend_Controller_Router
- Zend_Form
- Zend_Layout, Zend_View, Zend_View_Filter, Zend_View_Helper
2. Tooling và Rapid Application Development (RAD)
- Zend_CodeGenerator
- Zend_Reflection
- Zend_Tool_Framework, Zend_Tool_Project
3. Database
- Zend_Db, Zend_Db_Adapter, Zend_Db_Profiler, Zend_Db_Select,
Zend_Db_Table
4. Internationalization (i18n) và Localization (I10n)
- Zend_Currency
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 7
- Zend_Date
- Zend_Locale
- Zend_Measure
- Zend_Translate
5. Quản lý Authentication, Authorization và Session
- Zend_Acl: quản lý xác thực người dùng
- Zend_Auth: quản lý phân quyền
- Zend_Session
6. Web và web service
- Consuming services: Zend_Feed, Zend_Gdata, Zend_Http_Client,
Zend_Rest_Client, Zend_Service, Zend_XmlRpc_Client
- Exposing services: Zend_Amf_Server, Zend_Json_Server,
Zend_Server_Definition, Zend_Server_Reflection, Zend_Rest_Server,
Zend_Soap_Server, Zend_XmlRpc_Server
7. Mail, Formats và Search
- Zend_Json
- Zend_Mail, Zend_Mime
- Zend_Pdf
- Zend_Search_Lucene
8. Core
- Zend_Cache, Zend_Config, Zend_Console_Getopt, Zend_Debug, Zend_Filter,
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:
- Nguyên tắc phân nhỏ
- Nguyên tắc tách khỏi
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 8
- Nguyên tắc kết hợp
- Nguyên tắc vạn năng
- Nguyên tắc chứa trong
- Nguyên tắc thực hiện sơ bộ
- Nguyên tắc dự phòng (áp dụng trong 1 ứng dụng thực tế: sao lưu dữ liệu)
- Nguyên tắc thay đổi màu sắc (áp dụng trong 1 ứng dụng thực tế: thay đổi,
làm mới giao diện)
- Nguyên tắc linh động
- Nguyên tắc tự phục vụ (áp dụng trong 1 ứng dụng thực tế: tự động backup
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.
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 9
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.
- Views/filters: tương tự helpers, chúng ta có thể thay đổi hoặc xóa những dữ
liệu không mong muốn trong quá trình nhập liệu thông qua bộ lọc này.
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 10
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:
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 11
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',
));
// create a textbox input[type=password]
$this->addElement('password', 'passwd', array(
'filters' => array('StringTrim'),
'validators' => array(
array('NotEmpty', true, array(
'messages' => array('isEmpty' => 'Custom: No
Value Entered')
)),
array('StringLength', true, array(6, 128,
'messages' => array('stringLengthTooShort'
=> "'%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(
'ignore' => true,
));
$this->setDecorators(array(
'FormElements',
array('HtmlTag', array('tag' => 'dl', 'class' =>
'zend_form')),
array('Description', array('placement' => 'prepend',
'class' => 'error')),
'Form'
));
}
}
Các thủ thuật (nguyên tắc) sáng tạo được dùng trong Zend Framework
Phương pháp nghiên cứu khoa học trong tin học Trang 12
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
Các file đính kèm theo tài liệu này:
- ch1101019_ngohailinh_khoa6_0227.pdf