Tải bản đầy đủ (.doc) (64 trang)

Xây dựng Cổng thông tin ẩm thực Hà Thành

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.22 MB, 64 trang )

Đồ án tốt nghiệp Ngành: Công nghệ thông tin
LỜI NÓI ĐẦU
Ngày nay song song với quá trình phát triển công nghệ khoa học và kỹ thuật
thì ngành công nghệ thông tin cũng đã đóng một vai trò vô cùng quan trọng, có ảnh
hưởng lớn đến cuộc sống của con người, và đang đạt được những thành tựu rực rỡ,
với những bước tiến nhảy vọt. Mạng Internet là một trong những sản phẩm có giá
trị hết sức lớn lao và ngày càng trở thành một công cụ không thể thiếu, là nền tảng
chính cho sự truyền tải, trao đổi thông tin trên toàn cầu.
Sự phát triển nhanh chóng của nền kinh tế toàn cầu cũng như nền kinh tế
nước ta trong những năm gần đây dẫn đến việc các doanh nghiệp phát triển ngày
càng mạnh mẽ hơn. Mức sống của con người ngay càng được nâng cao hơn. Con
người hiện đại, ngoài các nhu cầu thông thường còn có thêm nhiều nhu cầu khác,
như vui chơi, giải trí, tham quan, du lịch, tìm hiểu thông tin…
Với cuộc sống và công việc luân bận rộn thì Internet càng trở nên quan
trọng hơn. Không cần phải mất nhiều thời gian và công sức để tìm kiếm một thông
tin nào đó, với Internet, mọi thứ dường như đã được trang bị đầy đủ, theo như số
liệu điều tra, cứ mỗi giây lại có thêm vài chục trang Web mới bổ xung vào hàng tỷ
trang đã có.
Ẩm thực là một nội dung quan trọng, vừa là văn hóa vật chất, vừa là văn hóa
tinh thần.Nó thể hiện cốt cách, phẩm hạnh của một dân tộc, một con người, mà
cũng là một tiêu chí đánh giá chất lượng cuộc sống. Việc xây dựng một Website về
ẩm thực Hà Nội không những cho ta thông tin hữu ích về sức khỏe con người mà
còn là nét văn hóa đặc trưng văn hóa, điều này sẽ làm tăng khả năng tận dụng ưu
thế của công nghệ thông tin nói chung cũng như Internet nói riêng trong cuộc sống
con người…
Trong thời gian học tập và nghiên cứu tại nhà trường, dưới sự dạy dỗ và chỉ
bảo của các thầy, cô giáo, em đã trang bị được những kiến thức bổ ích và rất thiết
thực trong cuộc sống. Những kiến thức đã được học trong nhà trường sẽ là hành
trang vững chắc giúp em bước vào đời một cách tự tin hơn.
Chính vì vậy cùng với sự hướng dẫn của PGS.TS Nguyễn Đăng Tộ,GV
Phạm Trí Công và sự nỗ lực của bản thân, em đã chọn thực hiện đề tài “Cổng thông


tin ẩm thực Hà Thành”.
Mai Thị Thoa – 49
th
2 Page
1
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
Chương 1:Giới thiệu
1.1 Đặt vấn đề
Tra cứu và tìm kiếm thông tin là một hoạt động thường xuyên của con người.
Các Website quản lý thông tin là những hệ thống hỗ trợ việc tra cứu và tìm kiếm thông
tin liên quan đến nhiều lĩnh vực trong đời sống. Giúp người xem có thể tiết kiệm được
nhiều thời gian và công sức cũng như tiền của cho việc tìm kiếm chúng khi không có
Internet Hiện nay nhu cầu về sức khỏe, ăn ngon là rất thiết yếu.Vì vậy em xây dựng
đề tài “Cổng thông tin ẩm thực Hà Thành” không chỉ cung cấp thông tin về nhu cầu
cuộc sống, mà còn mang lại những nét văn hóa riêng của Hà Nội.
1.2 Mục tiêu đề tài
Đề tài đưa ra những thông tin về Hà Nội :
• Tin tức về ẩm thực chung và hà nội.
• Ẩm thực dành cho sức khỏe, dinh dưỡng, làm đẹp.
• Video hướng dẫn về công thức chế biến món ngon,
• Giới thiệu nhà hàng .
• Quảng cáo, link chia sẻ.
1.3 Nội dung đề tài
Xử lý về quản lý và tìm kiếm thông tin:
• Cập nhập thông tin thường xuyên.
• Chỉnh sửa, thay đổi thông tin khi không còn phù hợp.
• Tìm kiếm thông tin
1.4 Công cụ và môi trường làm việc
• Ngôn ngữ lập trình php.
• Viết trên framework kohana 10.1.13 , mô hình simple MVC

