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

LUẬN VĂN HỆ THỐNG QUẢN LÝ ĐOÀN VIÊN KHOA HỌC TỰ NHIÊN

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 (2.26 MB, 86 trang )

TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CNTT & TT
BỘ MÔN TIN HỌC ỨNG DỤNG


LUẬN VĂN

HỆ THỐNG QUẢN LÝ ĐOÀN VIÊN
KHOA KHOA HỌC TỰ NHIÊN

SINH VIÊN THỰC HIỆN

CÁN BỘ HƯỚNG DẪN

Cần Thơ - 2015


TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CNTT & TT
BỘ MÔN TIN HỌC ỨNG DỤNG


LUẬN VĂN

HỆ THỐNG QUẢN LÝ ĐOÀN VIÊN
KHOA KHOA HỌC TỰ NHIÊN
SINH VIÊN THỰC HIỆN

CÁN BỘ HƯỚNG DẪN

Cần Thơ - 2015




LỜI CẢM ƠN
Đầu tiên, em xin gởi lời cảm ơn chân thành đến quý thầy cô trường Đại học Cần
Thơ, đặc biệt là thầy cô thuộc bộ môn Tin học ứng dụng, khoa Công Nghệ Thông Tin
& Truyền Thông đã tạo cho em một môi trường học tập tốt và dạy dỗ, truyền đạt
những kiến thức quý báo cho em trong hơn 3 năm học tập rèn luyện tại trường.
Em xin cảm ơn Ths.Võ Hải Đăng đã tận tình giúp đỡ, hướng dẫn em xây dựng Hệ
Thống Quản Lý Đoàn Viên Khoa Khoa Học Tự Nhiên-phân hệ quản lý và hoàn
thành các công việc được giao đúng thời gian quy định.
Em cũng xin cảm ơn gia đình đã nhiệt tình khuyến khích, động viên, giúp đỡ em.
Em xin cám ơn bạn bè, những người đã đưa ra những lời khuyên cũng như góp ý có
ích giúp em hoàn thiện đề tài này.
Với vốn kiến thức hạn hẹp cùng thời gian có hạn nên em không tránh khỏi những
thiếu sót và hạn chế. Em rất mong nhận được những ý kiến đóng góp, phê bình của
quý thầy cô. Đó là cơ sở để giúp em tiếp tục nghiên cứu và hoàn thiện hệ thống , và
đây cũng là hành trang quý báu giúp em nâng cao kiến thức.
Em xin chân thành cảm ơn!


MỤC LỤC

Trang

DANH MỤC HÌNH........................................................................................................i
CHƯƠNG 1.DANH MỤC BẢNG................................................................................ii
TÓM TẮT..................................................................................................................... iv
ABSTRACT..................................................................................................................v
CHƯƠNG 2.TỔNG QUAN...........................................................................................1
1.1. ĐẶT VẤN ĐÊ..................................................................................................................1

CHƯƠNG 2. LỊCH SỬ GIẢI QUYẾT VẤN ĐÊ...................................................................2
CHƯƠNG 3. MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU.....................................................2
3.1.1. Mục Tiêu Nghiên Cứu...................................................................................................2
3.1.2. Phạm Vi Nghiên Cứu....................................................................................................2
Sử dụng ngôn ngữ kịch bản PHP kết hợp với hệ quản trị CSDL MySQL.............................2
Xây dựng ứng dụng với Laravel............................................................................................2
Sử dụng web Server Apache chạy trên hệ điều hành mã nguồn mở Linux giúp tiết kiệm
được rất nhiều chi phí..............................................................................................................2
Sư dụng hệ thống chứng thực người dùng thông qua dich vụ của Google giúp bảo mật tốt
hơn...........................................................................................................................................2
3.2. PHƯƠNG PHÁP NGHIÊN CỨU VÀ GIẢI QUYẾT VẤN ĐÊ.....................................3
3.2.1. Phương Pháp Nghiên Cứu.............................................................................................3

