Menu

8/1/20

autoloadclass-Tự động load function ()


Autoloadclass được ứng dụng nhiều trong project, trong lập trình OOP (hướng đối tượng) khi tạo 1 file php chúng ta cần include thủ công rất nhiều class đã có sẵn ở thư mục ngoài, việc này tốn thời gian và phiền phức, có khi chúng ra chả biết nó ở nơi nao mà nạp vào bằng lệnh include.

Từ nhu cầu đó trong PHP đã xây dựng 1 spl_autoload_register cho phép đăng ký hàm autoloadclass mà bạn đã xây dựng sẵn.


Tạo 1 project mới,

cấu trúc thư mục như sau:




trong thư mục myclass, tạo 1 class A.php có nội dung như sau:

<?php
class A
{
    public $a1;
    public function __construct()
    {
        $this->a1=10;
        echo "<br> Ham tao lop A <br>";
    }
    public function f1A()
    {
        
        echo "<br> Ham F1 cua class A duoc goi <br>";
    }
}

trong file demo.php

<?php
function autoloadclass($className)
{
    if(is_file("myclass/$className.php"))
    {
        include "myclass/$className.php";
    }
    else{
        echo "Khong ton tai (chua tao) $className.php";
        exit;
    }
 
}
spl_autoload_register('autoloadclass');

$x = new A();
echo "chung ta hay goi method F1A cua class A <br>";
$x->f1A();

Kết quả:

Ham tao lop A
chung ta hay goi method F1A cua class A

Ham F1 cua class A duoc goi

Từ ví dụ trên ta thấy ==>  ko cần include class A.php vào file demo.php, khi bạn định nghĩa 1 class B.php mới trong myclass thì chúng ta có thể gọi trực tiếp nó bên file demo.php.

No comments:

Post a Comment