Mai Thị Thoa – 49
th
2 Page
2
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
Chương 2 :Công cụ và giới thiệu
2.1 WAMP
Wamp: Một gói phần mềm Web Server tất cả trong một (All-in-One)
gồm: Apache, MySQL, PHP chạy trên nền Windows. Chồng phần mềm Wamp chu
cấp các nhà phát triển với bốn phần tử then chốt của một máy chủ web: một hệ điều
hành, kho dữ liệu, máy chủ đãi web và phần mềm ra văn mã cho mạng web. Sự hợp lại
của việc sử dụng những chương trình này gọi là một chồng trên máy chủ (server
stack). Trong chồng này, Microsoft Windows hệ điều hành (operating system),
Apache là phần mềm máy chủ web, MySQL lo liệu các thành phần kho dữ liệu, trong
lúc PHP, Python, hoặc PERL tượng trưng các ngôn ngữ chủ động ra văn mã.
Nó cho phép bạn tạo các ứng dụng Web với Apache, PHP, và cơ sở dữ liệu
MySQL. Nó cũng đi kèm với PHPMyAdmin và SQLiteManager để dễ dàng quản lý
cơ sở dữ liệu của bạn. WampServer cài đặt tự động (cài đặt), và cách sử dụng của nó là
rất trực quan. Bạn sẽ có thể điều chỉnh ngay cả máy chủ của bạn mà không cần chạm
vào các tập tin cài đặt. WampServer là chỉ đóng gói giải pháp mà sẽ cho phép bạn sao
chép sản xuất máy chủ của bạn. Khi WampServer được cài đặt, bạn có khả năng thêm
bao nhiêu Apache, MySQL, và PHP bản phát hành như bạn muốn. WampServer cũng
có một trayicon để quản lý các máy chủ của bạn và các thiết lập của nó.
Các đặc điểm nổi bật của Wamp :
• WAMP được cập nhật đều đặn.
• Có thể cài đặt WAMP dễ dàng.
• Cho phép lựa chọn các phiên bản PHP, MySQL khác nhau.
• Rất tốt cho việc tạo máy chủ Web để chạy thử, thiết kế Website bằng PHP.
• Hỗ trợ tốt cho Joomla 1.5, Joomla 1.0
• Hỗ trợ phiên bản PHP5 mới nhất

• Tương thích Windows XP / Windows Vista / Windows 7
• Hoàn toàn miễn phí
Mai Thị Thoa – 49
th
2 Page
3
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
Sau đây là những chương trình tự động cài đặt khi bạn cài WAMP:
• Apache: chương trình sử dụng máy chủ, cho phép máy chủ phân phát
các trang web, nhưng nó chỉ hiểu HTML thôi!
• PHP: coi như một “plugin” của Apache, nó cần có Apache để hoạt động.
Nhờ PHP mà Apache biết làm việc với những trang Php, nói cách khác
Apache+PHP = một server PHP.
• MySQL: một chương trình rất hữu ích, cho phép mình sử dụng cơ sở dữ
liệu (CSDL)!
• PhpMyAdmin: dùng để quản lý CSDL.
2.2 Cơ sở dữ liệu My SQL
2.2.1 Giới thiệu chung về MYSQL
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. 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 rất thích hợp cho các ứng dụng có truy cập CSDL từ
trên internet. MySQL được sử dụng miễn phí hoàn toàn .Nó có nhiều phiên bản cho
các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows,
Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris,
SunOS,…
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,…
2.2.2 Các đối tượng của MYSQL
• Bảng - Table :
Trong cơ sở dữ liệu, bảng (Table) là thành phần chính của chúng. Do đó bảng là
đối tượng lưu trữ dữ liệu thực, khi cần giao tiếp với cơ sở dữ liệu khác, bảng là đối
Mai Thị Thoa – 49
th
2 Page
4
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
tượng căn bản nhất trong bất kỳ loại cơ sở dữ liệu nào, chúng được coi như một miền
dữ liệu.
Bảng dùng để lưu trữ tất cả dữ liệu và được tổ chức thành nhiều hàng và nhiều
cột. Mỗi cột trong bảng có thể lưu một loại thông tin nhất định gọi là kiểu dữ liệu, dữ
liệu nhập vào có thể chấp nhận hoặc từ chối tùy thuộc vào nguyên tắc ràng buộc dữ
liệu hoặc dữ liệu tương thích do hệ thống hay người dùng định nghĩa.
Khi định nghĩa cơ sở dữ liệu ta cần quan tâm đến các thông số sau:
Key: Trường đó có khóa hay không.
ID: Trường có thuộc tính Identity hay không.
Column Name: Tên của trường.
Data type: Loại dữ liệu cho trường tương ứng.
Size: Kích thước trường dữ liệu.
Allow null: Cho phép giá trị rỗng lưu trong trường hay không.
Default: Giá trị mặc nhiên cho trường.
Identity: Nếu bạn cần sử dụng một trường có giá trị tự động như
Autonumber trong access, trường này not null và Identity: yes (no).
Identity seed: Nếu trường (cột) này là identity, cần số bắt đầu số 1 hoặc
2 …
• Chỉ mục - Indexs:

