Tải bản đầy đủ - 0 (trang)
CHƯƠNG 3 – NGÔN NGỮ PHP, PYTHON VÀ PHƯƠNG PHÁP LẬP TRÌNH HỆ THỐNG

CHƯƠNG 3 – NGÔN NGỮ PHP, PYTHON VÀ PHƯƠNG PHÁP LẬP TRÌNH HỆ THỐNG

Tải bản đầy đủ - 0trang

3.2.



LẬP TRÌNH VÀ THIẾT KẾ GIAO DIỆN WEBSITE



3.2.1. NGƠN NGỮ LẬP TRÌNH PHP

PHP (Hypertext Preprocessor) là ngơn ngữ script trên server được thiết kế để

dễ dàng xây dựng các trang Web động. Mã PHP có thể thực thi trên Webserver để

tạo ra mã HTML và xuất ra trình duyệt web theo yêu cầu của người sử dụng.

Ngôn ngữ PHP ra đời năm 1994 Rasmus Lerdorf sau đó được phát triển bởi

nhiều người trải qua nhiều phiên bản, ngày càng hoàn thiện về chức năng cũng như

tính tiện dụng đã thu hút được lượng lớn người sử dụng. Theo thống kê của website

w3techs.com, tính tới thời thời điểm tháng 12/2013, số lượng website sử dụng PHP

chiếm 81.6%. Có thể kể tới một số website sử dụng PHP như facebook.com,

wordpress.com, wikipedia.com, udemy.com …Phiên bản hiện tại là PHP 5.5.8 đã

được công bố 1/2014.

Có nhiều lý do khiến cho việc sử dụng PHP chiếm ưu thế hơn những ngôn

ngữ khác, đơn cử như:











Mã nguồn mở (open source code)

Miễn phí, download dễ dàng từ Internet.

Ngôn ngữ rất dễ học, dễ viết.

Mã nguồn không phải sửa lại nhiều khi viết chạy cho các hệ điều hành



từ Windows, Linux, Unix

 Rất đơn giản trong việc kết nối với nhiều nguồn DBMS, ví dụ như :

MySQL, Microsoft SQL Server 2000, Oracle, PostgreSQL, Adabas,

dBase, Empress, FilePro, Informix, InterBase, mSQL, Solid, Sybase,

Velocis và nhiều hệ thống CSDL thuộc Hệ Điều Hành Unix (Unix

dbm) cùng bất cứ DBMS nào có sự hổ trợ cơ chế ODBC (Open

Database Connectivity) ví dụ như DB2 của IBM.

3.2.2. LARAVEL FRAMEWORK

3.2.2.1. Quá trình hình thành Laravel Framework

Tháng 8/2009, PHP phiên bản 5.3 ra đời. Tính năng được quan tâm nhiều

nhất là khái niệm namespace và ... Tính năng này cho phép các lập trình viên có thể



38



viết các ứng dụng hướng đối tượng (OOP) bằng ngôn ngữ PHP dễ dàng hơn mang

lại rất nhiều lợi ích cho các lập trình viên lúc bấy giờ, tuy nhiên, hầu hết các

framework lúc bấy giờ chỉ tập trung hỗ trợ các phiên bản PHP cũ hơn. Có thể kể tới

các PHP framework nổi tiếng lúc này như Symfony, Zend, Slim micro framework,

Khohana, Lithium và CodeLgniter. Codelgniter là framework rất phổ biến thời điểm

này nhờ sự đơn giản cũng như các tài liệu về CodeIgniter rất phổ biến. Nhờ vậy, bất

kì lập trình viên nào cũng có thể bắt đầu một dự án với CodeIgniter. Từ đó,

CodeIgniter có một cộng đồng lớn và sự hỗ trợ nhiệt tình từ những nhà phát triển.

Vào năm 2011, Taylor Otwell đã thấy được một số thiếu sót trong CodeIgniter trong

q trình làm việc của mình, chính vì vậy Taylor Otwell đã giới thiệu phiên bản

Laravel 1 để bổ sung những tính năng còn thiếu mà lúc bấy giờ CodeIgniter chưa

làm được.

Laravel 1: Ở phiên bản đầu tiên, Laravel 1 giới thiệu các tính năng được xây

dựng sẵn bao gồm q trình xác thực (Authentication), giao tiếp với các cơ sở dữ

liệu (Eloquent ORM), Mode, Views ... Với những tính năng ưu việc như vậy đã

thực sự tạo ra ấn tượng mạnh mẽ đối với cộng đồng PHP lúc bấy giờ. Tuy nhiên,

lúc này Laravel 1 vẫn chưa là một framework MVC hoàn chỉnh vì vẫn chưa có tính

năng điều khiển (controller) nhưng vẫn được nhận được sự ủng hộ của cộng đồng

nhờ tính đơn giản trong cú pháp. Nhờ sự ủng hộ cũng như sự giúp đỡ của cộng

đồng, 6 tháng sau, Laravel 2 ra đời.