CHƯƠNG 3.CƠ SỞ LÝ THUYẾT................................................................................4
2.1. GIỚI THIỆU VÊ PHP FRAMEWORK...........................................................................4
2.1.1. Framework là gì?..........................................................................................................4
2.1.2. Giới Thiệu PHP Framework..........................................................................................4
2.1.3. Những điểm cần lưu ý khi sử dụng một PHP framework?...........................................5
2.1.4. Các Loại PHP Framework phổ biến..............................................................................6
2.2. MÔ HÌNH MVC..............................................................................................................8
2.2.1. Mô hình MVC là gì?.....................................................................................................8
2.2.2. MVC làm việc như thế nào?.......................................................................................10
2.2.3. Ưu và khuyết điểm của MVC.....................................................................................11
2.2.4. So sánh mô hình MVC với mô hình 3 lớp..................................................................11
2.3. LARAVEL FRAMEWORK...........................................................................................13
2.3.1. Giới Thiệu Laravel Framework...................................................................................13
2.3.2. Kiến trúc Laravel Framework.....................................................................................13
2.3.3. Ưu và khuyết điểm của Laravel Framework...............................................................14
2.3.4. Cách thức hoạt động của Laravel Framework............................................................15
2.3.4.1. Model.......................................................................................................................16

2.3.4.2. View.........................................................................................................................16
2.3.4.3. Controller.................................................................................................................16
2.3.4.4. Eloquent ORM.........................................................................................................16
2.3.4.5. Schema Builder........................................................................................................17
2.3.4.6. Migration..................................................................................................................17
2.3.5. Tìm hiểu về Composer................................................................................................17
2.3.6. Một số thư viện/gói hữu ích trong Laravel Framework..............................................18
2.4. OAUTH..........................................................................................................................19
2.4.1. Tổng quan về xác thực................................................................................................19
2.4.2. Giao thức xác thực OAuth..........................................................................................19
2.4.2.1. OAuth – phương thức xác thực mở..........................................................................19
2.4.2.2. Cách hoạt động của OAuth......................................................................................20


1. Client đăng ký sử dụng dịch vụ với Server.......................................................................20
2. Server cho Client...............................................................................................................20
CONSUMER_KEY.............................................................................................................20
CONSUMER_SECRET_KEY............................................................................................20
3. Client sử dụng các keys trên để thực hiện Authorization..................................................20
1. Client đăng ký sử dụng dịch vụ với Server.......................................................................20
2. Server cho Client...............................................................................................................20
CONSUMER_KEY.............................................................................................................20
CONSUMER_SECRET_KEY............................................................................................21
3. User có tài nguyên ở Server..............................................................................................21
4. User sử dụng dịch vụ ở Client, Client yêu cầu User cho phép khai thác tài nguyên của
User ở Server.........................................................................................................................21
5. Client yêu cầu Server gửi REQUEST_TOKEN cho User................................................21
6. Client chuyển User đến Server Authentication.................................................................21
7. User đăng nhập vào Server, Server hỏi User có muốn chia sẻ quyền khai thác dữ liệu cho
Client hay không...................................................................................................................21

8. User đồng ý, Server chuyển User về Client kèm theo ACCESS_TOKEN.......................21
9. Client sử dụng ACCESS_TOKEN để thực hiện thao tác trên các tài nguyên của User
thuộc Server...........................................................................................................................21
2.4.3. Sử dụng Oauth trong Laravel......................................................................................21
Truy cập trang: />Tạo một dự án mới với tính năng OAuth.............................................................................21
...............................................................................................................................................22
Chọn APIS & AUTH –> APIs từ thanh Menu và kích hoạt dịch vụ Google+API..............22
...............................................................................................................................................22
Chọn APIS & AUTH –> credentials từ thanh Menu trái.....................................................22
...............................................................................................................................................23
Nhấn nút Create new Client ID và điền các thông tin cần thiết, chú ý chọn Application
Type là Web application........................................................................................................23
Sau khi điền đầy đủ thông tin ta nhận được client Id, secret key và các thông tin khác như
hình dưới...............................................................................................................................24
...............................................................................................................................................24
Chọn Create New Key để tạo server key. Ta sẽ bảo mật key này........................................24
Như vậy ta đã cài đặt thành công. Mỗi lần người dùng yêu cầu chứng thực bằng tài khoản
google, màn hình sau sẻ xuất hiện:.......................................................................................25
...............................................................................................................................................25
Thêm oauth-4-laravel vào tập tin composer.json (tức đăng ký thư viện artdarek/oauth-4laravel với Laravel ):.............................................................................................................25
Update lại dự án với lệnh cmd:............................................................................................25
Tự động tạo tập tin cấu hình với lệnh cmd:.........................................................................25
Mở tập tin ở đường dẫn app/config/packages/artdarek/oauth-4-laravel/config.php và cấu
hình với thông tin chứng chỉ đã tạo ở Bước 1.......................................................................25

