Tìm hiều zend framework 2.0, xây dựng website thương mại điện tử

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

doc54 trang | Chia sẻ: lvbuiluyen | Lượt xem: 3836 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Tìm hiều zend framework 2.0, xây dựng website thương mại điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN THỰC TẬP CHUYÊN NGHÀNH TÌM HIỀU ZEND FRAMEWORK 2.0 ,XÂY DỰNG WEBSITE THƯƠNG MẠI ĐIỆN TỬ Giáo viên hướng dẫn Ngô Văn Công MỤC LỤC Mục lục 2 Lời mở đầu 5 CHƯƠNG 1.TỔNG QUAN 7 1.1.Đặt vấn đề. 7 1.2.Phương pháp giải quyết 7 1.3 Phạm vi của đề tài 8 1.4.Phương pháp 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.3.6.Cấu trúc thư mục của một project trong ZF (một module): 22 2.3.7Cài đặt ứng dụng đầu tiên với Zend Framework 22 CHƯƠNG 3: CHƯƠNG 3.XÂY DỰNG ỨNG DỤNG WEBSITE BOOK SHOP BÁN HÀNG QUA MẠNG 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ơ bản trong Zend Framework 36 3.7.1.1.Khởi tạo kết nối database 36 3.7.1.2.Cấu hình template 38 3.71.3.Hiển thị danh mục sản phẩm theo mô hình đa cấp 39 3.8.Hình ảnh Website 42 Kết luận 48 Tai lieu tham khao 49 Nhận xét của Giáo Viên hướng dẫn Nhận xét của Giáo Viên phản biện 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ổ bài thực tập chuyên nghành.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 đã phát triển thành một dự án của riêng mình viết bằng Zend framework 2.0 Em xin cảm ơn các giáo viên trường Đại học Nha Trang đã giảng dạy những kiến thức đại cương cũng như chuyên nghành.Em xin cảm ơn giáo viên hướng dẫn Ngô Văn Công đã giúp em hoàn thành đề tài này 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 pháp giải 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 đế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 Phạm vi của đề tài Về phân tích thiết kế hệ thống:Kết quả thu được của đề tài là mô hình phân tích 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 dụng website Bán hàng qua mạng. Về mặt lập trình :Trên cơ sở nghiên cứu và áp dụng Zend Framework 2.0,hoàn thành các nội dung chủ yếu sau : +Hiểu và vận dụng thành công các lớp cở bản của zend framework để xây dựng các module chủ yếu cho hệ thống: Module sản phẩm, module hệ thống trong dự án (dùng để cấu hình các phần mặc định như layout,router,model,…). +Đảm bảo hệ thống vận hành theo đúng cấu trúc của một ứng dụng Zend Framework(Theo mô hình MCV). 1.4.Phương pháp 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ỉ bảo của giáo viên hướng dẫn thực tập chuyên nghành. 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 đồ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 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. 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 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. +Mô hình 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ắ