intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Mô hình MVC trong Zend Framework

Chia sẻ: Nguyen Hoai Nam | Ngày: | Loại File: DOC | Số trang:50

114
lượt xem
25
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ở mọi thời đại ,trong mọi xã hội mỗi công việc đều có những đặc điểm riêng mang tính đặc thù (nghiệp vụ) của nó . bởi vậy mà khi làm bất kỳ một việc gì ngưới ta đều xem xét xem công việc đó thuộc phạm trù nào của xã hội , những thông tin những vấn đề gì ảnh hưởng, điều tiết đến nó.do vậy mà người ta chia ra thành hai lĩnh vực rõ ràng trong đời sống con người : kinh tế ,xã hội. Mỗi một lĩnh vực gồm nhiều lĩnh vực mức dưới tổng hợp lên ví dụ kinh tế...

Chủ đề:
Lưu

Nội dung Text: Mô hình MVC trong Zend Framework

  1. TRƯỜNG ĐAI HOC NHA TRANG ̣ ̣ KHOA CÔNG NGHỆ THÔNG TIN ĐỒ AN THỰC TÂP CHUYÊN NGHANH ́ ̣ ̀ TIM HIÊU ZEND FRAMEWORK 2.0 ,XÂY DỰNG WEBSITE THƯƠNG MAI ̀ ̀ ̣ ĐIÊN TỬ ̣ Giao viên hướng dân ́ ̃ Ngô Văn Công
  2. Giao viên hướng dân:Ngô Văn Công ́ ̃ ̣ ̣ MUC LUC ̣ ̣ Muc luc......................................................................................................................................2 Lời mở đầu..............................................................................................................................5 CHƯƠNG 1.TÔNG QUAN...................................................................................................7 ̉ ̣ ́ ̀ 1.1.Đăt vân đê.......................................................................................................................7 1.2.Phương phap giai quyêt..............................................................................................7 ́ ̉ ́ 1.3 Pham vi cua đề tai.........................................................................................................8 ̣ ̉ ̀ 1.4.Phương phap nghiên cứu............................................................................................8 ́ CHƯƠNG 2:CƠ SỞ LÝ THUYÊT......................................................................................9 ́ 2.1.Giới thiêu Zend Framework ......................................................................................9 ̣ 2.1.1.Framework là gì.........................................................................................................9 2.1.2.Giới thiệu PHP framework.....................................................................................9 2.1.3.Tại sao chúng ta nên sử dụng PHP framework?.................................................9 2.1.4.Những điểm cần lưu ý khi sử dụng 1 PHP framework ?.................................10 2.1.5.Các loại PHP framework phổ biến.......................................................................11 2.2.Giới thiệu mô hình MCV ...........................................................................................11 2.2.1.So sánh mô hình MVC với mô hình 3 lớp.............................................................13 2.3.Zend Framework..........................................................................................................14 2.3.1.Giới thiệu Zend framework ...................................................................................14 2.3.1.1.Zend Framework là gì?..........................................................................................14 2.3.1.2. Zend Framework làm được những gì?.............................................................14 2.3.1.3. Ưu khuyết điểm của Zend Framework:..........................................................14 2.3.1.4. Quá trình phát triển của Zend Framework:....................................................15 2.3.2. Một số lớp phổ biến trong ZF.............................................................................17 2.3.3.Mô hình MVC trong Zend Framework .................................................................18 2.3.4.Luồng xử lý công việc trong Zend Framework .................................................20 2.3.5.Cách làm việc và xây dựng lớp trên Zend Framework? ...................................21 2 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  3. Giao viên hướng dân:Ngô Văn Công ́ ̃ 2.3.6.Cấu trúc thư mục của một project trong ZF (một module):...........................22 2.3.7Cai đăt ứng dung đâu tiên với Zend Framework..................................................22 ̀ ̣ ̣ ̀ CHƯƠNG 3: CHƯƠNG 3.XÂY DỰNG ỨNG DUNG WEBSITE BOOK SHOP BAN ̣ ́ ̀ ̣ HANG QUA MANG................................................................................................................29 3.1.Đăc tả hệ thông..............................................................................................................29 ̣ ́ 3.1.1 Giới thiệu...................................................................................................................29 3.1.2 Mô tả hệ thống.........................................................................................................29 3.1.2.1. Giới thiệu sản phẩm lên website.......................................................................29 3.1.2.2. Khách hàng.............................................................................................................29 3.2.Bản đặc tả yêu cầu hệ thống bán sách trực tuyến..............................................30 3.2.1.Mục tiêu......................................................................................................................30 3.2.1.2. Đối tượng...............................................................................................................30 3.2.1.3.Bảng mô tả chức năng của hệ thống................................................................31 3.2.1.4 Quy trình đặt hàng.................................................................................................32 3.3 Phân tích hệ thống.......................................................................................................32 3.3.1 Sơ đồ Use Case..........................................................................................................32 3.4.Mô hình quan niệm dữ liệu.......................................................................................35 3.5.Sơ đồ chức năng...........................................................................................................35 3.6. Cấu hình ứng dụng....................................................................................................36 3.7.1.Môt số phương thức cơ ban trong Zend Framework ........................................36 ̣ ̉ 3.7.1.1.Khởi tao kêt nôi database......................................................................................36 ̣ ́ ́ ́ ̀ 3.7.1.2.Câu hinh template...................................................................................................38 3.71.3.Hiên thị danh muc san phâm theo mô hinh đa câp............................................39 ̉ ̣ ̉ ̉ ̀ ́ ̀ ̉ 3.8.Hinh anh Website..........................................................................................................42 ́ ̣ Kêt luân.....................................................................................................................................48 Tai lieu tham khao...................................................................................................................49 Nhân xet cua Giao Viên hướng dân ̣ ́ ̉ ́ ̃ .................................................................................................................................................... 3 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  4. Giao viên hướng dân:Ngô Văn Công ́ ̃ .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... 4 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  5. Giao viên hướng dân:Ngô Văn Công ́ ̃ ̣ ́ ̉ ́ ̉ ̣ Nhân xet cua Giao Viên phan biên .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... 5 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  6. Giao viên hướng dân:Ngô Văn Công ́ ̃ Lời mở đâu ̀ Ở mọi thời đại ,trong mọi xã hội mỗi công việc đều có những đặc điểm riêng mang tính đặc thù (nghiệp vụ) của nó . bởi vậy mà khi làm bất kỳ một việc gì ngưới ta đều xem xét xem công việc đó thuộc phạm trù nào của xã hội , những thông tin những vấn đề gì ảnh hưởng, điều tiết đến nó.do vậy mà người ta chia ra thành hai lĩnh vực rõ ràng trong đời sống con người : kinh tế ,xã hội. Mỗi một lĩnh vực gồm nhiều lĩnh vực mức dưới tổng hợp lên ví dụ kinh tế có: buôn bán , thương mại ... đã từ lâu người ta tổ chức nghiên cứu ,đào tạo nguồn nhân lực về từng lĩnh vực khác nhau dựa trên khả năng bẩm sinh sẵn có và sở thích để có điều kiện đi sâu nghiên cứu cũng như thực hiện công việc một cách có hiệu quả , sâu sắc và cũng để tiếp cận với nhiều vấn đề mới trong các lĩnh vực khác nhau .Khả năng chuyên môn nghiệp vụ là một đòi hỏi rất cần thiết cho những người tham gia vào những công việc có liên quan mà không phải cứ người nào khi được đào tạo cũng đủ, nắm vững yêu cầu của công việc chuyên môn. Thực tế cho thấy con người luôn luôn tìm cách giảm thiểu những khó khăn trở ngại làm cho công việc thực hiện được dễ dàng và đòi hỏi chuyên môn nghiệp vụ không cao. Trước đây khi khoa học công nghệ chưa phát triển người ta cũng được nghiên cứu, tìm cách tiếp cận rễ ràng hơn với công việc .Ngày nay khi khoa học nông nghệ phát triển tiên tiến chúng ta càng có điều kiện thuận lợi hơn trong xử lý công việc. Ta xét riêng việc xử lý bán hàng hàng ngày của một công ty nào đó. khi tin học chưa ra đời thì việc bán hàng và những việc liên quan khác đều thực hiện một cách rất khó khăn vất vả đòi hỏi vững chuyên môn nghiệp vụ ,tốn nhân lực, không gian, chi phí cho việc thực hiện. ngày nay tin học phát triển nhu cầu tin học hóa những công việc chuyên môn lặp đi lặp lại là yêu cầu cấp thiết. tin học hóa sẽ mang lại lợi ích to lớn về mọi mặt : nhân công, chi phí tài chính và thậm chí cả trình độ chuyên môn của người thực hiện nó (không đòi hỏi có chuyên môn nghiệp vụ cao) bởi vì nó chỉ là những thao tác trên máy đơn giản. tin học hóa bắt buộc phải có trong thời đại hiện nay đối với từng công ty, những cửa hàng lớn hay thậm chí là cả những cửa hàng vừa và nhỏ.tuy nhiên đầu tư để xây dựng hệ thống phục vụ công việc tính trong khoảng thời gian ngắn là tốn kém nhưng xét về lâu dài thì lợi ích mang lại là rất to lớn ảnh hưởng cả đến vận mệnh của một công ty. xét về phía người xây dựng hệ thống thì đây là vấn đề không thể giải quyết một cách chọn vẹn bằng một chương trình cho mọi hình thức, nó phụ thuộc vào chuyên môn nghiệp vụ, yêu cầu thực tế đặt ra, và vì vậy rất khó nếu không muốn nói là không thể thực hiện được một cách tổng quát vấn đề này. tùy thuộc vào những yêu cầu đặt ra đối với từng hoàn cảnh ta có cách giải quyết khác nhau tạm thời trong khỏang thời gian nhất định đáp ứng được yêu cầu đề ra của hệ thống. Trong khuôn khổ bai thực tâp chuyên nghanh.Dựa trên mã nguồn trang web Shopping ̀ ̣ ̀ bằng Zend Framework trong khóa học Zend Framework online được viêt băng Zend ́ ̀ framework 1.x em đã phat triên thanh môt dự an cua riêng minh viêt băng Zend framework ́ ̉ ̀ ̣ ́ ̉ ̀ ́ ̀ 2.0 Em xin cam ơn cac giao viên trường Đai hoc Nha Trang đã giang day những kiên thức đai ̉ ́ ́ ̣ ̣ ̉ ̣ ́ ̣ cương cung như chuyên nghanh.Em xin cam ơn giao viên hướng dân Ngô Văn Công đã giup ̃ ̀ ̉ ́ ̃ ́ em hoan thanh đề tai nay ̀ ̀ ̀ ̀ 6 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  7. Giao viên hướng dân:Ngô Văn Công ́ ̃ CHƯƠNG 1.TÔNG QUAN ̉ 1.1.Đăt vân đề ̣ ́ Kể từ cuối thập niên 80 đầu thập niên 90 công nghệ thông tin phát triển một cách nhanh chóng về phương diện kỹ thuật. điều đó là động lực phát triển các ứng dụng về mặt kinh tế , xã hội , văn hóa và quan trọng hơn là nó có ảnh hưởng lớn về cả mặt chính trị , ổn định an ninh chính trị trên toàn thế giới. sự phát triển mạnh mẽ của công nghệ thông tin có ảnh hưởng rất lớn đến sự phát triển của nền kinh tế thế giới nó thâm nhập và có mặt ở mọi mặt của nền kinh tế thế giới. Đặc biệt là việc buôn bán , trao đôi trên mạng. ̉ Xét một khía cạnh nhỏ trong nền thương mại đó là công việc bán và phân phối sản phẩm của một công ty hay một cửa hàng có tổ chức quy mô ta thấy ngay được vai trò quan trọng của công nghệ thông tin. nếu như công việc phân phối sản phẩm (bán hàng) của công ty được thực hiện theo phương pháp thủ công có nghĩa là mọi công việc đều được thực hiện bởi con người và trên giấy tờ sổ sách dẫn đến việc tốn kém về mọi mặt : nhân lực, tài chính, trình độ , diện tích, đòi hỏi nhân viên bán hàng phải có trình độ nghiệp vụ điều đó là rất khó khăn. nhưng quan trọng hơn là nó không mang lại hiệu quả trong kinh doanh thậm chí còn xảy ra sự nhầm lẫn trong công việc gây thất thoát trong công ty . Với sự phát triển và ứng dụng mạnh mẽ của tin học thì tin học hóa các quy trình nghiệp vụ nếu có thể mang tính cấp thiết . Quy trình bán hàng của một công ty thuộc hệ thống quản lý kinh doanh của công ty nó giữ một vai trò đặc biệt quan trọng trong hệ thống. việc bán hàng phải được thực hiện một cách nhanh chóng chính xác và phải tổng hợp thông tin bán hàng cập nhật cho toàn bộ hệ thống giúp cho các nghiệp vụ khác trong công việc quản lý kinh doanh của công ty đáp ứng thông tin một cách chính xác kịp thời. Xây dựng hệ thống phải đáp ứng được những yêu cầu của người sử dụng thích hợp với hệ thống quản lý kinh doanh của công ty. hệ thống phải đáp ứng được những yêu cầu chung: xử lý được lượng thông tin lớn một cách chính xác nhanh chóng đáp ứng được yêu cầu , lưu trữ , bảo vệ dữ liệu khoa học thuận lợi và an toàn giúp cho công việc quản lý được đơn giản đảm bảo kết quả cao, thay thế được cho hệ thống đang dùng (có nghĩa là nó đáp ứng được tốt hơn về mặt xử lý dữ liệu , xử lý các yêu cầu tốt hơn , đa dạng hơn , nhanh hơn ...). điều đó là yêu cầu tối thiểu đối với hệ thống đang xây dựng. Yêu cầu đặt ra trong công tác quản lý bán hàng đi đến việc xây dựng hệ thống trợ giúp bán hàng cho công ty sao cho phải đáp ứng được yêu cầu nghiệp vụ , giao diện thân thiện với người sử dụng . mục đích xây dựng hệ thống là làm giảm bớt mức tối đa những khó khăn trong công tác quản lý bán hàng đáp ứng được quy trình xử lý thông tin của hệ thống chính. 1.2.Phương phap giai quyêt ́ ̉ ́ Để xây dựng được hệ thống trợ giúp bán hàng qua mạng với độ chính xác và tính thực tế cao thì yêu cầu cần phải khảo sát thông tin của hệ thống phải chi tiết và chính xác dẫn 7 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  8. Giao viên hướng dân:Ngô Văn Công ́ ̃ đến việc phân tích dữ liệu đầu vào , ra được chính xác . Mô phỏng quy trình bán hàng , lưu trữ các thông tin liên quan , thu thập các mẫu biểu quan trọng .Trên cơ sở những thông tin được thu thập được tiến hành xây dựng sơ đồ chức năng nghiệp vụ, sơ đồ dòng dữ liệu mức đỉnh, mức dưới đỉnh , xây dựng mô hình thực thể quan hệ và thiết kế một số modul quan trọng (lưu trữ ,tìm kiếm , xử lý thông tin ). Thiết kế một số giao diện quan trọng của hệ thống sao cho vừa mang tính nghiệp vụ vừa phải dễ sử dụng. Lập dự kiến xây dựng cơ sở dữ liệu cho hệ thống phân tích đánh giá được phạm vi lưu trữ, độ an toàn của dữ liệu khi vận hành, điều này ảnh hưởng đến toàn bộ hệ thống kinh doanh của công ty. Kết quả cuối cùng hệ thống phải có tính ưu việt: khả năng xử lý được lượng thông tin lớn , chính xác ,lưu trữ khoa học thuận tiện và an toàn hơn hẳn hệ thống cũ . hệ thống tạo ra phải hỗ trợ tới mức tối đa trong công việc quản lý bán hàng của công ty. 1.3 Pham vi cua đề tai ̣ ̉ ̀ Về phân tich thiêt kế hệ thông:Kêt quả thu được cua đề tai là mô hinh phân tich hệ ́ ́ ́ ́ ̉ ̀ ̀ ́ thông,cơ sở dữ liêu,… có khả năng xây dựng phân cơ sở dữ liêu cho ứng dung website Ban ́ ̣ ̀ ̣ ̣ ́ ̀ hang qua mang. ̣ Về măt lâp trinh :Trên cơ sở nghiên cứu và ap dung Zend Framework 2.0,hoan thanh cac ̣ ̣ ̀ ́ ̣ ̀ ̀ ́ nôi dung chủ yêu sau : ̣ ́ +Hiêu và vân dung thanh công cac lớp cở ban cua zend framework để xây dựng cac ̉ ̣ ̣ ̀ ́ ̉ ̉ ́ module chủ yêu cho hệ thông: Module san phâm, module hệ thông trong dự an (dung để câu ́ ́ ̉ ̉ ́ ́ ̀ ́ hinh cac phân măc đinh như layout,router,model,…). ̀ ́ ̀ ̣ ̣ +Đam bao hệ thông vân hanh theo đung câu truc cua môt ứng dung Zend ̉ ̉ ́ ̣ ̀ ́ ́ ́ ̉ ̣ ̣ ̀ Framework(Theo mô hinh MCV). 1.4.Phương phap nghiên cứu ́ Nghiên cứu Zend Framework thông qua công đông Zend Viêt Nam://www.zend.vn/forum. ̣ ̀ ̣ Nghiên cứu dưới sự chỉ bao cua giao viên hướng dân thực tâp chuyên nghanh. ̉ ̉ ́ ̃ ̣ ̀ 8 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  9. Giao viên hướng dân:Ngô Văn Công ́ ̃ CHƯƠNG 2:CƠ SỞ LÝ THUYÊT ́ 2.1.Giới thiêu Zend Framework ̣ 2.1.1.Framework là gì Framework là một thư viện các lớp đã được xây dựng hoàn chỉnh, là một “bộ khung ” để phát triển các phần mềm ứng dụng. Có thể ví Framework như một tập các “vật liệu” ở từng lĩnh vực cho người lập trình viên, thay vì họ phải mất thời gian để tự thiết kế trước khi dùng. Do vậy, người lập trình viên chỉ việc tìm hiểu và khai thác các vật liệu này rồi tiến hành gắn kết (tức lập trình) để tạo ra sản phẩm. 2.1.2.Giới thiệu PHP framework Như đã biết ,PHP là một ngôn ngữ script rất phổ biến hiện nay bởi lý do:linh hoạt,dễ sử dung,dễ học ,..v…v .Nhưng đôi khi việc viết mã PHP ,hay bất kỳ ngôn ngữ lập trình nào khác,có thể trở nên đơn điệu và lủng củng .Đó là lúc PHP framework có thể giúp bạn. PHP framework làm cho sự phát triển của những ứng dụng web viết bằng ngôn ngữ PHP trở nên trôi chảy hơn, bằng cách cung cấp một cấu trúc cơ bản để xây dựng những ứng dụng đó,giúp bạn tiết kiệm được thời gian ,tăng sự ổn định cho ứng dụng và giảm thiểu số lần viết lại mã cho lập trình viên. Ngoài ra PHP framework còn giúp những người mới bắt đầu có thể xây dựng các ứng dụng ổn định nhờ việc tương tác chính xác giữa các database ,mã (PHP) và giao diện (HTML) một cách riêng biệt.Điều này cho phép bạn dành nhiều thời gian để tạo ra các ứng dụng web ,hơn là phí thời gian để viết các đoạn mã lặp lại trong một project. 2.1.3.Tại sao chúng ta nên sử dụng PHP framework? Có rất nhiều loại PHP framework sẵn có hiện nay cho bạn lựa chọn, thậm chí bạn có thể tự tạo ra 1 PHP framework cho riêng mình, tuy nhiên, điều này chỉ được khuyến khích dành cho các chuyên gia PHP (PHP expert) , những người đã có kiến thức và hiểu biết vững vàng về framework. Khi bạn cần tìm một loại PHP framework phù hợp nhất với nhu cầu của mình, đừng quên lưu ý về độ phổ biến của nó, ngoài ra ứng dụng web của bạn được phát triển bởi bao nhiêu người cũng là 1 điều nên lưu ý. Một PHP framework càng được phổ biến, tức là nó càng được nhiều người sử dụng và phát triển. Mặt khác, nếu bạn muốn xây dựng ứng dụng cho website của riêng mình, tốt nhất bạn nên chọn 1 PHP framework phù hợp và dễ sử dụng nhất đối với nhu cầu của bạn – không quan trọng nó có được nhiều người sử dụng hay không. Các yếu tố bạn nên lưu ý trước khi muốn tìm kiếm 1 PHP framework để sử dụng bao gồm như sau: dễ sử dụng, phát triển nhanh và hiệu quả, phổ biến giữa các developer, có các tính năng mạnh mẽ, có diễn đàn hỗ trợ. Hầu hết các framework đều có các điểm yếu và thế mạnh khác nhau, ví dụ Zend Framework đã được phổ biến từ version 1.3 và có đầy đủ các tính năng mạnh mẽ, cộng thêm 1 cộng đồng phát triển hỗ trợ extension rộng lớn. Ngược lại, CakePHP lại là 1 loại PHP framework khác, mới ra đời sau này, nhưng lại ít có cộng 9 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  10. Giao viên hướng dân:Ngô Văn Công ́ ̃ đồng phát triển hỗ trợ hơn Zend, nhưng nó cũng được nhiều người lựa chọn vì tính thân thiện với người dùng và dễ sử dụng. Như bạn có thể thấy, mỗi loại PHP framework đều có lợi thế riêng của nó, thế nên tốt nhất là bạn nên tìm hiểu kỹ và xài thử để có chọn lựa đúng đắn cho nhu cầu của mình. Ngoài ra bạn có thể nhờ những người đã có kinh nghiệm sử dụng tư vấn thêm cho mình, họ sẽ giúp bạn phân tích các tính năng cần thiết cho nhu cầu của mình và nên sử dụng loại nào. 2.1.4.Những điểm cần lưu ý khi sử dụng 1 PHP framework ? Lỗi là điều không thể tránh khỏi trong việc lập trình, nhưng PHP framework sẽ giúp bạn hạn chế rất nhiều sai sót bằng cách cung cấp các thư viện mã lệnh chuẩn. Viết lại các đoạn mã lặp lại nhiều lần không cần thiết sẽ dễ dẫn đến việc phát sinh lỗi, và PHP framework sẽ loại bỏ vấn đề này giúp bạn. Tuy nhiên, bạn vẫn phải có những chú ý khi sử dụng bất kỳ PHP framework nào. Ví dụ, nếu bạn không phải là 1 chuyên gia lập trình PHP, bạn nên sử dụng 1 loại framework phổ biến, có 1 cộng đồng hộ trợ rộng lớn. Vẫn có rất nhiều loại framework có ít hoặc không có cộng đồng hỗ trợ, và các loại framework này chủ yếu được viết bởi các cá nhân nào đó với kiến thức không chuyên sâu. Một số lỗi phổ biến khác là do bạn không bảo đảm được cấu hình để xuất phiên bản database và web server tương thích với framework. Ví dụ, Seagull PHP Framework đề xuất cấu hình như sau: +PHP: PHP 4.3.0 is the minimum, later versions work fine, as do versions PHP 5.1.1 and above. Avoid anything in the 5.0.x series +MySQL: MySQL 4.0.x, 4.1.x and 5.0.x are all supported. You can also use 3.23.x. Apache: Seagull works fine with 1.3.x and 2.x series of Apache. Nếu bạn không đáp ứng được các yêu cầu này, thì framework sẽ không thể hoạt động 1 cách hiệu quả được. Thậm chí nếu bạn là 1 chuyên gia PHP, bạn cũng nên xem qua các tài liệu hướng dẫn về cấu hình đề xuất của framework trước khi muốn sử dụng nó. Ngoài ra việc xem hướng dẫn cài đặt của 1 framework sẽ giúp bạn tránh được những lỗi không cần thiết và tiết kiệm được thời gian để đi vào phát triển ứng dụng của mình cho những lần sau. 2.1.5.Các loại PHP framework phổ biến Zend Framework có 1 cộng đồng phát triển rộng lớn, và nó tập trung vào các ứng dụng web theo phong cách 2.0. Vì được phổ biến rộng rãi, và có 1 cộng đồng người dùng tích cưc, Zend được gọi là “Công ty PHP”. Zend là 1 trong những framework phổ biến nhất hiện nay. Nó có các tính năng mạnh mẽ, thường được sử dụng cho các công ty lớn, và bạn cần phải có lượng kiến thức khá sâu rộng về PHP để có thể sử dụng được nó. CakePHP là 1 lựa chọn tuyệt với cho những lập trình viên có kiến thức nâng cao về PHP. Nó dựa trên cùng 1 nguyên tắc thiết kế với Ruby on Rails, là 1 framework mạnh về khía cạnh rapid development , giúp lập trình viên đẩy nhanh quá trình phát triển ứng dụng 10 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  11. Giao viên hướng dân:Ngô Văn Công ́ ̃ của họ. Với các hệ thống hỗ trợ, tính đơn giản và mỗi trường mở cao đã giúp cho CakePHP trở thành 1 trong nhữngframework phổ biến nhất hiện nay. Symfony được ra đời nhằm mục đích giúp đỡ nâng cao hơn cho những lập trình viên muốn tạo ra các ứng dụng website doanh nghiệp. Đây là 1 PHP framework mã nguồn mở với đầy đủ các tính năng cần thiết. nhưng nó có vẻ chạy chậm hơn các framework khác. Codelgniter được biết đến như 1 framework dễ hiểu và dễ sử dụng, cho hiệu suất cao. Không giống như Symfony, PHP framework này phục vụ mục đích lý tưởng cho việc xây dưng các ứng dụng chia sẻ , lưu trữ. Nó cung cấp các giải pháp đơn giản, và có một thư viện video hướng dẫn phong phú, diễn đàn hỗ trợ, và cung cấp sẵn 1 hướng dẫn sử dụng cho người mới bắt đầu. PHP framework này rất phù hợp cho 1 người mới làm quen với framework. Seagull cũng là 1 PHP framework tốt phục vụ cho việc xây dưng website và các GUI. Nó là 1 framework cực kỳ dễ sử dụng cho cả những người mới mới làm quen với lập trình PHP đến những chuyên gia trong lập trình PHP. Với những người mới làm quen với lập trình PHP, Seagull cung cấp 1 thư viện các mẫu ứng dụng có thể được tùy chỉnh để phù hợp với nhu cầu của bạn. Đối với các chuyên gia PHP, Seagull cung cấp các tùy chọn máy chủ, bao gồm các phương pháp hay nhất, tiêu chuẩn, và modular codebase – giúp các lập trình viên xây dựng các ứng dụng web một cách nhanh chóng và dễ dàng. Seagull có một cộng đồng phát triển rộng lớn và nhiều tài liệu hướng dẫn hỗ trợ. Tóm lại: PHP framework là 1 giải pháp tuyệt vời cho các lập trình viên phát triển các kỹ năng như: giảm thiểu việc viết lại mã, tăng tốc quá trình phát triển ứng dụng, và chuẩn hóa mã lệnh khi xây dựng các ứng dụng web. Không chỉ giúp các bạn cải thiện tốc độ phát triển ứng dụng, nó còn giúp bạn giảm thiểu các lỗ hổng bảo mật 1 cách triệt để. PHP framework phù hợp cho cả những người mới làm quen hay những bạn đã có kiến thức vững về PHP. Ngày nay, có rất nhiều PHP framework được cung cấp, và vì vậy chắc chắn các bạn có thể tìm ra một framework có các tính năng phù hợp với nhu cầu của mình -- hỗ trợ, tốc độ, quy mô và nhiều hơn nữa. Một số PHP framework phổ biến nhất hiện này bao gồm: Zend Framework, CakePHP, Symfony, Codelgniter, và Seagull. 2.2.Giới thiệu mô hình MCV Ý tưởng chung đằng sau cách thức làm việc của 1 PHP framework được kể đến là Model View Controller (MVC). MVC là 1 mô hình (kiến trúc) trong lập trình, cho phép tách biệt các mã nghiệp vụ (business logic) và giao diện (UI) thành các phần riêng biệt, điều này đồng nghĩa với việc ta có thể chỉnh sửa chúng 1 cách riêng lẻ. Trong cụm từ MVC thì: +Model (M) có thể hiểu là phần xử lý các thao tác về nghiệp vụ(business logic). +View được hiểu là phần xử lý lớp giao diện (presentation layer). +Controller làm nhiệm vụ lọc các request đc gọi từ user, có chức năng như 1 route: điều chỉnh, phân luồng các yêu cầu để gọi đúng Model&View thích hợp. 11 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  12. Giao viên hướng dân:Ngô Văn Công ́ ̃ Về cơ bản,MVC chia nhỏ quá trình xử lý của 1 ứng dụng, vì thế nên bạn có thể làm việc trên từng thành phần riêng lẻ, trong khi những thành phần khác sẽ không bị ảnh hưởng tới. Thực chất, điều này giúp đỡ bạn lập trình PHP nhanh hơn và ít phức tạp hơn. Mô hình MVC đơn giản Sơ đồ 1 chuỗi MVC đơn giản 12 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  13. Giao viên hướng dân:Ngô Văn Công ́ ̃ Sau cùng là 1 cách phức tạp hơn để hiểu về mô hình MVC 2.2.1.So sánh mô hình MVC với mô hình 3 lớp Điểm giống nhau: +Cả hai đều là mô hình kiến trúc áp dụng trong lập trình được tách thành 3 thành phần. +Tách biệt sự phụ thuộc giữa ngôn ngữ lập trình, môi trường phát triển, xử lý logic. +Các thành phần ở mỗi mô hình có nhiều điểm tương đồng như Presentation Layer và View... Điểm khác biệt: +Khác biệt rõ nhất là cách xử lý yêu cầu (workflow) của 2 mô hình.Ở MVC, thành phần Model giữ chức năng của cả lớp Business và Data Access trong mô hình 3 lớp. 13 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  14. Giao viên hướng dân:Ngô Văn Công ́ ̃ +Mô hinh 3 lớp thường được sử dụng trong lập trình ứng dụng, trong khi đó MVC được ̀ ưu chuộng nhiều trong lập trình website vì tính linh hoạt và không bắt buộc các DTO như 3 lớp 2.3.Zend Framework 2.3.1.Giới thiệu Zend framework 2.3.1.1.Zend Framework là gì? 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 2.3.1.2.Zend Framework làm được những gì? + Tạo ứng dụng web theo mô hình chuẩn MVC . +Url tiêu chuẩn, ngắn gọn . +Hỗ trợ phân quyền tới từng Action . +Có các thành phần thư viên hỗ trợ API của các nhà cung cấp như Google, Yahoo, Flick . +Quản lý code dễ dàng, liệt kê và lấy các truy vấn history . +Dễ dàng phát triển thêm các ứng dụng nhúng, sử dụng Plugins. 2.3.1.3.Ưu khuyết điểm của Zend Framework: ZF là một PHP framework ra đời khá trễ, tiếp thu những tinh hoa và khắc phục những sai lầm mà các framework trước mắc phải. Ưu điểm: +ZF được viết theo kiểu OOP nên nó thừa hưởng các thế mạnh của kiểu viết này. Các lớp của. +ZF được BA (Business Analysis) rất chuẩn và khi cần mở rộng bạn có thể dùng thể dùng tính chất thừa kế của OOP. Nói chung là chúng ta không phải chỉnh sửa core của ZF. Hầu như các version mới của ZF ko có nhiều thay đổi trong core nên ta có thể dễ dàng update. +ZF tích hợp được gần như tất cả các thư viện PHP và các CMS khác để sử dụng. VD: Smarty , Pear , FCKEditer , Drupal .. 14 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  15. Giao viên hướng dân:Ngô Văn Công ́ ̃ +Cách viết của ZF rất thân thiện và đơn giản. Tích hợp những mới nhất của lập trình web như: JSON - Search - Syndication - Web Services... +ZF được sử dụng trong các dự án lớn và có kế hoạch phát triển dài lâu Khuyết điểm: +Mất nhiều thời gian để tìm hiểu về thư viện của ZF +Một số lớp chưa ổn định, có sự thay đổi, gây khó khăn cho người sử dụng khi cập nhật các phiên bản. 2.3.1.4.Quá trình phát triển của Zend Framework: Các phiên bản đã phát hành: +Zend Framework 1.11, Zend Framework 1.10, Zend Framework 1.9, Zend Framework 1.8, Zend Framework 1.7, Zend Framework 1.6, Zend Framework 1.5, Zend Framework 1.0, Zend Framework 0.9, Zend Framework 0.8, Zend Framework 0.6. + Zend Framework 2.0 Chúng ta điểm lại đôi chút về lịch sử của ZF: •2005 trong cuộc hội thảo PHP. Zend đã đưa ra ý tưởng về bộ framework này • Tháng 3 năm 2006: Phiên bản v0.1 mở đầu: Chẳng có gì nhiều từ bản này ngoài vài lib hỗ trợ code và tính toán nhanh • Tháng 7 năm 2007: Phiên bản v 1.0 chính thức ra đời. Thật tuyệt vời khi đã có mô hình chuẩn hóa M-V-C với khá nhiều partern trong đó • Tháng 3 năm 2008: Phiên bản v1.5 Một bước đột phá trong các thành phần hiển thị Form, Layout, Context. Từ đây chúng ta có multi-layout (multi-template) • Tháng 4 năm 2009: Phiên bản v1.8 Đây đã được coi là một phiên bản ổn định nhất từ trước tới nay. Sự ra đời của: Application, Tool, Nav đã giúp chúng ta dễ dàng sử dụng và hạn chế code đầu vào như trước. • Tháng 10 năm 2010: Phiên bản v1.11: Và chúng ta có thể coi đây là phiên bản gần như là cuối cùng của ZF 1.0. • Vào ngày 25-07-2012. ZF team đã cho công bố về Zend Framework 2.0 phiên bản chính thức Chúng ta đã có gì trong ngày hôm nay? •Một bộ core Zend Framework làm việc ổn định với nhiều thành phần , các component, adapter, plugin được thêm vào. Giúp chúng ta có thể thực hiện mọi dự án từ rất nhỏ đến rất lớn. 15 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  16. Giao viên hướng dân:Ngô Văn Công ́ ̃ •Tới giờ ZF trở nên rất phổ biến trong và ngoài giới lập trình PHP •Có cộng đồng hỗ trợ lớn. Vậy đã tốt thế thì còn vấn đề gì tồn động trong ZF 1.x? Theo Rob Allen - Một thành viên của nhóm phát triển ZF và cũng là người viết quyển sách Zend Framework In Action trong cuộc hội thảo ZF 2011 đã đưa ra nhận định: •Khó học đối với bất kỳ một Coder/Developer nào. •Hiệu suất xử lý còn gặp hạn chế. (Lý do? ở dưới) •Quá nhiều các lớp "magic" •Còn nhiều cái không thống nhất trong các thành phần. Cái gì mới trong ZF 2.0? •Có một tài liệu tốt hơn •Gắn kết các hướng dẫn, tutorial lại để giúp người dùng dễ học .Tài liệu tham khảo và hướng dẫn sử dụng chi tiết kèm theo các ví dụ cụ thể. Các địa chỉ API được thống nhất Hỗ trợ các ngôn ngữ khác để mọi người trên toàn cầu có thể đọc bằng bản ngữ. (Bác nào VN pro tiếng anh và có khả năng có thể đăng ký translate tài liệu) Dễ dàng mở rộng •Xóa bỏ Singletons partern. Điều này sẽ giúp việc mở rộng được dễ dàng hơn. •Loại bỏ các hard-coded bị trùng lặp Nâng cấp hiệu suất xử lý •Tăng tốc độ xử lý trên 200% so với ZF1 •Các công cụ giúp deploy cũng như các tùy chọn để dễ dàng xử lý khi chuyển đổi hệ thống từ server này sang server khác Đơn giản hóa •Tập trung vào các thành phần cốt lõi •Code dễ dàng đọc hơn •Có các API phù hợp hơn •Hỗ trợ PHP 5.3 với NameSpace Hiện tại vấn đề Autoload vẫn đang được thảo luận 16 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  17. Giao viên hướng dân:Ngô Văn Công ́ ̃ Lựa chọn 1: Có namespace rõ ràng, Không sử dụng include_path.Với lựa chọn này thì người code vẫn code bình thường và thay vì dùng include_path thì chúng ta dùng namespace. Lựa chọn này giúp chúng ta tăng khoảng 40% hiệu suất xử lý. Lựa chọn 2: Sử dụng 1 lớp - ClassMap nó sẽ là bản đồ mapping. Chỉ dẫn cho hệ thống load các file cần thiết thay vì autoload all như hiện nay Với sự lựa chọn này thì người code khi deploy sẽ phải viết file mapping này. Và thật khó xử lý khi có một hệ thống lớn.uy nhiên lựa chọn này cho phép chúng ta tăng khoảng 150% hiệu suất. Chúng ta sẽ có thêm một thành phần mới đó là Plugin Autoload.Nó sẽ giúp chúng ta mapping các Plugin và load tự động khi nào được gọi. Với việc đó nó sẽ giúp chúng ta tăng thêm hiệu suất khoảng trên 50% Hệ thống xử lý lỗi mới. Mô hình MVC . Controller, dispatcher, hook points. View. Model vẫn chưa có gì thay đổi. Với mô hình MVC mở rộng mới này sẽ giúp chúng ta thoải mái trong việc sử dụng view thông qua các hook points.Và tăng hiệu suất thông qua các dispatcher mới. 2.3.2. Một số lớp phổ biến trong ZF •Zend_Db: Dựa trên đối tuợng PDO (PHP Data Objects), cung cấp cách thức giao ti ếp với database. •Zend_Controller: giúp lấy các request từ phía Client và thực thi nó bằng các Action. •Zend_View: chính là tầng View trong mô hình MVC, giúp chúng ta hiển thị những kết quả trong xử lý Controller và Models ra bên ngoài. •Zend_Auth: cung cấp một API cho việc chứng thực tài khoản khi đăng nhập vào hệ thống. •Zend_Cache: giúp cho các ứng dụng không phải sử dụng CPU hoặc truy xuất vào database quá nhiều. •Zend_Currency: xử lý tất cả các vấn đề liên quan đến tiền tệ Zend_Date: xử lý tất cả các vấn đề liên quan thời gian. •Zend_Feed: xử lý với Rss và Atom feeds . 17 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  18. Giao viên hướng dân:Ngô Văn Công ́ ̃ •Zend_File: cung cấp, hỗ trợ mở rộng việc upload và download của các tập tin. Nó gắn liền với kiểm tra các chức năng của tập tin. •Zend_Filters: lọc dữ liệu trước khi thực hiện một quá trình xử lý nào đó . •Zend_Form: đơn giản hóa việc tạo form và xử lý các ứng dụng trên website. •Zend_Local: là một thư viện trả lời cho câu hỏi làm sao ứng dụng c1o thể sử dụng trên toàn thế giới . •Zend_Pdf: Tạo và xử lý các file PDF . •Zend_Search: là một lớp cung cấp cho chúng ta các phương thức search trên nội dung của các tập tin lưu trữ thông tin. •Zend_Translate: là giải pháp cho các ứng dụng đa ngôn ngữ . •Zend_Validate: dùng để kiểm tra dữ liệu nhập vào có phù hợp với yêu cầu hay không . •Zend_Acl: giúp chúng ta phân quyền cho ứng dụng chi tiết trên từng action, controller và module. 2.3.3.Mô hình MVC trong Zend Framework : Bất cứ một ứng dụng nào được xây dựng theo mô hình MVC nào thì cũng điều phải tuân thủ những nguyên tắc mà mô hình MVC mang lại. 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. Hình 2.3.2.1: Mô hình MVC trong Zend Framework . 18 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  19. Giao viên hướng dân:Ngô Văn Công ́ ̃ Khi có một request từ người dùng. Controller sẽ tiếp nhận request, phân tích request, sau đó sẽ phân luồng request để gọi đến Model và View tùy vào request mà người dùng đã gửi. Khi người dùng gửi một request từ browser thì nơi đầu tiên tiếp nhận request đó đầu tiên là controller. Tùy vào request, mà controller sẽ phân luồng đến model và view. Ngoài ra, mô hình MVC trong ZF còn có thể được tổng quát hóa bằng mô hình sau: Hình 2.3.1.2: Mô hình MVC trong Zend Framework Tóm lại, một ứng dụng được xây dựng theo mô hình MVC hoạt động tổng quát như sau: Tiếp nhận request từ trình duyệt dưới dạng HTML. Sau đó được biên dịch thông qua Java Servlet → controller tiếp nhận, phân tích request để phân luồng đến model và view. Cuối cùng trả về trình duyệt dưới dạng một response HTML. 19 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
  20. Giao viên hướng dân:Ngô Văn Công ́ ̃ 2.3.4.Luồng xử lý công việc trong Zend Framework Hình 2.3.4.1: Quy trình làm việc trong Zend Framework. Giải thích quy trình: •Bước 1: Một yêu cầu được tạo ra và đối tượng Request Object được tạo ra . •Bước 2: routeStartup được nạp . •Bước 3: Router xử lý yêu cầu . •Bước 4: routerShutdown được nạp . •Bước 5: dispatchLoopStartup được nạp . •Bước 6: Qui trình gửi thông tin được bắt đầu . •Bước 7: preDispatch được nạp . •Bước 8: Dispathcher gọi Action Controller . •Bước 9: Action Controller tạo Response Object . •Bước 10: postDispatch được nạp . •Bước 11: Nếu có Action nào được gọi thì quay lại bước 7 . 20 Sinh viên thực tâp:Nguyên Hoai Nam ̣ ̃ ̀ MSSV:51130954
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
8=>2