Lập trình hướng đối tượng – Phần 1 – Cơ bản về lớp đối tượng – PHP

Giới thiệu

Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là một mô hình kiến trúc lập trình dựa trên khái niệm “công nghệ đối tượng”, mà trong đó, đối tượng chứa đựng các dữ liệu: (i) thuộc tính của đối tượng; (ii) phương thức để thực thi các hành động của đối tượng.

OOP được xem là giúp tăng năng suất, đơn giản hóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm bằng cách cho phép lập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn.

Một số khái niệm cơ bản

Khái niệm đầu tiên là “đối tượng”, được hiểu như là 1 thực thể: người, vật hoặc 1 bảng dữ liệu, . . .

Một đối tượng bao gồm 2 thông tin chính:

  • Thuộc tính. Là những thông tin, đặc điểm của đối tượng. Ví dụ: một hình chữ nhật sẽ có chiều dài, chiều rộng, . . .
  • Phương thức. Là những thao tác, hành động mà đối tượng đó có thể thực hiện. Ví dụ: một hình chữ nhật sẽ có thao tác tính chu vi, diện tích, . . .

Khái niệm thứ hai là “lớp”, được hiểu như là một khuôn mẫu mà từng đối tượng là một thể hiện cụ thể dựa trên khuôn mẫu đó.

Ví dụ một lớp hình chữ nhật sẽ định nghĩa: (i) các thuộc tính chiều dài / chiều rộng; (ii) các phương thức tính chu vi, tính diện tích. Còn từng đối tượng hình chữ nhật sẽ có số đo cụ thể cho từng thuộc tính cũng như chu vi và diện tích riêng.

Các tính chất của lập trình hướng đối tượng

Tính đóng gói (encapsulation) và che giấu thông tin (information hiding):

  • Tính chất này không cho phép tác nhân bên ngoài thay đổi trạng thái nội tại của một đối tượng.
  • Chỉ có các phương thức nội tại của đối tượng cho phép thay đổi trạng thái của nó.
  • Đây là tính chất đảm bảo sự toàn vẹn của đối tượng.

Tính trừu tượng (abstraction):

  • Là phương pháp trừu tượng hóa định nghĩa lên những hành động, tính chất của loại đối tượng nào đó cần phải có.
  • Mỗi đối tượng có thể hoàn tất các công việc một cách nội bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đối tượng khác mà không cần cho biết làm cách nào đối tượng tiến hành được các thao tác.
  • Tính chất này thường được gọi là sự trừu tượng của dữ liệu.

Tính kế thừa (inheritance):

  • Đặc tính này cho phép một đối tượng có thể có sẵn các đặc tính mà đối tượng khác đã có thông qua kế thừa.
  • Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại.

Tính đa hình (polymorphism):

  • Thể hiện thông qua việc gửi các thông điệp (message).
  • Việc gửi các thông điệp này có thể so sánh như việc gọi các phương thức bên trong của một đối tượng.
  • Các phương thức dùng trả lời cho một thông điệp sẽ tùy theo đối tượng mà thông điệp đó được gửi tới sẽ có phản ứng khác nhau.

Xây dựng lớp đối tượng độc lập

Trong nội dung bài này, chúng ta cùng tìm hiểu cách xây dựng một lớp đối tượng độc lập cùng với tính chất đóng gói (encapsulation) bằng ngôn ngữ PHP.

Bước 1.

Chúng ta tạo một PHP Project trong Eclipse IDE và đặt tên là PHPOOPFirstProject.

Chúng ta tiếp tục tạo file index.php.

Bước 2.

Chúng ta tạo folder objectclass HinhChuNhat.php.

Những kỹ thuật lập trình cần chú ý:

  • Như đã trình bày ở phần Giới thiệu về Tính đóng gói (encapsulation) và che giấu thông tin (information hiding). Mỗi folder có thể được xem như là một hình thức để gom nhóm các lớp đối tượng có cùng chung những đặc điểm nào đó.
  • PHP là một ngôn ngữ lập trình rất linh động và hỗ trợ nhiều phong cách lập trình khác nhau. Chúng ta có thể tự do lựa chọn việc có đặt một class vào bên trong một folder hay không. Tuy nhiên, để dễ quản lý một chương trình phần mềm lớn, chúng ta nên phân hoạch các class vào trong những folder theo tư duy hướng đối tượng.
  • Trong ví dụ hiện tại, chúng ta có thể đặt tên folderobject (nghĩa là đối tượng nói chung) hoặc shape (nghĩa là hình vẽ nói chung).

Bước 3.

Chúng ta định nghĩa 02 thuộc tính cơ bản của một hình chữ nhật:

Những kỹ thuật lập trình cần chú ý:

  • Như đã trình bày ở phần Giới thiệu về đặc trưng của một lớp đối tượng. Các thuộc tính nội tại của một đối tượng thì chỉ có thể được trông thấy và điều chỉnh bởi các phương thức nội tại của chính đối tượng đó.
  • Chúng ta sử dụng từ khóa private được PHP cung cấp. Thuộc tính này quy định một thuộc tính hoặc một phương thức là ẩn bên trong một lớp.

Bước 4.

Chúng ta định nghĩa constructor cho lớp đối tượng:

Những kỹ thuật lập trình cần chú ý:

  • Constructor là một dạng đặc biệt của phương thức, được sử dụng để khởi tạo các đối tượng.
  • Constructor được gọi tại thời điểm tạo đối tượng. Nó khởi tạo các giá trị để cung cấp dữ liệu cho các đối tượng, đó là lý do tại sao nó được gọi là constructor.
  • Khác với nhóm ngôn ngữ Java / C#, PHP chỉ cung cấp một phương thức constructor duy nhất là __construct(). Chúng ta sẽ chủ động quyết định xem có để tham số cho constructor hay không. Ngoài ra chúng ta chỉ có thể tạo duy nhất một dạng constructor có hoặc không có tham số. Đối với những phương thức khác, chúng ta sẽ tiếp tục tìm hiểu nội dung này trong những bài tiếp theo về lập trình hướng đối tượng.
  • Từ khóa this giúp chúng ta liên hệ đến thuộc tính hoặc phương thức nội tại của lớp đối tượng. Chúng ta sử dụng từ khóa này để phân biệt khi muốn định nghĩa các biến có cùng tên với các thuộc tính hoặc phương thức nội tại của lớp.

Bước 5.

Chúng ta định nghĩa các phương thức truy xuất và điều chỉnh dữ liệu, được gọi là các gettersetter:

Những kỹ thuật lập trình cần chú ý:

  • Đây chính là những phương thức nội tại được dành riêng để truy xuất và điều chỉnh thông tin cho các thuộc tính nội tại.
  • Theo quy tắc chung, tên của các phương thức này nên để getset đứng trước tên của thuộc tính.
  • Mỗi thuộc tính nên được theo kèm bởi một cặp get / set.

Bước 6.

Chúng ta định nghĩa các phương thức tính chu vi và diện tích hình chữ nhật:

Bước 7.

Chúng ta thực hiện thử nghiệm tạo mới hình chữ nhật và tính chu vi, diện tích:

Những kỹ thuật lập trình cần chú ý:

  • Để truy xuất đến một file php ở một folder khác, chúng ta sử dụng từ khóa require_once. Ví dụ ở đây là require_once ‘object/HinhChuNhat.php’. Khác với nhóm ngôn ngữ Java / C# / Python, cách thức thực hiện của PHP là sẽ sao chép toàn bộ mã nguồn của file vào đúng vị trí sử dụng require_once. Trên thực tế chúng ta có thể sử dụng từ khóa require. Nhưng như vậy có thể xảy ra trường hợp một file được truy xuất nhiều lần và có thể gây ra những hệ quả không mong muốn. Do vậy khuyến khích nên dùng require_once để chỉ truy xuất một lần duy nhất.
  • Chúng ta khởi tạo một đối tượng thực bằng cách gọi constructor của lớp đối tượng với toán tử new. Với constructor được gọi thì thuộc tính nội tại sẽ được khởi tạo với giá trị mặc định của nó.

Bước 8.

Chúng ta thực thi toàn bộ project để kiểm tra kết quả thử nghiệm:

Tổng kết

