CHƯƠNG 1: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI 1. Ngôn ngữ lập trình PHP 1. Giới thiệu về ngôn ngữ lập trình PHP PHP là viết tắt của Personal Home Page ra đời năm 1994 do phát minh của Rasmus Lerdorf, và nó tiếp tục phát triển bởi nhiều cá nhân và tập thể khác, do đó PHP được xem như một sản phẩm mã nguồn mở [1]. PHP là kịch bản trình chủ (Server Script) chạy trên phía Server (Server Side) như các Server Script khác (asp, jsp, cold fusion) [1].
PHP là kịch bản cho phép chúng ta xây dựng ứng dụng web trên mạng internet hay intranet tương tác với mọi cơ sở dữ liệu như mySQL, PostgreSQL, Oracle, SQL Server và Access [1]. Còn có định nghĩa: PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML (HyperText Markup Language). Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
Giới thiệu PHP Trang 4 Để thiết kế Web động có rất nhiều ngôn ngữ lập trình khác nhau để lựa chọn, mặc dù cấu hình và tính năng khác nhau nhưng chúng vẫn đưa ra những kết quả giống nhau. Chúng ta có thể lựa chọn cho mình một ngôn ngữ: ASP, PHP, Java, Perl. và một số loại khác nữa. Vậy tại sao chúng ta lại nên chọn PHP.
Những lý do để lựa chọn ngôn ngữ PHP: PHP được sử dụng làm Web động vì nó nhanh, dễ dàng, tốt hơn so với các giải pháp khác. PHP có khả năng thực hiện và tích hợp chặt chẽ với hầu hết các cơ sở dữ liệu có sẵn, tính linh động, bền vững và khả năng phát triển không giới hạn. Đặc biệt PHP là mã nguồn mở do đó tất cả các đặc tính trên đều miễn phí, và chính vì mã nguồn mở sẵn có nên cộng đồng các nhà phát triển Web luôn có ý thức cải tiến nó, nâng cao để khắc phục các lỗi trong các chương trình này. PHP vừa dễ với người mới sử dụng vừa có thể đáp ứng mọi yêu cầu của các lập trình viên chuyên nghiệp, mọi ý tuởng của PHP có thể đáp ứng một cách xuất sắc.
Cách đây không lâu ASP được xem là ngôn ngữ kịch bản phổ biến nhất, nhưng bây giờ PHP đã bắt kịp ASP, bằng chứng là đã có mặt trên 12 triệu Website. Hoạt động của PHP Vì PHP là ngôn ngữ của máy chủ nên mã lệnh của PHP sẽ tập trung trên máy chủ để phục vụ các trang Web theo yêu cầu của người dùng thông qua trình duyệt. Sơ đồ hoạt động của PHP Trang 5 Khi người dùng truy cập Website viết bằng PHP, máy chủ đọc mã lệnh PHP và xử lí chúng theo các hướng dẫn được mã hóa. Mã lệnh PHP yêu cầu máy chủ gửi một dữ liệu thích hợp (mã lệnh HTML) đến trình duyệt Web.
Trình duyệt xem nó như là một trang HTML tiêu chuẩn. Như ta đã nói, PHP cũng chính là một trang HTML nhưng có nhúng mã PHP và có phần mở rộng là HTML. Phần mở của PHP được đặt trong thẻ mở <?php và thẻ đóng ?>. Khi trình duyệt truy cập vào một trang PHP, Server sẽ đọc nội dung file PHP lên và lọc ra các đoạn mã PHP và thực thi các đoạn mã đó, lấy kết quả nhận được của đoạn mã PHP thay thế vào chỗ ban đầu của chúng trong file PHP, cuối cùng Server trả về kết quả cuối cùng là một trang nội dung HTML về cho trình duyệt.
Hệ quản trị cơ sở dữ liệu MySQL MySQL là một phần mềm quản trị CSDL mã nguồn mở, miễn phí nằm trong nhóm LAMP (Linux – Apache – MySQL - PHP) [10]. MySQL rất phổ biến được các nhà phát triển ưa chuộng trong quá trình phát triển ứng dụng. 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.
Vì MySQL miễn phí hoàn toàn cho nên có thể tải MySQL từ trang chủ [10]. MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: Phiên bản Win32 cho các hệ điều hành dòng Window, Linux, MacOS X, Unix, FreeBSD, NetBSD, Novell, NetWare, SGI, Irix…[10]. 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) [10]. MySQL được sử dụng hỗ cho việc bổ trợ PHP, Perl và nhiều ngôn ngữ khác, 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…[10].
Giao diện của MySql Lý do sử dụng MySQL: MySQL là phần mềm miễn phí hoàn toàn ổn định, an toàn. Hiện nay trong số các website có lưu lượng truy cập lớn thuộc hàng “top” trên Internet, có rất nhiều website sử dụng liên minh LAMP này. Đặc điểm của MySQL [10]: MySQL là một phần mềm quản trị cơ sở dữ liệu dạng server – bassed (gần tương đương với SQL Server của Microsoft). MySQL quản lý dữ liệu thông qua các cơ sở dữ liệu, mỗi cơ sở dữ liệu có thể có nhiều bảng quan hệ chứa dữ liệu.
MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều cơ sở dữ liệu khác nhau, mỗi người dùng có một tên truy cập (username) và mật khẩu (password) tương ứng để truy xuất đến cơ sở dữ liệu. Khi ta truy vấn tới cơ sở dữ liệu MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng cơ sở dữ liệu đó. Nếu không, chúng ta sẽ không làm được gì cả. Trang 7 Tốc độ: MySQL rất nhanh.
Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà chúng ta có thể có. Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn. Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức. Hỗ trợ ngôn ngữ truy vấn: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại.
Chúng ta có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database Connectivity - một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft). Năng lực: Nhiều client có thể truy cập đến server trong cùng một thời gian. Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời. Chúng ta có thể truy cập MySQL tương tác với sử dụng một vài giao diện để có thể đưa vào các truy vấn và xem các kết quả: các dòng yêu cầu của khách hàng, các trình duyệt Web… Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó chúng ta có thể chia sẽ dữ liệu với bất kỳ ai, bất kỳ nơi nào.
Nhưng MySQL kiểm soát quyền truy cập cho nên người mà không nên nhìn thấy dữ liệu của chúng ta thì không thể nhìn được. Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS/2. MySQL chạy được các với mọi phần cứng từ các máy PC ở nhà cho đến các máy server. Sự phân phối rộng: MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web.
Nếu không hiểu làm thế nào mà nó làm việc hay tò mò về Trang 8 thuật toán, chúng ta có thể lấy mã nguồn và tìm tòi nó. Nếu không thích một vài cái, chúng ta có thể thay đổi nó. Sự hỗ trợ: Có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ. Cộng đồng MySQL rất có trách nhiệm.
Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút. Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi trong vài giờ và cách khắc phục đó sẽ ngay lập tức có sẵn trên Internet. MVC là gì? Mô hình MVC là một chuẩn mô hình và đóng vai trò quan trọng trong quá trình xây dựng – phát triển – vận hành và bảo trì một hệ thống hay một ứng dụng – phần mềm. Nó tạo ra một mô hình 3 lớp Model – View – Controller tách biệt và tương tác nhau, giúp các chuyên gia có thể dễ dàng dựa vào mô hình để trao đổi và xử lý những nghiệp vụ một cách nhanh chóng.
Đây là một mô hình đã xuất hiện từ những năm 70 của thế kỷ 20 tại phòng thí nghiệm Xerox PARC ở Palo Alto, nó không phụ thuộc vào môi trường, nền tảng xây dựng hay ngôn ngữ phát triển. Chúng ta có thể áp dụng mô hình MVC vào các dự án trong môi trường Windows, Linux… và sử dụng bất kỳ ngôn ngữ nào như PHP, ASP, JSP…[11]. Mô hình MVC Trang 9 1. Lịch sử MVC 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 - GUI) và lập trình hướng đối tượng (Object Oriented Programming - OOP) 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 nữa khi họ cho ra đời cái gọi là kiến trúc MVC (Viết tắt của Model – View – Control) [12]. Kiến trúc này ngày càng được phát triển và hoàn thiện nhằm giải quyết các vấn đề phát sinh cũng như các giải pháp cho quá trình phát triển phần mềm [12]. Vai trò của các thành phần M-V-C trong Web Framework Model: Là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở dữ liệu (mysql, mssql… ).
Nó sẽ bao gồm các class/function xử lý nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu…[11].