Index hay còn gọi là chỉ mục, đối tượng này chỉ tồn tại trong bảng hay khung
nhìn (view). Chỉ mục này có ảnh hưởng tới tốc độ truy cập số liệu, nhất là khi cần tìm
kiếm thông tin trên bảng, chỉ mục giúp tăng tốc độ cho việc tìm kiếm.
Clustered: Ứng với mỗi chỉ mục này một bảng chỉ có một chỉ mục, và số
liệu được sắp xếp theo trang.
Non-clustered: Ứng với chỉ mục này một bảng có thể có nhiều chỉ mục
và dữ liệu được sắp xếp theo trường dữ liệu mà bạn chỏ tới.
Mai Thị Thoa – 49
th
2 Page
5
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
• Bẫy lỗi - Triggers:
Nếu đối tượng chỉ tồn tại trong bảng, cụ thể là một đoạn mã, và tự động thực thi
khi có một hành động nào đó xảy ra đối với dữ liệu trong bảng như: Insert, Update,
Delete.
Trigger có thể sử dụng để bẫy rất nhiều tình huống như copy dữ liệu, xóa dữ liệu,
cập nhập dữ liệu, kiểm tra dữ liệu theo tiêu chuẩn nào đó.
• Ràng buộc - Constaints:
Là một đối tượng, nó là một phần nhỏ trong bảng, chúng ràng buộc dữ liệu
trong bảng hoặc các bảng khác phải tuân theo một quy tắc nào đó.
• Khung nhìn (View):
Là khung nhìn hay một bảng ảo của bảng. Cũng giống như bảng nhưng View
không thể chứa dữ liệu, bản thân View có thể tạo thêm trường mới dựa vào những
phép toán, biểu thức của MY SQL. Bên cạnh đó View có thể kết nối nhiều bảng lại với
nhau theo quan hệ nhất định cùng với những tiêu chuẩn, nhằm tạo ra một bảng theo
nhu cầu của người dùng.
View cho phép bạn chia ngang hay dọc thông tin từ một hay nhiều bảng trong cơ
sở dữ liệu, sử dụng View như là một đối tượng trong MY SQL, khi cần thiết sử dụng
đến View, kết quả View trả về bằng việc truy vấn dữ liệu theo yêu cầu người dùng.

Mục đích sử dụng View:
Hạn chế tính phức tạp của dữ liệu đến người dùng.
Kết nối dữ liệu từ nhiều bảng lại với nhau.
Sử dụng tài nguyên Server để thực hiện việc truy vấn.
Tạo ra một bảng ảo có dữ liệu như yêu cầu.
Kết hợp một số hàm và phương thức tạo ra các cột mới.
• Thủ tục nội (stored Procedure):
Thủ tục nội hay còn gọi là Spocs, tiếp tục phát triển như một phần lập trình SQL
trên cơ sở dữ liệu. Store Procedure cho phép khai báo biến, nhận tham số cúng như
thực thi các phát biểu có điều kiện. Store Procedure có các ưu điểm sau:
Mai Thị Thoa – 49
th
2 Page
6
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
Kế thừa tất cả các phát triển của SQL, và là một đối tượng xử lý số liệu
hiệu quả nhất khi dùng MY SQL.
Tiết kiệm thời gian thực thi trên dữ liệu.
Có thể gọi những Stored Procedure theo cách gọi của thủ tục hay hàm
trong các ngôn ngữ lập trình truyền thống, đồng thời sử dụng lại khi có
yêu cầu.
2.3 PHP
2.3.1 Giới thiệu chung về PHP
PHP được phát triển từ ngôn ngữ kịch bản (script) với mục địch xây dựng trang
Web cá nhân (Personal Home Page). Sau đó đã được phát triển thành một ngôn ngữ
hoàn chỉnh và được ưa chuộng trên toàn thế giói trong việc phát triển các ứng dụng
Web based.
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình
kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho
máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có

thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc
độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm
tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một
ngôn ngữ lập trình web phổ biến nhất thế giới.
Trước tiên chúng ta hãy tìm hiểu cách thức hoạt động của hệ trình duyệt (Web
Client) và máy chủ cung cấp dịch vụ Web (Web server ):
Bước 1: Trình duyệt gửi một yêu cầu HTTP đến máy chủ, yêu cầu một file nào
đó
Bước 2: Máy chủ sẽ chuyển yêu cầu này đến chương trình xử lý tương ứng,
chính là chương trình Web server.
Bước 3: Web server phân tích chuỗi yêu cầu nhận được, kiểm tra xem trình duyệt
ở máy khách yêu cầu gì. Nếu đó là các file bình thường (không phải là các file chứa
các đoạn mã script thực thi phía máy chủ), nó sẽ tìm kiếm file đó và trả về cho trình
duyệt ở máy khách. Còn nếu đó là các file chứa các đoạn mã script thực thi phía máy
chủ (các chương trình CGI, hay các file thư viện liên kết động ISAPI, hoặc các file
*.asp hay *.php), nó sẽ triệu gọi chương trình thực thi các đoạn mã này. Chương trình
Mai Thị Thoa – 49
th
2 Page
7
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
này sẽ chịu trách nhiệm chạy các đoạn mã, trả chúng về cho Web server dưới khuôn
dạng của HTML. Sau đó, Web server mới trả kết quả lấy được cho trình duyệt.
Như vậy, chương trình của bạn phải được thực thi trên máy chủ, sau đó mới được
trả về cho trình duyêt. Và đây chính là cái gọi là "Trang Web động". Không như các
trang web tĩnh, trang web động cho phép bạn có sự tương tác với máy chủ thông qua
các đoạn script thực thi phía server. Nhờ có sự tương tác này, bạn có thể truy xuất cơ
sở dữ liệu, lấy thông tin người sử dụng, điều khiển các hoạt động khác
2.3.2 Lý do chọn PHP
PHP Rất đơn giản đối với nhưng người còn xa lạ với chương trình này đây là sự

lôi cuốn mạnh mẽ nhất. Thậm chí là rất ít hoặc không có một chương trình nào có thể
tạo ra một tốc độ đáng kinh ngặc trong việc phát triển bành trướng như PHP. Bởi vì nó
đc thiết kế đặc biệt trong các ứng dụng Web, PHP xây dựng được rất nhiều tính năng
để đáp ứng những nhu nhu cầu chung nhất
PHP là một mã nguồn thông tin mở: Bởi vì mã nguồn của PHP sẵn có nên cộng
đồng các nhà phát triển Web luôn có ý thức cải tiến nó, nâng cao để khắc phục các lỗi
trong chương trình này. PHP rất ổn định và tương hợp, PHP Ngoài ra PHP chạy được
trên nhiều hệ điều hành khác nhau.
Rút ngắn thời gian phát triển :
• PHP cho phép bạn tách phần HTML code và phần script, do đó có thể độc lập
giữa công việc phát triển mã và thiết kế. Điều này vừa giúp lập trình viên dễ
dàng hơn vừa có thể làm cho chương trình mềm dẻo hơn trong việc thay đổi
giao diện.
• PHP là phần mềm mã nguồn mở :
• PHP không chỉ là phần mềm mã nguồn mở mà còn thực sự miễn phí (kể cả khi
bạn sử dụng cho mục đích thương mại).
• Do là phần mềm mã nguồn mở, các lỗi (bug) của PHP được công khai và nhanh
chóng được sửa chữa bởi nhiều chuyên gia.
• Tốc độ :
• Nhờ vào sức mạnh của Zend Engine, khi so sánh PHP với ASP, có thể thấy
PHP vượt hơn ở một số test, vượt trội ở tốc độ biên dịch.
Mai Thị Thoa – 49
th
2 Page
8
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
• Tính khả chuyển :
• PHP được thiết kế để chạy trên nhiều nền tảng khác nhau, có thể làm việc với
nhiều phần mềm máy chủ, cơ sở dữ liệu (ví dụ: bạn có thể phát triển dự án trên
UNIX, sau đó chuyển sang NT mà không gặp phải bất cứ vấn đề gì).

2.4 FRAMEWORK MVC
2.4.1 Mô hình MVC
controller
user
1.Request
view
5.Response
Model
2.Request
4.Request
3.Response
MVC = Model - View - Controller
Kiến trúc MVC là việc chia tất cả mục của một ứng dụng ra làm ba thành phần
(component) khác nhau Model, View và Controller. Các thành phần của kiến trúc
MVC một trách nhiệm duy nhất và không phụ thuộc vào các thành phần khác. Những
sự thay đổi trong một thành phần sẽ không có hoặc là có rất ít ảnh hưởng đến các
thành phần khác. Các trách nhiệm của mỗi thành phần là:
Model ( tạm dịch là phần “Mô hình” ): Model được giao nhiệm vụ cung cấp dữ
liệu cho cơ sở dữ liệu và lưu dữ liệu vào các kho chứa dữ liệu. Tất cả các nghiệp
vụ logic được thực thi ở Model. Dữ liệu vào từ người dùng sẽ thông qua View
được kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu. Việc truy xuất, xác nhận,
và lưu dữ liệu là một phần của Model.
Mai Thị Thoa – 49
th
2 Page
9
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
View (tạm dịch là phần “Hiển thị”): Là phần giao diện với người dùng. View
hiển thị các thông tin cho người dùng của ứng dụng và được giao nhiệm vụ cho
việc nhận các dữ liệu vào từ người dùng, gửi đi các yêu cầu đến bộ điều khiển,

