CodeIgniter là một framework PHP phổ biến được sử dụng để phát triển ứng dụng web. Một trong những điểm mạnh của CodeIgniter là cấu trúc thư mục rõ ràng và dễ hiểu, giúp quản lý mã nguồn và phát triển ứng dụng hiệu quả. Trong bài viết này, chúng ta sẽ đi sâu vào cấu trúc thư mục của CodeIgniter, từ cơ bản đến nâng cao, với các ví dụ minh họa chi tiết.

1. Tổng Quan về Cấu Trúc Thư Mục trong CodeIgniter

CodeIgniter sử dụng một cấu trúc thư mục chuẩn giúp phân loại và tổ chức mã nguồn một cách hợp lý. Dưới đây là mô tả cơ bản về các thư mục chính trong CodeIgniter:

1.1. Thư Mục application

Thư mục application chứa tất cả các thành phần của ứng dụng, bao gồm:

  • config: Chứa các tệp cấu hình của ứng dụng. Ví dụ như cấu hình cơ sở dữ liệu (database.php), cấu hình email (email.php), và cấu hình chung (config.php).
  • controllers: Chứa các lớp điều khiển (controller) của ứng dụng. Controllers chịu trách nhiệm xử lý yêu cầu từ người dùng và gọi các mô hình để lấy dữ liệu.
  • models: Chứa các lớp mô hình (model). Models thường đại diện cho dữ liệu và logic nghiệp vụ của ứng dụng.
  • views: Chứa các tệp giao diện (view). Views là phần hiển thị dữ liệu cho người dùng và thường là các tệp HTML.
  • libraries: Chứa các thư viện tùy chỉnh của ứng dụng. Đây là nơi bạn có thể đặt các lớp tùy chỉnh hoặc các thư viện bên ngoài.
  • helpers: Chứa các hàm trợ giúp (helper functions) mà bạn có thể sử dụng trong các controller và views.
  • language: Chứa các tệp ngôn ngữ để hỗ trợ đa ngôn ngữ trong ứng dụng.
  • hooks: Chứa các hook, cho phép bạn can thiệp vào luồng xử lý của CodeIgniter mà không cần thay đổi mã nguồn chính.
  • third_party: Chứa các thư viện bên ngoài không thuộc về CodeIgniter nhưng cần thiết cho ứng dụng của bạn.

1.2. Thư Mục system

Thư mục system chứa mã nguồn chính của CodeIgniter và không nên bị thay đổi. Các thư mục con trong system bao gồm:

  • core: Chứa các lớp lõi của CodeIgniter, chẳng hạn như lớp Controller và Model.
  • libraries: Chứa các thư viện hệ thống mà CodeIgniter cung cấp sẵn.
  • helpers: Chứa các hàm trợ giúp sẵn có của CodeIgniter.
  • database: Chứa các lớp liên quan đến cơ sở dữ liệu của CodeIgniter.
  • config: Chứa các tệp cấu hình hệ thống của CodeIgniter.

1.3. Thư Mục public

Thư mục public chứa các tệp tài nguyên công khai, như:

  • index.php: Tệp điểm vào của ứng dụng. Đây là tệp được gọi đầu tiên khi ứng dụng được truy cập.
  • assets: Chứa các tệp tài nguyên như CSS, JavaScript, và hình ảnh.

2. Ví Dụ Minh Họa về Cấu Trúc Thư Mục

2.1. Ví Dụ về Thư Mục controllers

Giả sử bạn có một ứng dụng quản lý bài viết. Bạn có thể tạo một controller Posts.php trong thư mục controllers:

models

2.3. Ví Dụ về Thư Mục views

Thư mục views có thể chứa một tệp index.php trong thư mục posts:

libraries

Để sử dụng thư viện này trong controller:

hooks

Tạo tệp My_hook.php trong thư mục hooks:

<?php
class My_hook {

    public function log_queries() {
        // Code to log queries
    }
}
?>

4. Kết Luận

Cấu trúc thư mục của CodeIgniter cung cấp một tổ chức rõ ràng và hiệu quả cho mã nguồn của bạn. Bằng cách phân chia các thành phần của ứng dụng vào các thư mục riêng biệt như application, system, và public, bạn có thể dễ dàng quản lý và mở rộng ứng dụng của mình. Các ví dụ minh họa từ cơ bản đến nâng cao giúp bạn hiểu rõ hơn cách làm việc với các thư mục và thành phần trong CodeIgniter.