Thứ Năm, 29 tháng 9, 2016

PHP NÂNG CAO - Lập trình hướng đối tượng - class config database

Ở bài này tôi sẽ hướng dẫn các bạn tổ chức thư mục cho ứng dụng của mình và sau đó viết code hướng đối tượng đầu tiên.

Trước tiên nhất là chúng ta cần phải thao tác với cơ sở dữ liệu, khác với cách viết thủ tục bạ đâu viết đó thì ở đây ta sẽ tạo ra một class database riêng để sử dụng nhiều lần
 Trước hết chúng ta sẽ tổ chức cấu hình các thư mục như sau



Các bạn có thể đặt tên thư mục theo ý của mình, ở đây ta có images để lưu hình ảnh, libraries để lưu các thư viện , scripts để lưu các thư viện javascript,  styles để lưu css, và cuối cùng là một fileindex.php gbg

1. Tạo class config
a. Sử dụng hằng trong class
Hằng trong một class được khai báo như là một thuộc tính và phương thức nhưng không có cơ chế đi kèm, hằng được định nghĩa bắt đầu từ khóa const tên hằng chữ cái in hoa, tên hằng không có dấu $ ở trước.

Để sử dụng hằng trong một class ta dùng :   tên_class::tên hằng // Sử dụng 2 dấu hai chấm

Xét ví dụ sau : ta có một class person
1
2
3
4
5
6
7
8
9
10
<?php
class person{
    public $ten = "haanhdon"// Thuộc tính
    const TUOI = 20; // Hằng có tên là TUOI
    const FROM = "phpandmysql.net"// Hằng có tên là FROM  
    public function jobs(){
       // my job
    }   
}
?>
Để sử dụng được hằng trong class person ta có
1
2
3
4
<?php
echo person::TUOI; // Lấy ra tuổi là 20
echo person::FROM; // lấy ra giá trị của FROM
?>
Okie như vậy là chúng ta đã hiểu về hằng trong clas, tiếp theo chúng ta sẽ viết class config để kết nối database

b. Tạo class config
Chúng ta có class config như sau
file : libraries/config.php
1
2
3
4
5
6
7
8
<?php
class config{
    const HOST = "localhost"; // Định nghĩa hằng lưu tên host
    const USER = "root"; // hằng lưu thông tin user của host
    const PASS = ""; // hằng lưu mật khẩu
    const DATA = "phpmysql"; // hằng lưu tên cơ sở dữ liệu
}
?>
2. Tìm hiểu __construct() và __destruct() trong class PHP

Trước khi viết class database này chúng ta sẽ tìm hiểu về khái niệm __construct() và __destruct() trong một class PHP nó có tác dụng gì

Trong một class PHP phương thức __construct() luôn được thực hiện đầu tiên và __destruct() luôn được thực hiện cuối cùng, dù cho bạn có gọi nó hay không gọi. Chỉ cần khi bạn khai báo nó ra trong một class thì nó sẽ thực hiện đúng theo thứ tự như vậy. __construct() sẽ thực hiện đầu tiên và sau cùng là __destruct()

Ví dụ ta có class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
class person{
    const TEN = "haanhdon";
    public $tuoi = "20";
    public $from = "phpandmysql.net";
    public function __construct(){
       echo "Welcom";
    }
    public function hoten(){
       return self::TEN; // self tương đương với class person
    }
    public function __destruct(){
       echo "have a nice day";
    }
}
?>
Khi chúng ta khởi tạo đối tượng (sử dụng class person)
1
2
3
4
<?php
    $person = new person(); // Khởi tạo đối tượng $person
    echo $person->hoten(); // In ra màn hình "haanhdon"
?>

Khi chúng ta chạy trên trình duyệt, kết quả sẽ như sau




Ah dõ dàng là chúng ta mới chỉ gọi phương thức hoten() thì chỉ xuất ra màn hình "haanhdon" thui chứ? đó chính là phương thức __construct() và __destruct() nó tự động chạy khi chúng ta khởi tạo lại đối tượng $person
Nguồn: http://phpandmysql.net/


EmoticonEmoticon