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>";
}
}
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
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