MVC chính là ý tưởng của PHP Framework. 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ụ và giao diện 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 có thể hiểu là phần xử lý các thao tác về nghiệp vụ, View được hiểu là phần xử lý lớp giao diện, và Controller làm nhiệm vụ lọc các request được gọi từ user, có chức năng: đ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 một ứ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. PHP Framework hiện nay đang được phát triển và được biết đến, nó đem lại hiệu suất cao. Tuy nhiên, đây là một công nghệ tương đối mới, các bạn sinh viên cũng ít biết tới mô hình này. Chính vì thế em đã chọn MVC để xây dựng cho đề tài “Xây dựng website bán laptop qua mạng dựa trên mô hình MVC trong PHP”của mình.
Trang 1HỮU NGHỊ VIỆT - HÀN KHOA: CÔNG NGHỆ THÔNG TIN
Trang 2LỜI CẢM ƠN
Em xin chân thành cảm ơn quý thầy cô Trường Cao Đẳng Công Nghệ Thông Tin
Hữu Nghị Việt Hàn, đã truyền đạt kiến thức cho em, cũng như toàn thể các bạn sinh viên
trong 3 năm qua Với vốn kiến thức tiếp thu được trong quá trình học tập, không chỉ là
nền tảng cho quá trình nghiên cứu đề tài này, mà còn là hành trang quý báu để em có thể
bước vào đời một cách vững chắc và tự tin
Em cũng xin gửi lời cảm ơn đến thầy Nguyễn Thanh Cẩm, giảng viên chuyên ngành
Lập trình máy tính – Khoa Công nghệ thông tin bằng những kiến thức chuyên môn
chuyên sâu đã tận tình hướng dẫn, giúp đỡ em trong suốt quá trình thực tập cũng như
hoàn thành tốt đồ án tốt nghiệp của mình
Và qua đây, em cũng xin gửi lời cảm ơn đến gia đình của em Những người đã luôn
bên em và ủng hộ em, luôn động viên, chia sẽ và là động lực của em giúp em có thể phấn
đấu để vượt qua mọi khó khăn trong thời gian qua
Bên cạnh đó, em cũng xin cảm ơn đến các anh chị khóa trước, các anh chị tại Công
Ty TNHH Thương Mại VISNAM đã tận tình hướng dẫn, giúp đỡ và tạo mọi điều kiện
thuận lợi nhất trong thời gian em tìm hiểu thực tế tại đơn vị
Và cuối cùng em xin gửi lời cảm ơn chân thành đến toàn thể thầy cô trong khoa
Công nghệ thông tin cùng với ban giám hiệu nhà trường - Trường Cao Đẳng Công Nghệ
Thông Tin Hữu Nghị Việt - Hàn đã cung cấp những kiến thức cần thiết và tạo mọi điều
kiện tốt nhất để em có thể hoàn thành tốt đồ án tốt nghiệp này Em xin kính chúc thầy
(cô) và gia đình dồi dào sức khỏe, hạnh phúc và thành công !
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Phạm Thị Mỹ Huyền
Trang 3LỜI MỞ ĐẦU
Lý do chọn đề tài
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là
một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ,
tổ chức, cũng như của các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo
ra những bước đột phá mạnh mẽ
Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử,
công nghệ thông tin cũng được những công nghệ có đẳng cấp cao và lần lượt
chinh phục hết đỉnh cao này đến đỉnh cao khác 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ở nên 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
Giờ đây, mọi việc liên quan đến thông tin trở nên thật dễ dàng cho người sử
dụng: chỉ cần có một máy tính kết nối internet và một dòng dữ liệu truy tìm thì gần
như lập tức, cả thế giới về vấn đề mà bạn đang quan tâm sẽ hiện ra, có đầy đủ
thông tin, hình ảnh và thậm chí đôi lúc có cả những âm thanh nếu bạn cần…
Bằng internet chúng ta thực hiện công việc với tốc độ nhanh hơn và chi phí
thấp hơn nhiều so với những cách thức truyền thống Chính điều này đã thúc đẩy
sự khai sinh và phát triển của thương mại điện tử góp phần nâng cao chất lượng
cuộc sống con người
Trong hoạt động sản xuất, kinh doanh giờ đây thương mại điện tử đã khẳng
định được vai trò xúc tiến và thúc đẩy sự nghiệp phát triển của doanh nghiệp Đối
với một cửa hàng hay shop, việc quảng bá và giới thiệu sản phẩm mới đáp ứng
được nhu cầu của khách hàng là rất cần thiết Vì vậy, xây dựng một website chính
là phương pháp hiệu quả nhất Nó đem lại lợi ích cho cả người sản xuất, doanh
nghiệp và người tiêu dùng, vì nó tiết kiệm chi phí, tiết kiệm thời gian, rút ngắn
khoảng cách giữa các doanh nghiệp và giữa các nước
Và để viết một trang web một cách nhanh chóng, dễ dàng ít tốn thời gian thì
PHP có thể thực hiện được điều đó.Ngôn ngữ lập trình PHP là một trong những
ngôn ngữ được sử dụng nhiều nhất khi thiết kế web Không chỉ bởi nó được chia
sẻ và sử dụng miễn phí mà còn ở sự đơn giản nhẹ nhàng và thân thiện của nó đối
với các hệ thống máy chủ, trình duyệt Tuy nhiên nó khó phân biệt giữa giao diện
và code xử lý, nên ngay trong giao diện lại có lệnh truy vấn sql Và để tiết kiệm
thời gian và khắc phục nhược điểm của PHP thuần thì PHP Framework là một sự
thay thế.Vì nó giúp lập trình viên giảm thiểu tối đa thời gian phải viết lại những
thao tác cơ bản Hơn nữa, PHP Framework còn làm cho lập trình viên có nhiều
thời gian nghiên cứu và cập nhật công nghệ mới, bởi họ không mất quá nhiều thời
Trang 4gian cho việc tìm tòi hay vận dụng những kiến thức mà cơ bản là đã quá nhàm
chán với họ trong các dự án
MVC chính là ý tưởng của PHP Framework.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ụ và giao diện 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 có thể hiểu là phần xử lý các thao tác về nghiệp vụ,
View được hiểu là phần xử lý lớp giao diện, và Controller làm nhiệm vụ lọc các
request được gọi từ user, có chức năng: đ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 một
ứ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
PHP Framework hiện nay đang được phát triển và được biết đến, nó đem lại
hiệu suất cao Tuy nhiên, đây là một công nghệ tương đối mới, các bạn sinh viên
cũng ít biết tới mô hình này Chính vì thế em đã chọn MVC để xây dựng cho đề tài
“Xây dựng website bán laptop qua mạng dựa trên mô hình MVC trong PHP”của
mình
Kết cấu đề tài được chia làm 3 phần:
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích và thiết kế hệ thống
Chương 3: Chương trình ứng dụng
Mục tiêu và nhiệm vụ nghiên cứu
Mục tiêu nghiên cứu: Xây dựng website bán laptop qua mạng dựa trên mô hình
MVC với những mục đích sau:
+ Học thêm được kiến thức mới
+ Nâng cao được khả năng tự học của cá nhân
+ Áp dụng những kiến thức được học vào thực tế
+ Tạo nguồn cho những ai cần tìm hiểu về MVC trong PHP
+ Dễ dàng trong việc mua bán
+ Cung cấp thông tin chính xác về giá cả của sản phẩm nhằm tăng độ tin
cậy trên thị trường ảo
+ Tìm hiểu về những chức năng mà một website bán hàng cần có
+ Nghiên cứu tài liệu về ngôn ngữ PHP và hệ quản trị cơ sở dữ liệu MySQL
+ Nghiên cứu về mô hình MVC trong PHP
Trang 5 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
+ Ngôn ngữ php
+ Mô hình MVC
+ Hệ quản trị cơ sở dữ liệu mysql
+ Nhu cầu sử dụng của khách hàng, nhà quản lý
+ Nghiên cứu về chức năng chính của một website bán hàng
Phạm vi nghiên cứu: xây dựng website bán laptop qua mạng dựa trên mô hình
MVC trong PHP với những chức năng cần thiết như trang chủ giới thiệu sản
phẩm, quản lý sản phẩm, tìm kiếm, thanh toán, giỏ hàng…
Phương pháp nghiên cứu
Khảo sát thực tế nhu cầu sử dụng của khách hàng
Khảo sát về hiện trạng kinh doanh qua mạng hiện nay
Nghiên cứu lý thuyết về ngôn ngữ php
Phân tích thiết kế hệ thống chương trình
Tham khảo những tài liệu trên mạng
Áp dụng những kiến thức đã học, kết hợp với sự hướng dẫn của giáo viên hướng
dẫn để xây dựng website
Dự kiến kết quả: Website bán laptop qua mạng trên mô hình MVC trong php.
Ý nghĩa khoa học và thực tiễn
MVC trong PHP giúp cho ứng dụng dễ bảo trì, module hóa các chức năng,
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 Kết quả sẽ làm tài liệu cho những ai muốn tìm hiểu về mô hình MVC
Và trong thời đại thương mại điện tử đang ngày càng phát triển, việc thành lập một website mang lại nhiều ý nghĩa như: đỡ tốn thời gian cho người tiêu dùng
cũng như nhà quản lý trong việc tham gia vào hoạt động mua bán hàng
Bên cạnh đó, quá trình nghiên cứu thực hiện đề tài đã giúp em có nhiều kinh nghiệm hơn về chuyên ngành mà em học đồng thời giúp em có thể vận dụng
kiến thức đã học trên ghế nhà trường để xây dựng một website tuy chưa hoàn hảo
nhưng có thể ứng dụng vào cuộc sống, em hi vọng sẽ nhận được nhiều ý kiến đóng
góp của Cô, Thầy để chương trình của em có thể hoàn thiện hơn Em xin chân
thành cảm ơn
Trang 6CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Khái niệm Internet
Internet là hệ thống mạng gồm các mạng thông tin máy tính, được liên kết với
nhau trên phạm vi toàn thế giới theo giao thức chuẩn TCP/IP thông qua các hệ thống
kênh truyền thông Internet cung cấp nhiều dịch vụ dùng để tạo duyệt xét, tìm kiếm, truy
cập, xem và trao đổi thông tin trên nhiều lĩnh vực khác nhau, từ nghiên cứu khoa học
đến các hoạt động giải trí, thương mại…
Mạng Internet mang lại rất nhiều tiện ích hữu dụng cho người sử dụng, một trong
các tiện ích phổ thông của Internet là hệ thống thư điện tử (email), trò chuyện trực
tuyến (chat),công cụ tìm kiếm (search engine), các dịch vụ thương mại và chuyển ngân
và các dịch vụ về y tế giáo dục như là chữa bệnh từ xa hoặc tổ chức các lớp học ảo
Chúng cung cấp một khối lượng thông tin và dịch vụ khổng lồ trên Internet
1.2 Khái niệm thương mại điện tử
Thương mại điện tử (Còn gọi là E-commerce hay E-Business) là quy trình mua
bán hàng hóa và dịch vụ thông qua các phương tiện điện tử và mạng viễn thông, đặc biệt
là qua máy tính và mạng Internet Ngày nay người ta hiểu khái niệm thương mại điện tử
thông thường là tất cả các phương pháp tiến hành kinh doanh và các quy trình quản trị
thông qua các kênh điện tử mà trong đó Internet hay ít nhất là các kỹ thuật và giao thức
được sử dụng trong Internet đóng một vai trò cơ bản và công nghệ thông tin được coi là
điều kiện tiên quyết Một khía cạnh quan trọng khác là không còn phải thay đổi phương
tiện truyền thông, một đặc trưng cho việc tiến hành kinh doanh truyền thống Thêm vào
đó là tác động của con người vào quy trình kinh doanh được giảm xuống đến mức tối
thiểu Trong trường hợp này người ta gọi đó là Thẳng đến gia công (Straight Through
Processing) Để làm được điều này đòi hỏi phải tích hợp rộng lớn các các tính năng kinh
doanh
Lợi ích lớn nhất mà Thương mại điện tử mang lại đó chính là tiết kiệm được chi
phí lớn tạo thuận lợi cho các bên giao dịch Giao dịch bằng phương tiện điện tử nhanh
hơn là giao dịch bằng truyền thông, ví dụ gửi fax hay thư điện tử thì nội dung thông tin
sẽ đến người nhận nhanh hơn là gửi thư Các giao dịch qua internet có chi phí rất rẻ, một
doanh nghiệp có thể gửi thư tiếp thị, chào hàng đến hàng loạt khách hàng chỉ với chi phí
giống như gửi cho một khách hàng Với Thương mại điện tử, các bên có thể tiến hành
giao dịch khi ở cách xa nhau, giữa thành phố với nông thôn, từ nước này sang nước khác
hay nói cách khác là không bị giới hạn bởi không gian địa lý Điều này cho phép các
Trang 7doanh nghiệp tiết kiệm chi phí đi lại, thời gian gặp mặt trong khi mua bán Với người
tiêu dùng họ có thể ngồi tại nhà để đặt hàng, mua sắm nhiều loại hàng hóa dịch vụ thật
nhanh chóng
1.3 Mô hình MVC
1.2.1 Xuất xứ
Tất cả bắt đầu vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox
PARC ở Palo Alto Sự ra đời của giao diện đồ họa (Graphical User Interface) và lập
trình hướng đối tượng ( Object Oriented Programming) cho phép lập trình viên làm việc
với những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức
riêng của nó Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn
khi cho ra đời cái gọi là kiến trúc MVC( viết tắt của Model – Vie w – Controller)
MVC được phát minh tại Xerox Parc vào những năm 70, bởi TrygveReenskaug
MVC lần đầu tiên xuất hiện công khai là trong Smalltalk-80 Sau đó trong một thời gian
dài hầu như không có thông tin nào về MVC, ngay cả trong tài liệu 80 Smalltalk Các
giấy tờ quan trọng đầu tiên được công bố trên MVC là “A Cookbook for Using the
Model-View-Controller User Interface Paradigm in Smalltalk – 80”, bởi Glenn Krasner
và Stephen Pope, xuất bản trong tháng 8 / tháng 9 năm 1988
1.2.2 Kiến trúc mô hình MVC
Trong kiến trúc MVC, một đối tượng đồ họa người dùng(GUI Compone nt) bao
gồm 3 thành phần cơ bản: Model, View, và Controller Model có trách nhiệm đối với
toàn bộ dữ liệu cũng như trạng thái của đối tượng đồ họa View chính là thể hiện trực
quan của Model, hay nói cách khác chính là giao diện của đối tượng đồ họa Và
Controller điều khiển việc tương tác giữa đối tượng đồ họa với người sử dụng cũng như
những đối tượng khác
Trang 8Hình 1: Các thành phần của mô hình MVC
Khi người sử dụng hoặc những đối tượng khác cần thay đổi trạng thái của đối
tượng đồ họa, nó sẽ tương tác thông qua Controller của đối tượng đồ họa Controller sẽ
thực hiện việc thay đổi trên Model Khi có bất kỳ sự thay đổi nào xảy ra ở Model, nó sẽ
phát thông điệp ( broadcast message) thông báo cho View và Controller biết Nhận được
thông điệp từ Model, View sẽ cập nhật lại thể hiện của mình, đảm bảo rằng nó luôn là
thể hiện trực quan chính xác của Model Còn Controller, khi nhận được thông điệp từ
Model, sẽ có những tương tác cần thiết phản hồi lại người sử dụng hoặc các đối tượng
khác
Trang 9Ví dụ:
Lấy ví dụ một GUI Component (thành phần đồ họa người dùng) đơn giản là
Checkbox Checkbox có thành phần Model để quản lý trạng thái của nó là check hay
uncheck, thành phần View để thể hiện nó với trạng thái tương ứng lên màn hình, và thành
phần Controller để xử lý những sự kiện khi có sự tương tác của người sử dụng hoặc các
đối tượng khác lên Checkbox
Khi người sử dụng nhấn chuột vào Checkbox, thành phần Controller của
Checkbox sẽ xử lý sự kiện này, yêu cầu thành phần Model thay đổi dữ liệu trạng thái
Sau khi thay đổi trạng thái, thành phần Model phát thông điệp đến thành phần View và
Controller Thành phần View của Checkbox nhận được thông điệp sẽ cập nhật lại thể
hiện của Checkbox, phản ánh chính xác trạng thái Checkbox do Model lưu giữ Thành
phần Controller nhận được thông điệp do Model gởi tới sẽ có những tương tác phản hồi
với người sử dụng nếu cần thiết
1.2.3 Đặc điểm của mô hình MVC
Cái lợi ích quan trọng nhất của mô hình MVC là nó giúp cho ứng dụng dễ bảo trì,
module hóa các chức năng, 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 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ĩ như vậy vì kiến trúc MVC đã tách biệt (decoupling) sự phụ thuộc giữa các
thành phần trong một đối tượng đồ họa, làm tăng tính linh động (flexibility) và tính tái sử
dụng (reusebility) của đối tượng đồ họa đó Một đối tượng đồ họa bấy giờ có thể dễ dàng
thay đổi giao diện bằng cách thay đổi thành phần View của nó trong khi cách thức lưu trữ
(Model) cũng như xử lý (Controller) không hề thay đổi Tương tự, ta có thể thay đổi cách
thức lưu trữ (Model) hoặc xử lý (Controller) của đối tượng đồ họa mà những thành phần
còn lại vẫn giữ nguyên
1.4 Mô hình MVC trong PHP
1.3.1 Giới thiệu tổng quan
Trang 10Mô hình MVC (model, controller, view) là mô hình chuẩn cho ứng dụng web
được sử dụng nhiều nhất ngày nay Mô hình MVC được sử dụng lần đầu tiên trong
Smalltalk, sau đó được sử dụng phổ biến trong ngôn ngữ lập trình Java Hiện nay, đã có
hơn hàng chục PHP framework dựa trên mô hình này
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), và 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
ngôn ngữ HTML hay Javascript được chạy trên trình duyệt của người dùng (hay
còn gọi là máy khách) thì PHP được viết để chạy trên máy chủ
Lịch sử ra đời
Được tạo ra vào những năm 1994 bởi Rasmus Lerdorf, phiên bản đầu tiên của PHP là một tập hợp đơn giản của kỹ thuật Common Gateway Interface (CGI)
nhị phân viết bằng ngôn ngữ lập trình C
Trong tháng 6 năm 1995, Rasmus đã chính thức public mã nguồn này, ông cho phép các nhà phát triển phần mềm được sử dụng nó nếu họ có khả năng Điều
này cũng giúp cho Rasmus có thể cải tiến PHP dựa vào những ý kiến từ người
dùng
Tháng 10, năm 1995, Rasmus đã phát hành phiên bản mới, ông viết lại toàn
bộ mã nguồn và đặt lại với cái tên PHP và đó cũng là phiên bản ngôn ngữ lập trình
đầu tiên trên thế giới được coi là một nền tảng ngôn ngữ tiên tiến PHP được cố
tình thiết kế để trông giống với ngôn ngữ C, làm cho nó trở nên thân thiện và dễ
làm quen đối với cả các nhà phát triển C, Perl, và ngôn ngữ tương tự
Trang 11Vào tháng 4 năm 1996, kết hợp với tên gọi của phiên bản trước, Rasmus đã giới thiệu PHP / FI Thế hệ thứ hai của ngôn ngữ lập trình này đã thực sự phát
triển PHP từ một bộ công cụ cho tới một ngôn ngữ lập trình theo đúng nghĩa của
nó Nó được ra đời để hỗ trợ cho các cơ sở dữ liệu DBM, mSQL, và Postgres95,
cookies, hỗ trợ chức năng người dùng, và nhiều hơn thế 1997, ngôn ngữ PHP đã
được viết lại hoàn toàn
Năm 1998, phiên bản PHP 3.0 được công bố
Tháng 5 năm 2000, phiên bản PHP 4.0 với hàng loạt tính năng mới bổ sungchính thức được công bố
Ngày 21 tháng 12 năm 2003, phiên bản PHP Beta 3 được công bố
Ngày 13 tháng 7 năm 2004, phiên bản PHP 5 ra mắt sau một chuỗi khá dài các bản kiểm tra bao gồm Beta 4, RC1, RC2, RC3
Ngày 14 tháng 7 năm 2005, phiên bản PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO
Quá trình thông dịch của PHP
Hình 3 :Quá trình thông dịch của PHP.
Trang 12 Cú pháp
PHP chỉ phân tích các đoạn mã nằm trong những dấu giới hạn của nó Bất
cứ mã nào nằm ngoài những dấu giới hạn đều được xuất ra trực tiếp không thông
qua xử lý bởi PHP Các dấu giới hạn thường dùng nhất là <?php và ?>, tương ứng
với dấu giới hạn mở và đóng Các dấu giới hạn<script
language="php"> và </script> cũng đôi khi được sử dụng Cách viết dấu giới hạn
dạng thẻ ngắn cũng có thể được dùng để thông báo bắt đầu đoạn mã PHP,
là <? hay <?= (dấu này được sử dụng để in ra (echo) các xâu ký tự hay biến) với
thẻ thông báo kết thúc đoạn mã PHP là ?>
Mục đích của những dấu giới hạn này là ngăn cách mã PHP với những đoạn mã thuộc ngôn ngữ khác, gồm cả HTML Mọi đoạn mã bên ngoài các dấu
này đều bị hệ thống phân tích bỏ qua và được xuất ra một cách trực tiếp
Về cú pháp các từ khóa và ngôn ngữ, PHP tương tự hầu hết các ngôn ngữ lập trình
bậc cao có cú pháp kiểu C Các phát biểu điều kiện If (Nếu), vòng
lặp for và while, các hàm trả về đều tương tự cú pháp của các ngôn ngữ như C, C+
+, Java và Perl
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)
1.3.3 Giới thiệu về hệ quản trị cơ sở dữ liệu MYSQL
MySQL là hệ quản trị cơ sở dữ liệu tự do 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 miễn phí hoàn toàn cho nên bạn có thể tải về
MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau:
Trang 13phiê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,
1.3.4 Giới thiệu về Ampps
Apmms là một bộ ứng dụng được đóng gói sẵn bao gồm các phần mềm cơ bản để tạo localhost (Apache, MySQL, PhpMyAdmin) và những ứng dụng nhỏ
kèm theo như bảng điều khiển khởi động/tắt localhost, Softaculous,
Addon-domain,…để bạn có một localhost hoàn chỉnh không khác gì một share host bình
thường
Ứng dụng này được tạo ra bởi chính Softaculous – một thương hiệu script
tự động cài đặt mã nguồn thông dụng nhất trên thế giới được tích hợp miễn phí
vào các share host sử dụng cPanel và DirectAdmin mà bạn có thể nhận ra khi mua
host Nên chuyện làm việc tốt trên localhost với Ampps là điều không phải bàn
Trang 141.3.5 Mô hình MVC trong PHP
MVC là gì?
MVC là viết tắt của Model – View – Controller Là một trong những design pattern
Được vận hành để tách mã lệnh thành 3 phần riêng biệt Ở mỗi phần MVC sẽ có những
chức năng đặc thù Để xử lý các tác vụ mà request gởi tới MVC làm cho mã lệnh trở nên
trong sáng, dễ phát triển và dễ nâng cấp theo thời gian
Để làm việc tốt đối với MVC, chúng ta cần nắm thật vững kiến thức OOP Bản chất
của các framework khác cũng được hình thành trên lý thuyết MVC Do vậy nếu chúng ta
nắm tốt MVC Thì ở những framework khác chắc chắn sẽ không cảm thấy khó hiểu.
Model: Là thành phần chịu trách nhiệm xử lý các thao tác trên database Và gởi trả
kết quả thông qua view
View: Là phần hiển thị thông tin trên website, sau khi đi qua controller và nhận
kết quả từ phía model thì view là bước cuối cùng để chuyển thông tin tới người
dùng
Controller: Là phần điều hướng các request tới những tác vụ tương ứng Controller
là một phần không thể thiếu ở bất cứ framework nào Vì nó có trách nhiệm gởi và
nhận request từ hệ thống tới người sử dụng
Hình 5: Mô hình MVC trong PHP
Tìm hiểu Controller
Controller có trách nhiệm chính là điều hướng các yêu cầu của người sử dụng Như vậy trên toàn ứng dụng của ta, tất cả các request đều sẽ phải đi tới
Trang 15controller Và tại đây, ứng với các tham số người sử dụng truyền mà ta đưa họ đến
trong những design pattern Chúng có tác dụng rút ngắn thời gian viết câu truy vấn
cho người sử dụng Biến những câu truy vấn phức tạp trở nên gần gũi và thân
thiện với người sử dụng thông qua các thư viện được định nghĩa sẵn
Model thường sẽ là các phương thức có trách nhiệm xử lý các tác vụ như:
select, insert, update, delete các record trong database Ứng với các lấy dữ liệu,
model thường sử dụng mảng để gởi trả kết quả về Vì mảng có thể cho phép model
lưu trữ nhiều thông tin hơn, nên thường các record khi bóc tách chúng sẽ mang các
dữ liệu của database một cách chi tiết
Khi sử dụng models, ta cũng cần tuân theo nguyên tắc chính của chúng là không xuất giá trị trực tiếp trong model Mà tất cả những dữ liệu ấy, phải đưa vào
mảng và trả về theo phương thức Và tiếp tục ở view ta sẽ sử dụng nó để lấy dữ
liệu ra
View là phần hiển thị thông tin tương phản khi gởi và nhận request Trước đây, khi người lập trình chưa nghĩ tới view Họ thường thao tác xử lý dữ liệu ngay
trực tiếp trên ứng dụng và đổ cả dữ liệu ngay trên file PHP đó Điều này làm cho
ứng dụng trở nên cồng kềnh, và đặc biệt rất khó cho việc bảo trì nâng cấp sau này
Nhất là đối với designer, việc thay đổi giao diện của một website luôn làm cho họ
cảm thấy đau đầu vì phải vọc thẳng vào core
Trước đây, để giải quyết tình huống này Người ta thường sử dụng template
để phân tách website thành 2 mảng riêng biệt Một là giao diện và một là core
Việc chỉnh sửa giao diện trở nên đơn giản hơn đối với họ so với cách viết thập
Trang 16cẩm kia Tuy nhiên, các thư viện này thực chất sẽ làm cho ứng dụng của chúng ta
trở nên chậm chạp hơn bao giờ hết Bởi chúng phải phiên dịch nhiều lần các kịch
mạnh mẽ và chuyên nghiệp hơn nhiều so với cách lập trình thuần
MVC giúp lập trình viên phân tách ứng dụng thành ba lớp một cách rõ ràng Điều này sẽ rất giúp ích cho việc phát triển những ứng dụng xét về mặt lâu
dài cho việc bảo trì và nâng cấp hệ thống
MVC hiện đang là mô hình lập trình tiên tiến bậc nhất hiện nay, điều mà các framework vẫn đang nổ lực để hướng tới sự đơn giản và yếu tố lâu dài cho
người sử dụng
Khuyết điểm của MVC
Mặc dù, MVC tỏ ra lợi thế hơn nhiều so với cách lập trình thông thường
Nhưng MVC luôn phải nạp, load những thư viện đồ sộ để xử lý dữ liệu Chính
điều này làm cho mô hình trở nên chậm chạp hơn nhiều so với việc code tay thuần
túy như ở PHP
MVC đòi hỏi người tiếp cận phải biết qua OOP, có kinh nghiệm tương đối cho việc thiết lập và xây dựng một ứng dụng hoàn chỉnh Sẽ rất khó khăn nếu
OOP của người sử dụng còn yếu
MVC tận dụng mảng là thành phần chính cho việc truy xuất dữ liệu Nhất
là với việc sử dụng active record để viết ứng dụng Chúng luôn cần người viết phải
nắm vứng mô hình mảng đa chiều
Mô hình xử lý dữ liệu của MVC
Trang 17Hình 6: Mô hình xử lý dữ liệu của MVC.
Trước khi lập trình website thì chúng ta phải xây dựng lớp model trước vì
nó là nền tảng dữ liệu chứa toàn bộ nội dung website, nhiều chức năng controller
phụ thuộc vào model
Trong model sẽ có phương thức xử lý liên quan đến dữ liệu :dữ liệu trực tiếp hoặc dữ liệu lấy từ CSDL
Sau đó chúng ta sẽ đi viết code cho lớp controller vì trong mô hình mvc thì lớp
controller nó tương tác qua lại với lớp model và chúng ta sẽ viết code gọi model lên
Trang 18Sau khi xây dựng xong lớp controller chúng ta sẽ tiếp tục đi xây dựng lớp view để
hiển thị mặt hàng máy tính xách tay lên web
Trang 19CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 Yêu cầu hệ thống thông tin
+ Cập nhật đơn hàng mua
+ Cập nhật đơn hàng mua
+ Đặt mua hàng
Tìm kiếm - thống kê bao gồm:
+ Tìm kiếm theo tên sản phẩm,+ Tìm kiếm theo giá
+ Thống kê sản phẩm bán ra
2.1.3Yêu cầu phi chức năng
Giao diện web dễ sử dụng, thân thiện với người dùng
Trang 20 Hệ thống hoạt động liên tục.
Chương trình chạy ổn
Phục vụ được một lúc nhiều người
Thông tin website chính xác
Dễ bảo trì, nâng cấp
2.2 Phân tích hệ thống
2.2.1Biểu đồ phân rã chức năng (BDF):
BDF là biểu đồ phân rã có thứ bậc các chức năng của hệ thống thông tin từ tổng thể đến chi tiết Mỗi chức năng có thể có một hoặc nhiều chức năng con,
tất cả đều được thể hiện trog một khung của biểu đồ
Cập nhật hàng hóa Cập nhật loại hàng
Quản lý hàng
Cập nhật đơn hàng bán
Tìm kiếm - Thống kê
Thống kê sản phẩm bán ra
Tìm kiếm theo tên hàng hóa
Tìm kiếm theo giá
Cập nhật đơn hàng mua
Đặt hàng
Hình 7: Biểu đồ phân rã chức năng.
2.2.2Biểu đồ luồng dữ liệu (DFD):
DFD là một công cụ đồ họa để mô tả luồng dữ liệu luân chuyển trong một
hệ thống thông tin và những hoạt động xử lý được thực hiện bởi hệ thống
Trang 21Dòng dữ liệu biểu diễn một sự di chuyển của dữ liệu, giữa các quá trình hoặc kho dữ liệu Ký hiệu:
Kho dữ liệu là nơi lưu trữ dữ liệu Ký hiệu:
Tác nhân ngoài là nguồn cung cấp hoặc nhận thông tin dữ liệu của hệ thốngthông tin Một tác nhân ngoài không phải là một phần của hệ thống thông tin
mà nó thể hiện mối quan hệ của hệ thống thông tin với môi trường bên ngoài
1 Yêu cầu hệ thống website
2 Trả về kết quả của yêu cầu hệ thống website
3 Yêu cầu hệ thống hệ thống website
4 Trả về kết quả của yêu cầu hệ thống website
2.2.4Biểu đồ luồng dữ liệu mức 0
Trang 22QUẢN TRỊ HỆ THỐNG
2.0
QUẢN LÝ DANH MỤC
3.0 QUẢN LÝ HÀNG
4.0 TÌM KIẾM - THỐNG KÊ
1 4
5 8
9 12
17 20
2 3
6 7
10 11
14 15
QUẢN TRỊ VIÊN
QUẢN TRỊ VIÊN
KHÁCH HÀNG
13 16
3 Trả về thông tin quản trị hệ thống
4 Hiển thị thông tinquản trị hệ thống
5 Quản trị viên yêu cầu cập nhật quản lý danh mục
6 Cập nhật quản lý danh mục
7 Trả về thông tin quản lý danh mục
8 Hiển thị thông tin quản danh mục
9 Quản trị viên yêu cầu cập nhật quản lý đơn hàng
10 Cập nhật quản lý đơn hàng
11 Trả về thông tin quản lý đơn hàng
12 Hiển thị thông tin quản lý đơn hàng
13 Quản trị viên yêu cầu thống kê
14 Thống kê dữ liệu
15 Trả về thông tin thống kê
16 Hiển thị thông tin thống kê
17 Khách hàng yêu cầu tìm kiếm
Trang 2319 Trả về thông tin tìm kiếm.
20 Hiển thị thông tin tìm kiếm
2.2.5Biểu đồ luồng dữ liệu mức 1: Quản trị hệ thống
8
2 3
6 7
Hình 10: Biểu đồ luồng dữ liệu quản trị hệ thống mức 1.
Giải thích:
1 Quản trị viên yêu cầu đăng nhập
2 Hệ thống cập nhật và truy xuất dữ liệu
3 Trả về kết quả cho quản trị viên
4 Hiển thị kết quả cho quản trị viên
5 Quản trị viên yêu cầu đăng xuất
6 Hệ thống cập nhật thông tin tài khoản
7 Trả về kết quả cho quản trị viên
8 Hiển thị kết quả cho quản trị viên
9 Quản trị viên yêu cầu cập nhật người dùng
10 Hệ thống cập nhật thông tin người dùng
11 Trả về kết quả cho quản trị viên
12 Hiển thị kết quả cho quản trị viên
2.2.6Biểu đồ luồng dữ liệu mức 1: Quản lý danh mục
Trang 242 3
6 7
D3
D4 NHÀ CUNG CẤP
1 Quản trị viên yêu cầu cập nhật nhà cung cấp
2 Hệ thống cập nhật và truy cập vào kho nhà cung cấp
3 Trả về kết quả cho quản trị viên
4 Hiển thị kết quả cho quản trị viên
5 Quản trị viên yêu cầu cập nhật loại hàng
6 Hệ thống cập nhật và truy cập vào kho loại hàng
7 Trả về kết quả cho quản trị viên
8 Hiển thị kết quả cho quản trị viên
9 Quản trị viên yêu cầu cập nhật hàng hóa
10 Hệ thống cập nhật và truy cập vào kho hàng hóa
11 Trả về kết quả cho quản trị viên
12 Hiển thị kết quả cho quản trị viên
2.2.7Biểu đồ luồng dữ liệu mức 1: Quản lý hàng