CHƯƠNG 4. NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU.........................................27
3.1. ĐẶC TẢ HỆ THỐNG....................................................................................................27
3.1.1. Giới Thiệu...................................................................................................................27
3.1.2. Mô Tả Tổng Thể.........................................................................................................27
3.1.2.1. Mô tả thực trạng.......................................................................................................27

3.1.2.2. Các chức năng của hên thống...................................................................................27
3.1.3. Mô Tả Chi Tiết............................................................................................................28
3.2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG...........................................................................30


3.2.1. Sơ đồ hoạt vụ(Use Case).............................................................................................30
3.2.2. Sơ đồ tuần tự...............................................................................................................38
3.2.3. Mô hình dữ liệu mức quan niệm(Conceptual Data Model)........................................45
3.2.4. Mô hình dữ liệu vật lý(Physical Data Model).............................................................46
3.2.5. Mô hình Tập thực thể..................................................................................................47
3.3. XÂY DỰNG CHƯƠNG TRÌNH...................................................................................64
Quản lý đoàn viên: thêm, xóa, cập nhật các thông tin trạng thái đoàn viên, cập nhật thành
tích học tập điểm rèn luyện, tìm kiếm đoàn viên theo mã số , thống kê các thông tin liên
quan.......................................................................................................................................64
Quản lý chi đoàn: thêm, xóa cập nhật thông tin trạng thái liên quan Chi Đoàn, quản lý
danh sách lưc lượng nòng cốt hằng năm...............................................................................64
Quản lý khen thưởng: thêm, xóa, câp nhật các đợt khen thưởng trong học kỳ, xét duyệt các
danh sách đề cử do ban chấp hành các chi đoàn gữi lên.......................................................64
Quản lý hoạt động: thêm, xóa, cập nhật các hoạt động đoàn khoa trong học kỳ, xét duyệt
các hoạt động của các chi đoàn đăng ký, thống kê các hoạt động nhằm làm cơ sở xét thi
đua.........................................................................................................................................64
Quản lý đoàn phí: thêm, xóa, cập nhật các mức đoàn phí hàng năm, quản lý thu đoàn phí từ
các chi đoàn, thông kê nhằm làm cơ sở xét thi đua..............................................................64
Phân quyền...........................................................................................................................64
Số lượng hoạt động chi đoàn chờ duyệt...............................................................................65
Số lượng chi đoàn cơ sở.......................................................................................................65
Số lượng đoàn viên..............................................................................................................65
…..........................................................................................................................................65
Thông tin về đợt khen thưởng đang xét duyệt.....................................................................68
Danh sách các đoàn viên được đề cử được lọc theo chi đoàn, người quản lý có thể xem các

thành tích hoạt động của các đoàn viên được đề cử và quyết định có chấp nhận hay không.
...............................................................................................................................................68
Loại hoạt động.....................................................................................................................70
Tiêu đề..................................................................................................................................70
Địa điểm...............................................................................................................................70
Thời gian..............................................................................................................................70
Thời hạn...............................................................................................................................70
Ghi chú.................................................................................................................................70

KẾT LUẬN VÀ ĐÊ NGHỊ..........................................................................................74
Giao diện thân thiện với người dùng....................................................................................74
Dễ quản lý và thay đổi nội dung..........................................................................................74
Có thể áp dụng vào thực tế...................................................................................................74

TÀI LIỆU THAM KHẢO............................................................................................75


DANH MỤC HÌNH

i

Trang


CHƯƠNG 1.....................................................................DANH MỤC BẢNG

ii


DANH MỤC CÁC KÝ HIỆU, CHỬ VIẾT TẮT

API

Application Programming Interface - Giao diện lập trình ứng
dụng

CNTT

Công nghệ thông tin

CSDL

Cơ sở dữ liệu

HTML

HyperText Markup Language

HTTP

Hypertext Transfer Protocol

HTTPS

Hypertext Transfer Protocol Secure

WAMP

Window+Apache+MySQL+PHP

MVC


Model View Controller

DBMS

Database management systems

RDBMS

Relational database management system

ORM

Object-relational mapping

SQL

Structured Query Language

OAuth

Open standard for authorization

iii


TÓM TẮT
Mục tiêu của luận văn này này là tìm hiểu về Laravel , một PHP Framework
mới , và sử dụng nó một cách hiệu quả để xây dựng hệ thống quản lý đoàn viên
khoa Khoa Học Tự Nhiên. Hệ thống này cho phép các quản trị viên quản lý tốt hơn

