php数组配置应统一小写下划线键名、分层嵌套结构、明确值类型、支持环境覆盖合并,并通过getenv()注入敏感信息。

用 PHP 数组做配置容器很常见,关键在于让结构清晰、可维护、易扩展,同时避免运行时隐患。
键名统一用小写加下划线
避免大小写混用或驼峰式命名带来的歧义和拼写错误。PHP 数组键区分大小写,而配置通常需跨环境读取或被其他语言(如 YAML/JSON)映射,小写下划线是事实标准。
-
推荐:
'database_host'、'cache_ttl_seconds' -
不推荐:
'dbHost'、'DB_HOST'、'DatabaseHost'
分层结构按语义组织,避免扁平化爆炸
把相关配置聚合成子数组,比如数据库、日志、第三方服务各自成块。这样既提高可读性,也方便模块化加载或覆盖。
LANUX V1.0 蓝脑商务网站系统 适用于网店、公司宣传自己的品牌和产品。 系统在代码、页面方面设计简约,浏览和后台管理操作效率高。 此版本带可见即可得的html编辑器, 方便直观添加和编辑要发布的内容。 安装: 1.解压后,更换logo、分类名称、幻灯片的图片及名称和链接、联系我们等等页面。 2.将dbconfig.php里面的数据库配置更改为你的mysql数据库配置 3.将整个文件夹上传至
- 用嵌套数组表达层级:
['database' => ['host' => '127.0.0.1', 'port' => 3306], 'logging' => ['level' => 'warning']] - 避免全扁平:
['database_host' => '...', 'database_port' => 3306, 'logging_level' => 'warning']—— 键名冗长且难归类 - 子数组名保持一致性,优先用名词单数(
'cache'而非'caches'),除非明确表示集合
值类型明确,慎用隐式类型转换
PHP 数组不约束类型,但配置值的语义必须清晰。布尔、数字、空字符串、null 的行为差异大,应在设计阶段约定并文档化。
立即学习“PHP免费学习笔记(深入)”;
- 开关类配置统一用
true/false,不用1/0或'on'/'off' - 端口号、超时时间等数值型字段,显式写整型(
3306)而非字符串('3306'),避免后续计算出错 - 路径、URL 等字符串值保留末尾斜杠约定(如
'public_path' => '/var/www/html/'),并在使用处统一处理
预留扩展点:支持环境覆盖与合并逻辑
生产环境往往需要覆盖开发配置。建议在加载机制中支持“基础配置 + 环境配置”合并,并定义明确的合并策略(如递归覆盖,而非简单 array_merge)。
- 基础配置(
config/base.php)定义通用项 - 环境配置(
config/prod.php)只写差异项,通过递归array_replace_recursive合并 - 敏感值(密码、密钥)不写死在数组里,改用
getenv()或$_SERVER注入,数组中仅留占位键(如'api_secret' => null)并校验非空










