1 / 112

Group 3 : Lâm Nguyễn Duy 0612062 Lê Hoàng Dũ 0612073 Trần Hoàng Anh 0612010 Huỳnh Đức Liễu 0612209

Group 3 : Lâm Nguyễn Duy 0612062 Lê Hoàng Dũ 0612073 Trần Hoàng Anh 0612010 Huỳnh Đức Liễu 0612209. Nội Dung Trình Bày. Giới Thiệu What, Why, How? Cấu trúc MVC trong Zend Framework(ZF) Zend Components Giới thiệu và demo các thư viện hỗ trợ trong ZF. Framework là gì?.

thyra
Télécharger la présentation

Group 3 : Lâm Nguyễn Duy 0612062 Lê Hoàng Dũ 0612073 Trần Hoàng Anh 0612010 Huỳnh Đức Liễu 0612209

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Group 3 : LâmNguyễnDuy 0612062 LêHoàngDũ 0612073 TrầnHoàngAnh 0612010 HuỳnhĐứcLiễu 0612209

  2. Nội Dung Trình Bày • Giới Thiệu • What, Why, How? • Cấu trúc MVC trong Zend Framework(ZF) • Zend Components • Giới thiệu và demo các thư viện hỗ trợ trong ZF

  3. Framework là gì? • Framework: Là một cấu trúc mới của ngôn ngữ, giúp pháttriể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

  4. ZF là cái gì? • Đây là một Open Source, giúp ta xây dựng Web với PHP theo kiến trúc MVC. • ZF là một framework. • Nổi tiếng nhất cho PHP • Nó hỗ trợ rất nhiều cho developer. • Hướng đối tượng. • Các thành phần ít lệ thuộc với nhau.

  5. Hình thành và phát triển • 2005 : Dự án được hình thành • Những nhà sáng lập : Zend (of course), IBM, OmniTI. • Bất đầu với các component nhưng nó đã có sự kết hợp với nhau. • Hỗ trợ PHP5, hướng đối tượng. • 7-2007 : version 1.0 ra đời. • 28-04-2010 : version 1.10.4

  6. Nó làm được những gì? • Mạnh mẽ, chất lượng và hỗ trợ hướng đối tượng cho PHP 5. • Zend Framework có hỗ trợ làm việc với Tempalate engine kết hợp cùng tầng View • MVC + PHP  ZF • Thư viện hàm : cung cấp 4/5 những gì chúng ta cần. • Hỗ trợ Web 2.0. • Coding standard • http://framework.zend.com/manual/en/coding-standard.html

  7. Tại sao sử dụng ? • Dễ học và tài liệu về ZF rất phong phú và sẵn có • http://www.zftutorials.com/ • http://framework.zend.com/ • Document của ZF • Đây là framework mã nguồn mở nhầm phát triển ngôn ngữ PHP + ZF =

  8. Mục đích khi ZF ra đời • Mang đến sự đơn giản nhất có thể: • Đơn giản để sử sử dụng • Đơn gian để vững vàng và ít lổi nhất • Đơn giản để dễ dàng năng cấp • Đưa ra những xu hướng • Web services • Ajax • Search

  9. Cộng đồng • Những đối tác kỹ thuật : • Adobe, Google, IBM, Microsoft, nirvanix, StrikeIron • Khi gập khó khăn có thể tìm kiếm sự giúp đỡ tại : zfforum.com,zend.vn/forum, zftalk IRC • 35% Website trên thới giới sử dụng PHP • 30.000 công ty trên toàn thới giới đã triển khai

  10. Sử dụng ZF như thế nào ? • Download gói phù hợp với bạn tại • http://framework.zend.com/download/latest • Xem hướng dẫn tại thư mục documentation • Và xem những demo trong thư mục demo • Ta cần config lại 1 số path như trong hướng dẫn tại • http://framework.zend.com/manual/en/learning.quickstart.intro.html • IDE hỗ trợ sẵn ZF là Zend Studio • http://www.zend.com/en/products/studio/downloads

  11. Model – View – Controller • Model • Chứa những class với mục đích giao tiếp CSDL • View • Nơi thể hiện thông tin cho người dùng • Controller • Kết nối giữa Model và View • Xử lý các sự kiện khi người dùng tương tác.

  12. Lược đồ hoạt động của MVC

  13. MVC trong ZF

  14. Front Controller • Front Controller nằm ở phần đầu tiên của MVC. • Tất cả các PHP request đều đi qua index.php (bootstrap file). • Front Controller giúp cho bạn: • Khởi tạo request/response cho các đối tượng. • Có thể cài đặt các chức năng và xử lý thông thường. • “Include” paths. • Các cấu hình. • Location cho các thành phần MVC(nếu cần thiết). • Đăng nhập, Database,chứng thực/phân quyền. • Convert URL thành 1 “request” với từng phần riêng biệt. • Router các request đến action controller phù hợp.

  15. Front Controller

  16. Routes URL request • Ví dụ: • Request bình thường: • http://example.com/index.php?controller=news&action=list &id=1 • Request trong ZF : • http://example.com/news/list /1

  17. Param/value chuyển đến action Controller maps chỉ đến tên lớp Action maps chỉ đến tên phương thức Routes URL request • Quy ước: • http://example.com/controller/action/param1/value1... Controller1action1()action2() http request FrontController Bootstrap:index.php Controller2action1()action2()

  18. FC cần 2 file trong public folder Nằm trong thư mục gốc (public folder): • .htaccess chuyển hướng request đếnindex.php • index.php khởi tạoFront Controller

  19. MVC trong ZF

  20. Action Controller • Controller chứa các lớp xử lý những request URL http://example.com/controller/action Mặc định: IndexController • Tổ chức và nhóm các chức năng • Mỗi class (extending Zend_Controller_Action) đại diện cho 1 controller • Action trong những Controller http://example.com/controller/action Mặc định: indexAction() • Đặt tên hàm actionAction() • Ex: nếu hành động là “edit” thì tên ham là editAction()

  21. Các chức năng Controller khác • Các hàm giúp tổ chức và điều khiển luồn • init() – gọi bởi constructor • preDispatch() – gọi trước khi thực hiện hàm • postDispatch() – gọi sau khi thực hiện hàm. • Các hàm thường dùng: • forward(), redirect(), getParam(), getRequest(), getResponse(),render()

  22. Ví dụ về Controller Action

  23. MVC trong ZF

  24. View • Scripts (templates) • PHP sử dụng script templates để thể hiện data • Chỉ thể hiện chứ không xử lý ở đây. • Tên mặc định: “myaction.phtml” • Helpers • Là những lớp và phương thức được cung cấp để tái sử dụng các hàm phục vụ View. Ví dụ: <p>He gave me <?php echo $this->formatCurrency(10);?>.</p>  He gave me £10.00. • Assigning data to the view

  25. View • Assigning data to the view • Zend_View có hàm assign() để gán dữ liệu. • Assign biến đơn giản: • VD: $view->assign('title', 'Hello World!'); • Assign mảng: music = array('title'=>'Abbey Road', 'artist'=>'The Beatles'); music = array('title'=>'The Wall', 'artist'=>'Pink Floyd'); view->assign($music);

  26. MVC trong ZF

  27. Models • Models chứa các business logic, làm nhiệm vụ giao tiếp với CSDL. • Nó có thể extended từ: • Zend_Db_Table – For database abstraction • Zend_Feed_Element – For RSS abstraction • Zend_Service - for accessing both public and private

  28. Models Example <?php // model: Busyflag.php class Busyflag { // The table name protected $name = ‘SYSFLAGS'; // old-fashioned “System 36” table // isSiteUp: return true if up, false if down public function isSiteUp() { // one record, with key "B" $sql = "select BZYFLG from {$this->name} where RECID = 'B'"; $row = SBSDbhelp::getOneRow($sql); // true if Y, false otherwise. return $row['BZYFLG'] == 'Y'; } //(public function isSiteUp()) } //(class Busyflag) // usage (from a preDispatch front controller plugin) $busyFlag = new Busyflag(); if (!$busyFlag->isSiteUp()) { // Take user to "site down" page. $request->setControllerName("Down"); $request->setActionName("index"); } //(if (!$busyFlag->isSiteUp()))

  29. Tools • Zend Studio cho Eclipse sẽ giúp bạn xây dựng Web theo MVC. • Bản free trial: http://www.zend.com/en/products/studio/

  30. Components trong ZF

  31. Components Ghi chú: Zend/Db.php = Zend_Db Zend/Db/Table.php = Zend_Db_Table

  32. Component categories • MVC • Formatting • Ajax • Identity, Authentication, and Authorization • Forms • Datastore • Web Services • Enterprise • Debugging, Logging, and Testing • I18n and L10n • Mail • Infrastructure

  33. MVC Component(1) • Zend_Controller • Zend_Layout • Zend_View

  34. MVC Component(2)

  35. Formatting • Zend_Text • Zend_Paginator

  36. Zend_Text_Figlet • LàmộtthànhphầnchophéptạorachuỗiFiglet. • ChuỗiFigletlàchuỗinghệthuậtđượctrìnhbàytheodạng:

  37. Zend_Text_Figlet • Cácphươngthứchỗtrợ: • setConfig($config): ThiếtlậpcáccấuhìnhchochuỗiFiglet • setFont($font): Thiếtlập font chochuỗiFiglet • setOutputWidth($outputWidth): Thiếtlậpđộrộngcủachuỗi • setHandleParagraphs($handleParagraphs): Trảvềgiátrị Boolean chobiếtcóxuốngdòng hay không

  38. Zend_Text_Figlet • Cácphươngthứchỗtrợ: • setRightToLeft($rightToLeft): Địnhnghĩacáchtrìnhbàychuỗi: • DIRECTION_LEFT_TO_RIGHT • DIRECTION_RIGHT_TO_LEFT • setJustification($justification): Canhlề: • 0: Canhtrái • 1: Canhgiữa • 2: Canhphải

  39. Zend_Text_Figlet • Vídụxuấtrachuỗi “PHP” đơngiản

  40. Zend_Text_Figlet

  41. Zend_Text_Table • Zend_Text_Tablelàmộtthànhphầnđểtạora table • Zend_Text_Tablemặcđịnh sử dụng bộ mã UTF-8chocả input và output • ĐốitượngZend_Text_Tablechứanhữngdòngvàcột, đượcbiểudiệnthông qua: • Zend_Text_Table_Row • Zend_Text_Table_Column.

  42. Zend_Text_Table • Cácphươngthứchỗtrợ: • setDefaultColumnAlign($columnNum, $align): Thiếtlậpcáchcanhlềchocộtmặcđịnh • setInputCharset($charset): Thiếtlậpmã input • getInputCharset(): Lấymã input • setOutputCharset($charset): Thiếtlậpmã output • getOutputCharset(): Lấymã output • appendRow($row): Thêmmột dòng

  43. Zend_Text_Table • Cácphươngthứchỗtrợ: • setConfig(Zend_Config $config): Thiếtlậpcấuhình ban đầu • setColumnWidths(array $columnWidths): Thiếtlậpđộrộngcột

  44. Zend_Text_Table • Vídụtạota table đơngiản:

  45. Zend_Text_Table

  46. Additional categories • Zend_Search_Lucene • Zend_Pdf

  47. Zend_Search_Lucene • Một text search engine được viết trên PHP 5. Nó chứa các index trên file và không yêu cầu một database server, nên có thể search trên bất kì PHP-driven website nào. • Zend_Search_Lucene hỗ trợ những tính năng sau: • Ranked searching - hiển thị kết quả phù hợp nhất lên trên • Hỗ trợ nhiều kiểu truy vấn: phrase query, boolean query, wildcard query, proximity query, range query, ... • Search theo field cụ thể (ví dụ. title, author, contents)

  48. Zend_Pdf • Zend_Pdf là một công cụ giúp làm việc với file pdf.Nó có thể load, create, modify và save file pdf.Zend_Pdf hỗ trợ: • Tạo mới hoặc load 1 file đã có. • Thao tác các trang trong một file. Thay đổi thứ tự trang, thêm trang mới, loại bỏ các trang từ một file. • Giúp vẽ hình đơn giản(các đường thẳng, hình chữ nhật, hình đa giác, hình tròn, bầu dục và các lĩnh vực). • Hỗ trợ nhiều font size. • Xoay. • Vẽ ảnh.

  49. Creating or loading • Creating : • $pdf = new Zend_Pdf(); • Loading : • $file = '/path/to/example.pdf'; • $pdf = Zend_Pdf::load($file);

  50. Creating pages Pdf • Tạo biến $page : • $page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4); • $page = new Zend_Pdf_Page($width, $height); • Tạo page trong pdf: • $pdf->pages[] = $page;

More Related