NTM Solutions

Thứ Sáu, 14 tháng 12, 2018

Tự học CodeIgniter-Bài 22-Xử lý trên nhiều môi trường


#hoccodeigniter


Các lập trình viên thường muốn hệ thống hành xử tùy theo ứng dụng chạy hay phát triển trong môi trường cụ thể nào. Ví dụ, 01 thông báo lỗi xuất ra màn hình là rất cần thiết và hữu ích khi phát triển ứng dụng, nhưng điều đó có thể vô tình lộ thông tin về bảo mật một khi ứng dụng đã online.

Hằng số ENVIRONMENT

Mặc định, CodeIgniter có hằng số môi trường thiết lập để dùng các giá trị cung cấp trong biến $_SERVER['CI_ENV'], trái với mặc định trong môi trường phát triển ứng dụng. Trong tập tin index.php ở thư mục gốc, bạn sẽ thấy:

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

Biến Máy chủ này có thể được thiết lập trong tập tin .htaccess , hoặc phần cấu hình Apache dùng SetEnv. Các phương thức thay thế có sẵn cho máy chủ nginx và các msy chủ khác , hoặc bạn có thể xóa bỏ logic này hoàn toàn và thiết lập hằng dựa trên địa chỉ IP của máy chủ.

Để tạo thêm hiệu quả hơn nữa hành vi nào đó trong framework cơ bản (xem mục kế tiếp), bạn có thể dùng hằng số này trong môi trường phát triển của bạn để tách biệt môi trường mà bạn đang chạy.


Các ảnh hưởng đến hành vi mặc định của Framework

Có 01 vài chỗ trong hệ thống CodeIgniter nơi hằng số ENVIRONMENT được dùng. Phần này mô tả cách hành vi mặc định của framework bị ảnh hưởng.

Báo cáo lỗi

Thiết lập hằng số ENVIRONMENT  có giá trị ‘development’ sẽ gây lỗi trên toàn PHP khi chúng được gửi tới trình duyệt để hiển thị. Ngược lại, thiết lập hằng có giá trị ‘production’ sẽ vô hiệu hóa tất cả báo lỗi xuất ra. Vô hiệu hóa báo cáo lỗi trong chế độ production là 01 ví dụ thực hành tốt về bảo mật (xem phần bảo mật tại đây user_guide/general/security.html )

Các tập tin cấu hình

Bạn có thể bắt CodeIgniter tải tập tin cấu hình môi trường 01 cách tùy ý. Điều này có thể hữu dụng cho việc quản lý những thứ như tách biệt các khóa API trên các môi trường khác nhau. Vấn đề này được mô tả chi tiết hơn trong phần tài liệu hướng dẫn  về mục môi trường của lớp Config (user_guide/libraries/config.html).

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
Facebook Youtube Google+