我可以在文件中定义常量然后包含它们,或者
我可以将它们存储在数据库中并播种。
根据您的经验,哪一个是更好/更快/更便宜的资源,比如说..数十、数百、数千个定义?
这是一个永远存在的问题,因人而异,有点平衡。对我来说,这完全取决于假定数据集有多大和多大静态。在我的应用程序中,我有大约 10 个代码点,我将在其中引用常量,而不是通过所有开销从数据库中提取数据。
使用常量的另一个好处是,您可以在整个代码库中引用它们,这将有助于减少缺陷并改善语义,例如:
class Ad
{
const ID_AD_TYPE_BANNER = 1;
const ID_AD_TYPE_SKYSCRAPER = 2;
}
// Somewhere in app
if (array_key_exists(Ad::ID_AD_TYPE_BANNER, $array)) {
但是有一些嗯缺点?我不愿称它们为缺点,因为它们不难解决。首先,如果您的常量是整数,并且您的应用程序曾经将这些常量输入到表中,您将无法加入“查找”表并将查找值视为查询结果的一部分。相反,您只需要知道1
查询中的 id 的含义。
其次,确保将常量放置在常识位置,并尽可能尝试命名空间,这样,如果您最终忘记它们是什么,您可以轻松找到值。如果你有一个聪明的 IDE,它会为你做这件事。也知道如果一个常量发生变化,你将不得不做一个代码推送 vs 直接操作数据库数据。
如果列表相对较小(<25)并且不易发生太大变化,我会对常量说“是”,但是,如果您的数据与这些约束不匹配,我建议将它们弹出到数据库中。
我会说文件会更快,但可能会更大,因为数据库会更慢,必须连接并获取结果并返回它。我个人会使用文件。