繁体   English   中英

编辑PHP文件以通过PHP进行配置

[英]Editing PHP files for configuration via PHP

首先,由于各种流行的使用此方法的软件(例如SMF),我认为这不是一个坏习惯。

无论如何,所以我目前有以下代码:

<?php
// main visual config
$cfg['lang']    = 'en';

// paths
$path['admin']  = 'index.php?p=admin';
$path['admin2'] = 'zvfpcms/admin';
$path['root']   = 'zvfpcms';
$path['images'] = 'zvfpcms/img';
$path['css']    = 'zvfpcms/css';
$path['js']     = 'zvfpcms/js';
$path['pages']  = 'zvfpcms/pg';
?>

问题是,我希望直接通过界面编辑$ cfg变量。

如何实现? 我认为替换字符串不是一个好主意,尤其是当我将来创建$ cfg变量的可能性非常大(甚至是无限)时。

或者,我是否必须适应其他方法...

答案表示赞赏!

Pear Config使您可以轻松地与不同来源(包括PHP文件/数组)进行读写配置。 不过,您可能需要将$cfg移到其自己的文件中并包括它,以便其他变量等不受影响。

您也可以使用var_export()自己进行var_export() ,然后覆盖文件,再次可能需要将变量移至其自己的文件中。 我认为这将编写比Pear类更混乱/更不易读的PHP。

只需在数据库中拥有所有设置,然后更改设置,即可重新生成配置文件。

不要让您的PHP编辑PHP代码。 请改用XML配置文件。 阅读XML信息,如果要进行更改,请更改从XML文件生成的数据结构中的值,然后将其吐回到新的配置文件中。

您可以将设置存储在数据库中,也可以使用标准的ini文件(键=值对);

lang=en
timezone=CET

阅读它们:

function loadSettings() {
    $cfg = array();
    foreach (file('settings.ini') as $line) {
        list ($key, $value) = explode('=', $line);
        $cfg[$key] = $value;
    }
    return $cfg;
}

文件I / O的效率不如标准数据库调用,尤其是在您已经与数据库建立开放连接的情况下。

我认为这是一种不好的做法,原因是您可以在编辑之前拥有一个正在运行的系统,在编辑中遇到一些错误(也许您没有转义单引号字符),并且在编辑之后整个应用程序变得不可用, PHP无法解析配置文件,这几乎影响您所做的一切。

XML建议不是一个坏建议,因为您可以处理读取XML时发生的任何错误。

如果您有一个数据库(阅读这篇文章,似乎您没有使用它,那很好),那将是存放数据的最佳位置-这就是它的用途。 在平面文件环境中,读入非PHP文件并对其进行解释要比自己自动编辑PHP文件好得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM