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

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ọ.

pdf13 trang | Chia sẻ: lvbuiluyen | Lượt xem: 2563 | Lượt tải: 2download
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
Luận văn liên quan