các thông tin và các nghiệp vụ liên quan đến lĩnh vực đoàn. Để thực hiện , hệ thống
được xây dựng trên nền tảng web và dựa trên các tính năng của Framework Laravel
như Composer, Eloquent, Blade và Artisan và WAMP server.
Chương trình được xây dựng trên Framework Laravel 4.2, một PHP Framework
hiện đại giúp cho việc lập trình PHP dễ dàng hơn, nhanh hơn và trực quan hơn. Ứng
dụng được xây dựng theo kiến trúc mô hình MVC. Ứng dụng sử dụng Oauth để xác
thực người dùng dựa trên tài khoản Google giúp tăng tính bảo mật.
Ứng dụng có thể dễ dàng được mở rộng ,các tính năng có thể được thêm vào
hoặc gỡ bỏ một cách dể dàng nhờ khả năng quản lý các gói thông qua Composer’s
Packagist trực tuyến của Framework Laravel.
Các kết quả đã chứng tỏ rằng Laravel là một Framwork PHP hiệu quả vói khả
năng giúp các lập trình viên nhanh chóng xây dựng các ứng dụng web an toàn đầy
đủ chức năng và có thể nâng cấp dể dàng.
Từ khóa : Laravel , Oauth , PHP Framework , MVC

iv


ABSTRACT
The purpose of this thesis work was to learn a new PHP framework and use it
efficiently to build Youth Union of the Faculty of Natural Science Management
System which will allow the administrators to better manage the infomations of
their Union include. To fulfil this set of requirements, a system consisting of a web
application with a backend was designed and implemented using built in Laravel
features such as Composer, Eloquent, Blade and Artisan and a WAMP stack.
The web application was built using the Laravel framework version 4, a modern
PHP framework that aims at making PHP development easier, faster and more
intuitive. The web application was built following the MVC architecture pattern.
Admin panels were created for easily updating and managing the categories and
products and uploading product images as well. A public interface was made

available also to let registered users to log in with google acount using OAuth.
The application is easily expandable and features can be added or removed
effortlessly thanks to the Laravel’s ability to manage packages through Composer’s
Packagist online repository.
The results proved that Laravel 4.2 is effectively a premium choice for a PHP
framework that helps developers rapidly build secure, upgradable web applications.
Key world : Laravel , Oauth , PHP Framework , MVC

v


CHƯƠNG 2. TỔNG QUAN
1.1. ĐẶT VẤN ĐÊ
Xã hội ngày càng phát triển, cuộc sống con người mỗi lúc được cải thiện hơn do
nhu cầu sống, làm việc và giải trí của con người ngày càng tăng cao. Để đáp ứng
nhu cầu đó của xã hội, nhiều công nghệ tiên tiến mới ra đời và con người đã áp
dụng các công nghệ đó trong cuộc sống một cách hiệu quả nhất.
Nói đến công nghệ thông tin là nói đến sự tiện lợi và nhanh chóng của những lợi
ích mà công nghệ đem lại cho con người. Công nghệ thông tin đang dần đi sâu vào
từng lĩnh vực của đời sống xã hội. Việc ứng dụng rộng rãi công nghệ thông tin trong
mọi lĩnh vực đã đem lại nhiều lợi ích thiết thực, góp phần xây dựng đất nước ta
trong thời kỳ công nghiệp hóa hiện đại hóa. Nhờ có công nghệ thông tin mà chúng
ta có thể tìm kiếm, khai thác và quản lý một lượng lớn các thông tin, dữ liệu một
cách nhanh chóng và thuận tiện. Công nghệ thông tin trở thành một phần không thể
thiếu trong cuộc sống, giúp chúng ta giải quyết những vấn đề đau đầu nhất như tính
toán những con số lớn và lưu trữ dữ liệu khổng lồ một cách dễ dàng.
Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các phần mềm càng
trở nên đa dạng, phong phú, hoàn thiện hơn và hỗ trợ hiệu quả cho con người. Các
phần mềm hiện nay ngày càng hỗ trợ cho người dùng thuận tiện sử dụng, thời gian
xử lý nhanh chóng, và một số nghiệp vụ được tự động hóa cao. Do vậy mà trong