sau đó là nhận lại các phản hồi từ bộ điều khiển và hiển thị kết quả cho người
dùng. Các trang HTML, JSP, các thư viện thể và các file nguồn là một phần của
thành phần View.
Controller (tạm dịch là phần “Điều khiển”): Controller là tầng trung gian giữa
Model và View. Controller được giao nhiệm vụ nhận các yêu cầu từ phía máy khách.
Một yêu cầu được nhận từ máy khách được thực hiện bởi một chức năng logic thích
hợp từ thành phần Model và sau đó sinh ra các kết quả cho người dùng và được
thành phần View hiển thị. ActionServlet, Action, ActionForm và strutsconfig.xml là
các phần của Controller.
Với cơ sở là kiến trúc MVC, ta có thể xây dựng các ứng dụng của mình, tránh
được rất nhiều những vất vả khi bảo trì, thay đổi. Những thay đổi ở mỗi thành phần
thường rất ít khi ảnh hưởng đến các thành phần khác.
2.4.2 Ưu điểm và nhược điểm của mô hình MVC
•Ưu điểm
Mô hình MVC giúp cho ứng dụng dễ bảo trì, mobule hóa, và được xây dựng
nhanh chóng. MVC tách các tác vụ của ứng dụng thành các phần riêng lẽ model, view,
controller giúp cho việc xây dựng ứng dụng nhẹ nhàng hơn. Dễ dàng thêm các tính
năng mới, và các tính năng cũ có thể dễ dàng thay đổi. MVC cho phép các nhà phát
triển và các nhà thiết kế có thể làm việc đồng thời với nhau, kể cả trong bước phát
triển prototype. MVC cho phép thay đổi trong 1 phần của ứng dụng mà không ảnh
hưởng đến các phần khác.
Sự dễ dàng trong viết code test là một thuận lợi khi áp dụng MVC. Test những
component của chương trình trở nên rất khó khăn khi chúng phụ thuộc chặt chẽ vào
nhau, đặc biệt đối với những thành phần giao diện. Để test giao diện của một phần
mềm, tất nhiên bạn phải qua các bước cài đặt và đôi khi điều đó trở nên rất mất thời
gian khi chỉ để test một chức năng đơn giản. Tệ hơn khi xảy ra lỗi, chúng ta sẽ rất khó
để phát hiện lỗi ở phần nào. Đó là lý do tại sao chia nhỏ các thành phần chức năng là
một trong những chiều hướng chính của các thiết kế quan trọng. MVC chia nhỏ các
Mai Thị Thoa – 49
th

2 Page
10
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
vấn đề như lưu trữ, hiển thị và cập nhật dữ liệu thành 3 nhóm components, những
component này có thể được test độc lập với nhau.
Ngoài vấn đề về sự phụ thuộc, giao diện của phần mềm cũng rất phức tạp khi
muốn test. Người ta thường sử dụng người thật để test giao diện, hoặc sẽ phải viết
những script test để giả lập những thao tác của con người. Để viết những script này
thường rất mất thời gian và phức tạp. MVC không giải quyết được vấn đề về test giao
diện, nhưng nó tách rời phần dữ liệu Model ra khỏi những xử lý hiển thị và cho phép
MODEL có thể được test độc lập với phần hiển thị và điều đó sẽ giảm thiểu những test
case liên quan đến giao diện.
• Nhược điểm
Chúng ta không nên dùng mô hình MVC một cách hoàn toàn cứng nhắc mà phải
dùng mô hình MVC một cách linh hoạt trong từng Framework.
2.5 Khái quát về PHP Framework
2.5.1 PHP Framewrk là gì?
PHP là 1 ngôn ngữ script rất phổ biến hiện nay bởi những lý do: linh hoạt, dễ sử
dụng, dễ học… nhưng đôi khi việc viết mã PHP, hay bất cứ 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 ban.
PHP frameworks 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 1 cấu trúc cơ bản để xây dựng
những ứng dụng đó.
Hay nói cách khác, PHP framework giúp đỡ các bạn thúc đẩy nhanh chóng quá
trình phát triển ứ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 phải viết lại mã cho lập trình viên. Ngoài ra 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 hơn nhờ việc
tương tác chính xác giữa các Database, mã (PHP) và giao diện (HTML) 1 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 1 project.

