Hướng đối tượng trong PHP: autoloading classes

Hướng đối tượng trong PHP: autoloading classes

Với cách viết thông thường thì khi bạn gọi một lớp nào đó từ file khác bạn phải dùng hàm include tới từng file một sau đó mới có thể sử dụng. Đối với những dự án lớn có một cách thực hành tốt khác trong PHP đó là bạn chỉ tải file chứa class khi cần thiết có nghĩa là bạn không cần phải khai báo include bằng tay nữa mà nó sẽ được thực hiện tự động,  tính năng đang được nói đến ở đây là autoloading classes được giới thiệu trong PHP5.

Chúng ta hãy cùng xem xét ví dụ sau để hiểu rõ hơn về vấn đề này:

Tạo file class.auto.php như sau:

class Auto{
 public $a ='Khuong';
 public function show(){
    echo $this->a;
 }
}

Tạo file class.auto2.php như sau:

class Auto2{
  public $a ='Ngo Van Khuong';
  public function show2(){
    echo $this->a;
  }
}

Hai file class.auto.php và class.auto2.php nằm cùng trong thư mục, giả sử ở đây là thư mục classes.

Tạo file a.php nằm cùng cấp với thư mục classes.

Với cách thông thường chúng ta sẽ làm như sau:

inlude_once 'classes/class.auto.php';
inlude_once 'classes/class.autos.php';
$s = new Auto();
$s->show();
$s2 = new Auto2();
$s2->show2();

Với cách sử dụng auto load chúng ta sẽ làm như sau:

function __autoload($class){
    include_once "classes/class.$class.php";
}
$s = new Auto();
$s->show();
$s2 = new Auto2();
$s2->show2();

Với cách thực hiện này bạn có thể gọi tùy ý một lớp bất kỳ mà không cần quan tâm file đó đã được include hay chưa.

Tags: 
Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Bình luận (0)

 

Add Comment

Filtered HTML

  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Các thẻ HTML được chấp nhận: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Tự động ngắt dòng và đoạn văn.

Plain text

  • No HTML tags allowed.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Microsoft (Teams và Skype)

Những phần mềm họp trực tuyến thay thế Zoom bảo mật hơn là Hangout Meets

Các dạng Video Conference như Cisco Webex, Microsoft Teams, Google Hangout Meets... bảo mật hơn Zoom, lại hỗ trợ họp đông người, tính ổn định cao.

Number 4: Infrastructure - 5 lỗi cần tránh trong Drupal

Number 4: Infrastructure - 5 lỗi cần tránh trong Drupal

In previous articles in this series, we’ve covered the areas of architecture, security and performance. All of these aspects are affected by your infrastructure from the time of development to deployment.

Website Drupal của bạn đã thật sự release và hoàn thành test chưa?

Website Drupal của bạn đã thật sự release và hoàn thành test chưa?

When we inherit Drupal sites for maintenance, I suggest implementing release control and creating a staging (test) site. When new customers hear this, they naturally ask why they need this.

Công ty diệt chuột T&C

 

Diet con trung