việc phát triển phần mềm, sự đòi hỏi không chỉ là sự chính xác, xử lý được nhiều
nghiệp vụ thực tế mà còn phải đáp ứng yêu cầu khác như về tốc độ, giao diện thân
thiện, mô hình hóa được thực tế vào máy tính để người dùng sử dụng tiện lợi, quen
thuộc, tính tương thích cao, bảo mật cao,… .Các phần mềm giúp tiết kiệm một
lượng lớn thời gian, công sức của con người, tăng độ chính xác và hiệu quả trong
công việc.
Cụ thể trong việc quản lý thông tin đoàn viên, chi đoàn tại Đoàn Khoa Khoa Học
Tự Nhiên – Đại Học Cần Thơ đã ngày càng phổ biến. Các công việc này đòi hỏi
nhiều thời gian và công sức mà sự chính xác không cao nếu làm thủ công và không
mang tính tự động. Một số nghiệp vụ như tra cứu, thống kê, hiệu chỉnh thông tin rất
vất vả. Ngoài ra còn một số khó khăn về dữ liệu lưu trữ lớn, dễ thất lạc và tốn
kém…. Xuất phát từ nhu cầu trên và yêu cầu thực tế tại phòng, việc xây dựng một
hệ thống quản lý đoàn viên là rất cần thiết, từ kiến thức đã học tôi đã tiến hành xây
dựng “hệ thống quản lý Đoàn viên khoa Khoa Học Tự Nhiên – phân hệ quản lý”.
Giúp nâng cao hiệu quả quản lý của đoàn khoa, tiết kiệm chi phí quản lý, nhanh

1


chóng, chính xác và thuận tiện khi chúng ta có thể quản lý ở bất kỳ đâu, bất kỳ thời
điểm nào.
CHƯƠNG 2.

LỊCH SỬ GIẢI QUYẾT VẤN ĐÊ

Hệ thống quản lý đoàn viên đã được Đoàn trường trường Đại Học Cần Thơ phát
triển từ trước và đang được sử dụng chung bởi tất cả các khoa. Tuy nhiên hệ thống
lại được xây dựng để quản lý ở mức tổng hợp dẫn đến một vài tính năng không thực
sự phù hợp với yêu cầu thực tế từ Đoàn khoa Khoa Học Tự Nhiên gây khó khăn
cho quá trình quản lý. Vì vậy việc xây dưng lại hệ thống đúng theo các yêu cầu

quản lý thực tế của khoa là cần thiết.
CHƯƠNG 3.

MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU

3.1.1. Mục Tiêu Nghiên Cứu
- Tìm hiểu về PHP Framework, Laravel Framework và mô hình MVC, công
nghệ OAuth.
- Khảo sát, thu thập dữ liệu, phân tích thiết kế hệ thống.
- Tìm hiểu và nâng cao hiểu biết về một số công cụ và ngôn ngữ hỗ trợ quá
trình xây dựng hệ thống.
- Vận dụng tổng hợp những kiến thức đã học để tiến hành xây hệ thống quản lý
Đoàn viên khoa Khoa Học Tự Nhiên-phân hệ quản lý .
3.1.2. Phạm Vi Nghiên Cứu
Trong quá trình thực hiện đề tài, tôi xác định phạm vi đề tài tập trung vào những
lĩnh vực chủ yếu sau:
- Tìm hiểu về PHP Framework, Laravel và mô hình MVC, công nghê OAuth.
- Hình thức và phương thức hoạt động quản lý Đoàn viên tại Đoàn Khoa Khoa
Học Tự Nhiên –Đại Học Cần Thơ.
- Ứng dụng các kỹ thuật lập trình web để xây dựng chương trình:
+ Sử dụng ngôn ngữ kịch bản PHP kết hợp với hệ quản trị CSDL MySQL.
+ Xây dựng ứng dụng với Laravel.
+ Sử dụng web Server Apache chạy trên hệ điều hành mã nguồn mở Linux
giúp tiết kiệm được rất nhiều chi phí.
+ Sư dụng hệ thống chứng thực người dùng thông qua dich vụ của Google
giúp bảo mật tốt hơn.

2