Laravel 2 được giới thiệu chính thức ngày 24/11/2011. Phiên bản Laravel 2

có sự nâng cấp đáng kể từ nhà phát hành cũng như cộng đồng. Quan trọng nhất là

đã hỗ trợ Controller, điều này đã làm laravel trở thành một framework MVC hoàn

chỉnh. Tuy nhiên, phiên bản này vẫn còn một số vấn đề chưa thể khắc phục được,

cụ thể là việc tương thích với các ứng dụng của bên thứ 3. Khả năng tương thích

giữa các đường route và controller, sự mạnh mẽ trong quá trình tương tác với hệ cơ

dữ liệu của Eloquent ORM đa thu hút một lượng lớn các nhà phát triển cùng nhau

xây dựng Laravel framework. Chỉ sau 2 tháng từ phiên bản 2, Laravel 3 đã được

giới thiệu



39



Laravel 3: Ngày 22/2/2012, Laravel 3 được chính thức giới thiệu. Phiên bản

3 tập trung vào "unit test integration", giao diện tương tác với Laravel framework

thơng qua câu lệnh artisan trong q trình tạo database, table, tạo các view trong

quá trình xây dụng ứng dụng. Laravel 3 đã thực sự trở nên mạnh mẽ, tiện dụng

trong việc xây dựng hàng loạt các ứng dụng khác nhau và nhanh chóng đuổi kịp với

các framework nổi tiếng lúc bấy giờ như CodeIgniter và Kohana. Một số lượng lớn

các lập trình viên để chuyển sang sử dụng Laravel, số lượng bài viết hướng dẫn sử

dụng laravel ngày càng tăng nhanh. Laravel trở thành một hiện tượng lớn trong thế

giới PHP. Tuy nhiên chưa dừng lại ở đó, sau 5 tháng, các nhà phát triển quyết định

xây dựng lại lại Laravel, thay đổi cách quản lý các gói (packet) trong Laravel thơng

qua trình quản lý “Composer” của PHP.

Laravel 4: Còn có tên gọi khác là Illuminate được chính thức giới thiệu vào

ngày 28/5/2013. Laravel 4 được cấu trúc lại theo hướng tập trung các thành phần

(components hay packages) lại với nhau tạo thành một framework hoàn chỉnh. Việc

quả lý các thành phần này được thực hiện thông qua Composer. Laravel 4 được bổ

sung các tính năng mới mà trước đó chưa có bất kì một PHP framework được tích

hợp bao gồm: Database seeding, các hàng đợi (message queues), trình gởi mail tích

hợp và đặc biệt là việc nâng cấp Eloquent ORM giúp quá trình tương tác với cơ sở

dữ liệu nhanh chóng và hiệu quả hơn

3.2.2.2. Kiến trúc Laravel Framework

Cấu trúc thư mục của Laravel framework bao gồm các 3 thư mục chính



Hình 3.1: Cấu trúc thư mục của Laravel framework

Tên thư mục

/app



Chức năng

Thư mục này chứa controller, models, views và các

thành phần cần thiết khác của ứng dụng. Các đoạn code

php sẽ được chứa trong thư mục này.



40



/public



Thư mục này sẽ được webserver trỏ tới. Ngoài ra, thư

mục public còn là nơi chứa các tập tin css, javascript,

hình ảnh phục vụ cho việc hiển thị nội dung website.



/vendor



Nơi chứa các plugin của bên thứ 3. Ngoài ra nơi đây

còn là nơi chứa phần core của tồn bộ framework.



Thư mục /app bao gồm các thành phần sau:



Hình 3.2: Cấu trúc thư mục app của Laravel framework

Tên thư mục



Chức năng



/app/config/



Chứa các file để cấu hình tồn bộ ứng dụng, bao gồm

kết nối đến database, session, cache, kết nối tới mail

server.



/app/config/app.php



Cấu hình những tham số cơ bản như timezone, chế độ

debug, key mã hóa.



/app/config/auth.php



Cấu hình controller để sử dụng trong quá trình xác

thực.



/app/config/cache.php



Cấu hình sử dụng cache để tăng tốc độ xử lý. Laravel

hỗ trợ cache bằng file, database, apc, memcahed, redis.



41



/

app/config/database.php



Cấu hình việc kết nối với cơ sở dữ liệu. Laravel hỗ trợ

các hệ quản trị cơ sở dữ liệu cơ bản như MySQL,

SQLite, PostgreSQL, MSSQL..



/app/config/mail.php



Cấu hình mail server sử dụng trong quá trình gởi mail

từ ứng dụng.



/app/config/session.php



Cấu hình session ví dụ như thời gian timeout của

session, nơi lưu file session…



/app/config/view.php



Cấu hình cách sử dụng template cho ứng dụng.



/app/controller



Nơi lưu toàn bộ các file controller được sử dụng trong

ứng dụng, bao gồm việc xử lý logic, tương tác với data

model, sử dụng các file view cho ứng dụng.



/app/database/migrations Thư mục chứa các file định nghĩa các table trong cơ sở