Trong bài này, chúng ta đã cùng nhau tìm hiểu những kiến thức cơ bản về lớp đối tượng cũng như những tính chất về lập trình hướng đối tượng.

Chúng ta đã cùng nhau thực hiện một ví dụ nhỏ về lớp đối tượng với ngôn ngữ PHP.

Trong các bài tiếp theo, chúng ta sẽ tiếp tục tìm hiểu những kiến thức khác xung quanh lập trình hướng đối tượng.

Một số thuật toán cơ bản xung quanh số nguyên tố – PHP

Giới thiệu

Trong nội dung bài này, chúng ta cùng nhau tìm hiểu một số kiến thức cơ bản xung quanh số nguyên tố.

Một số tự nhiên p (p > 1) là số nguyên tố nếu p có đúng 02 ước số là 1 và p.

Ví dụ các số nguyên tố: 2, 3, 5, 7, 11, 13, 17, 19, 23, …

Chúng ta cùng nhau thực hiện một số giải thuật cơ bản bằng ngôn ngữ PHP để giải quyết các bài toán con sau:

  • Kiểm tra xem một số tự nhiên n có phải là số nguyên tố hay không.
  • Liệt kê các số nguyên tố nằm trong phạm vi [1, n].

Kiểm tra tính nguyên tố

Giải thuật thứ nhất

Ý tưởng giải thuật

Chúng ta kiểm tra xem có tồn tại một số nguyên k (2 ≤ k ≤ n – 1) mà k là ước của n (n chia hết cho k) thì n không phải là số nguyên tố, ngược lại n là số nguyên tố.

Trên thực tế ta chỉ cần kiểm tra k từ 2 đến √n là được.

Bước 1.

Chúng ta tạo một PHP Project trong Eclipse IDE và đặt tên là PHPAlgorithmBasicProject.

Chúng ta tiếp tục tạo file index.php.

Bước 2.

Chúng ta tạo folder algorithmclass SoNguyenTo.php.

Chúng ta tiếp tục tạo phương thức kiemTraSNTFirst() với:

  • Tham số cho phương thức này là một số tự nhiên n.
  • Kiểu dữ liệu trả về là bool. Phương thức trả về kết quả: (i) TRUE nếu n là số nguyên tố; (ii) FALSE nếu ngược lại.

Bước 3.

Chúng ta thực hiện giải thuật bằng ngôn ngữ PHP như sau:

Những kỹ thuật lập trình cần chú ý:

  • Phương thức để tính căn bậc 2 của một số tự nhiên nsqrt().
  • Phương thức để lấy phần nguyên của một số thập phân là round().

Bước 4.

Chúng ta thực hiện thử nghiệm phương thức kiemTraSNTFirst() trong index.php như sau:

Bước 5.

Chúng ta thực thi toàn bộ project để kiểm tra kết quả thử nghiệm:

Giải thuật thứ hai

Ý tưởng giải thuật

Chúng ta sẽ chỉ kiểm tra các số k có tính chất giống với một trong hai tính chất cơ bản sau của số nguyên tố:

  • Trừ số 2 và các số nguyên tố là số lẻ.
  • Trừ số 2, 3, các số nguyên tố có dạng 6k ± 1 (vì số có dạng 6k ± 2 thì chia hết cho 2, số có dạng 6k ± 3 thì chia hết cho 3).

Bước 1.

Chúng ta thực hiện giải thuật bằng ngôn ngữ PHP như sau:

Bước 2.

Chúng ta thực hiện thử nghiệm phương thức kiemTraSNTSecond() trong index.php như sau:

Bước 3.

Chúng ta thực thi toàn bộ project để kiểm tra kết quả thử nghiệm:

Liệt kê các số nguyên tố trong đoạn [1, N]

Giải thuật thứ nhất

Ý tưởng giải thuật

Chúng ta lần lượt xem xét các số m trong đoạn [1, n], rồi kiểm tra tính nguyên tố của m.

Bước 1.

Chúng ta thực hiện giải thuật bằng ngôn ngữ PHP như sau:

Những kỹ thuật lập trình cần chú ý:

  • Khác với những ngôn ngữ khác như Java / Csharp. PHP không quy định cứng kiểu dữ liệu cho từng phần tử trong tập hợp. Do vậy chúng ta phải chủ động xác định kiểu dữ liệu cho từng phần tử trong tập hợp.
  • Để điều chỉnh giá trị và số lượng phần tử trong một tập hợp, chúng ta thêm ký tự & vào trước tên biến. Tương tự như trong C, ký tự này thể hiện địa chỉ trong bộ nhớ đối với tập hợp.

Bước 2.

Chúng ta thực hiện thử nghiệm phương thức lietKeSNTFirst() trong index.php như sau:

Bước 3.

Chúng ta thực thi toàn bộ project để kiểm tra kết quả thử nghiệm:

Giải thuật thứ hai

Ý tưởng giải thuật

Chúng ta áp dụng sàng Eratosthenes để tìm các số nguyên tố nhỏ hơn hoặc bằng số tự nhiên n:

  • Bước 1: Tạo 1 danh sách các số tự nhiên liên tiếp từ 2 đến n: (2, 3, 4,…, n).
  • Bước 2: Giả sử tất cả các số trong danh sách đều là số nguyên tố. Trong đó, p = 2 là số nguyên tố đầu tiên.
  • Bước 3: Tất cả các bội số của p: 2p, 3p, 4p,… sẽ bị đánh dấu vì không phải là số nguyên tố.
  • Bước 4: Tìm các số còn lại trong danh sách mà chưa bị đánh dấu và phải lớn hơn p. Nếu không còn số nào, dừng tìm kiếm. Ngược lại, gán cho p giá trị bằng số nguyên tố tiếp theo và quay lại bước 3.

Khi giải thuật kết thúc, tất các số chưa bị đánh dấu trong danh sách là các số nguyên tố cần tìm.

Bước 1.

Chúng ta thực hiện giải thuật bằng ngôn ngữ PHP như sau:

Bước 2.

Chúng ta thực hiện thử nghiệm phương thức lietKeSNTSecond() trong index.php như sau:

Bước 3.

Chúng ta thực thi toàn bộ project để kiểm tra kết quả thử nghiệm:

Tổng kết

Trong bài này, chúng ta đã cùng nhau tìm hiểu một số giải thuật cơ bản xung quanh số nguyên tố và thực hiện bằng ngôn ngữ PHP.

Hy vọng rằng chúng ta có thể áp dụng phù hợp những kỹ thuật và chức năng này cho những bài tiếp theo.

Học kỹ thuật lập trình PHP cơ bản qua các ví dụ – Phần 2 – Xây dựng phương thức và Debug trong Eclipse IDE

Giới thiệu

Tiếp theo nội dung của bài trước, trong bài này chúng ta cùng nhau tìm hiểu một số kỹ thuật lập trình cơ bản trong PHP đồng thời tìm hiểu một số chức năng cần thiết trong Eclipse IDE.

Chúng ta thực hiện tiếp Yêu cầu 2 và Yêu cầu 3 của bài toán cơ bản thông qua những kỹ thuật về lập trình:

  • Kỹ thuật vòng lặp for kiểu mới.
  • Câu lệnh điều khiển và rẽ nhánh.
  • Các toán tử cơ bản.
  • Định nghĩa và thực thi các phương thức.

Chúng ta cũng tìm hiểu phương pháp debug trong Eclipse IDE để kiểm tra từng câu lệnh cũng như bắt lỗi.

Những kỹ thuật được trình bày sẽ mang tính phổ quát và độc lập ngôn ngữ lập trình. Điều đó có nghĩa rằng chúng ta có thể áp dụng ý tưởng từ các kỹ thuật này khi tìm hiểu các ngôn ngữ khác như Java / C# / Python.

Xây dựng phương thức trong PHP

Một phương thức trong PHP là một khối các câu lệnh có tên và có thể được thực thi bằng cách gọi từ một nơi khác trong chương trình.

Cấu trúc cú pháp của một phương thức như sau:

function tên_phương_thức (danh_sách_tham_số) [: kiểu_dữ_liệu_trả_về] {
  // Thực hiện công việc
}

Chúng ta có hai dạng phương thức chính:

  • Dạng phương thức không trả về kết quả.
  • Dạng phương thức có trả về kết quả.

