gpt4 book ai didi

php - 应用配置信息 : MySQL, XML 或 PHP 类?

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:07 25 4
gpt4 key购买 nike

我正在开发一个 PHP/MySQL 应用程序。现在我正在写下一组将用作应用程序配置信息的数据。基本上,它们不会更改,期间。

我正在寻找存储此类数据的最佳实践,但目前还没有明确的答案。

我知道为此目的使用 XML 很流行,但您需要在单独的函数调用中解析它,而且文件读取速度较慢。

我考虑编写一个 PHP 类作为配置包含在内,每次应用程序运行时都会加载它,有点像环境变量。但是,如果我只有很少的,还是相当多的,它仍然是一个好的解决方案吗?

我知道我在大多数 API 调用上运行 MySQL 查询。但是,如果仅读取数据,MySQL 是一个不错的选择吗?

P.S - 更具体地说,配置数据结构如下:

"Products": [
"1": "Apple",
"2": "Orange",
"4": "Pear"
]

我将 key (“1”、“2”或“4”)存储在数据库中,然后在我的 UI 中显示英文单词。我对数据结构的处理是否正确?

目前看来是很简单的小数据。但我预计它会增长到数百个这样的数据。

最佳答案

尝试将所有配置数据保存在核心 PHP 数组中,并将文件包含在应用程序的开头。

# Your main application
$conf = include 'conf.php';

conf.php 返回一个 PHP 数组:

return array(
'key1' => 'value1',
);

您还可以将配置拆分为多个文件,以便在开发和测试应用程序时更轻松。例如,您可以创建一个包含所有常用配置选项的 conf/shared.php。第二个文件 conf/dev.php 将保存您的应用程序在您的开发机器上运行时所需的所有配置选项(如数据库连接选项、日志设置等)。第三个文件 conf/prod.php 将包含应用程序在生产环境中运行时所需的所有内容。

# Your main application
$conf = include 'conf/shared.php';

# Determine the application environment
# Note: You will need to set the environment variable inside the Apache configuration for yourself
if (!isset($_ENV['appEnv'])) {
# Make sure the environment is always set
$_ENV['appEnv'] = 'dev';
}

# Include the needed environment config file and merge it with shared
$conf = array_merge_recursive($conf, include 'conf/' . $_ENV['appEnv'] . '.php');

如果我是你,我不会考虑在应用程序开发的这个阶段缓存配置。尽量只写你现在需要的东西,但要写得清楚、没有错误……当你真正需要的时候,总是可以实现某种配置缓存。 IMO 如果您坚持使用核心 PHP 数组,则没有必要这样做,除非您需要包含大量文件或非常大的数组(1000 多个条目)。

关于php - 应用配置信息 : MySQL, XML 或 PHP 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com