dữ liệu, đảm bảo cho quá trình chuyển đổi hay di

chuyển cơ sở dữ liệu, cấu trúc của table luôn được

đồng nhất. Các file trong thư mục migration được tạo

ra nhờ công cụ artisan.

/app/lang



Nơi chứa các file ngôn ngữ được sử dụng khi tạo

website hỗ trợ đa ngôn ngữ. Mặc định ngôn ngữ được

sử dụng là tiếng anh.



/app/models



Models là class đại diện cho một loại dữ liệu được sử

dụng trong ứng dụng. Trong nhiều trường hợp, mỗi

table trong cơ sở dữ liệu sẽ có tương ứng một models

trong ứng dụng. Mối quan hệ giữa các table trong cơ

sở dữ liệu sẽ được định nghĩa trong các file được lưu

trong thư mục này.



/app/storage



Thư mục này là nơi chứa các dữ liệu tạm được sinh ra

trong quá trình ứng dụng hoạt động, ví dụ như các file

cache, session, các template của view. Thư mục này

cần được có quyền ghi trên webserver. Thư mục này

được quản lý bởi Laravel nên ta không cần quan tâm

tới nó.



/app/views/



Thư mục chức các file HTML mẫu được sử dụng bởi

các controller hoặc route.



/app/route.php



File này có nhiệm vụ nhận các yêu cầu gởi tới và điều

hướng tới các controller hoặc view, các hàm để xử lý

yêu cầu gởi lên và trả lại kết quả cho người dùng.

42



3.2.2.3. Mơ hình MVC trong Laravel Framework

Trong thư mục /app của laravel bao gồm 3 thư mục con là models/, views/

controllers/. Đây là cách thể hiện cho thấy sự thống nhất giữa việc định nghĩa logic

cũng như luận lý trong việc bố trí các file và thư mục trong laravel. Mơ hình MVC

rất phổ biến trong việc lập trình các ứng dụng, đặc biệt là ứng dụng web. MVC

được viết tắt bởi 3 thành phần nhỏ bao gồm Model, View, Controller. Chức năng cụ

thể của từng thành phần như sau:

 Model: Model đại diện cho một đối tượng được lưu trữ trong cơ sở dữ

liệu.

 View: View là đại diện cho models, thể hiện những thông tin từ model trả

về cho người dùng. Lớp view có nhiệm vụ xử lý các lệnh HTML, CSS,

Javascipt để tạo ra giao diện tương tác với người dùng.

 Controller: Có vai trò là điều phối giữa model và view. Controller có

nhiệm vụ nhận request, và quyết định xem sẽ dùng model nào để xử lý,

sau controller gọi tới view để tạo trang kết quả trả lại cho người dùng.

Việc sử dụng mơ hình 3 lớp tạo cho lập trình viên có thể linh hoạt trong q

trình thiết kế tồn bộ hệ thống. Thuận lợi cho việc làm việc nhóm, cũng như q

trình nâng cấp hệ thống sau này.

3.2.2.4. Quá trình xử lý của Laravel Framework



43



Hình 3.3: Quá trình xử lý của Laravel framework

Quá trình xử lý của laravel framework được chia làm các bước chính sau:

 Người dùng gởi yêu cầu thông qua browser đến webserver.

 Route trong laravel sẽ nhận yêu cầu, tùy thuộc vào request mà route

nhận được sẽ được gởi tới controller phù hợp để xử lý.

 Controller sau khi được gọi sẽ tương tác với Model để lấy thông tin từ

database về xử lý, sau đó nhận kết quả trả về. Trong một số trường

hợp, controller trả về luôn view cho người dùng mà không cần phải

gọi tới model.

 Sau khi nhận kết quả từ model, controller tiếp tục xử lý để tạo view.

 Cuối cùng, view được trả về cho người dùng thông qua browser chứa

thông tin người dùng yêu cầu.

3.2.3. HTML5 VÀ REPONSIVE TRONG THIẾT KẾ GIAO DIỆN WEB

3.2.3.1. Giới thiệu HTML5

HTML5 được nói đến như một chuẩn cơng nghệ cho phép viết ứng dụng đa

nền tảng, đa thiết bị (PC, mobile), và giảm thiểu sự rối rắm, phân mảnh từ chuẩn



44



tiền nhiệm HTML4. HTML5 cho phép đơn giản hóa việc chèn video, hình ảnh vào

website mà khơng cần phải cài đặt thêm một plugin nào.

Mục tiêu của HTML5 là làm nhòa ranh giới giữa ứng dụng desktop, ứng

dụng web và cả ứng dụng smartphone (iOS, Android, Windows Phone, BlackBerry,

Symbian, Meego…).

Những điểm mới trong HTML5 bao gồm

 Các phần tử dạng khối(block elements)

,

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

CHƯƠNG 3 – NGÔN NGỮ PHP, PYTHON VÀ PHƯƠNG PHÁP LẬP TRÌNH HỆ THỐNG

Tải bản đầy đủ ngay(0 tr)

×