我正在为一个web项目创建一个安装页面,以便在它变为活动之前定义所有配置变量和常量。我想将这些配置变量保存在数据库中,但项目经理希望将它们保存在一个文件中。所以出现了我的问题。我如何定义这些变量,而const或define将适用于这项工作? 例如何定义一个变量const或静态
<?php
$email_parameter="[email protected]"//we need to set this at install.php page and keep it that way
?>
我正在为一个web项目创建一个安装页面,以便在它变为活动之前定义所有配置变量和常量。我想将这些配置变量保存在数据库中,但项目经理希望将它们保存在一个文件中。所以出现了我的问题。我如何定义这些变量,而const或define将适用于这项工作? 例如何定义一个变量const或静态
<?php
$email_parameter="[email protected]"//we need to set this at install.php page and keep it that way
?>
那么我检查所有的答案,我感谢你,帮我找到我的正确路径(至少一个满足我的“项目经理”。)我结束了下面这个解决方案:(这些价值例如)
$f=fopen("config.php","w");
$database_inf="<?php
define('DATABASE_HOST', '".$database_host."');
define('DATABASE_NAME', '".$database_name."');
define('DATABASE_USERNAME', '".$database_username."');
define('DATABASE_PASSWORD', '".$database_password."');
define('ADMIN_NAME', '".$admin_name."');
define('ADMIN_PASSWORD', '".$admin_password."');
?>";
if (fwrite($f,$database_inf)>0){
fclose($f);
}
这只是和示例,以显示我如何解决它。首先,我创建并安装了php,并在没有配置文件设置时为该页面设置默认路由。然后我问用户输入realted值并将它们保存在变量中。最后我创建了一个配置文件,并将它们引入其中。我希望这可以帮助处理类似情况的其他人。
可以使用图案登记
<?php
/**
* Registry
*/
class Product
{
/**
* @var mixed[]
*/
protected static $data = array();
/**
* add value to registry
*
* @param string $key
* @param mixed $value
* @return void
*/
public static function set($key, $value)
{
self::$data[$key] = $value;
}
/**
* get value from registry
*
* @param string $key
* @return mixed
*/
public static function get($key)
{
return isset(self::$data[$key]) ? self::$data[$key] : null;
}
/**
* remove value from registry
*
* @param string $key
* @return void
*/
final public static function removeProduct($key)
{
if (array_key_exists($key, self::$data)) {
unset(self::$data[$key]);
}
}
}
/*
* =====================================
* USING OF REGISTRY
* =====================================
*/
Product::set('name', 'First product');
print_r(Product::get('name'));
// First product
我会立即检查。 –
定义,定义( 'const_name', 'const_value')
常量
但
所以,我建议让你的安装脚本写一个配置文件,例如config.inc包含定义语句为收集的值。然后让运行时脚本包含(执行)它:require_once()。
如果(也许以后)构造像数组应该被初始化,安装脚本可能会添加这些语句&hellip;和更多(甚至定义类)。
执行,而不是读取,一个配置文件:
在最终我永远无法衡量执行和读取配置文件之间的巨大差异。而且 - 由于配置文件是由安装脚本编写的,而不是手动修改的,所以插入语法错误的方面并不重要。
已安装的应用程序后,您需要为您的项目是每一个页面的全局变量?我认为你知道答案,全局变量是和不好的,虽然我不知道你的项目细节。通常,配置变量保存在配置文件中,Config类可以通过您需要的配置变量的参数来访问。常量应该是他们是什么 - 常量,意味着它们不应该是配置变量。 –
也看看[这](http://stackoverflow.com/questions/2447791/define-vs-const) – Ali
@SiimKallari因为项目经理希望,并提出这样的话,我将需要找到一种方法来项目去做。我为这个和一个类创建了一个文件,但是我想知道如何设置那些需要保持不变但同时能够改变的变量?首先,我认为拧它,我会创建文件,并用fwrite写东西,但似乎是错误的。 –