Ý 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).
Mai Thị Thoa – 49
th
2 Page
11
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
2.5.2 Tại sao chúng ta nên sử dụng PHP Framework?
Giúp các lập trình viền tăng tốc quá trình phát triển ứng dụng. Việc sử dụng lại
các mã lệnh giống nhau trong nhiều project sẽ giúp các bạn tiết kiệm được thời gian và
công sức 1 cách đáng kể. Một framework sẽ cung cấp sẵn các module nền tảng cần
thiết để xây dựng 1 project, vì thế, các lập trình viên có thể tận dụng được thời gian để
phát triển các ứng dụng thực tế, hơn là mất thời gian để xây dựng lại nền tảng trên mỗi
project.
Sự ổn định là 1 lý do lớn đối với các lập trình viên đang sử dụng Framework.
Tính đơn giản là 1 điểm mạnh của PHP, đó là lý do tại sao lại có nhiều người thích sử
dụng nó, nhưng đồng thời đó cũng là điểm yếu của nó. PHP thì khá dễ học và sử dụng,
đặc biệt là đối với những người mới làm quen với lập trình, tuy nhiên, họ có thể
thường xuyên viết mã 1 cách không khoa học và thậm chí không hề nhận thức được
điều này, với PHP, trong nhiều trường hợp các ứng dụng vẫn sẽ làm việc được, nhưng
vô tình họ có thể tạo ra các lỗ hổng bảo mật lớn trong mã lệnh của mình, và bị hacker
khai thác.
Hầu hết các PHP framework đều có sẵn rất nhiều thành phần mở rộng
(extensive), và cũng có rất nhiều framework khác nhau để các bạn lựa chọn. Bạn thậm
chí còn có thể tự viết riêng cho mình 1 framework. Tuy nhiên, bạn nên cân nhắc kỹ
trước khi quyết định sử dụng 1 framework nào cho mình hay không, nên tự đặt câu hỏi
cho chính mình là: Nó có tiết kiệm được cho bạn thời gian và công sức hay không? Có
giúp ứng dụng bạn hoạt động tốt hơn không? Có cải thiện được sự ổn định cho ứng
dụng không? Hãy tìm ra câu trả lời cho chính mình để quyết định xem bạn có cần xài
framework hay chưa, và nên xài framework nào.

2.5.3 PHP Framework phổ biến nhất hiện nay
Trong vài năm qua, PHP đã tiến triển thành 1 ngôn ngữ script được lựa chọn bời
hầu hết các nhà phát triển website, đã có 1 sự bùng nổ về các PHP framework, dẫn đến
các cuộc tranh luận lớn về đề tài: PHP framework nào là tốt nhất, bởi vì thực tế không
phải tất cả các framework đều được xây dựng trên khuôn khổ dành cho nhiều người sử
dụng. Dưới đây là 5 framework được đánh giá là tốt và phổ biến nhất hiện nay:
Mai Thị Thoa – 49
th
2 Page
12
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
• The Zend Framework
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
Mai Thị Thoa – 49
th
2 Page
13
Đồ án tốt nghiệp Ngành: Công nghệ thông tin

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 là một trong framework phổ biến nhất hiên nay.

• Symfony
Mai Thị Thoa – 49
th
2 Page
14
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
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
Mai Thị Thoa – 49
th
2 Page
15
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
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
Mai Thị Thoa – 49
th
2 Page
16
Đồ án tốt nghiệp Ngành: Công nghệ thông tin

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ợ.
2.5.4 Khái quát về Kohana Framework
Kohana là một ứng dụng web khuôn khổ cho PHP5 mà thực hiện theo mô hình
Model View Controller (HMVC). Nó được thiết kế để được an toàn, nhẹ, và dễ
sử dụng.
Trong khi việc phát hành ban đầu của Kohana là bản chất là một phiên bản cải
tiến của CodeIgniter
Mai Thị Thoa – 49
th
2 Page
17
Đồ án tốt nghiệp Ngành: Công nghệ thông tin

Nó đòi hỏi rất ít cấu hình, hỗ trợ đầy đủ UTF-8 và I18N, và cung cấp nhiều
công cụ mà một nhà phát triển nhu cầu trong một hệ thống rất linh hoạt. Lớp tích
hợp tự động tải, hệ thống tập tin tầng, API nhất quán cao, và tích hợp dễ dàng với các
thư viện nhà cung cấp làm cho nó khả thi cho bất kỳ dự án lớn hay nhỏ.
Mai Thị Thoa – 49
th
2 Page
18
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
Mô hình MVC của framework Kohana

Tại sao phải sử dụng kohana ?
Kiến trúc của Kohana Framework đuợc thiết kế một cách khá linh động,
giúp người sử dụng vừa sử dụng các features có sẵn mà kohana cung cấp, đồng thời
cho phép mở rộng (extends) các features mà không làm ảnh hưởng đến hệ thống.
Một số tính năng nổi bật của Kohana :
• Dễ dàng mở rộng hệ thống khi cần thiết
• Dễ dàng cập nhật các phiên bản kohana framework mới
• Dễ dàng tích hợp các vendors bên ngoài như các php template engines
(smary, twig , rain tpl ), mail sender (swiff mail), tinymce
• Tích hợp sẳn một số component: encryption, validation, data access (ORM),
code profiling
• So sánh giữa Kohana và zend framework
Mai Thị Thoa – 49
th
2 Page
19
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
Kohana:
- Nhanh chóng , gọn nhẹ.
- Phát triển ứng dụng nhanh
- Tài liệu không quá phức tạp .
Zend framework:
- Chậm, lớn.
- Ứng dụng phát triển nhanh chóng nhưng ít sử dụng.
- Tài liệu phức tạp .
Nếu bạn cần một số tính năng trong Zend thì bạn nên sử dụng Kohana nó mang
tính hiệu quả hơn.
2.5.5 Khái quát simple framework MVC
2.5.5.1 Giới thiệu simple Framework MVC
Mô hình MVC cho Simple framework MVC