Xây dựng phương thức không trả về kết quả

Bước 1.

Chúng ta thực hiện việc tạo một PHP Project mới trong Eclipse IDE.

Chúng ta tiếp tục thực hiện việc tạo file index.php.

Màn hình giao diện Eclipse IDE hiển thị nội dung của file index.php hiện ra.

Bước 2.

Chúng ta thực hiện việc tạo folder baitap và file BaiCoBan.php.

Chúng ta tiếp tục tạo phương thức:

function tinhTong() {}

Bước 3.

Nội dung đầu tiên bên trong phương thức tinhTong() như sau:

Bước 4.

Nội dung thứ hai bên trong phương thức tinhTong() như sau:

Bước 5.

Nội dung thứ ba bên trong phương thức tinhTong() như sau:

Ở đây chúng ta có một số điểm cần chú ý:

  1. Thứ nhất, kỹ thuật lặp for mới.

Cú pháp cho kỹ thuật lặp for mới như sau:

foreach (danh_sách as phần_tử) {
  // Thực hiện công việc
}

Ý nghĩa của cú pháp trên: hệ thống tự động truy xuất lần lượt từng phần tử trong danh_sách và gán giá trị cho phần_tử.

  1. Thứ hai, câu lệnh điều kiện và rẽ nhánh.

Câu lệnh điều kiện thứ nhất là if có cấu trúc cú pháp như sau:

if (điều_kiện_1) {
  // Thực thi công việc nếu điều_kiện_1 là đúng
} elseif (điều_kiện_2) {
  // Thực thi công việc nếu điều_kiện_2 là đúng
} else {
  // Thực thi công việc nếu cả điều_kiện_1 và điều_kiện_2 đều sai
}

Chú ý rằng tùy trường hợp chúng ta mới cần đến rẽ nhánh elseif hoặc else.

Câu lệnh điều khiển thứ hai là switch có cấu trúc cú pháp như sau:

switch(biểu_thức) {
  case giá_trị_1:
    // thực thi công việc nếu giá trị của biểu_thức trùng với giá_trị_1
    break;
  case giá_trị_2:
    // thực thi công việc nếu giá trị của biểu_thức trùng với giá_trị_2
    break;
  default:
    // thực thi công việc nếu giá trị của biểu_thức khác với các giá trị bên trên
}

Chúng ta có một số chú ý ở đây:

  • Từ khóa break thực hiện thoát khỏi một đoạn chương trình bên trong cặp {} hoặc một vòng lặp.
  • Từ khóa default được sử dụng tùy trường hợp cần thiết.
  1. Thứ ba, một số toán tử cơ bản.
  • Toán tử +. Thực hiện phép cộng: $x + $y.
  • Toán tử . Thực hiện phép trừ: $x – $y.
  • Toán tử *. Thực hiện phép nhân: $x * $y.
  • Toán tử /. Thực hiện phép chia: $x / $y.
  • Toán tử %. Thực hiện phép chia lấy số dư: $x % $y.
  • Toán tử ++. Thực hiện phép cộng thêm 1 vào số: $x ++.
  • Toán tử --. Thực hiện phép trừ đi 1 vào số: $x --.

Bước 6.

Nội dung thứ tư bên trong phương thức tinhTong() như sau:

Bước 7.

Chúng ta thực thi phương thức tinhTong() trong file index.php như sau:

Xây dựng phương thức có trả về kết quả

Bước 1.

Đối với phương thức tinhTong() có trả về kết quả, chúng ta có một số chú ý như sau:

  • Ở đây do chúng ta thực hiện tính tổng các số tự nhiên nên kiểu dữ liệu của kết quả được trả về là int.
  • Chúng ta có thể cung cấp tham số cho phương thức này. Ở đây chúng ta cung cấp tham số là mảng int[] tapHop để thực hiện việc tính tổng các số tự nhiên.
  • Do là có trả về kết quả nên ở câu lệnh cuối chúng ta sử dụng từ khóa return. Ở đây chúng ta thực hiện return tong.

Bước 2.

Trong file index.php, chúng ta thực hiện một số nội dung trước khi thực thi phương thức tinhTongSoChan().

Chúng ta chú ý rằng nên định nghĩa một biến để lưu giá trị được trả về của phương thức tinhTongSoChan().

Bước 3.

Chúng ta lựa chọn chức năng Run → Run Configurations để thực hiện cấu hình thực thi project.

Màn hình Run Configurations hiện ra.

Chúng ta lựa chọn nút New trong tab Server / Server để tạo mới PHP Web Server.

Bước 4.

Màn hình PHP Server Creation hiện ra.

Chúng ta nhập thông tin tương tự như sau:

Server Name: lampstack-7.3.6-1

Base URL: http://localhost:8080

Document Root: /home/homes/lampstack-7.3.6-1/apache2/htdocs/WorkspacePHP

Những điểm đáng chú ý ở đây:

  • Server Name. Chúng ta có thể đặt tên tùy ý. Ví dụ ở đây chúng ta đang xây dựng các phần mềm Web bằng PHP dựa theo bộ LAMP Stack thì đặt tên như trên cho dễ hình dung.
  • Base URL. Mặc định thì Apache Web Server trong bộ LAMP Stack thiết lập cổng là 8080.
  • Document Root. Đây là đường dẫn đến thư mục lưu trữ và thực thi các phần mềm Web bằng PHP bên trong apache2/htdocs.

Chúng ta lựa chọn nút Next > để tiếp tục.

Bước 5.

Màn hình thiết lập các thông số về debug hiện ra.

Chúng ta lựa chọn và nhập các thông tin như sau:

Debugger: Xdebug

Port: 9000

Chúng ta lựa chọn nút Finish để thực hiện.

Bước 6.

Màn hình Run Configurations hiện ra với các thông tin đã được cấu hình lại.

Chúng ta lựa chọn file index.php là file đầu tiên được thực thi.

Bước 7.

Chúng ta thực thi toàn bộ project để thử nghiệm những đoạn mã nguồn PHP được xây dựng bên trên:

Thực hiện Debug để kiểm tra các dòng lệnh và bắt lỗi trong Eclipse IDE

Bước 1.

Chúng ta mở file php.ini trong thư mục lampstack-7.3.6-1/php/etc/.

Chúng ta thực hiện mở chức năng xdebug bằng cách bỏ các dấu ; đứng trước các dòng cấu hình.

Sau đó chúng ta khởi động lại Apache Web Server để xác nhận.

Bước 2.

Chúng ta bổ sung phương thức phpinfo() trong file index.php để kiểm tra xem chức năng xdebug đã được khởi động lên chưa.

Chúng ta kiểm tra trên trình duyệt nếu xuất hiện các thông tin về xdebug thì là đúng.

Bước 3.

Chúng ta nhấn đôi chuột trái vào cột bên trái của dòng lệnh muốn bắt đầu thực hiện debug.

Một chấm nhỏ màu xanh sẽ xuất hiện ngay vị trí dòng lệnh này:

Bước 4.

Chúng ta chú ý đến nút hình con bọ trên thanh Toolbars và nút mũi tên ngay bên phải.

Bước 5.

Chúng ta lựa chọn thực hiện chức năng debug project khi nhấn vào nút mũi tên.

Bước 6.

Màn hình thông báo về việc lựa chọn chuyển sang giao diện debug hiện ra.

Chúng ta lựa chọn nút Switch để chuyển sang giao diện debug.

Bước 7.

Giao diện debug PHP của Eclipse IDE hiện ra.

Chúng ta nhận thấy dòng lệnh đầu tiên của file index.php đã được tô đậm màu xanh lá cây.

Trong phần màn hình ở góc bên phải, giá trị của các biến được định nghĩa bên trong phương thức đang được debug sẽ được hiển thị. Chú ý rằng chỉ những biến được định nghĩa trước dòng lệnh đang được debug mới được hiển thị.

Bước 8.