3.2. PHƯƠNG PHÁP NGHIÊN CỨU VÀ GIẢI QUYẾT VẤN ĐÊ
3.2.1. Phương Pháp Nghiên Cứu
Phương pháp nghiên cứu là một vấn đề quan trọng quyết định đến sự thành công
của đề tài. Trong quá trình nghiên cứu đề tài luận văn này, tôi đã đề ra phương pháp
nghiên cứu sau:
- Tìm hiểu về PHP Framework, lợi ích và ưu điểm của PHP Framework.
- Các thành phần, cách thức hoạt động, ưu và khuyết điểm của mô hình MVC.
- Thành phần, cấu trúc và hoạt động Laravel Framework.
- Thu thập yêu cầu và hoạt động quản lý Đoàn viên tại Đoàn Khoa Khoa Học
Tự Nhiên –Đại Học Cần Thơ.
- Thiết kế mô hình, CSDL; tìm hiểu công nghệ thông qua các tài liệu có liên
quan.
- Lập trình, thiết kế giao diện, cài đặt chương trình.
- Kiểm thử hệ thống trước khi triển khai ứng dụng hoạt động.
- Triển khai và bảo trì hệ thống.

3


CHƯƠNG 3. CƠ SỞ LÝ THUYẾT
2.1.

GIỚI THIỆU VÊ PHP 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ữ kịch bản rất phổ biến hiện nay bởi lý do: linh
hoạt, dễ sử dụng, 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 chúng ta.
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 chúng ta 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 CSDL, mã (PHP) và giao diện (HTML)
một cách riêng biệt. Điều này cho phép chúng ta 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 dự án.


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 chúng ta lựa chọn, thậm
chí chúng ta có thể tự tạo ra một 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 chúng ta 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 framework đó, ngoài ra ứng dụng web của chúng ta được phát triển
bởi bao nhiêu người cũng là một điều nên lưu ý. Một PHP framework càng được
phổ biến, tức là PHP framework đó càng được nhiều người sử dụng và phát triển.
Mặt khác, nếu chúng ta muốn xây dựng ứng dụng cho website của riêng mình, tốt
4



nhất chúng ta nên chọn một PHP framework phù hợp và dễ sử dụng nhất đối với
nhu cầu của chúng ta – không quan trọng framework đó có được nhiều người sử
dụng hay không.
Các yếu tố chúng ta nên lưu ý trước khi muốn tìm kiếm một 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 nhà phát triển, 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à điểm mạnh khác nhau, ví dụ Larvel Framework
rất mới, được phổ biến từ phiên bản 3.0 và có đầy đủ các tính năng mạnh mẽ, cộng
thêm một cộng đồng phát triển hỗ trợ pakage rộng lớn. Ngược lại, Zend PHP lại là
một loại PHP framework khác,ra đời từ sớm, củng có cộng đồng phát triển hỗ trợ
không kém Laravel, nhưng Zend PHP càng ngày càng ít người dùng vì tính phức
tạp của nó.
Như chúng ta có thể thấy, mỗi loại PHP framework đều có lợi thế riêng của
framework đó, thế nên tốt nhất là chúng ta 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.

2.1.3. Những điểm cần lưu ý khi sử dụng một 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 chúng ta 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 chúng ta.
Tuy nhiên, chúng ta vẫn phải có những chú ý khi sử dụng bất kỳ PHP framework
nào. Ví dụ, nếu chúng ta không phải là một chuyên gia lập trình PHP, chúng ta nên
sử dụng một loại framework phổ biến, có một 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 chúng ta không bảo đảm được cấu hình đề xuất
phiên bản CSDL và web server tương thích với framework. Ví dụ, Laravel
Framework đề xuất cấu hình như sau:
- PHP: phiên bản PHP 5.4.0 hoặc mới hơn.

- MySQL: phiên bản MySQL 4.0.x, 4.1.x , 5.0.x đều được hổ trợ. Vẫn có thể sử
dụng phiên bản thấp hơn như 3.2.3x mặc dù không được khuyến khích.
- Apache: Làm việc tốt với các phiên bản Apache 1.3, 2.x .

5


Nếu chúng ta không đáp ứng được các yêu cầu này, thì framework sẽ không thể
hoạt động một cách hiệu quả được. Thậm chí nếu chúng ta là một chuyên gia PHP,
chúng ta 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 framework đó. Ngoài ra việc xem hướng dẫn
cài đặt của một framework sẽ giúp chúng ta 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.4. Các Loại PHP Framework phổ biến
- Zend Framework có một 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ó một
cộng đồng người dùng tích cực, Zend được gọi là “Công ty PHP”. Zend là
một trong những framework phổ biến nhất hiện nay. Zend Framework 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à chúng ta cần
phải có lượng kiến thức khá sâu rộng về PHP để có thể sử dụng được Zend
Framework.
- CakePHP là một 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. CakePHP dựa trên cùng một nguyên tắc thiết kế với Ruby on
Rails, là một framework mạnh về khía cạnh phát triển nhanh chóng, 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
một trong những framework 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à một PHP
framework mã nguồn mở với đầy đủ các tính năng cần thiết. Nhưng Symfony