Simple framework MVC là một PHP framework theo cấu trúc MVC được viết
trên PHP4 và hỗ trợ cả PHP4 và PHP5 .Nó là một tập hợp các thư viện viết sẵn trên
PHP giúp chúng ta phát triển web bằng PHP nhanh hơn là cách viết lắp ghép thông
thường, các thư viện này giúp chúng ta thực hiện các tác vụ thông thường của một ứng
dụng web như kết nối và thực hiện các công việc liên quan đến cơ sở dữ liệu, upload
file, xử lý hình ảnh, phân trang, cookie, session, bảo mật … Đồng thời các thư viện
này cũng giúp chúng ta tổ chức code tốt hơn với mô hình MVC.
Mai Thị Thoa – 49
th
2 Page
20
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
Cơ bản về simple framework MVC, trong folder cse_wru application trong thư
mục system ta chú ý đến :
File .htaccess để thực hiện rewrite URL, thay đổi request về file index.php sẽ
có tham số route trong query string sẽ chuyển hướng tất cả các yêu đến thư
mục css, images, js, upload…
File Index.php đóng vai trò là bootstrapper cho ứng dụng, nó sẽ nhận yêu cầu
và phân tích nội dung request để chuyển tới file php khác thực hiện xử lý thích
hợp. Nó là nơi để cấu hình hoàn toàn trang web
File Defile.php dùng để kết nối với cơ sở dữ liệu, kết nối các thư mục …
Thư mục core là thư mục chứa các file cơ bản và tổng quát nhất :
− Ta chú ý đến file ConfigDb.php dùng để cấu hình thông tin liên quan đến
cơ sở dữ liệu.Tại đây sẽ khai báo tất cả các bảng và các field ,khóa
chính… trong cơ sở dữ liệu
− File Config.php để điều phối hay chỉ đường, nó dùng để cấu hình thông tin
tên site.url.
− Ngoài ra trong thư mục này còn chứa các file như BaseLogic.php,
BaseBlock.php, BaseDb.php… các file này gồm những hàm được viết
tổng quát nhất.File BaseDb.php dùng để viết các hàm insert, update, delete

và select tác động trực tiếp vào Database.
Trong thư mục Action Nơi đặt các file thực hiện chức năng controller trong
MVC ( điều hướng và xử lý yêu cầu ).
Trong thư mục logic chứa các file thực hiện chức năng model trong MVC, cụ
thể ở đây có thể là các file giúp bạn thao tác với cơ sở dữ liệu theo yêu cầu từ
controller.
Trong thư mục db sẽ truy xuất dữ liệu vào trong databse.
Trong thư mục views chứa các file thực hiện tác vụ view trong mô hình MVC,
cứ tạm xem nó là nơi chứa file giao diện cho ứng dụng. Tại file này nó sẽ hiển
thị dữ liệu ra giao diện người dùng
Ngoài ra còn có các thư mục khác như image, upload ,css, js…
Tóm lại, trong MVC controler là phần kết nối điều khiển truy suất giữu view và
Mai Thị Thoa – 49
th
2 Page
21
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
model. View để hiển thị định dạng ra browser còn Model đóng vai trò là người quản lý
dữ liệu(truy suất hay cập nhật dữ liệu phải qua model).
2.5.5.2 Lợi ích khi sử dụng simple framework MVC
Việc phát triển sử dụng simple frameworks MVC cho nhiều lý do khác nhau,
nhưng một số lý do cơ bản nhất và dễ hiểu nhất là tiết kiệm thời gian phát triển ứng
dụng web PHP. Dùng lại mã qua các dự án tương tự sẽ tiết kiệm được rất nhiều các
nhà phát triển một số lượng đáng kể về thời gian và nỗ lực trong dự án.simple
Frameworks MVC cung cấp mô-đun trước được xây dựng để thực hiện nhiệm vụ tẻ
nhạt mã hóa, do đó, các nhà phát triển có thể dành nhiều thời gian của họ vào việc phát
triển các ứng dụng thực tế hơn là tái xây dựng nền tảng với nhau và mỗi dự án.
Khi làm việc trên một dự án có giới hạn về thời gian, sử dụng simple
frameworks MVC có vẻ như là một giải pháp tối ưu nhất nhằm đẩy nhanh quá trình
viết mã. Vì vậy, nếu bạn đang trong thời gian khủng hoảng và cấp bách nhất của dự án