Chúng ta có thể nhấn menu Run trên thanh Toolbars để tham khảo các chức năng cơ bản cho tác vụ debug:

  • Chức năng Terminate với cặp phím Ctrl + F2. Chấm dứt tác vụ debug tại thời điểm hiện tại.
  • Chức năng Step Into với phím F5. Thực hiện lần lượt chuyển đến phương thức gặp phải tại dòng lệnh đang được debug.
  • Chức năng Step Over với phím F6. Thực thi dòng lệnh hiện tại và chuyển tiếp đến dòng lệnh tiếp theo bên dưới.
  • Chức năng Run to Line với cặp phím Ctrl + R. Thực thi các dòng lệnh liên tiếp và chuyển đến dòng lệnh đang đặt con trỏ chuột.

Bước 9.

Chúng ta thực hiện để con trỏ chuột tại dòng lệnh muốn debug ở Bước 3.

Chúng ta thực hiện chức năng Run to Line với phím F5 tại dòng lệnh này.

Bước 10.

Chúng ta thực hiện chức năng Step Over với phím F6 tại một số dòng lệnh liên tiếp.

Chúng ta thử dừng lại tại dòng lệnh:

$tong += $phanTu;

Chúng ta chú ý tab Variables ở phần màn hình bên phải.

Giá trị của các biến được định nghĩa trước dòng lệnh hiện tại đã được hiển thị chi tiết.

Bước 11.

Chúng ta thử thực hiện chức năng Terminate với cặp phím Ctrl + F2.

Chúng ta nhận thấy tác vụ debug được dừng lại.

Một chú ý là chúng ta mới chỉ tạm dừng chức năng debug và phần màn hình bên trái có xuất hiện:

PHP Applications (Waiting…)

Bước 12.

Chúng ta kiểm tra trình duyệt nội tại.

Những kết quả được thực thi cho đến dòng lệnh hiện tại được hiển thị ra.

Bước 13.

Chúng ta tiếp tục thực hiện chức năng Terminate với cặp phím Ctrl + F2.

Chúng ta nhận thấy tác vụ debug được dừng lại hoàn toàn.

Kết quả được hiển thị như sau:

Tổng kết

Trong bài này, chúng ta đã cùng nhau tìm hiểu một số kỹ thuật lập trình cơ bản trong PHP đồng thời tìm hiểu một số chức năng cần thiết trong Eclipse IDE.

Hy vọng rằng chúng ta có thể áp dụng phù hợp những kỹ thuật và chức năng này cho những bài tiếp theo.

Học kỹ thuật lập trình PHP cơ bản qua các ví dụ – Phần 1

Giới thiệu

Trong chuỗi các bài học về kỹ thuật lập trình PHP cơ bản qua các ví dụ, chúng ta sẽ cùng nhau tìm hiểu những kỹ thuật lập trình cơ bản nhất mà có thể áp dụng ngay để xây dựng các chương trình ứng dụng thực tế.

Những kỹ thuật được trình bày sẽ mang tính phổ quát và độc lập ngôn ngữ lập trình. Điều đó có nghĩa rằng chúng ta có thể áp dụng các kỹ thuật này đối với các ngôn ngữ khác như C# / Java / Python.

Đề bài

Yêu cầu 1: Thiết lập một tập hợp gồm một số lượng nhất định các số tự nhiên ngẫu nhiên.

Yêu cầu 2: Tính tổng các số chẵn trong tập hợp này.

Yêu cầu 3: Hiển thị các số này và tổng ra màn hình trình duyệt.

Phân tích và lập trình Yêu cầu 1

Phân tích

Để thực hiện Yêu cầu 1, chúng ta xem xét một số tác vụ nhỏ sau:

  • Tác vụ 1. Xác định một số lượng cố định.
  • Tác vụ 2. Thiết lập một tập hợp với số lượng phần tử được xác định bên trên.
  • Tác vụ 3. Xác định giá trị số tự nhiên cho từng phần tử.

Như vậy chúng ta sẽ cùng tìm hiểu những kỹ thuật lập trình sau để thực hiện lần lượt các tác vụ trên:

  • Kỹ thuật 1. Kiểu dữ liệu số nguyên cơ bản trong PHP.
  • Kỹ thuật 2. Khai báo biến và gán giá trị.
  • Kỹ thuật 3. Kiểu dữ liệu về tập hợp: mảng.
  • Kỹ thuật 4. Sử dụng thư viện toán học cơ bản trong PHP.
  • Kỹ thuật 5. Kỹ thuật thực hiện vòng lặp để duyệt các phần tử trong tập hợp.

Lập trình với ngôn ngữ PHP

Thực hiện Tác vụ 1 – Xác định một số lượng cố định

Chúng ta có thể thực hiện Tác vụ 1 với chuỗi lệnh sau:

$n = 10;

Những điểm cơ bản cần chú ý với chuỗi lệnh trên:

  1. Thứ nhất, cú pháp cho việc định nghĩa một biến và gán giá trị.

Theo quy định trong PHP, tất cả các biến được khuyến cáo nên định nghĩa trước khi có thể được sử dụng.

Cú pháp cơ bản cho việc định nghĩa một biến như sau:

$tên_biến [ = giá_trị ][, $tên_biến [= giá_trị ] …];

Tên của biến được bắt đầu bởi ký tự $ và sau đó là tên biến có một ý nghĩa cụ thể phù hợp mục tiêu sử dụng.

Ví dụ với Yêu cầu 1 trong bài này, chúng ta có thể đặt tên biến là $n hoặc $soPhanTu.

  1. Thứ hai, kiểu dữ liệu.

Theo Yêu cầu 1, số lượng phần tử của một tập hợp phải là một số tự nhiên.

PHP cung cấp cho chúng ta một kiểu dữ liệu số nguyên 32 bit tương ứng với phạm vi từ – 2,147,483,648 đến 2,147,483,647.

  1. Thứ ba, xác định số lượng.

Theo Yêu cầu 1, chúng ta có thể xác định trước một số lượng phần tử.

Ví dụ ở đây là $n = 10.

Chúng ta cũng có thể xác định một cách ngẫu nhiên một số lượng trong phạm vi nào đó.

Chúng ta thực hiện ý tưởng trên với chuỗi lệnh sau:

$n = rand();

Thực hiện Tác vụ 2 và Tác vụ 3 – Thiết lập một tập hợp bao gồm các số tự nhiên

Những điểm cần chú ý khi thực hiện Tác vụ 2 và Tác vụ 3:

  1. Thứ nhất, các phương pháp khởi tạo mảng.

PHP cung cấp cho chúng ta những phương pháp khác nhau để khởi tạo một mảng lưu trữ bất kỳ.

Một điểm đặc biệt của PHP so với những ngôn ngữ khác là từng phần tử trong mảng thì có thể có kiểu dữ liệu khác nhau tùy theo mục đích sử dụng.

  • Cách thứ nhất, khởi tạo một mảng bằng ký hiệu:

Chúng ta có thể khởi tạo một mảng rỗng với chuỗi lệnh sau:

$tapHop = [];

Chúng ta cũng có thể khởi tạo một mảng bao gồm một số phần tử sẵn có với chuỗi lệnh sau:

$tapHop = ['25', '43', '66'];

hoặc:

$tapHop = [
  'soA' => '25',
  'soB' => '43',
  'soC' => '66'
];

  • Cách thứ hai, khởi tạo mảng rỗng bằng phương thức array():

Chúng ta có thể khởi tạo một mảng rỗng với chuỗi lệnh sau:

$tapHop = array();

Chúng ta cũng có thể khởi tạo một mảng bao gồm một số phần tử sẵn có với chuỗi lệnh sau:

$tapHop = array('25', '43', '66');

hoặc:

$tapHop = array(
  'soA' => '25',
  'soB' => '43',
  'soC' => '66'
);

  1. Thứ hai, truy xuất các phần tử trong mảng.

Theo quy định trong PHP, các phần tử trong mảng được bắt đầu từ vị trí 0 đến số_lượng – 1.

PHP rất linh động trong việc gán và truy xuất giá trị cho các phần tử trong mảng.

Chúng ta có thể định nghĩa nhiều cách truy xuất khác nhau cho các phần tử trong mảng như ví dụ sau:

$tapHop = ['25', '43', '66'];
$tapHop['tam'] = '70';
$tapHop[8] = '36';
$tapHop[] = '99';

Chúng ta có kết quả cho việc định nghĩa trên:

Array (
  [0] => 25
  [1] => 43
  [2] => 66
  [tam] => 70
  [8] => 36
  [9] => 99
)

