我目前正试图找到一种方法来处理我的自定义CMS上的设置(只是一个学习PHP的游乐场)。我有数据库表存储所有设置。我的临时解决方案是一个返回带有查询结果的一维数组的函数。
// Get settings from db.
function getPanelOptions( $pdo ) {
$options = [];
$getOptions = $pdo->query( 'SELECT option_name, option_value FROM bp_options' );
while( $result = $getOptions->fetch() ) {
$options[ $result['option_name'] ] = $result['option_value'];
}
return $options;
}
$bpOptions = getPanelOptions( $pdo ); // Get settings to arr.
// Example use
if( $bpOptions['post_max_lenght'] === 400 ) ...
我已经阅读了很多全局变量不是最好的方法,所以我调用每个页面中包含的文件中的函数。我没有使用硬编码变量的问题,因为我不会改变它(即使这样我可以替换sublime中的所有出现)。我最大的问题是我无法找到一种方法来使用设置来创建像WordPress中的“包装”功能,例如'getHtmlLang()'。在JS中它很容易,但在PHP中我需要将设置传递给这个函数,因为它变得很冗长。
// Now i use
<html lang="<?php echo $bpOptions['panel_lang']; ?>">
// I'd like some wrapper function.
<html <?php getHtmlLang() ?>>
我不熟悉PHP中的OOP,所以也许这是实现这一点的方法,或者我应该简单地使用全局,因为它是合理的?