PHP自定义CMS - 如何处理设置

时间:2017-06-29 12:18:04

标签: php content-management-system settings

我目前正试图找到一种方法来处理我的自定义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,所以也许这是实现这一点的方法,或者我应该简单地使用全局,因为它是合理的?

0 个答案:

没有答案