Như vậy phần tử $tapHop[1] có giá trị là 43.

  1. Thứ ba, gán giá trị cho từng phần tử trong mảng bằng phương pháp tự động với kỹ thuật lặp for.

Cú pháp cơ bản cho việc truy xuất các phần tử trong một mảng một chiều với kỹ thuật lặp for như sau:

for (khởi_tạo_biến_truy_xuất; điều_kiện_lặp; bước_lặp) {
  // thực hiện công việc
}

Vòng lặp for hoạt động như sau.

  • Khi vòng lặp đầu tiên bắt đầu, phần khởi tạo của vòng lặp được thực thi. Nói chung, đây là một biểu thức đặt giá trị của biến điều khiển vòng lặp, hoạt động như một bộ đếm điều khiển vòng lặp. Điều quan trọng là phải hiểu rằng biểu thức khởi tạo chỉ được thực hiện một lần.
  • Tiếp theo, điều kiện được đánh giá. Đây phải là một biểu thức Boolean. Nó thường kiểm tra biến điều khiển vòng lặp dựa trên giá trị đích. Nếu biểu thức này là đúng, thì phần thân của vòng lặp được thực thi. Nếu nó sai, vòng lặp chấm dứt.
  • Tiếp theo, phần lặp của vòng lặp được thực thi. Đây thường là một biểu thức làm tăng hoặc giảm biến điều khiển vòng lặp. Vòng lặp sau đó lặp lại, đầu tiên đánh giá biểu thức điều kiện, sau đó thực hiện phần thân của vòng lặp và sau đó thực hiện biểu thức lặp với mỗi lần truyền. Quá trình này lặp lại cho đến khi biểu thức kiểm soát là sai.

Ví dụ với mảng $tapHop[] gồm có 10 phần tử là các số tự nhiên. Chúng ta thực hiện gán giá trị như sau:

for ($i = 0; $i < $n; $i++) {
  $tapHop[$i] = rand();
}

  1. Thứ tư, gán giá trị cho từng phần tử trong mảng bằng phương pháp tự động với kỹ thuật lặp while.

Vòng lặp while là câu lệnh vòng lặp cơ bản.

  • Nó lặp lại một câu lệnh hoặc khối trong khi biểu thức kiểm soát của nó là đúng. Điều kiện có thể là bất kỳ biểu thức Boolean nào.
  • Phần thân của vòng lặp sẽ được thực thi miễn là biểu thức điều kiện là đúng.
  • Khi điều kiện trở thành sai, điều khiển chuyển sang dòng mã tiếp theo ngay sau vòng lặp.

Ví dụ với mảng $tapHop[] gồm có 10 phần tử là các số tự nhiên. Chúng ta thực hiện gán giá trị như sau:

$i = 1;
while ($i < $n) {
  $tapHop[i] = rand();
  $i = $i + 1;
}

Tổng kết

Trong bài này, chúng ta đã cùng nhau tìm hiểu một số những kỹ thuật lập trình cơ bản đầu tiên trong ngôn ngữ PHP.

Trong những bài tiếp theo, chúng ta sẽ tiếp tục tìm hiểu những kỹ thuật lập trình cơ bản khác để hoàn thành bài toán đặt ra ban đầu.

Thiết lập môi trường lập trình PHP 7 – Cài đặt LAPP Stack trên Ubuntu 18.04 x64 LTS

Giới thiệu

Trong bài này chúng ta cùng tìm hiểu việc cài đặt LAPP Stack cho PHP 7 trên Hệ điều hành Ubuntu 18.04 x64 LTS.

LAPP Stack là một bộ phần mềm sửa dụng trên Linux (L) bao gồm Apache (A), PostgreSQL (P) và PHP (P) được tích hợp để xây dựng Web Applications bằng PHP trên Linux.

Nếu so với XAMPP thì bộ LAPP Stack có một số điểm giúp việc cấu hình và xây dựng Web Applications dễ dàng hơn.

Các bước cài đặt LAPP Stack

Bước 1.

Chúng ta download LAPP 7.3.6 tại địa chỉ:

Download tại đây

Đây là phiên bản dành cho x64. Rất phù hợp để cài đặt trên Ubuntu 18.04 x64 LTS.

Hình 1. Lựa chọn download LAPP Stack 7.3.6.

Bước 2.

Chúng ta chọn chức năng Show Applications ở phía dưới cùng trên thanh Toolbars bên trái màn hình.

Chúng ta nhập chuỗi terminal để lựa chọn ứng dụng thực thi dòng lệnh Terminal.

Hình 2. Lựa chọn ứng dụng Terminal.

Bước 3.

Màn hình Terminal hiện ra.

Trước tiên chúng ta chuyển đến thư mục chứa tập tin cài đặt vừa được download ở Bước 1.

Giả sử rằng chúng ta để tập tin cài đặt trong thư mục Downloads/Programs.

Chuỗi lệnh để thực hiện chuyển đến thư mục Downloads/Programs:

cd Downloads/Programs

Tiếp theo, chúng ta xác lập quyền thực thi cho tập tin cài đặt bằng chuỗi lệnh:

sudo chmod +x bitnami-lappstack-7.3.6-1-linux-x64-installer.run

Hệ thống yêu cầu chúng ta nhập mật khẩu vì phải thực hiện với quyền root.

Chúng ta nhập mật khẩu của tài khoản đăng nhập rồi nhấn phím Enter.

Hình 3. Thiết lập quyền thực thi cho tập tin cài đặt.

Bước 4.

Chúng ta thực thi tập tin cài đặt bằng chuỗi lệnh:

./bitnami-lappstack-7.3.6-1-linux-x64-installer.run

Chúng ta nhấn phím Enter để thực hiện.

Hình 4. Chuỗi lệnh thực thi tập tin cài đặt.

Bước 5.

Màn hình bắt đầu thực hiện cài đặt hiện ra.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 5. Màn hình bắt đầu cài đặt.

Bước 6.

Màn hình lựa chọn các thành phần để cài đặt hiện ra.

Chúng ta nhận thấy có nhiều framework được tích hợp sẵn.

Chúng ta lựa chọn framework nào phù hợp để thực hiện cài đặt.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 6. Lựa chọn các thành phần để cài đặt.

Bước 7.

Màn hình lựa chọn thư mục mặc định để cài đặt.

Chúng ta có thể để nguyên thư mục mặc định.

Một số điểm chú ý ở đây:

  • So với XAMPP khi cài sẽ lựa chọn mặc định là /opt/lampp mà chúng ta không thể thay đổi được.
  • Đối với XAMPP, nếu chúng ta muốn tự do hơn trong việc phát triển phần mềm thì cần cấu hình lại thư mục lưu trữ tập tin PHP.
  • Ngược lại, đối với LAPP Stack, cho phép chúng ta lựa chọn thư mục mặc định và nằm trong thư mục của tài khoản chính.
  • Như vậy chúng ta không cần cấu hình lại thư mục lưu trữ tập tin PHP.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 7. Lựa chọn thư mục cài đặt.

Bước 8.

Màn hình yêu cầu nhập mật khẩu cho tài khoản postgres của cơ sở dữ liệu PostgreSQL.

Chúng ta nhập mật khẩu vào cả hai ô.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 8. Màn hình nhập mật khẩu cho tài khoản postgres của PostgreSQL.

Bước 9.

Màn hình đề nghị tạo tài khoản trên hệ thống đám mây của Bitnami.

Chúng ta có thể lựa chọn tạo hoặc không.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 9. Màn hình lựa chọn tạo tài khoản trên cloud của Bitnami.

Bước 10.

Màn hình thông báo sẵn sàng cài đặt hiện ta.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 10. Màn hình thông báo sẵn sàng cài đặt LAPP Stack 7.3.6.

Bước 11.

Hệ thống thực hiện cài đặt LAPP Stack.

Hình 11. Hệ thống thực hiện cài đặt LAPP Stack 7.3.6.

Bước 12.

Sau khi cài đặt hoàn tất, màn hình thông báo khởi động Control Panel để quản trị hiện ra.

Chúng ta lựa chọn chút Finish để tiếp tục.

Hình 12. Cài đặt hoàn tất.

Bước 13.

