Hàm spl_autoload_register trong PHP

Thông thường khi muốn gọi tập tin trong PHP chúng ta sẽ dùng require hoặc include. Nhưng khi số lượng file lớn chúng ta sẽ không thể dùng theo cách thủ công như vậy được. Mà lúc này cần dùng tới hàm spl_autoload_register.

Đây là một kỹ thuật Autoloading tập tin giúp lập trình viên tiết kiệm thời gian thay vì làm thủ công. Vậy cách sử dụng hàm spl_autoload_register trong PHP như thế nào? Hãy tham khảo bài dưới đây.

Cách viết thông thường

include __DIR__.'/Controllers/BaseController.php';

$data = new BaseController();
$data->action();

Giả sử bây giờ có tới 100 file như vậy thì bạn làm thế nào được? Chắc chắn sẽ import mỏi tay luôn.

Nhưng với spl_autoload_register bạn chỉ cần tạo một file duy nhất.

Bước 1: Tạo tập tin là autoload.php

<?php

function Model($className) {
    $filename = __DIR__. "/Models/" . $className . ".php";
    if (is_readable($filename)) {
        require $filename;
    }
}

function Controller($className) {
    $filename = __DIR__."/Controllers/" . $className . ".php";
    if (is_readable($filename)) {
        require $filename;
    }
}

spl_autoload_register("Model");
spl_autoload_register("Controller");

Bước 2: Tiếp đó tại index.php dùng require để gọi include vào

require_once __DIR__ . '/autoload.php';

$controller = new BaseController();
$controller->index();

$model = new BaseModel();
$model->index();

Cách thức hoạt động khá đơn giản. Khi gọi Class tại index.php thì hàm spl_autoload_register được khai báo sẽ truyền dữ liệu vào biến $className.

Tổng kết: Đối với lập trình hướng đối tượng trong PHP thì autoloading là kỹ thuật cực kỳ hữu ích. Qua đây bạn sẽ biết cách sử dụng để thực hành áp dụng xây dựng MVC trong PHP.

Related Posts

Namespace trong PHP

Namespace cho phép các lớp / hàm / hằng cùng tên được sử dụng trong các ngữ cảnh khác nhau mà không có bất kỳ xung đột…

Hàm str_split() trong PHP

Bài viết này chúng ta sẽ đi tìm hiểu về hàm str_split(). Một trong những hàm thường được dùng trong PHP. Vậy cách sử dụng str_split() như…

Tạo chức năng sửa xoá thành viên bằng PHP & MySQL

Với một số trang web để quản lý thành viên (user) dễ dàng trong phần quản trị admin bạn phải khởi tạo chức năng sửa xoá thành…

Hàm str_replace trong PHP

Hàm str_replace trong PHP là gì? Hàm str_replace() trong PHP là một hàm được sử dụng để thay thế tất cả các xuất hiện của một chuỗi…

laravel8-vews-1

Views trong Laravel 8

Trong chuỗi series hướng dẫn học Laravel thì Views cũng quan trọng không kém gì so với Controller hay Model. Vậy chúng ta sẽ làm thế nào…

Validate Form trong PHP

Mặc dù trình duyệt hỗ trợ JavaScript để xác thực người dùng cho website. Tuy nhiên nếu JavaScript bị lỗi hoặc tắt đi thì công việc này…