Đối với một trang web nhỏ, đơn giản, tôi chỉ cần đặt cấu hình trong một tệp PHP. Giữ nó đơn giản. PHP có lẽ không phân tích cú pháp nhanh hơn bất cứ thứ gì nó phân tích cú pháp PHP. Nếu bạn sử dụng APC, mã bytec đã được biên dịch thậm chí còn được lưu vào bộ nhớ đệm - mặc dù mã bytec sau đó được thực thi lại cho mọi yêu cầu. Đối với một tệp cấu hình nhỏ, việc thực thi bytecode này sẽ mất rất ít thời gian; đối với một tệp rất lớn, có thể mất nhiều thời gian hơn một chút.
Đối với các trang web có lưu lượng truy cập cao có cấu hình lớn, lưu vào bộ nhớ đệm dữ liệu cấu hình của bạn trong APC (ví dụ:dưới dạng một mảng) là một ý tưởng hay - ít nhất, bạn tiết kiệm chi phí thực sự thực thi các câu lệnh trong tệp config.php của bạn. Đáng chú ý, facebook thực hiện điều này. Khi bạn đang cung cấp nhiều yêu cầu mỗi giây, việc nhấn vào đĩa để đọc tệp cấu hình (sử dụng parse_ini_file, trình phân tích cú pháp XML, v.v.) cho mọi yêu cầu là điều không cần bàn cãi.
Đối với dự án hiện tại của tôi, chúng tôi lưu trữ nhiều trang web, mỗi trang có cấu hình riêng. Mỗi trang có cả cơ sở dữ liệu và tệp cấu hình; tuy nhiên, đảm bảo rằng bạn luôn sử dụng đúng tệp cấu hình với cơ sở dữ liệu phù hợp có thể trở thành vấn đề đau đầu. Ngoài ra, các thay đổi sẽ yêu cầu thay đổi mọi thứ ở hai nơi - db và cấu hình. Việc quên cái này hay cái kia luôn gây ra vấn đề và nó xảy ra quá thường xuyên.
Chúng tôi đã chuyển cấu hình vào cơ sở dữ liệu, do đó bạn không thể tách một db khỏi cấu hình chính xác của nó và mọi thay đổi mã chỉ yêu cầu cập nhật cơ sở dữ liệu. Dữ liệu từ bảng cấu hình cũng được lưu trữ tích cực trong APC, vì vậy chúng tôi hiếm khi truy vấn nó.
Vì vậy, tóm lại:
- Trang web nhỏ :chỉ cần sử dụng tệp config.php
- Trang web rất lớn :bộ nhớ cache trong APC
- Nhiều trang web :lưu trữ cấu hình trong cơ sở dữ liệu để giảm chi phí quản lý; bộ nhớ cache trong APC để giảm số lần truy cập cơ sở dữ liệu