Màn hình chính của Control Panel hiện ra.

Hình 13. Màn hình chính của Control Panel.

Bước 14.

Để hiển thị giao diện chính của LAPP Stack trên trình duyệt, chúng ta lựa chọn nút Go to Application trên Control Panel.

Hình 14. Màn hình giao diện chính của LAPP Stack trên trình duyệt.

Bước 15.

Để hiển thị giao diện chính của phpPgAdmin quản trị PostgreSQL, chúng ta lựa chọn chức năng Go to phpPgAdmin trên giao diện chính của LAPP Stack.

Hình 15. Màn hình giao diện chính của phpPgAdmin.

Bước 16.

Màn hình quản trị chính của Control Panel.

Chúng ta có thể lựa chọn các chức năng Start / Stop / Restart các máy chủ.

Hình 16. Màn hình quản trị server trên Control Panel.

Tổng kết

Trong bài này chúng ta đã thực hiện cài đặt LAPP Stack 7.3.6 trên Hệ điều hành Ubuntu 18.04 x64 LTS.

Thiết lập môi trường lập trình PHP 7 – Cài đặt LAMP Stack trên Ubuntu 18.04 x64 LTS

Giới thiệu

Trong bài này chúng ta cùng tìm hiểu việc cài đặt LAMP Stack cho PHP 7 trên Hệ điều hành Ubuntu 18.04 x64 LTS.

LAMP Stack là một bộ phần mềm sửa dụng trên Linux (L) bao gồm Apache (A), Mysql / MariaDB (M) và PHP (P) được tích hợp để xây dựng Web Applications bằng PHP trên Linux.

Nếu so với XAMPP thì bộ LAMP Stack có một số điểm giúp việc cấu hình và xây dựng Web Applications dễ dàng hơn.

Các bước cài đặt LAMP Stack

Bước 1.

Chúng ta download LAMP 7.3.6 tại địa chỉ:

Download tại đây

Đây là phiên bản dành cho x64. Rất phù hợp để cài đặt trên Ubuntu 18.04 x64 LTS.

Hình 1. Download LAMP Stack 7.3.6.

Bước 2.

Chúng ta chọn chức năng Show Applications ở phía dưới cùng trên thanh Toolbars bên trái màn hình.

Chúng ta nhập chuỗi terminal để lựa chọn ứng dụng thực thi dòng lệnh Terminal.

Hình 2. Lựa chọn ứng dụng Terminal.

Bước 3.

Màn hình Terminal hiện ra.

Trước tiên chúng ta chuyển đến thư mục chứa tập tin cài đặt vừa được download ở Bước 1.

Giả sử rằng chúng ta để tập tin cài đặt trong thư mục Downloads/Programs.

Chuỗi lệnh để thực hiện chuyển đến thư mục Downloads/Programs:

cd Downloads/Programs

Tiếp theo, chúng ta xác lập quyền thực thi cho tập tin cài đặt bằng chuỗi lệnh:

sudo chmod +x bitnami-lampstack-7.3.6-1-linux-x64-installer.run

Hệ thống yêu cầu chúng ta nhập mật khẩu vì phải thực hiện với quyền root.

Chúng ta nhập mật khẩu của tài khoản đăng nhập rồi nhấn phím Enter.

Tiếp theo, chúng ta thực thi tập tin cài đặt bằng chuỗi lệnh:

./bitnami-lampstack-7.3.6-1-linux-x64-installer .run

Chúng ta nhấn phím Enter để thực hiện.

Hình 3. Chuỗi lệnh thực thi tập tin cài đặt LAMP Stack 7.3.6.

Bước 4.

Màn hình bắt đầu thực hiện cài đặt hiện ra.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 4. Màn hình khởi động cài đặt LAMP Stack 7.3.6.

Bước 5.

Màn hình lựa chọn các thành phần để cài đặt hiện ra.

Chúng ta nhận thấy có nhiều framework được tích hợp sẵn.

Chúng ta lựa chọn framework nào phù hợp để thực hiện cài đặt.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 5. Lựa chọn các thành phần để cài đặt.

Bước 6.

Màn hình lựa chọn thư mục mặc định để cài đặt.

Chúng ta có thể để nguyên thư mục mặc định.

Một số điểm chú ý ở đây:

  • So với XAMPP khi cài sẽ lựa chọn mặc định là /opt/lampp mà chúng ta không thể thay đổi được.
  • Đối với XAMPP, nếu chúng ta muốn tự do hơn trong việc phát triển phần mềm thì cần cấu hình lại thư mục lưu trữ tập tin PHP.
  • Ngược lại, đối với LAMP Stack, cho phép chúng ta lựa chọn thư mục mặc định và nằm trong thư mục của tài khoản chính.
  • Như vậy chúng ta không cần cấu hình lại thư mục lưu trữ tập tin PHP.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 6. Lựa chọn thư mục để cài đặt.

Bước 7.

Màn hình yêu cầu nhập mật khẩu cho tài khoản root của cơ sở dữ liệu MySQL / MariaDB.

Chúng ta nhập mật khẩu giống nhau vào cả hai ô.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 7. Nhập mật khẩu cho tài khoản root của MySQL / MariaDB.

Bước 8.

Màn hình đề nghị tạo tài khoản trên hệ thống đám mây của Bitnami.

Chúng ta có thể lựa chọn tạo hoặc không.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 8. Màn hình đề nghị tạo tài khoản trên đám mây của Bitnami.

Bước 9.

Màn hình thông báo sẵn sàng cài đặt hiện ra.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 9. Màn hình sẵn sàng cài đặt.

Bước 10.

Hệ thống thực hiện cài đặt LAMP Stack 7.3.6.

Hình 10. Hệ thống thực hiện cài đặt LAMP Stack 7.3.6.

Bước 11.

Sau khi cài đặt hoàn tất, màn hình thông báo khởi động Control Panel để quản trị hiện ra.

Chúng ta lựa chọn chút Finish để tiếp tục.

Hình 11. Cài đặt hoàn tất.

Bước 12.

Màn hình chính của Control Panel hiện ra.

Hình 12. Màn hình chính của Control Panel.

Bước 13.

Để hiển thị giao diện chính của LAMP Stack trên trình duyệt, chúng ta lựa chọn nút Go to Application trên Control Panel.

Hình 13. Màn hình giao diện chính của LAMP Stack 7.3.6.

Bước 14.

Để hiển thị giao diện chính của phpMyAdmin quản trị MySQL / MariaDB, chúng ta lựa chọn nút Open phpMyAdmin trên Control Panel.

Hình 14. Màn hình giao diện chính của phpMyAdmin.

Bước 15.

Màn hình quản trị chính của Control Panel.

Chúng ta có thể lựa chọn các chức năng Start / Stop / Restart các máy chủ.

Hình 15. Màn hình quản trị chính của Control Panel.

Tổng kết

Trong bài này chúng ta đã thực hiện cài đặt LAMP Stack 7.3.6 trên Hệ điều hành Ubuntu 18.04 x64 LTS.

Chương trình PHP đầu tiên trên Eclipse IDE

Giới thiệu

Trong bài này, chúng ta cùng nhau xây dựng chương trình PHP đầu tiên trên Eclipse IDE.

Tương tự như các chương trình lập trình đầu tiên với các ngôn ngữ khác, nội dung chính của chương trình này:

  • Hiển thị ra trên trình duyệt câu tiếng Việt “Xin chào thế giới lập trình và ngôn ngữ PHP”.
  • Cấu hình Eclipse IDE để có thể hiển thị trên trình duyệt nội bộ hoặc bên ngoài.

Xây dựng chương trình PHP đầu tiên

Bước 1.

Chúng ta khởi động Eclipse IDE và lựa chọn thư mục chứa các dự án.

Ví dụ ở đây chúng ta lựa chọn thư mục EclipseIDE.

/home/homes/Documents/GocHocTap/EclipseIDE

Chúng ta lựa chọn nút Launch để tiếp tục.

Chúng ta chú ý phải điều chỉnh cấu hình của Apache Web Server để chỉ đến thư mục này.

Hình 1. Khởi động Eclipse IDE và lựa chọn workspace.

Bước 2.

Màn hình chính của Eclipse IDE sẽ hiện ra bao gồm các phân vùng khác nhau.

