我正在寻找使用 install.php 的选项,其中用户放置所有需要的数据,例如db host,db username,db pwd等。脚本必须将它放到名为config的php类中。
public function __construct(){
$this->site_address = '';
$this->db_prefix = '';
$this->site_desc = '';
$this->site_title = '';
$this->hash = '';
$this->sidebar = false;
$this->db_host = '';
$this->db_name = '';
$this->db_pass = '';
$this->db_user = '';
$this->db_port = 3306;
$this->folder = NULL;
$this->mailserver = '';
$this->mailport = '';
$this->mailuser = '';
$this->mailpassword ='';
}
如何将 install.php 页面上的数据放到此类构造函数中?
我正在考虑获取内容 - >查找$this->db_host =
并从表单中替换''
'.$_POST['db_host'].'
,然后将内容放入文件并保存,但我不知道具体如何。请帮忙。
答案 0 :(得分:0)
只需将变量添加到__construct()
public function __construct($site_address='',$db_prefix='',$site_desc='',$site_title='',$hash='',$sidebar=false){
$this->site_address = $site_address;
$this->db_prefix = $db_prefix;
$this->site_desc = $site_desc;
$this->site_title = $site_title;
$this->hash = $hash;
$this->sidebar = $sidebar;
// And so on
}
然后从表单中执行new yourAwesomeClassName('http://hello','$_POST['db_prefix']',...)
不要忘记一些事情:
(以下可能不是一个好习惯,但我可以接受建议,因为这是my current work的一部分)
如果您需要保存数据,我建议您使用通用文件,例如......
class Database
{
/**
* Database host
* @var string Default: 'your-database-host'
*/
const DB_HOST = 'your-database-host';
/**
* Database name
* @var string Default: 'your-database-name'
*/
const DB_NAME = 'your-database-name';
// And so on
}
然后你需要一个写数据的函数
public static function writeDatabaseConfig($data)
{
if (is_array($data)) {
$root = static::getRoot();
$databaseFile = $root . 'App' . DIRECTORY_SEPARATOR . 'Config' . DIRECTORY_SEPARATOR . 'Database.php';
$currentFile = file_get_contents($databaseFile);
if (strpos($currentFile, 'your') !== false) {
$oldToNew = array(
'host' => 'your-database-host',
'name' => 'your-database-name',
);
foreach ($oldToNew as $key => $value) {
if (isset($data[$key])) {
$currentFile = str_replace($value, $data[$key], $currentFile);
}
}
if (file_put_contents($databaseFile, $currentFile)) {
return true;
}
return false;
}
return false;
}
return false;
}
在__construct()
的最后,您只需致电writeDatabaseConfig()
即可撰写您的数据。完成后,您可以拨打ConfigClass::DB_HOST
来获取您的信息,例如......