Ứng dụng cakephp trong thiết kế và xây dựng website bán hàng
Trang 1LỜI NÓI ĐẦU
Ngày nay với sự phát triển mạnh mẽ của khoa học công nghệ, Công nghệ Thông tin
là một trong những ngành có vị thế dẫn đầu và có vai trò rất lớn trong sự phát triển chung
đó Các ứng dụng của công nghệ thông tin được áp dụng trong mọi lĩnh vực nghiên cứukhoa học cũng như trong mọi lĩnh vực của đời sống Là một phần của Công nghệ thôngtin, Công nghệ web đang có được sự phát triển và phổ biến rất nhanh bởi những lợi ích
mà nó mang lại cho cộng đồng là rất lớn
Bằng việc lựa chọn và thực hiện đề tài “Ứng dụng cakephp trong thiết kế & xây
dựng website bán hàng”, em muốn tìm hiểu và đưa ra một giải pháp tốt nhất cho các
doanh nghiệp ,mang lại cho các doanh nghiệp rất nhiều lợi ích như: Khả năng quảng cáo,phổ biến tên tuổi công ty rất nhanh trên môi trường mạng toàn cầu; Việc kinh doanh sẽ
mở cửa 24 tiếng / 1 ngày; giảm thiểu chi phí nhân viên cho tiếp thị, quảng cáo; dễ dàngnhận phản hồi từ phía khách hàng; cơ hội mở rộng liên kết và hợp tác ở phạm vi quốctế…v v
Nội dung của đề tài gồm các phần như sau:
Phần I: Giới thiệu về công ty tin học VNPT Đà Nẵng.
Phần II: Tổng quan về cakephp.
Phần III: Ứng dụng cakephp thiết kế & xây dựng website bán hàng.
Phần IV: Thiết kế giao diện và cài đặt Website.
Trang 2PHẦN I: GIỚI THIỆU VỀ CÔNG TY TIN HỌC VNPT
II SỰ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA CÔNG TY
1 Sự ra đời công ty Tin Học VNPT Đà Nẵng
Tiền thân là trung tâm Tin Học trực thuộc Bưu điện thành phố Đà Nẵng(thành lập ngày 1/9/1999), Công ty Tin Học Đà Nẵng được thành lập theo quyếtđịnh số: 149/QĐ – TCCB nagyf 03/01/2008 của Tập đoàn Bưu chính Viễn thôngViệt Nam Công ty Tin Học Đà Nẵng là đơn vị kinh tế trực thuộc, hạch toán phụthuộc Viễn thông Đà Nẵng, có chức năng và nhiệm vụ hoạt động sản xuất kinhdoanh và phục vụ chuyên ngahnhf viễn thông- công nghệ thông tin
- Các chương trình, phần mềm ứng dụng dùng chung: Hệ thống Chăm sócKhách hàng CSS, hệ thống thông tin quản lí Khách sạn/Resort, chương trìnhquản lí nhân sự, Hệ thống thông tin quản lý tác nghiệp cho cơ quan/ doanhnghiệp BIN PLUS, chương trình phân phối thu nhập, quản lý thông tin y tế…
- Tooe chức sản xuất, gia công và kinh daonh các sản phẩm phần mềm tin học,kinh daonh các dịch vụ đào tạo chuyên ngành viễn thông- công nghệ thông tin
Trang 3- Thực hiện tính cước, in cước, in bảng kê, in cước chi tiết,…cho các dịch vụđiện thoại cố định, MegaVNN, FiberVNN.
- Triển khai Data center của Viễn thông Đà Nẵng và vùng
- Kinh doanh vật tư, thiết nị tin học- công nghệ thông tin
- Kinh doanh các ngành nghề khác khi được Viễn thông Đà Nẵng cho phép vàphù hợp với quy định của pháp luật
3 Sự phát triển của công ty Tin Học VNPT Đà Nẵng
Là một đơn vị cung cấp các dịch vụ công nghệ thông tin, với nỗ lực khẳngđịnh mình, nhiều năm nay, Công ty Tin học Đà Nẵng đã tạo được một thị trường
và niềm tin tốt đối với khách hàng tại thành phố Đà Nẵng (đặc biệt là dịch vụInternet tốc độ cao MegaVNN, FiberVNN trước đây) cũng như các đơn vị trêncác tỉnh thành khác
Các sản phẩm phần mềm tiêu biểu hiện nay của Công ty Tin học Đà Nẵng là Hệthống Dịch vụ Khách hàng – Customer Service System, gọi tắt là CSS; Phần mềmquản lý và điều hành doanh nghiệp (Business Information Network - BINPlus).
Sản phẩm Phần mềm quản lý và điều hành doanh nghiệp (Business
Information Network - BINPlus ) được xem như làVăn phòng điện tử chuyên
nghiệp, cung cấp giải pháp cho doanh nghiệp, giúp phát huy tối đa khả năng quản
lý, điều hành của doanh nghiệp, khả năng tương tác giữa các thành viên trongdoanh nghiệp và trên hết là tạo ra một môi trường làm việc thuận lợi, mọi nơi, mọi
lúc và tiết kiệm chi phí hiệu quả Nếu sử dụng BINPlus một doanh nghiệp vừa vànhỏ có thể tiết kiệm chi phí hàng trăm triệu đồng/năm
Về lĩnh vực đào tạo, mục tiêu của Công ty là phấn đấu trở thành đơn vị đào tạo uytín, chất lượng tại TP Đà Nẵng Thông qua Chương trình Đào tạo, tư vấn sẽ truyềntải những kiến thức, kỹ năng, kinh nghiệm tốt nhất nhằm đem lại những thànhcông mới cho doanh nghiệp
Bên cạnh đó, công ty còn là nhà tư vấn, thiết kế và phát triển các giải pháp CNTTtoàn diện cho doanh nghiệp, bao gồm các dịch vụ như tư vấn, thẩm định các dự ánCNTT, thiết kế triển khai cơ sở hạ tầng công nghệ thông tin, phát triển và phânphối các sản phẩm phần mềm có chất lượng cao, đáp ứng các nhu cầu đa dạng củakhách hàng
Một số thành tự đạt được
- Huân chương lao động hạng ba
- Cờ Bộ Bưu chính viễn thông Việt Nam
- Cờ tập đoàn Bưu chính viễn thông Việt Nam
- Cờ bộ thồn tin và Truyền thông
Trang 44 Một số khách hàng lớn
- Viễn thông Thanh Hóa
- Viễn thông Bình Định
- Viễn thông Tiền Giang
- Viễn thông Bình Dương
- Viễn thông Đăklak
- Viễn thông Kontum
- Viễn thông Đălnong
- UBND tỉnh Quảng Nam
- Định hướng phát triển công nghệ thông tin, xây dựng chiến lược công nghệ,
Trang 5- Tham mưu xây dựng và giám sát thực hiện quy trình sản xuất phần mềm; Đánhgiá chất lượng công tác phần mềm.
- Xây dựng, triển khai, giám sát thực hiện quy trình nghiệp vụ
- Công tác Phòng chống lụt bão, giảm nhẹ thiên tai: Tiếp nhận, triển khai, giámsát, báo cáo thực hiện lệnh điều hành của TT Điều hành VTĐN theo quy định
- Tính cước, đối soát cước, in cước các dịch vụ VT-CNTT của VTĐN
- Công tác nghiên cứu khoa học, sáng kiến cải tiến kỹ thuật, sáng tạo VNPT
3 Phòng Tài chính- Kế toán- Thống kê
-
5 Trung tâm phát triển Phần mềm
- Triển khai phần mềm CSS dùng chung theo yêu cầu của Tập đoàn
- Thiết kế, xây dựng và bảo trì các sản phần phần mềm, website cho khách hàng
- Thiết kế, xây dựng và nâng cấp, hỗ trợ khai thác, bảo trì, bảo dưỡng tất cả các
hệ thống phần mềm, Website phục vụ của VNPT Đà Nẵng
- Nghiên cứu các giải pháp công nghệ mới theo định hướng của Công ty trongcông tác xây dựng phần mềm
- Phối hợp tham gia đào tạo, chuyển giao công nghệ
Mô hình Trung tâm Phần mềm gồm 2 tổ:
A Tổ thiết kế xây dựng phần mềm
B Tổ triển khai và hỗ trợ phần mềm
6 Trung tâm Kỹ thuật
- Chuyên Quản lý, vận hành khai thác và bảo dưỡng hệ thống mạng máy tínhViễn thông Đà Nẵng Thực hiện công tác quản lý, khai thác, vận hành hệthống MANE, xDSL và các hệ thống thiết bị khác hoạt động tốt 24/24 Khắcphục các sự cố
- Hỗ trợ thiết kế và tư vấn khách hàng giải pháp xây dựng mạng và phối hợp lập
dự toán cho các công trình công nghệ thông tin
- Thi công các công trình mạng cho Viễn thông Đà Nẵng và khách hàng; thựchiện nhiệm vụ bảo dưỡng và sửa chữa theo cho khách hàng theo hợp đồng củađơn vị
Mô hình Trung tâm Kỹ thuật gồm hai tổ:
Trang 6A Tổ Quản trị mạng:
B Tổ Kỹ thuật
7 Trung tâm Đào tạo
- Xây dựng chiến lược đào tạo của Công ty; tổ chức đào tạo và bồi dưỡngnghiệp vụ về công nghệ thông tin và các chuyên ngành khác theo quy định choCB-CNV, học viên trong và ngoài ngành; kinh doanh các dịch vụ giá trị giatăng có liên quan trên mạng Internet, lĩnh vực đào tạo
- Tổ chức đào tạo, đào tạo nguồn nhân lực phục vụ cho Công ty
Mô hình trung tâm đào tạo bao gồm:
A Tổ Đào tạo Phát triển
B Tổ Biên tập thông tin
8 Trung tâm Kinh doanh
- Xây dựng phương án kinh doanh dịch vụ VT-CNTT
- Trực tiếp quản lý cửa hàng 47 Trần Phú
- Chủ trì phát triển dịch vụ viễn thông
- Chủ trì kinh doanh các sản phẩm dịch vụ phần mềm và GTGT của Công ty: tênmiền, thiết kế website, hosting, các phần mềm đóng gói,
- Kinh doanh các dự án phần mề
- Chủ trì kinh doanh các dự án VT&CNTT
- Hợp tác với các đối tác nhập hàng hoá cho các công trình, dự án, bán lẻ,…
- Chủ trì kinh doanh các loại thẻ
- Chủ trì công tác chăm sóc khách hàng
- Quản lý đại lý dịch vụ, công tác viên
- Thực hiện các nhiệm vụ khác do lãnh đạo Công ty phân công
Mô hình Trung tâm Kinh doanh
A Cửa hàng
B Tổ dự án
C Tổ kinh doanh phần mềm
Trang 7PHẦN II: TỔNG QUAN VỀ CAKEPHP
I CAKEPHP
1 CakePHP là gì
CakePHP là một Framework mã nguồn mở, miễn phí dành cho việc pháttriển các ứng dụng web bằng ngôn ngữ PHP, mục đích của CakePHP là cung cấpmột framework cho người sử dụng php phát triển những ứng dụng web nhanh,mạnh không mất tính linh hoạt của nó
CakePHP là một nền tảng phát triển ứng dụng nhanh, cấu trúc của nó đượctạo ra để lập trình viên tạo các ứng dụng web Nó tạo ra một nền tảng có cấu trúc,cho phép bạn làm việc trên cấu trúc đó một cách nhanh chóng mà không mất đi sựuyển chuyển Ngoài ra, CakePHP loại bỏ sự nhàm chán trong việc ứng dụng web:cung cấp các công cụ để viết thứ ta cần, thay vì phải làm đi làm lại một thứ Khibắt đầu tạo mới dự án (project), chỉ cần tạo ra bản copy của CakePHP và tập trungvào việc chính của dự án
CakePHP có một đội ngũ phát triển cà cộng đồng năng động, điều nàymang lại giá trị to lớn cho các dự án Ngoài việc giúp bạn khỏi phải đi làm lại mộtviệc nào đó, sử dụng CakePHP đồng nghĩa với phần cốt lõi của ứng dụng mà bạn
đã kiểm chứng và cải tiếng không ngừng
2 Chức năng của CakePHP
- Phân quyền (ACL)
- Kiểm tra ràng buộc dữ liệu
- Xây dựng nhiều thư viện hỗ trợ như View : Ajax, HTML Form, Javasript…
- Xây dựng nhiều thư viện hỗ trợ cho Controller: Email, Security, Session, Cookies, Request Handling
- Dễ dàng viết thêm thư viện hỗ trợ, liên kết với ứng dụng khác (thông qua vendors)
- Đa giao diện
- Hỗ trợ nhiều hệ quản trị CSDL
Trang 83 Cấu trúc thư mục CakePHP
- App: là nơi chứ mã nguồn ứng dụng
- Cake: là nơi chứa mã nguồn của CakePHP
- Vendors: chứa ứng dụng của bên thứ 3.
- Plugins: chứa các phần mở rộng cho ứng dụng.
Các thư mục trong app:
- Config Chứa file cấu hình hệ thống
Controllers Chứa các controller và component
Locale Chứa file ngôn ngữ , phục vụ cho ứng dụng đa ngôn ngữ
Molels Chứa file Model và behavor, datasource
Plugins Chứa các gói mở rộng
TmpThư mục tạm của ứng dụng
Vendors Chứa ứng dụng của bên thứ 3
Views Chứa các file giao diện
Webroot Chứa tài liệu (hình ảnh,file ), file CSS , file javascript…
4 Cấu trúc CakePHP
CakePHP hoạt động theo mô hình MVC
Mô hình này chia ứng dụng làm 3 phần chính:
- Model: mô tả dữ liệu cảu ứng dụng Trên Model ta có thể thiết lập các ràngbuộc dữ liệu, quan hện giữa các bảng Model giao tiếp với database, có thể viếtcác query cũng như các xử lý logic ở đây
- View: đảm nhận việc hiển thị thông tin đã được xử lý gởi đến từ Controller,View còn được hiểu nôm na là nơi chứa các file html để hiện thị cho ngườixem
Trang 9- Controller: xử lý và điều hướng các yêu cầu của client, Controller nới trực tiếpviết các xử lý lấy các request từ url và form để thao tác trực tiếp với Model, sau
- Bộ phần điều vận Dispatcher (một thành phần của CakePHP) sẽ kiểm tra phần
tử để xác định controller nào sẽ thực thi và gởi yêu cầu tới controller tươngứng
- Khi yêu cầu được gởi đền Controller, nó sẽ làm một vài thao rác luận lí cầnthiết, có thể nó sẽ xử lý ngay tại Controller haowcj sử dụng Model tương ứng
để truy xuất dữ liệu Dữ liệu ở đây có thể là các record trong table của mộtdatabase, hoặc một dạng khác
- Sau khi lấy được dữ liệu, Controller sẽ đưa dữ liệu này ra View và View này
có nhiện vụ chuẩn bị đưa dữ liệu đầu ra View có thể chuẩn bị dữ liệu ở dạngHTML, PDF, tài liêu XML hoặc một số đối tượng JSON, cuối cùng là view sẽđược hiển thị trên trình duyệt
Trang 105 Các quy tắc đặt tên trong CakePHP
5.1 Model và cơ sở dữ liệu
- Class : viết hình thức số ít, viết hao đầu mỗi từ
VD: User, PostTag…
1 class User extends AppModel { //function }
- File: viết ở hình thức số ít, chữ thường, các từ cách nhau bằng dầu gạch dưới
VD: user.php, post_yag.php
- Table: viết dưới hình thức số nhiều (theo quy tắc viết số nhiều của tiếng
Anh),nếu có nhiều từ cách nhau bằng dấu gạch dưới
VD: users, post_tags
- Khóa chính : mỗi table có 1 trường kháo chính đặt tên là id và số nguyên tự
động tắng
- Khóa ngoại: nếu bảng có kháo ngoại thì tên trường làm kháo ngoại và được
đặt theo quy tắc: tên_bảng_được_tham_chiếu_đến_id
VD: bảng posts tham chiếu tới bảng users, vậy bảng post có khóa ngoại làuser_id
5.2 Controller
- Class: viết hình thức số nhiều, viết hoa chức cái đầu tiên của mỗi từ, kết thúc
bằng Controller
VD: UsersController, PostTagsController
1 class UsersController extends AppController { //function }
- File: viết hình thức số nhiều, viết thường, mỗi từ cách nhau bằng dấu gạch
Trang 11II CƠ SỞ DỮ LIỆU MYSQL
1 Khái niệm
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới
và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng.
MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) nó chạy như
một máy chủ cho phép nhiều người dùng truy cập đến một số cơ sở dữ liệu
Dự án phát triển MySQL đã tạo ra những mã nguồn của nó theo các điều khoản của GNU (General Public License), cũng như theo một các thỏa thuận độc quyền.MySQL được sở hữu và tài trợ bởi công ty Thụy Điển MySQL AB, nay thuộc sở hữu của Sun Microsystems, một công ty con của công ty Oracle Nhiều ứng dụng web sử dụng MySQL như là thành phần cơ sở dữ liệu của “LAMP software stackt” Nó phổ biến để sử dụng với các ứng dụng web
có quan hệ chặt chẽ với PHP, ngôn ngữ lập trình web mà thường được kết hợp với MySQL.Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn.
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu
quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác,
nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
Các thành viên của cộng đồng MySQL đã tạo ra nhiều nhánh như Drizzle
và MariaDB Cả hai nhánh đã được tiến hành rất lâu trước khi Oracle mua lại Free-software projects that require a full-featured database management system often use MySQL.Các dự án phần mềm miễn phí yêu cầu có yêu cầu một hệ quản trị cơ sở dữ liệu đầy đủ tính năng thường sử dụng MySQL Such
Trang 12projects include (for example) WordPress , phpBB , Drupal and other software built on the LAMP software stack Một số dự án như WordPress, phpBB, Drupal và phần mềm khác được xây dựng trên LAMP software stack MySQL is also used in many high-profile, large-scale World Wide Web products including Wikipedia , Google and Facebook MySQL cũng được sử dụng trong nhiều sản phẩm cấu hình cao, quy mô lớn như World Wide Web bao gồm Wikipedia, Google và Facebook.
Các ứng dụng web Nhiều người sử dụng MySQL như là thành phần cơ sở
dữ liệu của một “LAMP software stack“ Nó phổ biến sử dụng với các ứng
dụng web có quan hệ chặt chẽ đến với PHP - ngôn ngữ lập trình web mà thường được kết hợp với MySQL
MySQL sử dụng C và C + + MySQL hoạt động trên nền tảng hệ thống khác nhau, bao gồm AIX, BSDi, FreeBSD, HP-UX, i5/OS, Linux, Mac OS X,
NetBSD, Novell NetWare, OpenBSD, OpenSolaris, eComStation, và Microsoft Windows.
Tất cả các ngôn ngữ lập trình lớn với ngôn ngữ đặc biệt -APIs bao gồm các Thư viện đều cho phép truy cập vào cơ sở dữ liệu MySQL Ngoài ra, một giao diện ODBC gọi là MyODBC cho phép ngôn ngữ lập trình khác có hỗ trợ giao diện ODBC để giao tiếp với một cơ sở dữ liệu MySQL, như ASP hay ColdFusion Các máy chủ MySQL và chính thức của thư viện này chủ yếu là thực hiện trong ANSI C / ANSI C + + tính năng thiết lập của bản Cộng đồng
2 Lịch sử phát triển
MySQL mốc quan trọng trong sự phát triển bao gồm:
Bản gốc phát triển của MySQL bởi Michael Widenius và David bắt đầu Axmarknăm 1994
Phiên bản nội bộ đầu tiên phát hành ngày 23 tháng 5 năm 1995
Trang 13 Phiên bản Windows được phát hành vào ngày 8 tháng 1 năm 1998 cho Windows
95 và NT
Phiên bản 3,23: beta từ tháng 6 năm 2000, sản xuất, phát hành tháng 1 năm 2001
Phiên bản 4.0: beta từ tháng 8 năm 2002, sản xuất, phát hành tháng 3 năm 2003
Phiên bản 5.0: beta từ tháng ba năm 2005, sản xuất, phát hành Tháng 10 năm2005
Sun Microsystems mua MySQL AB ngày 26 tháng hai năm 2008
Phiên bản 5.1: sản xuất, phát hành 27 tháng 11 2008 (sự kiện lịch trình, phânvùng, plugin API, hàng dựa trên bản sao, máy chủ ghi bàn) MySQL 5,1 và 6,0cho thấy hiệu suất kém khi được sử dụng cho dữ liệu kho bãi - một phần là do khảnăng không sử dụng nhiều CPU để xử lý một truy vấn đơn
Oracle and Sun Oracle, Sun Microsystems mua lại vào Ngày 27 tháng một năm
2010 và Oracle Sun
3 Chức năng
Tính đến tháng 4 năm 2009 MySQL cung cấp MySQL 5,1 trong hai phiên bảnkhác nhau: MySQL Server và Enterprise Server.Họ có một cơ sở mã chung và baogồm các tính năng sau đây:
Một tập hợp con của ANSI SQL 99, cũng như phần mở rộng
Đa hệ hỗ trợ
Các thủ tục lưu trữ
Sửa lỗi (Triggers)
Con trỏ (Cursors)
Cập nhật truy vấn (Updatable Views )
Hỗ trợ giao dich phân phối X / Open XA (DTP)
Độc lập các máy lưu trữ (storage engines) (MyISAM cho tốc độ đọc, InnoDBcho các giao dịch và toàn vẹn tham chiếu, Lưu trữ MySQL để lưu trữ dữ liệu lịch
sử trong không gian nhỏ)
Giao dịch với InnoDB, BDB và các công cụ lưu trữ Cluster; nhiều điểm lưu trữvới InnoDB