Chúng ta lựa chọn chức năng File → New → Other để tạo dự án mới.

Hình 2. Lựa chọn chức năng tạo dự án mới trong Eclipse IDE.

Bước 3.

Màn hình New hiện ra.

Chúng ta lựa chọn PHP Project để tạo dự án Java mới.

Chúng ta lựa chọn nút Next > để tiếp tục.

Hình 3. Lựa chọn tạo dự án PHP mới.

Bước 4.

Cửa sổ New PHP Project hiện ra.

Chúng ta nhập các thông tin như sau:

Project name: PHPHelloWorld

Tên của dự án chính là tên của website mà chúng ta muốn xây dựng.

Các lựa chọn khác để mặc định.

Chúng ta lựa chọn nút Finish để thực hiện tạo dự án mới.

Hình 4. Nhập thông tin dự án PHP mới.

Bước 5.

Màn hình thông báo hiện ra, hỏi chúng ta có muốn chuyển sang giao diện của PHP hay không.

Chúng ta lựa chọn nút Open Perspective để thực hiện việc chuyển sang giao diện mới.

Hình 5. Lựa chọn chuyển sang giao diện lập trình PHP trong Eclipse IDE.

Bước 6.

Màn hình giao diện của PHP hiện ra.

Chúng ta có thể nhìn thấy phân vùng bên góc trái màn hình có thể hiện cấu trúc thư mục của dự án PHPHelloWorld.

Hình 6. Giao diện lập trình PHP với các phân vùng khác nhau.

Bước 7.

Chúng ta nhấn chuột phải vào tên dự án PHPHelloWorld.

Chúng ta lựa chọn New → PHP File để tạo tập tin PHP mới.

Hình 7. Lựa chọn chức năng tạo tập tin PHP mới.

Bước 8.

Màn hình New PHP File hiện ra.

Chúng ta nhập thông tin tập tin PHP mới như sau:

File name: index.php

Chú ý rằng đây là tập tin mặc định được chạy đầu tiên khi website được mở ra.

Chúng ta lựa chọn nút Next > để tiếp tục.

Hình 8. Màn hình nhập tên tập tin PHP mới.

Bước 9.

Màn hình lựa chọn mẫu tập tin PHP hiện ra.

Chúng ta lựa chọn tương tự như sau:

Name: New simple PHP file

Description: Simple php file

Chúng ta lựa chọn nút Finish để tạo tập tin PHP mới.

Hình 9. Màn hình lựa chọn mẫu tập tin PHP.

Bước 10.

Màn hình chính của Eclipse IDE hiện ra sau khi chúng ta tạo tập tin index.php.

Chúng ta nhận thấy tập tin index.php đã được mở tự động.

Chúng ta thực hiện đoạn mã nguồn để hiển thị ra các câu trên màn hình với các chuỗi lệnh như trong hình.

Những điểm cần chú ý theo quy định trong PHP:

  • Các dòng mã nguồn trên được viết bên trong cặp thẻ đóng mở <?php?> .
  • Phương thức để hiển thị một thông tin ra màn hình trình duyệt là echo.
  • Do hiển thị 02 câu nên ở đây chúng ta áp dụng một phương pháp là viết 03 lần phương thức echo.
  • Thẻ <br> là một thẻ trong HTML để biểu thị xuống hàng.

Những điều này sẽ được trao đổi kỹ hơn trong các bài sau về ngôn ngữ PHP.

Hình 10. Mã nguồn PHP hiển thị thông tin ra trình duyệt.

Bước 11.

Chúng ta thực hiện start Apache Web Server.

Chúng ta mở trình duyệt, ví dụ ở đây là Firefox.

Chúng ta nhập địa chỉ website như sau:

localhost/PHPHelloWorld

Trình duyệt sẽ hiển thị nội dung 02 câu mà chúng ta đã viết chương trình.

Hình 11. Trình duyệt Firefox hiển thị thông tin từ mã nguồn PHP.

Bước 12.

Trong trường hợp chúng ta muốn thực thi website bằng trình duyệt nội bộ.

Chúng ta lựa chọn mũi tên hướng xuống ngay bên cạnh nút mũi tên màu xanh trên thanh Toolbars.

Chúng ta lựa chọn Run as → 3 PHP Web Application.

Hình 12. Lựa chọn thực thi website trên trình duyệt nội bộ.

Bước 13.

Màn hình lựa chọn tập tin PHP để thực thi hiện ra.

Chúng ta lựa chọn tập tin index.php.

Chúng ta lựa chọn nút OK để thực thi website.

Hình 13. Lựa chọn tập tin PHP để thực thi đầu tiên.

Bước 14.

Màn hình trình duyệt nội bộ hiện ra và thực thi website giống như trên Firefox.

Hình 14. Trình duyệt nội bộ hiển thị thông tin từ mã nguồn PHP.

Bước 15.

Chúng ta thực hiện cấu hình lại chức năng thực thi trên trình duyệt nội bộ cho những lần tiếp theo.

Chúng ta lựa chọn mũi tên hướng xuống ngay bên cạnh nút mũi tên màu xanh trên thanh Toolbars.

Chúng ta lựa chọn Run Configurations.…

Hình 15. Lựa chọn chức năng cấu hình lại việc thực thi website trên trình duyệt nội bộ.

Bước 16.

Màn hình Run Configurations hiện ra.

Chúng ta nhập thông tin tương tự như sau:

Name: PHPHelloWorld

File: /PHPHelloWorld/index.php

URL: Auto Generate

Chúng ta lựa chọn nút Run để áp dụng và thực thi website.

Hình 16. Điều chỉnh thông tin cấu hình việc thực thi website trên trình duyệt nội bộ.

Bước 17.

Chúng ta thực thi lại website.

Chúng ta lựa chọn mũi tên hướng xuống ngay bên cạnh nút mũi tên màu xanh trên thanh Toolbars.

Chúng ta lựa chọn chức năng 1 PHPHelloWorld.

Màn hình trình duyệt nội bộ hiện ra và thực thi website giống như trên Firefox.

Hình 17. Lựa chọn chức năng thực thi website trên trình duyệt nội bộ.

Tổng kết

Trong bài này chúng ta đã cùng nhau thực hiện những công việc chính sau:

  • Thiết lập một dự án PHP bằng Eclipse IDE.
  • Tìm hiểu một số đoạn mã nguồn PHP cơ bản để hiển thị thông tin ra trình duyệt nội bộ cũng như bên ngoài.
  • Cấu hình Eclipse IDE để thực thi website.

Thiết lập môi trường lập trình PHP 7 – Cài đặt XAMPP trên Ubuntu 18.04 x64 LTS

Giới thiệu

Trong bài này chúng ta cùng tìm hiểu việc cài đặt XAMPP 7 trên Hệ điều hành Ubuntu 18.04 x64 LTS.

XAMPP là gì?

XAMPP là môi trường phát triển PHP phổ biến nhất.

XAMPP là một bản phân phối Apache hoàn toàn miễn phí, dễ cài đặt có chứa MariaDB, PHP và Perl.

Gói nguồn mở XAMPP đã được thiết lập để cực kỳ dễ cài đặt và sử dụng.

Một điều quan trọng là chúng ta chuyển sang sử dụng Hệ quản trị Cơ sở dữ liệu MariaDB. MariaDB được sử dụng rộng rãi hiện nay để dần thay thế cho MySQL đã được Oracle mua lại.

Ứng dụng được tích hợp trong XAMPP 7.3.5 dành cho Linux

Những ứng dụng được tích hợp sẵn trong XAMPP 7.3.5 dành cho Linux:

  • Apache 2.4.39, MariaDB 10.1.40, PHP 7.3.5 + SQLite 2.8.17/3.7.17 + multibyte (mbstring) support, Perl 5.16.3, ProFTPD 1.3.4c, phpMyAdmin 4.8.5,
  • OpenSSL 1.0.2r, GD 2.0.35, Freetype2 2.4.8, libpng 1.5.26, gdbm 1.8.3, zlib 1.2.11, expat 2.0.1, Sablotron 1.0.3, libxml 2.0.1, Ming 0.4.5, Webalizer 2.23-05, pdf class 0.11.7, ncurses 5.9, pdf class 0.11.7, mod_perl 2.0.8-dev, FreeTDS 0.91, gettext 0.19.8.1,
  • IMAP C-Client 2007e, OpenLDAP (client) 2.4.21, mcrypt 2.5.8, mhash 0.9.9.9, cUrl 7.45.0, libxslt 1.1.33, libapreq 2.13, FPDF 1.7, ICU4C Library 64.2, APR 1.5.2, APR-utils 1.5.4