có vẻ chạy chậm hơn các framework khác.
- Codelgniter được biết đến như một 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 một số 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 một người mới làm quen với framework.
- Seagull cũng là một PHP framework tốt phục vụ cho việc xây dựng website và
các GUI. Seagull là một 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 một
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
chúng ta. Đố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ợ.
6


- Laravel: trước hết, sự tinh tế của Laravel nằm ở chỗ bắt kịp được xu hướng
công nghệ mà điểm nhấn ở đây là các tính năng mới trong các phiên bản PHP
5.4 trở lên. Điều đó được thể hiện qua khái niệm namespace, composer,
closure và rất nhiều những tiêu chuẩn trong design pattern được áp dụng trên
nền tảng framework này. Đồng thời, với cách hướng dẫn đơn giản và dễ tiếp
cận giống với Codeigniter Framework đã khiến người dùng thích ngay từ lần
đầu làm việc với framework này. Laravel 4 cũng có sự tích hợp của một phần
trong thư viện symfony và áp dụng triệt để mô hình ORM với khái niệm liên
quan đến Eloquent class. Đồng thời, nó cũng giải quyết được những vấn đề mà
các framework khác đang mắc phải. Chẳng hạn như master layout, mô hình xử

lý với ORM dễ dàng hơn và dễ mở rộng hơn.

Tóm Lại:
PHP framework là một 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 chúng ta cải
thiện tốc độ phát triển ứng dụng, PHP framework còn giúp chúng ta giảm thiểu các
lỗ hổng bảo mật một cách triệt để. PHP framework phù hợp cho cả những người
mới làm quen hay những người đã 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
chúng ta 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à
Laravel.

7


2.2. MÔ HÌNH MVC
2.2.1. Mô hình MVC là gì?

Hình 2. 1 Hoạt động của mô hình MVC

Cách thức làm việc của một PHP framework phải kể đến Model – View Controller (MVC).
MVC là một mô hình trong lập trình, cho phép tách biệt các mã nghiệp vụ
(bussiness logic) và giao diện (UI) thành các thành phần riêng biệt.

8



Hình 2. 2 Các thành phần của mô hình MVC

Model ( Tầng dữ liệu ): được giao nhiệm vụ cung cấp dữ liệu cho CSDL 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 đến Controller và được kiểm tra ở
Model trước khi lưu vào CSDL. Việc truy xuất, xác nhận, và lưu dữ liệu là một
phần của Model.
View( Tầng giao diện ): 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 controller, sau đó là nhận lại các phản hồi từ controller 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 tập tin
nguồn là một phần của thành phần View.
Trong các web framework, View gồm 2 phần chính:
- Tập tin mẫu định nghĩa cấu trúc và cách thức trình bày dữ liệu cho người
dùng. Ví dụ như layout, color, windows…
- Logic xử lý cách áp dụng dữ liệu vào cấu trúc trình bày. Logic này có thể bao
gồm việc kiểm tra định dạng dữ liệu, chuyển đổi định dạng dữ liệu sang một
dạng dữ liệu trung gian, lựa chọn một cấu trúc hiển thị phù hợp.
Controller ( Tầng điều khiển ): controller đảm nhiệm việc cập nhật bộ phận
hiển thị (View) khi cần thiết. Bộ điều khiển này nhận dữ liệu nhập từ người dùng,
truy xuất các thông tin cần thiết từ mô hình trong (Model), và cập nhật thích hợp
phần hiển thị (View). Giao diện với người sử dụng phần mềm được thiết lập nhờ sự
9


tương tác qua lại giữa View và Controller: hai bộ phận này chính là phần trình bày
bên ngoài của đối tượng biểu diễn bên trong.
Tóm lại: MVC chia nhỏ quá trình xử lý của một ứng dụng, giúp người lập trình
làm việc trên từng thành phần riêng lẻ, không ảnh hưởng đến các thành phần khác,
giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp.


2.2.2. MVC làm việc như thế nào?
Nhìn sơ đồ hình 2.3 (trang 11), ta thấy có mũi tên nét liền và những mũi tên nét
đứt. Những mũi tên nét đứt được hình thành trên quan điểm của người dùng mà
không phải là của những nhà thiết kế phần mềm thực sự. Do đó chúng ta chỉ quan
tâm đến những mũi tên còn lại.
Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:
- Người dùng tương tác với View, bằng cách chọn vào nút, người dùng gửi yêu
cầu đi.
- Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model.
- Model nhận thông tin và thực thi các yêu cầu.
- Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại
cho người dùng.

