Mỗi lần CodeIgniter chạy, có nhiều lớp nền bên dưới
tự động khởi tạo như là 01 phần của phần lõi framework. Tuy nhiên chúng ta hoàn
toàn có thể hoán đổi bất kỳ các lớp lõi hệ thống bằng phiên bản riêng của người
dùng hoặc thậm chí có thể làm một phiên bản “độ” của các lớp lõi.
Hầu hết người dùng sẽ không bao giờ có nhu cầu “độ”
lại , nhưng tùy chọn thay thế hoặc mở rộng chúng vẫn tồn tại cho những ai muốn
tạo dấu ấn quan trọng lên phần lõi CodeIgniter.
Ghi chú:
Dính vào 01 lớp lõi hệ thống có nhiều thứ liên quan
nhau, vì thế hãy chắc chắn bạn hiểu rõ những gì mình làm trước khi thực hiện.
Sau đâylà danh sách các tập tin lõi hệ thống được
gọi mỗi khi CodeIgniter chạy:
1. Benchmark
2. Config
3. Controller
4. Exceptions
5. Hooks
6. Input
7. Language
8. Loader
9. Log
10. Output
11. Router
12. Security
13. URI
14. Utf8
Để dùng được 01 lớp hệ thống do chính bạn tạo thay
vì 01 lớp mặc định đơn giản đặt phiên bản của bạn tại thư mục application/core/
application/core/ten_lop.php
Nếu thư mục này chưa có thì ta có thể tạo mới nó.
Bất kỳ tập tin nào có tên trùng với 01 trong những
tập tin nằm trong danh sách trên sẽ được dùng thay thế cho tập tin mặc định.
Hãy chú ý rằng lớp của bạn phải có phần bắt đầu là
chữ CI. Ví dụ, nếu tập tin của bạn có tên là Input.php ->tên lớp sẽ đặt như sau:
class
CI_Input {
}
Nếu tất cả những gì bạn cần là thêm mới tính năng
vào 01 thư viện có sẵn – có lẽ thêm 01 phương thức hoặc 02 – hay thay thế toàn
bộ thư viện bằng phiên bản của bạn. Trong đa phần các trường hợp bạn thường chỉ
mở rộng lớp. Mở rộng 01 lớp gần tương tự như việc thay thế 01 lớp với vài ngoại
lệ:
·
Phần
tên lớp phải khai báo thừa kế lớp thư viện cha.
·
Tên
lớp mới và tên tập tin phải bắt đầu bằng chữ MY_ (phần này có thể cấu hình lại
được. Xem phần dưới sẽ rõ).
Ví dụ để mở rộng lớp gốc Input bạn sẽ tạo 01 tập
tin có tên là application/core/MY_Input.php,
và khai báo lớp mới như sau:
class
MY_Input extends
CI_Input {
}
Ghi chú:
Nếu bạn cần dùng 01 hàm khởi tạo trong lớp của bạn
hãy chắc chắn rằng có sự thừa kế từ hàm khởi tạo của lớp cha:
class
MY_Input extends
CI_Input {
public function __construct()
{
parent::__construct();
// Các mã khởi
tạo của bạn
}
}
Mẹo:
bất kỳ các hàm nào trong lớp của bạn được đặt tên trùng với các hàm trong lớp
cha sẽ được dùng thay vì phiên bản gốc(cái này gọi là “chồng hàm” ). Điều này
cho phép bạn bổ sung vào phần lõi CodeIgniter.
Nếu bạn khai báo thừa kế lớp Controller lõi, sau đó
chắc chắn mở rộng lớp mới của bạn trong phần khởi tạo của controller.
class
Welcome extends
MY_Controller {
public function index()
{
$this->load->view('welcome_message');
}
}
Để thiết lập phần prefix của lớp con, hãy mở tập
tin application/config/config.php và tìm mục này:
$config['subclass_prefix']
= 'MY_';
Các bạn chú ý rằng tất cả thư viện gốc của CodeIgniter
bắt đầu bằng chữ CI_ vì thế cho nên KHÔNG dùng trùng chữ này cho phần prefix
của bạn.
Nếu vẫn chưa rõ các bạn xem thêm video clip sau:
By #tiensim
Nguồn: User Guide – General Topics
Không có nhận xét nào:
Đăng nhận xét