Các bước cài đặt XAMPP 7.3.5

Bước 1.

Chúng ta download XAMPP 7.3.5 tại địa chỉ:

https://www.apachefriends.org/index.html

Chú ý lựa chọn phiên bản dành cho Linux.

Mặc định thì phiên bản 7.3.5 mới chỉ có cho x64. Rất phù hợp để cài đặt trên Ubuntu 18.04 x64 LTS.

Hình 1. Download XAMPP 7.3.5 dành cho Linux.

Bước 2.

Chúng ta chọn chức năng Show Applications ở phía dưới cùng trên thanh Toolbars bên trái màn hình.

Chúng ta nhập chuỗi terminal để lựa chọn ứng dụng thực thi dòng lệnh Terminal.

Hình 2. Lựa chọn ứng dụng Terminal.

Bước 3.

Cửa sổ Terminal hiện ra.

Trước tiên chúng ta chuyển đến thư mục chứa tập tin cài đặt vừa được download ở Bước 1.

Giả sử rằng chúng ta để tập tin cài đặt trong thư mục Downloads.

Chuỗi lệnh để thực hiện chuyển đến thư mục Downloads:

cd Downloads

Tiếp theo, chúng ta xác lập quyền thực thi cho tập tin cài đặt bằng chuỗi lệnh:

chmod 755 xampp-linux-x64-7.3.5-1-installer.run

Tiếp theo, chúng ta thực thi tập tin cài đặt bằng chuỗi lệnh:

sudo ./xampp-linux-x64-7.3.5-1-installer.run

Chúng ta nhấn phím Enter để thực hiện.

Hình 3. Thực thi chuỗi lệnh cài đặt XAMPP 7.3.5.

Bước 4.

Hệ thống yêu cầu chúng ta nhập mật khẩu vì phải thực hiện với quyền root.

Chúng ta nhập mật khẩu của tài khoản đăng nhập rồi nhấn phím Enter.

Hình 4. Nhập mật khẩu tài khoản hiện tại để thực hiện cài đặt XAMPP 7.3.5.

Bước 5.

Màn hình bắt đầu thực hiện cài đặt hiện ra.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 5. Màn hình bắt đầu cài đặt XAMPP 7.3.5.

Bước 6.

Chúng ta lựa chọn các thành phần để cài đặt:

  • XAMPP Core Files. Đây là lựa chọn mặc định.
  • XAMPP Developer Files. Đây lựa chọn dành cho những nhà phát triển muốn đóng góp chức năng thêm cho XAMPP. Chúng ta cũng có thể lựa chọn.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 6. Màn hình lựa chọn các chức năng để cài đặt.

Bước 7.

Hệ thống thông báo sẽ cài đặt XAMPP trong thư mục:

/opt/lampp

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 7. Hệ thống thông báo thư mục cài đặt XAMPP 7.3.5.

Bước 8.

Hệ thống giới thiệu ứng dụng Bitnami giúp hỗ trợ cài đặt các nền tảng website Drupal / Joomla / WordPress.

Nếu chúng ta muốn tìm hiểu thêm về Bitnami thì có thể lựa chọn:

Learn more about Bitnami for XAMPP

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 8. Màn hình giới thiệu ứng dụng Bitnami.

Bước 9.

Hệ thống thông báo sẵn sàng cài đặt.

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 9. Hệ thống thông báo sẵn sàng cài đặt XAMPP 7.3.5.

Bước 10.

Hệ thống tiến hành cài đặt XAMPP 7.3.5.

Hình 10. Hệ thống tiến hành cài đặt XAMPP 7.3.5.

Bước 11.

Hệ thống cài đặt xong XAMPP 7.3.5.

Nếu chúng ta muốn thực hiện ứng dụng Control Panel để quản lý việc khởi động và tắt đối với Web Server Apache và Hệ quản trị Cơ sở dữ liệu phpMyAdmin thì lựa chọn:

Launch XAMPP

Chúng ta cũng có thể thực hiện ứng dụng Control Panel với chuỗi lệnh sau trên Terminal:

cd /opt/lampp

sudo ./manager-linux-x64.run

Chúng ta lựa chọn chút Next > để tiếp tục.

Hình 11. Hoàn thành cài đặt XAMPP 7.3.5.

Bước 12.

Màn hình ứng dụng Control Panel hiện ra.

Hình 12. Màn hình Control Panel.

Bước 13.

Chúng ta lựa chọn tab Manage Servers.

Chúng ta lựa chọn các chức năng MySQL Database / Apache Web Server.

Chúng ta lựa chọn nút Start hoặc Stop để khởi động hoặc dừng các chức năng này.

Hình 13. Màn hình quản lý MySQL Database và Apache Web Server.

Bước 14.

Để kiểm tra xem MySQL Database / Apache Web Server đã chạy ổn định chưa, chúng ta mở trình duyệt lên và nhập địa chỉ:

localhost/dashboard

Nếu hiển thị giao diện trang web của XAMPP là thành công.

Hình 14. Trang chủ localhost.

Bước 15.

Chúng ta lựa chọn tab phpMyAdmin để kiểm tra.

Nếu hiển thị giao diện của Hệ quản trị Cơ sở dữ liệu phpMyAdmin là thành công.

Hình 15. Giao diện Hệ quản trị Cơ sở dữ liệu phpMyAdmin.

Cấu hình thư mục để đặt các tập tin PHP

Mặc định, Web Server Apache yêu cầu chúng ta đặt các tập tin PHP trong thư mục:

/opt/lampp/htdocs

Đây là thư mục thuộc quyền quản trị của tài khoản root nên có nhiều giới hạn về truy cập / chỉnh sửa / thêm mới.

Mục đích của điều này là để đảm bảo an toàn cho các website của chúng ta.

Nhưng trong quá trình xây dựng website và lập trình với PHP, chúng ta có thể chưa cần đến điều này.

Như vậy chúng ta có thể điều chỉnh thư mục đặt các tập tin PHP.

Bước 1.

Chúng ta lựa chọn Stop các chức năng MySQL Database / Apache Web Server.

Chúng ta lựa chọn chức năng Apache Web Server.

Chúng ta lựa chọn nút Configure để cấu hình.

Hình 16. Stop các chức năng MySQL Database / Apache Web Server.

Bước 2.

Màn hình để cấu hình Apache Web Server hiện ra.

Chúng ta lựa chọn nút Open Conf File để thực hiện.

Hình 17. Màn hình cấu hình Apache Web Server.

Bước 3.

Hệ thống yêu cầu xác nhận việc cấu hình tập tin httpd.conf.

Chúng ta lựa chọn nút Yes để tiếp tục.

Hình 18. Xác nhận cấu hình tập tin httpd.conf.

Bước 4.

Tập tin httpd.conf được mở ra.

Chúng ta tìm đến hàng có chuỗi DocumentRoot.

Chúng ta thực hiện đổi chuỗi

/opt/lampp/htdocs

Bởi đường dẫn đến thư mục mong muốn. Giả sử ở đây chúng ta đặt đường dẫn đến thư mục mới để lưu các tập tin PHP:

/home/ubuntu/Documents/PHPProjects

Trong đó ubuntu chính là tên của tài khoản đăng nhập hiện tại.

Điều này cho phép chúng ta chỉnh sửa các tập tin PHP bằng tài khoản hiện tại.

Hình 19. Điều chỉnh đường dẫn đến thư mục chứa các tập tin PHP.

Tổng kết

Trong bài này chúng ta đã thực hiện cài đặt XAMPP 7.3.5 trên Hệ điều hành Ubuntu 18.04 x64 LTS.

Hi vọng rằng chúng ta có thể phát triển tốt các ứng dụng web bằng ngôn ngữ lập trình PHP với nền tảng XAMPP.

Mọi tác vụ đều được thực hiện tương tự như trên Windows.