10


Hình 2. 3 Sơ đồ làm việc của mô hình MVC

2.2.3. Ưu và khuyết điểm của MVC
 Ưu điểm
- Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia cho nhiều nhóm
được đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật, lập trình đến tổ
chức CSDL. Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp.
- Bảo trì: Với các lớp được phân chia theo như đã nói, thì các thành phần của
một hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trong
từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của lớp đó, chứ không phát
tán náo loạn trong cả chương trình.
- Mở rộng: Với các lớp được chia theo ba lớp như đã nói, việc thêm chức năng
vào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác.



Khuyết Điểm

- Đối với dự án nhỏ việc áp dụng mô hình MVC gây cồng kềnh, tốn thời gian
trong quá trình phát triển.
- Tốn thời gian trung chuyển dữ liệu của các tầng.

2.2.4. So sánh mô hình MVC với mô hình 3 lớp
 Giống nhau
Cả hai đều tách rời programming core/business logic ra khỏi những phụ thuộc về
tài nguyên và môi trường.
Trong một ứng dụng nhỏ, MVC thể hiện thế nào? Presentation thể hiện giống
như chức năng của View và Controller. Business và Database thể hiện giống như
chức năng của Model. Như thế nhìn ở góc độ này, thì MVC tương đương với 3layer.

11


Hình 2. 4 So sánh mô hình MVC với mô hình 3 lớp


Khác nhau

Trong 3-layers, quá trình đi theo chiều dọc, bắt đầu từ Presentation, sang
Business Logic (BL), rồi tới Data, và từ Data, chạy ngược lại BL rồi quay ra lại
Presentation.

Hình 2. 5 Mô hình 3 lớp
Còn trong mẫu Supervising Controller, dữ liệu được nhận bởi View, View sẽ

chuyển cho Controller cập nhật vào Model, rồi sau đó dữ liệu trong Model sẽ được

12


đưa lại cho View mà không thông qua Controller, do vậy luồng xử lý này có hình
tam giác.

Hình 2. 6 Mô Hình MVC

2.3. LARAVEL FRAMEWORK
2.3.1. Giới Thiệu Laravel Framework
- Laravel Framework ra mắt vào cuối tháng 5-2013 và nhanh chóng có được
một cộng đồng rất lớn trong thế giới các Framwork của ngôn ngữ lập trình
PHP
- Laravel Framework sử dụng 100% mã hướng đối tượng và sử dụng hầu hết
các chức năng mới của PHP 5.3+, như tên không gian (namespace) , kỹ thuật
sử dụng khóa static (late static binding), lambda functions và closures.
- Laravel Framwork là framework theo mô hình MVC.
- Laravel Framework cũng có sự tích hợp của một phần trong thư viện symfony
và áp dụng triệt để mô hình ORM với khái niệm liên quan đến Eloquent class
2.3.2. Kiến trúc Laravel Framework
Laravel là một PHP Framework được ra đời với mục tiêu giảm bớt khó khăn của
quá trình phát triển ứng dụng web bằng cách đơn giản hóa các công việc được lặp đi
lặp lại trong hầu hết các ứng dụng web ngày nay như : routing, authentication,
caching , sessions…
Không như các PHP Framework thông thường khác , Laravel ưu tiên sử dụng các
quy ước thay vì cấu hình (convention over configuration) .Trong khi các PHP
Framwork khác đòi hỏi phải có các cấu hình XML nặng nề trước khi bắt đầu ,


13


Laravel chỉ cần một vài dòng mã PHP có thể chỉnh sửa dể dàng và nhanh chóng là
có thể sẳn sàng sử dụng. Điều này thực sự làm công việc xây dưng một ứng dụng
web dể dàng hơn rất nhiều .
Tất cả các dự án Laravel khi mới khở tạo đều có một cấu trúc thư mục cho phép
các lập trình viên khởi đầu nhanh chóng trong quá trình phát triển thực tế.Tất nhiên
cấu trúc thư mục này vẫn hoàn toàn có thể tùy biến.

Hình 2. 7 Cấu trúc cây thư mục trong Laravel Framework
2.3.3. Ưu và khuyết điểm của Laravel Framework
Laravel Framework 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.

14


×