đòi hỏi gấp rút về thời gian, PHP frameworks lợi thế sẵn có bạn có thể sử dụng bất kỳ
lúc nào bạn muốn. Một ví dụ khác, nên xem xét là khi bạn làm việc trên một dự án
kiếm khá nhiều tiền… và giúp công việc trôi chảy kinh doanh phát đạt hơn.
Nói tóm lại, sự sẵn có của simple frameworks MVC một điều tuyệt vời. Bạn
thậm chí có thể tạo riêng cho bạn, mặc dù các nhà phát triển nhiều bầu chọn từ bất
frameworks nổi tiếng nhất do sự phổ biến của chúng, hỗ trợ rộng lớn, và các diễn
đàn/cộng đồng cho phép bạn tương tác với các nhà phát triển khác, những người sử
dụng cùng một frameworks. Lưu ý, bạn nên luôn luôn kiểm tra dự án đầu tiên của bạn
để quyết định xem bạn có nên sử dụng một frameworks hay không. Một số câu hỏi bạn
nên hỏi bản thân bạn là: nó sẽ giúp bạn tiết kiệm, và bất kỳ ai khác có thể sử dụng nó,
thời gian và công sức? Ứng dụng sẽ hoạt động tốt hơn? Nó sẽ cải thiện sự ổn định?
Nếu bạn có thể có câu trả lời bất kỳ câu hỏi nào, một simple frameworks MVC có thể
là câu trả lời đúng cho rằng dự án cụ thể.
Mai Thị Thoa – 49
th
2 Page
22
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
CHƯƠNG 3: Phân tích thiết kế hệ thống
3.1 Khảo sát hệ thống
3.1.1 Xác định các yêu cầu hệ thống
3.1.1.1 Đối với người duyệt web
Website đảm bảo các yêu cầu sau:
• Website cung cấp giao diện đồ họa trực quan giúp người duyệt Web,
• Có thể dễ dàng tra cứu, đọc thông tin một cách nhanh chóng.
• Cung cấp các chức năng tìm kiếm.
• Có thể có phản hồi đối với bài viết.
• Đăng ký tham dự khuyến mãi.
• Hiển thị bài viết theo chuyên mục.
3.1.1.2 Đối với người quản trị web.

Để có thể thực hiện những tác vụ của người quản trị, hệ thống sẽ yêu cầu người
quản lý đăng nhập vào hệ thống. Sau khi đăng nhập website cung cấp các chức năng:
• Quản lý dữ liệu: tiến hành cập nhập, thêm mới hay xóa bỏ các dữ liệu
không phù hợp.
• Quản lý user: Thêm user, kiểm tra tính hợp lệ, thay đổi một số thông tin
hay xóa bỏ quyền truy xuất .
• Kết nối cơ sở dữ liệu.
• Phân quyền quản lý.
• Quản lý bài viết:thêm, sửa,xóa dữ liệu phù hợp.
• Quản lý theo danh mục
• Quản lý phản hồi :Xóa bỏ phản hồi .Trả lời góp ý.
• Quản lý khuyến mãi
Mai Thị Thoa – 49
th
2 Page
23
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
• Thay đổi mật khẩu khi cần thiết để đảm bảo tính bảo mật và an toàn cho
Website.
3.1.2 Mô tả chi tiết chức năng với từng đối tượng sử dụng hệ thống
3.1.2.1 Đối với người duyệt web
• Xem thông tin hiển thị theo danh mục
Mục đích Chức năng cho phép độc giả có thể xem thông tin trang tin
Dữ liệu
vào
Lựa chọn thông tin theo danh mục menu
Xử lý Lấy thông tin theo danh mục từ Database.
Dữ liệu ra Hiển thị thông tin được yêu cầu.
• Xem chi tiết tin tức
Mục đích Chức năng cho phép độc giả có thể xem chi tiết một tin tức.

Dữ liệu
vào
Lựa chọn mục tin muốn xem.
Xử lý Lấy mục tin từ Database.
Dữ liệu ra Hiển thị thông tin được yêu cầu.
Mai Thị Thoa – 49
th
2 Page
24
Đồ án tốt nghiệp Ngành: Công nghệ thông tin
• Tìm kiếm tin tức
Mục đích Cho phép người xem tìm kiếm các tin tức .
Dữ liệu
vào
Nhập từ khóa muốn tìm.
Xử lý Truy vấn trong cơ sở dữ liệu, hiện kết quả.
Dữ liệu ra Hiển thị các thông tin chi tiết.
• Gửi phản hồi
Mục đích
Chức năng cho phép độc gửi ý kiến bình luận về một bài
viết.
Dữ liệu
vào
Thông tin người gửi, nội dung góp ý
Xử lý Thêm thông tin vào cơ sở dữ liệu
Dữ liệu ra Hiển thị thông tin góp ý.
Mai Thị Thoa – 49
th
2 Page
25

×