Tôi nghĩ tốt nhất nên sử dụng hằng số cho cấu hình. Ví dụ sử dụng hằng lớp:
class Config {
const
max_photos = 30,
something_else = 100,
// ...
;
}
echo Config::max_photos;
Nếu bạn có PHP 5.3 bạn cũng có thể xác định chúng như hằng số toàn cầu:
const MAX_PHOTOS = 30;
echo MAX_PHOTOS;
Nhưng tôi nghĩ rằng đây là ít sạch và đơn giản.
Rõ ràng điều này sẽ chỉ hoạt động miễn là bạn chỉ lưu trữ các hằng số, tức là các giá trị vô hướng, không biểu hiện. Ví dụ: nếu cấu hình của bạn có chứa mảng, điều này sẽ không hoạt động nữa. Trong trường hợp này tôi sẽ sử dụng một lớp Config với thuộc tính public static:
class Config {
public static $per_page = 30;
public static $array = array(...);
}
echo Config::$per_page;
Sau đó là rất giống với cách tiếp cận $config
mảng, nhưng có lợi ích (hoặc đây có thể là một nhược điểm?) Mà lớp có thể truy cập từ mọi nơi bao gồm các hàm và lớp, trong khi mảng chỉ có thể truy cập trong không gian toàn cục trừ khi bạn nhập nó vào các hàm/lớp sử dụng global $config;
.
1 hằng số cho giá trị không đổi, sau đó bạn có thể yên tâm rằng chúng luôn được đặt, không thể thay đổi và liên tục; Các biến lớp tĩnh của fwiw mang lại hiệu năng và có thể thay đổi khi chạy. Cuối cùng, trong trường hợp bất kỳ ai đề xuất tệp cấu hình ini hoặc xml - phản hồi đơn giản là, tại sao lại lãng phí thời gian và thêm vào tải phụ không cần thiết (phân tích cú pháp đọc v.v.). – nathan
cảm ơn, vâng, tôi đã nhận mảng quá: $ thiết lập [ 'ngôn ngữ'] = array ( 'eng' => 'Trong tiếng Anh, 'rus'=> 'По-русски', 'lat'= > 'Latviski' ); $ settings ['site_title'] = _ ("Tiêu đề trang web"); $ settings ['default_lng'] = 'eng'; /** * Мин. количество гололов */ $ settings ['min_votes'] = 3; /** * Кол-во пользователей, после которого регистрация только по приглашениям. */ $ settings ['invites'] = 100000; // 25000; /** * Время истечения приглашения */ $ settings ['invite_timeout'] = 86400 * 3; tôi nghĩ rằng, biến thể này là tốt hơn, cảm ơn tất cả các bạn đã giúp đỡ! – ideea