bài tập lớn môn mã nguồn mở về trang web giới thiệu và bán điện thoại di động viết bằng framework Laravel 5x dành cho các bạn học và nghiên cứu về laravel hoặc làm bài tập lớn môn mã nguồn mở cũng như làm về đồ án tốt nghiệp về phplaravel
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
o0o
-BÁO CÁO BÀI TẬP LỚN
MÔN: PHẦN MỀM MÃ NGUỒN MỞ
Đề tài: Xây Dựng Trang Web Giới Thiệu và Bán Điện Thoại
Giảng viên hướng dẫn : Ths.Trần Thanh Huân
Nhóm thực hiện : Nhóm 9
Hà Nội, ngày 01 tháng 05 năm 2018
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
o0o
-BÁO CÁO BÀI TẬP LỚN
MÔN: PHẦN MỀM MÃ NGUỒN MỞ
Đề tài: Xây Dựng Trang Web Giới Thiệu và Bán Điện Thoại
Giảng viên hướng dẫn : Ths.Trần Thanh Huân
Sinh viên thực hiện : Vũ Văn Duy
Dương Đức Tuyến Hoàng Bá Vũ
Hà Nội, ngày 01 tháng 05 năm 2018
Trang 3LỜI NÓI ĐẦU
Với sự phát triển của Internet đã mang lại nhiều cơ hội để rút ngắn khoảng cách giữamọi người trên toàn thế giới Tận dụng cơ hội mà internet mang lại, nhiều cá nhân và tổchức đã cho ra đời nhiều trang web để kết nối mọi người lại với nhau, và mang lại nhiềutiện ích cho người sửa dụng Nhưng những website này lại yêu cầu người xây dựng vàngười vận hành phải có kiến thức chuyên sâu về các ngôn ngữ lập trình web như HTML,PHP, JavaScript, CSS để đảm bảo nó hoạt động được thông suốt
Là sinh viên khoa công nghệ thông tin được trang bị nhiều kiến thức đã được học và
tìm hiểu, nhóm 9 chúng em đã quyết định phát triển đề tài " Xây dựng trang web giới thiệu và bán điện thoại " Các thành phần xây dựng website đều là các sản phẩm mã
nguồn mở, giúp tiết kiệm cả thời gian và chi phí phát triển sản phẩm
Nhờ sự giúp đỡ tận tình của thầy Ths Trần Thanh Huân về kiến thức môn học, chúng
em cũng đã cố gắng để hoàn thành bài tập lớn tốt nhất trong khả năng của mình Tuy đã
cố gắng nhưng do thời gian và kinh nghiệm còn hạn chế nên chương trình không thểtránh khỏi những sai sót Chúng em rất mong nhận được sự đánh giá và góp ý của thầy vàcác bạn để chương trình được hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
Trang 4MỤC LỤC
Trang 5Gần đây, phần mềm mã nguồn mở (Open Source) đã được chấp nhận trong các công
ty lớn Nhiều hợp đồng lớn đã chấp nhận phần mềm mã nguồn mở, chẳng hạn như tạiIBM, Oracle và Sun Thậm chí Microsoft đã phải lưu tâm đến Open Source như đối thủ
to lớn
Với mã nguồn mở, việc phân phối và phát triển là một phương pháp lâu dài để tạo raphần mềm, người mua được cung cấp cả giải pháp phần mềm lẫn những dòng mã có giấyphép Open Source Hơn nữa, các doanh nghiệp vừa và nhỏ cũng sẽ ưa chuộng phần mềm
mã nguồn mở hơn
Hiện nay đã có một số tổ chức dự định sử dụng Open Source để xây dựng nhân tố cốtlõi của hệ thống - từ hệ điều hành, cơ sở dữ liệu, ứng dụng và Web server… đến các hệthống quản trị nội dung và nhiều phần mềm kinh doanh thông minh
Xuất phát từ những vấn đề trên, nhóm em đã quyết định chọn đề tài “Xây dựng trangweb giới thiệu và bán điện thoại ”
3. Mục đích đề tài
- Tìm hiểu mã nguồn mở là gì
- Nắm được vị trí, vai trò, giá trị của phần mềm mã nguồn mở hiện nay
- Hiểu và làm chủ được tương đối công nghệ mã nguồn mở PHP
- Cài đặt và sử dụng được phần mềm nguồn mở php và framework Laravel Phân tích vàthiết kế các chức năng, giao diện của website thương mại điện tử
- Thiết kế website giới thiệu và bán điện thoại
4. Bố cục
Nội dung gồm 4 chương:
- Chương 1 : Tập trung vào tìm hiểu cơ sở lý thuyết
- Chương 2 : Phân tích nghiệp vụ của trang web giới thiệu và bán điện thoại di động
- Chương 3: Phân tích hệ thống
- Chương 4: Tìm hiểu quá trình cài đặt web giới thiệu và bán điện thoại di động
Trang 65. Phương pháp thực hiện
Để hoàn thành được đề tài này, nhóm đã tìm hiểu những nền tảng công nghệ mới,những khái niệm hoàn toàn mới, bước đầu hơi khó khăn, nhưng đến thời điểm hiện tạinhóm có thể tự tin làm chủ được công nghệ nhờ những điều sau đây:
- Đọc, tìm kiếm tài liệu liên quan đến cuộc họp
- Triển khai phân công nhiệm vụ của thành viên một cách rõ ràng nhất
- Hàng tuần triển khai họp nhóm báo cáo tiến độ
- Tham khảo những cấu trúc trên kho Github
- Kỹ năng phân tích và viết báo cáo
PHẦN II NỘI DUNG CHƯƠNG I CƠ SỞ LÝ THUYẾT
Nội dung chương này sẽ tập chung đi vào lý thuyết phát triển phần mềm theohướng cấu phần, nền tảng công nghệ sử dụng để hoàn thành phần mềm
Trang 71. Tổng quan về mã nguồn mở
1.1.Khái niệm cơ bản
Khái niệm “nguồn mở” có lẽ không còn quá xa lạ với tất cả chúng ta Thời gian gầnđây, nguồn mở thường xuyên được nhắc đến trên các phương tiện thông tin đại chúng,như một giải pháp tốt cho Chính Phủ điện tử, nhất là ở những nước nghèo và đang pháttriển Tất nhiên không phải ai cũng biết thế nào là nguồn mở Thậm chí, có thể bạn đang
sử dụng phần mềm mã nguồn mở mà không biết Vậy phần mềm mã nguồn mở là gì? Nó
có những lợi ích và ưu điểm gì so với phần mềm mã nguồn đóng?
Phần mềm là một sản phẩm trí tuệ đặc biệt, đặc trưng cho ngành Công nghệ thông tin
và Công nghệ phần mềm Một phần mềm được gọi là mã nguồn mở nếu như trên phầnmềm đó ta có thể thực hiện được đầy đủ các thao tác: sản xuất phần mềm, cài đặt phầnmềm, sử dụng phần mềm, thay đổi phần mềm và các thao tác khác Hay nói cách khác,phần mềm mã nguồn mở là phần mềm với mã nguồn được công bố và sử dụng một giấyphép nguồn mở Giấy phép này cho phép bất cứ ai cũng có thể nghiên cứu, thay đổi vàcải tiến phần mềm và phân phối phần mềm ở dạng chưa thay đổi hoặc đã thay đổi
Phần mềm được quản lý bởi các quy tắc về bản quyền và sở hữu trí tuệ, cho phép thựchiện hoặc không thực hiện các thao tác nói trên trong các điều kiện khác nhau Bản quyềnphần mềm là tài liệu quy định việc thực hiện các thao tác trên phần mềm Có thể có cácbản quyền phần mềm sở hữu, bản quyền cho phần mềm miễn phí/phần mềm chia sẻ, bảnquyền cho phần mềm tự do và mã nguồn mở
Định nghĩa Nguồn mở của Tổ chức Sáng kiến Nguồn mở (Open Source Initiative OSI) thể hiện một triết lí nguồn mở và xác định ranh giới về việc sử dụng, thay đổi và táiphân phối phần mềm nguồn mở Giấy phép phần mềm cung cấp cho người dùng cácquyền vốn bị cấm bởi bản quyền, gồm các quyền về sử dụng, thay đổi và tái phân phối.Một vài giấy phép phần mềm nguồn mở đã được thẩm định thuộc giới hạn của Địnhnghĩa Nguồn mở Thí dụ nổi bật nhất là Giấy phép Công cộng GNU (GPL) Trong khinguồn mở cho phép công chúng truy cập vào nguồn của một sản phẩm, giấy phép nguồn
-mở cho phép tác giả điều chỉnh cách truy cập đó
1.2.Tình hình nghiên cứu và phát triển
Trang 8Nếu như các phần mềm sở hữu do một chủ thể duy nhất phát triển, quá trình phân tíchthiết kế xây dựng phần mềm được hoạch định và kiểm soát chặt chẽ (mô hình dàn nhạc)thì phần mềm mã nguồn mở được phát triển theo mô hình chợ trời, trong đó người sửdụng đóng vai trò của người phát triển phần mềm Quá trình ra quyết định là động, không
có một định hướng cứng nhắc từ thời điểm ban đầu Độ tự do của nhà phát triển là rấtlớn, có thể lựa chọn các quyết định theo xu hướng cá nhân, thiểu số và cũng có khi là đa
số Có rất nhiều trường hợp khi các ý kiến không thống nhất đã sinh ra 2 dòng phần mềm
từ một phần mềm ban đầu trong quá trình phát triển (ví dụ iTexMac và TexShop)
Kịch bản phát triển phổ biến của phần mềm mã nguồn mở là: có một nhà phát triểnđưa ra một phiên bản đầu tiên + ý tưởng về phần mềm Các nhà phát triển khác hoànthiện các chức năng đề ra trong ý tưởng đó, tiếp tục đề xuất tính năng mới Quá trình liêntục được lặp lại Để thuận lợi hơn cho các loại người sử dụng, các phiên bản của phầnmềm mã nguồn mở thường được quy định như sau:
Phiên bản dịch đêm: với mã nguồn được thay đổi thường xuyên, hàng ngày vào buổiđêm bản nhị phân của phiên bản mới nhất này được dịch Phiên bản này chứa các tínhnăng mới nhất, tuy nhiên chưa được kiểm tra và rà soát kỹ càng, còn tiềm ẩn nhiều lỗi,chưa ổn định Phiên bản này chủ yếu cho các nhà phát triển thử nghiệm và hoàn thiện.Phiên bản thử nghiệm: đã được rà soát các lỗi, tuy nhiên vẫn chưa ổn định DànhPhiên bản bền vững: không tích hợp các tính năng chưa ổn định Dành cho người sử dụngđịnh khai thác phần mềm
1.3.Phân loại
Phần mềm mã nguồn mở hiện nay đã đạt đến mức phát triển ổn định, các lỗi cơ bảnđược khắc phục, được người sử dụng chấp nhận rộng rãi Có thể kể ra một vài phầnmềm/bộ phần mềm được sử dụng rộng rãi hiện nay là:
- FireFox: trình duyệt của Mozilla, cho phép có thể phát triển các plug-in bổ sung Hayphần mềm Chrome của Google
- Open Office: Bộ soạn thảo văn bản của Sun Micro System, có thể thay thế cho MSOffice
- Apache: web server được sử dụng rộng rãi
- PHP-MySQL: Application Server
- Thunder Bird: Mail Client của Mozilla
Trang 9- Unikey: Chương trình gõ tiếng việt.
Phần mềm mã nguồn mở có thể được tải về theo cách thông thường như với các phầnmềm miễn phí hoặc chia sẻ Kho dữ liệu sourceforge.net định nghĩa khung thông tin cầnthiết để cập nhật các thông tin chi tiết về một dự án phần mềm mã nguồn mở
1.4.Ưu/nhược điểm
Ưu điểm
- Sử dụng miễn phí: Đối với Website mã nguồn mở thì tính miễn phí luôn là một đặc điểmvốn có và cũng có thể nói đó là ưu điểm lớn nhất của loại website này Không cần tốn quánhiều thời gian hay công sức, bạn cũng có thể tự tạo cho mình một website miến phítrong khoảng 30 phút đồng hồ
- Nhận được sự hỗ trợ từ cộng đồng người sử dụng: Với việc những trang web mã nguồn
mở được phát triển mạnh mẽ và rộng rãi như hiện nay, phần lớn là do cộng đồng người
sử dụng, IT chia sẻ trên mạng Internet Do đó trong quá trình xây dựng web mã nguồn
mở, nếu bạn không hiểu hoặc đang gặp phải khó khăn nào đó thì thông qua cộng đồngngười sử dụng, bạn có thể tìm được lời giải đáp cho những vấn đề mà bạn đang gặp phải
- Các bản vá lỗi được cập nhật tương đối nhanh: Đối với website mã nguồn mở thì tốc độcập nhật các phiên bản, bản vá lỗi nhanh Do đó, cho dù bạn không am hiểu về bảo mậtthì vẫn có thể được yên tâm phần nào nhờ những bản vá lỗi được chia sẻ trên các diễnđàn, mạng xã hội
Nhược điểm
- Khó khăn trong việc chỉnh sửa và nâng cấp: Một website mã nguồn mở được viết ranhằm đáp ứng nhu cầu chung của cộng đồng Do đó, khi cần tùy biến, chỉnh sửa theođịnh hướng của bạn thì bạn sẽ phải chỉnh sửa lại mã nguồn lập trình của website đó Đồng thời vẫn phải đảm bảo được website hoạt động ổn định Đây sẽ là một vấn đềkhông hề đơn giản Nếu bạn thiết kế website mã nguồn mở chỉ với mục đích sử dụng thìkhông sao nhưng nếu như bạn cần phải chỉnh sửa theo nhu cầu sử dụng hoặc theo yêucầu của khách hàng thì bắt buộc bạn sẽ phải chỉnh sửa Source Code của website đó Vìđây không phải là website do bạn tạo ra nên bạn không thể hiểu được hết đặc tính củaloại website này dẫn đến việc chỉnh sửa thường rất phức tạp, mất thời gian và có khi làkhông thể sửa được
- Tính bảo mật không cao: Mặc dù khả năng cập nhật và vá lỗi nhanh nhưng trong quátrình vận hành nếu một người nào đó cũng sử dụng web mã nguồn mở như bạn và biếtđược lỗ hổng bảo mật trước khi bản vá lỗi được cập nhật thì họ cũng có thể lợi dụng lỗhổng bảo mật đó tấn công website, xóa dữ liệu hoặc nguy hiểm hơn là đánh cắp thông tinquan trọng liên quan đến công việc kinh doanh của bạn
Trang 10- Không tạo được nét riêng và tính chuyên nghiệp: Khi bạn thiết kế website bằng mãnguồn mở thì việc trang web của bạn giống các website khác (về giao diện, chức năng,
… ) là điều hiển nhiên Như vậy, trang web của bạn sẽ thiếu đi những nét riêng, nét khácbiệt, không tạo được sức thu hút đối với người truy cập bởi vì tâm lý chung của ngườidùng là cần sự mới mẻ, phá cách trong thiết kế hay ít nhất cũng là một điều gì đó tạođiểm nhấn
1.5.Hệ điều hành nguồn mở thông dụng
Linux được xem là cha đẻ của các hệ điều hành mã nguồn mở hiện nay, như Ubuntu,Linux Mint, Fedora và tất nhiên là cả hệ điều hành Android cũng do Google phát triển từLinux lên Trên Linux, người dùng có thể dễ dàng tùy biến giao diện hay bất kỳ thứ gì họmuốn điều mà không thể làm được trên windows Linux tương thích với nhiều môitrường phát triển ứng dụng khác nhau và nguồn của cải quý giá cho lập trình viên cũngnhư các nhà phát triển ứng dụng Tuy nhiên, do là hệ điều hành mã nguồn mở tương đối
sơ khai nên số lượng ứng dụng hỗ trợ người dùng rất hạn chế, driver hỗ trợ ứng dụng bênthứ 3 tương đối ít
1.6.Các loại giấy phép phần mềm nguồn mở.
Trên thị trường có nhiều loại giấy phép Có thể chia các giấy phép này thành các loạinhư sau:
- Phần mềm thương mại (Commercial Software): Là phần mềm thuộc bản quyền của tácgiả hoặc nhà sản xuất, chỉ được cung cập ở dạng mã nhị phân, người dùng phải mua vàkhông có quyền phân phối lai
Phần mềm thử nghiệm giới hạn (Limited Trial Software): Là những phiên bản -giới hạncủa các phần mềm thương mại được cung cấp miễn phí nhằm mục đích thử nghiệm, giớithiệu sản phẩm và kích thích người dùng quyết định mua Loại sản phầm này không chỉgiới hạn về tính ăng và còn giới hạn về thời gian dùng thử (thường là 60 ngày)
- Phần mềm chia sẻ (Shareware): Loại phần mềm này có đủ các tính năng và được phânphối tự do, nhưng có một giấy phép khuyến cáo các cá nhân hoặc tổ chức mua, tùy tìnhhình cụ thể Nhiều tiện ích Internet ( như “WinZip” dùng các thuận lợi của Sharewarenhư một hệ thống phân phối)
- Phần mềm sử dụng phí thương mại (Non-commercial Use): Loại phần mềm này được sửdụng tự do và có thể phân phối lại bỏi các tổ chức phi lợi nhuận Nhưng các tổ chức kinhthế, thí dụ các doanh nghiệp muốn dùng phải mua Netcape Naviator là một thí dụ củaloại phần mềm này
Trang 11- Phần mềm không phải trả phần trăm cho nhà sản xuất (Royalties Free Binaries Software):Phần mềm được cung cấp dưới dạng nhị phân và được dùng tự do Thí dụ: bản nhị phâncủa các phần mềm Internet Explorer và NetMeeting.
- Thư viện phần mềm không phải trả phần trăm (Royalties Free Software Libraries): Lànhững phần mềm mà mã nhị phân cũng như mã nguồn được dùng và phân phối tự do,nhưng người dùng không được phép sửa đổi Thí dụ các thư viện lớp học, các tệp
“header”
- Phần mềm mã nguồn mở kiểu BSD – (Open Source BSD-Style): Một nhóm nhỏ khép kín(closed team) đã phát triển các PMNM theo giấy phép phân phối Berkely (BSD– BerkelySoftware Distribution) cho phép sử dụng và phân phối lại các phần mềm này dưới dạng
mã nhị phân và mã nguồn Tuy người dùng có quyền sửa đổi mã, nhưng về nguyên tắcnhóm phát triển không cho phép người dùng tự do lấy mã nguồn từ khoa mã ra sửa (gọi
là check-out) và đưa mã đã sửa vào lại kho mã mà không được họ kiểm tra trước (gọi làcheck-in)
- PMNM kiểu Apache (Open Source Apache-styel): Chấp nhận nguồn mở kiểu BSD nhưngcho phép những người ngoài nhóm phát triển xâm nhập vào lõi của mã nền (corecodebase), tức là được phép thực hiện các “check-in”
- PMNM kiểu CopyLeft hay kiểu Linux (Open Source CopyLeft, Linux-style): PMNMkiểu CopyLeft (trò chơi chữ của Free Software Foundation – FSF – và GNU – Gnu’s NotUnix, để đối nghịc hoàn toàn với CopyRight!) hay còn gọi là giấy phép GPL (GeneralPublic Licence) là một bước tiến quan trọng theo hướng tự do hóa của các giấy phépphần mềm Giấy phép GPL yêu cầu không những mã nguồn gốc phải được phân phốitheo các quy định của GPL mà mọi sản phẩm dẫn xuất cũng phải tuân thủ GPL
- GPL cho người dùng tối đa quyền hạn và tự do đối với các PMNM theo GPL, cụ thểngười dùng có quyền không những sao chép, sửa đổi, mua bán các PMNM dướiCopyLeft mà còn được quyền tự do như vậy đối với các phần mềm dẫn xuất Tóm lại nếuPMNM gốc đã theo CopyLeft thì mọi PMNM dẫn xuất của nó cũng đương nhiên theoCopyLeft
1.7.Giới thiệu về Linux
Thuật ngữ Linux được sử dụng rộng rãi trong thực tế Tuy nhiên, trong các ngữ cảnhkhác nhau, thuật ngữ này có thể được hiểu với nghĩa khác nhau Khi sử dụng Linux trêncác thiết bị nhúng, thiết bị di động, trong trường hợp này, chỉ có nhân của hệ điều hànhLinux được sử dụng Thuật ngữ Linux được dùng để chỉ nhân của hệ điều hành Linux
Trang 12Nhân của hệ điều hành bao gồm các phần mềm cần thiết để quản lý và sử dụng các phầncứng của hệ thống.
Khi cài đặt các phần mềm trên máy tính, có thể có nhiều lựa chọn: Windows, Linux,Sun, MacOS Trong ngữ cảnh này, Linux được hiểu là một hệ điều hành
Linux thường được phân phối không phải chỉ gồm có nhân và các phần mềm hệthống Đi kèm theo hệ điều hành, còn có các phần mềm ứng dụng ohucj vụ các nhu cầucủa từng lớp người sử dụng Giao diện đồ họa, các chương trình hỗ trợ … Tất cả cácthành phần đó kết hợp với nhân của hệ điều hành và hệ điều hành tạo ra một bản phânphối của Linux Có rất nhiều bản phân phối khác nhau, có thể sử dụng chung một phiênbản của nhân, một tập hợp chung các phần mềm hệ thống, nhưng được phân phối với các
bộ phần mềm khác nhau dành cho máy chủ, máy để bàn, máy xách tay …
Khi so sánh hiệu năng giữa các sản phẩm Linux, MacOS, Sun Solaris … thực tế ta đã
so sánh các hệ thống trên đó các hệ điều hành tương ứng đã được cài đặt Linux trongtrường hợp này được sử dụng để chỉ một hệ thống máy tính cài đặt hệ điều hành Linux.Khi sử dụng thuật ngữ Linux, cần xác định rõ bối cảnh để tránh hiểu nhầm
Ứng dụng của Linux
- Mặc dù ban đầu chỉ được xây dựng cho các máy tính i386, tuy nhiên do tính chất mãnguồn mở, người sử dụng với phần cứng hoặc nhu cầu khác nhau đều có thể thay đổiLinux cho phù hợp, nên Linux có thể được ứng dụng trong nhiều lĩnh vực khác nhau, trêncác dòng phần cứng khác nhau
- Máy tính để bàn: Linux được sử dụng ngày càng nhiều trên máy tính để bàn Linux ngàynay thường được phân phối cùng với các giao diện đồ họa như GNME, KDE … Cácphần mềm ứng dụng xuất hiện ngày càng nhiều, hoạt động ổn định, cung cấp cho người
sử dụng những công cụ mạnh mẽ để xử lý văn bản, chỉnh sửa đồ họa, duyệt internet …tóm lại tất cả các thao tác mà người sử dụng mong chờ ở một máy tính để bàn Cácchương trình phổ biến trên các hệ điều hành thương mại Windows và MacOSX hầu hếtđều có các phần mềm có tính năng tương đương trên Linux
- Máy chủ: Linux được sử dụng phổ biến hơn trên các máy chủ Một máy tính Linux có thểđược kết nối và thực hiện các thao tác quản trị máy tính thông qua một giao diện văn bản.Việc truy cập vào giao diện console này nhanh và thuận tiện hơn nhiều so với truy cậpvào giao diện đồ họa Linux có thị phần vượt trội và có xu hướng tăng dần trong thịtrường máy chủ Điều này có thể giải thích dựa trên tổ hợp LAMP (Linux - Apache - PHP
- MySQL) rất thuận tiện cho việc triển khai các website và ứng dụng web Trên các máytính lớn, Linux cũng được dùng phổ biến bởi 2 nguyên nhân: giá thành rẻ và tính tươngtích tương tự Unix Các siêu máy tính hầu hết được thiết kế để có thể hoạt động với Unix,
Trang 13nên có thể hoạt động dễ dàng trên Linux Một số siêu máy tính còn được phân phối cùngLinux Máy tính IBM Sequoi cũng sẽ sử dụng hệ điều hành Linux.
- Các hệ nhúng: Linux còn được sử dụng rộng rãi trên các thiết bị nhúng vì khả năng tùybiến và giá thành hạ Hệ điều hành Maemo mà Nokia sẽ sử dụng trong một loạt các điệnthoại thông minh sắp ra đời là một hệ điều hành dựa trên Linux Trong nhiều router,switch cũng sử dụng hệ điều hành Linux
tố rất quan trọng, thứ nhất khi nói công nghệ phía máy chủ tức là nói đến mọi thứ trongPHP đều xảy ra trên máy chủ, thứ hai, chính vì tính chất không phụ thuộc môi trường chophép PHP chạy trên hầu hết trên các hệ điều hành như Windows, Unix và nhiều biến thểcủa nó
Đặc biệt các mã kịch bản PHP viết trên máy chủ này sẽ làm việc bình thường trênmáy chủ khác mà không cần phải chỉnh sửa hoặc chỉnh sửa rất ít Khi một trang Webmuốn được dùng ngôn ngữ PHP thì phải đáp ứng được tất cả các quá trình xử lý thông tintrong trang Web đó, sau đó đưa ra kết quả ngôn ngữ HTML Khác với ngôn ngữ lập trình,PHP được thiết kế để chỉ thực hiện điều gì đó sau khi một sự kiện xảy ra (ví dụ, khi ngườidùng gửi một biểu mẫu hoặc chuyển tới một URL)
2.1.2 Lịch sử phát triển
PHP ngôn ngữ lập trình web được biết đến nhiều nhất ngày nay chắc chắn là sự kếthừa cho sản phẩm công nghệ mang tên PHP / FI Được tạo ra vào những năm 1994 bởiRasmus 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ậtCommon Gateway Interface (CGI) nhị phân viết bằng ngôn ngữ lập trình C Theo nguyênbản thì PHP được Rasmus sử dụng để theo dõi lượng truy cập vào đơn xin việc trực tuyếncủa mình, ông đặt tên cho nó là “Personal Home Page Tools” Qua nhiều năm, vì muốnngôn ngữ này có nhiều chức năng hơn những gì ông từ mong muốn, Rasmus đã viết lạiPHP Tools, viết thêm những dòng code mới để ngôn ngữ này trở nên phong phú hơn
Trang 14Phiên bản mới này có khả năng tương tác tốt với cơ sở dữ liệu và nhiều hơn nữa, cungcấp một Framework mà người dùng PHP có thể phát triển các ứng dụng web động đơngiản như Guestbook Trong tháng sáu năm 1995, Rasmus đã chính thức public mã nguồnnà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.Vào tháng Chín năm đó, Rasmus mở rộng PHP và trong một thời gian ngắn cái tênPHP đã đột nhiên không được nhắc tới Thay vào đó họ đề cập đến các công cụ như FI(viết tắt của “Forms Interpreter”), nó bao gồm một số chức năng cơ bản của PHP nhưchúng ta biết đến ngày nay Nó có các biến như Perl, dịch tự động các biến, và cú phápnhúng HTML Cú pháp này cũng tương tự như của Perl, mặc dù hạn chế hơn rất nhiều vàcũng đơn giản hơn Trong thực tế, để nhúng mã vào một file HTML, các nhà phát triển đãphải sử dụng những ”HTML comments” Mặc dù phương pháp này không hoàn toànđược đón nhận, FI vẫn tăng doanh thu và được chấp nhận như một công cụ CGI —nhưng vẫn không hoàn toàn được gọi là một ngôn ngữ Tuy nhiên, điều này bắt đầu thayđổi trong những tháng tiếp theo; Tháng Mười, 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ônngữ 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ự.
Vào tháng Tư năm 1996, kết hợp với tên gọi của phiên bản trước, Rasmus đã giớithiệ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ăngngười dùng, và nhiều hơn thế Vào khoảng tháng 6 năm đó, PHP / FI đã được ra mắtphiên bản 2.0 Một thực tế rất thú vị đó là chỉ có một phiên bản đầy đủ duy nhất của PHP2.0 Sau khi kết thúc phiên bản beta trong tháng Mười Một, 1997, ngôn ngữ PHP đã đượcviết lại hoàn toàn
Mặc dù nó tồn tại và phát triển trong khoảng thời gian ngắn, PHP vẫn tiếp tục đượcphổ biến ngày càng nhiều trên thế giới Năm 1997 và 1998, PHP / FI đã có được sự sùngbái của hàng ngàn người dùng trên toàn thế giới Một cuộc khảo sát của Netcraft vàotháng 5/1998, cho thấy gần 60.000 lĩnh vực báo cáo có tiêu đề chứa “PHP”, chỉ ra rằngcác máy chủ lưu trữ đều được cài đặt PHP Con số này cũng tương đương với khoảng 1%tất cả các tên miền trên Internet vào thời điểm đó Mặc dù con số rất ấn tượng, nhưng sự
Trang 15phát triển của PHP / FI đã bị hạn chế; trong khi nó đã có nhiều đóng góp nhỏ và vẫn chủyếu được phát triển bởi cá nhân Rasmus.
- Đã rất nhiều blog, diễn đàn trong và ngoài nước nói về PHP nên khả năng tiếp cậncủa mọi người nhanh chóng, dễ dàng hơn, quá trình tiếp cận của người tìm được rútngắn nhanh chóng Vì vậy cộng đồng hỗ trợ, chia sẽ kinh nghiệm của PHP cũng rấtdồi dào
Thư viện phong phú
- Ngoài sự hỗ trợ của cộng đồng, thư viện script PHP cũng rất phong phú, đa dạng
Từ những cái rất nhỏ như chỉ là 1 đoạn code, 1 hàm (PHP.net…) cho tới những cáilớn hơn như Framework (Laravel, Zend, CakePHP, CogeIgniter, Symfony…) hayứng dụng hoàn chỉnh (Joomla, WordPress, PhpBB…)
- Với thư viện code phong phú, việc học tập và ứng dụng PHP trở nên rất dễ dàng vànhanh chóng Đây cũng chính là đặc điểm khiến PHP trở nên khá nổi bật và cũng lànguyên nhân vì sao ngày càng có nhiều người sử dụng PHP để phát triển web
- Nhu cầu xây dựng web có sử dụng cơ sở dữ liệu là một nhu cầu tất yếu và PHP cũngđáp ứng rất tốt nhu cầu này Với việc tích hợp sẵn nhiều Database Client trong PHP
đã làm cho ứng dụng PHP dễ dàng kết nối tới các hệ cơ sở dữ liệu thông dụng
- Việc cập nhật và nâng cấp các Database Client đơn giản chỉ là việc thay thế cácExtension của PHP để phù hợp với hệ cơ sở dữ liệu mà PHP sẽ làm việc
- Một số hệ cơ sở dữ liệu thông dụng mà PHP có thể làm việc là: MySQL, MS SQL,
Lập trình hướng đối tượng
- Ngày nay, khái niệm lập trình hướng đối tượng (OOP) đã không còn xa lạ với lậptrình viên Với khả năng và lợi ích của mô hình lập trình này nên nhiều ngôn ngữ đãtriển khai để hỗ trợ OOP
- Từ phiên bản PHP 5, PHP đã có khả năng hỗ trợ hầu hết các đặc điểm nổi bật củalập trình hướng đối tượng như là Inheritance, Abstraction, Encapsulation,Polymorphism, Interface, Autoload…
- Với việc ngày càng có nhiều Framework và ứng dụng PHP viết bằng mô hình OOPnên lập trình viên tiếp cận và mở rộng các ứng dụng này trở nên dễ dàng và nhanhchóng
Trang 16- Kết hợp với các kỹ thuật bảo mật ở các tầng khác thì ứng dụng PHP sẽ trở nên chắcchắn hơn và đảm bảo hoạt động cho website.
Với những tính năng ưu việt và vượt trội của mình đã vươn lên vị trí là ngôn ngữ webhàng đầu trên thế giới, nhanh chóng vượt mặt nhiều ngôn ngữ lập trình khác Có tới 90 %các trang web hiện nay viết bằng PHP, từ những trang báo điện tử, trang mạng xã hôi chotới cac portal của Chính phủ đều đang sử dụng
2.2 Hệ quản trị nội dung framework Laravel
2.2.1 Khái niệm
Laravel là một PHP framework mã nguồn mở và miễn phí, được phát triển bởi TaylorOtwell và nhắm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo kiếm trúc model-view-controller (MVC) Những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu –
rõ ràng , một hệ thống đóng gói modular và quản lý gói phụ thuộc, nhiều cách khác nhau
để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khaivào bảo trì ứng dụng
Vào khoảng Tháng 3 năm 2015, các lập trình viên đã có một cuộc bình chọn PHPframework phổ biến nhất, Laravel đã giành vị trí quán quân cho PHP framework phổ biếnnhất năm 2015, theo sau lần lượt là Symfony2, Nette, CodeIgniter, Yii2 vào một số khác.Trước đó, Tháng 8 2014, Laravel đã trở thành project PHP phổ biến nhất và được theodõi nhiều nhất trên Github
Laravel được phát hành theo giấy phép MIT, với source code được lưu trữ tại Github
2.2.2 Lịch sử phát triển framework Laralvel
Laravel được Taylor Otwell tạo ra như một giải pháp thay thế cho CodeIgniter, cungcấp nhiều tính năng quan trọng hơn như xác thực và phân quyền Tôi cũng không chắc
về điều này, nhưng có thể Taylor vốn là một NET developer khi bắt đầu có nhu cầu làmviệc với PHP khoảng vào những năm 2010-2011, đã chọn CodeIgniter khi đó đang là mộtngôi sao mới nổi, thậm chí lấn át cả Symfony gạo cội Và Taylor nhanh chóng nhận ra
Trang 17những điểm khiếm khuyết ở CodeIgniter, với tài năng và kiến thức xuất sắc về pattern của mình, Taylor quyết định tự mình tạo ra một framework sao cho thật đơn giản,
design-dễ hiểu, hỗ trợ lập trình viên hiện thực ý tưởng một cách nhanh nhất bằng nhiều tính năng
hỗ trợ như Eloquent ORM mạnh mẽ, xác thực đơn giản, phân trang hiệu quả, và hơn thếnữa
Những nét nổi bật của framework Laravel
- Bundles:_ là dành cho Laravel cũng như PEAR là cho PHP Ngoài ra laravel đi kèm
với công cụ command-line gọi là Artisan, giúp việc cài đặt các gói dễ dàng
- Eloquent ORM: là file thực thi PHP Active Record tiên tiến nhất hiện có.
- Migrations:_ trog laravel, migrations được xây dựng trong framework, chúng có
thể thực hiện thông quan Artisan command-line
- Unit-testing: laravel là 1 framework tuyệt vời để tích hợp PHP Unit.
- Redis: Laravel hỗ trợ Redis rất ngắn gọn.
Ưu điểm của framework Laravel:
- Được thừa hưởng những ưu điểm và thế mạnh của các framework khác
- Có số lượng người sử dụng nhiều nhất
- Document rõ dàng, dễ học
- Autoload theo namespace
- Sử dụng mô hình ORM rất đơn giản khi thao tác với DB
- Các lệnh tương tác với cơ sở dữ liệu cực kỳ ngắn gọn và thân thiện
- Việc quản lý layout thật sự giản đơn với Balade Templating
- Dễ dàng tích hợp các thư viện khác vào dự án, và được quản lý với Composer
- Phần route rất mạnh!!!
Nhược điểm của framework Laravel
- Lượng module dùng tương đối lớn
- Dẫn đến tốc độ không được tối ưu khi xây những service nhỏ
Trang 182.3 Hệ quản trị cơ sở dữ liệu MySQL
2.3.1 Khái niệm
MySQL là ứng dụng cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay (theo www.mysql com) và được sử dụng phối hợp với PHP Trước khi làm việc với MySQL cần xácđịnh các nhu cầu cho ứng dụng MySQL là cơ sở dữ có trình giao diện trên Windows hayLinux, cho phép người sử dụng có thể thao tác các hành động liên quan đến nó Việc tìmhiểu từng công nghệ trước khi bắt tay vào việc viết mã kịch bản PHP, việc tích hợp haicông nghệ PHP và MySQL là một công việc cần thiết và rất quan trọng
2.3.2 Mục đích sử dụng
Mục đích sử dụng cơ sở dữ liệu bao gồm các chức năng như: lưu trữ (storage), truycập (accessibility), tổ chức (organization) và xử lí (manipulation)
Lưu trữ: Lưu trữ trên đĩa và có thể chuyển đổi dữ liệu từ cơ sở dữ liệu này sang cơ
sở dữ liệu khác, nếu bạn sử dụng cho quy mô nhỏ, bạn có thể chọn cơ sở dữ liệunhỏ như:Microsoft Exel, Microsoft Access, MySQL, Microsoft Visual FoxPro, Nếu ứng dụng có quy mô lớn, bạn có thể chọn cơ sở dữ liệu có quy mô lớn như:Oracle, SQL Server,
Truy cập: Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu của người sử dụng,
ở mức độ mang tính cục bộ, truy cập cơ sỏ dữ liệu ngay trong cơ sở dữ liệu vớinhau, nhằm trao đổi hay xử lí dữ liệu ngay bên trong chính nó, nhưng do mục đích
và yêu cầu người dùng vượt ra ngoài cơ sở dữ liệu, nên bạn cần có các phươngthức truy cập dữ liệu giữa các cơ sở dử liệu với nhau như:Microsoft Access vớiSQL Server, hay SQL Server và cơ sở dữ liệu Oracle
Tổ chức: Tổ chức cơ sở dữ liệu phụ thuộc vào mo hình cơ sở dữ liệu, phân tích vàthiết kế cơ sở dữ liệu tức là tổ chức cơ sở dữ liệu phụ thuộc vào đặc điểm riêngcủa từng ứng dụng Tuy nhiên khi tổ chức cơ sở dữ liệu cần phải tuân theo một sốtiêu chuẩn của hệ thống cơ sở dữ liệu nnhằm tăng tính tối ưu khi truy cập và xử lí
Xử lí: Tùy vào nhu cầu tính toán và truy vấn cơ sở dữ liệu với các mục đích khácnhau, cần phải sử dụng các phát biểu truy vấn cùng các phép toán, phát biểu của
cơ sở dữ liệu để xuất ra kết quả như yêu cầu Để thao tác hay xử lí dữ liệu bêntrong chính cơ sở dữ liệu ta sử dụng các ngôn ngữ lập trình như:PHP, C++, Java,Visual Basic,
CHƯƠNG 2 Cài Đặt Laravel Và Các Phần mềm liên quan Các file, công cụ cần chuẩn bị:
Trang 19- Xampp
- Composer
1. Download và cài đặt Xampp
- Truy cập vào trang web: https://www.apachefriends.org
- Sau khi tải file cài đặt về xong, hãy chạy nó, sau đó chọn Next
- Ở phần chọn đường dẫn, bạn hãy chọn đường dẫn cần lưu cài đặt của XAMPP.Lưu ý rằng đường dẫn này bạn phải nhớ vì khi cài đặt web lên localhost, bạn phảitruy cập vào thư mục này Bạn nên để mặc định là c:\xampp Tiếp tục ấn Next
Trang 20- Ở trang kế tiếp, bạn bỏ chọn phần “Learn more about Bitnami for XAMPP“ Và ấn
Next 2 lần nữa để bắt đầu quá trình cài đặt XAMPP
- Sau khi cài xong, ấn nút Finish để kết thúc cài đặt và mở bảng điều khiển củaXAMPP Tuy nhiên, hãy khởi động lại máy sau khi cài đặt xong để tránh tình trạngkhông khởi động được localhost
- Khởi động Localhost
Trang 21- Bạn để ý sẽ thấy hai ứng dụng Apache và MySQL có nút Start, đó là dấu hiệu bảo
2 ứng dụng này chưa được khởi động, hãy ấn vào nút Start của từng ứng dụng đểkhởi động Webserver Apache và MySQL Server lên thì mới chạy được localhost
2. Download và cài đặt Composer
- Truy cập vào trang web: https://getcomposer.org/download/
- Trong quá trình cài đặt, bạn sẽ được composer báo chọn đến file php.exe trongxampp hoặc wam
Trang 22- Sau khi cài đặt xong, composer có yêu cầu bạn làm các bước sau:
1 Mở cmd.exe
2 Đóng tất cả các cửa sổ windows lại ( bao gồm cả cmd.exe )
3 Mở lại cmd.exe
4 Đóng lại rồi logout ra khỏi windows , sau đó login lại
5 Cuối cùng ta bật cmd.exe lên là xong
3. Cài Đặt Laravel
- Khởi động cmd, truy cập vào thư mục muốn cài đặt Laravel
- Chạy lệnh: composer create-project –prefer-dist laravel/laravel {Tên projectLaravel}
Trang 23- Sau khi cài xong ta có thư mục sau
ảnh
- Cấu trúc thư mục bao gồm
•App\Http : Chứa các bộ điều khiển route, controller,… Ta sẽ phải dùng nhiều tới
thư mục này
•Config : Chứa các file cấu hình cho hệ thống
• Database : Nơi chúng ta cấu hình các bộ dữ liệu mẫu : migrate, seed
•Public : Nơi lữu trữ các thư viện CSS, JavaScript, các hình ảnh.
• Resources\Views : Lưu trữ các file giao diện mã html views.
• File env: Cài đặt liên kết tới database cho hệ thống.
4. Tìm Hiểu Về Route
4.1. Cấu trúc
4.2. Truyền Tham Số Trên Route
4.2.1 Truyền Tham Số Trên Route
Trang 244.2.2 Đặt Điều Kiện Cho Tham Số Với Phương Thức where();
- Các Trường Hợp Khác
4.3. Định Danh Cho Route
- Cách 1: Khai Báo ‘as’=> ‘ten Route’ Trong Tham Số Sau:
- Cách 2: Cách này khá ngắn gọn và dễ dùng : thêm phương thức name(‘tên route’)
ở cuối
- Gọi Route bằng tên đã đặt, ta sử dụng route(‘ten route’);
4.4. Route Group
Trang 266. Tìm Hiểu Về Model
6.1 Tạo Model
- Cách 1: tạo Model bằng Composer
Các bạn chỉ cần mở cmd(commandline) lên và trỏ đến thư mục chứa project Laravelcủa các bạn và gõ lệnh
- Khi đó Composer sẽ tự tạo cho bạn 1 Model ở trong thư mục App\<tên_model>.phpTrong file model đã tạo sẽ có thông tin như sau:
- Cách 2: tạo bằng tay
Có nghĩa tự tạo file và copy 1 model có sẵn và sửa lại 1 số chỗ
Lưu ý: tên file model cũng là tên của class
Ví dụ mình sẽ tạo file VIPModel.php trong App\Model, nội dung file sẽ là:
6.2 Truy xuất và sử dụng Model trong Controller