我正在为一个网站开发像Magento这样的安装脚本,可以在CodeIgniter中为将来的项目重复使用。安装脚本的目的是为网站创建一些表格和一些基本数据,如网站名称,描述,OG标签等。
有一个先决条件文件,install-prerequisite.php
,用户将通过该文件输入数据库主机,数据库用户名,数据库密码并提交凭据。使用.htaccess从CodeIgniter的index.php中排除先决条件,以排除数据库连接。
RewriteCond $1 !^(index\.php|install-prerequisite\.php|robots\.txt)
必须在CodeIgniter的database.php
中更新install-prerequisite.php中的值。这也必须验证成功连接。这可能吗?
同样可以通过表格中的数据编辑config.php
吗?用户可以从网页编辑sess_cookie_name
,sess_expiration
等的值,然后更新为config.php
。
符类:
答案 0 :(得分:0)
我建议将数据库名称,用户,传递等自定义值存储在可通过登录访问的全局数据库中,而不是存储在文件" install-prerequisite.php"。
然后您可以通过输入数据并手动连接来加载用户的数据库和配置:
https://ellislab.com/codeIgniter/user-guide/database/connecting.html https://ellislab.com/codeIgniter/user-guide/libraries/config.html
将此函数放在每个页面的构造中或预控制器挂钩中。
这使您可以编辑配置而无需编辑配置文件夹中的.php文件(我认为它很糟糕)并覆盖一般配置值。
例如:
$confvalues = $this->db->where('name','dude')->get('user_configs')->row();
$db['dude']['hostname'] = "localhost";
$db['dude']['username'] = $confvalues->db_user;
$db['dude']['password'] = $confvalues->db_pass;
$active_group = "dude";
现在,当你去$ this-> db时,它会使用这个数据库
$this->config->set_item('sess_cookie_name', $confvalues->sess_cookie);