这里先说明下, 我当前的想法是在thinkphp配置文件外(conf目录下config.php)建立一个配置文件,这个配置文件用来放我自己系统的一些常量,如网站名称,网站url,网站logo,网站keyword等信息,有别于thinkphp里的一些配置,所以,想要单独拿出来配置
配置文件名称:siteconfig.inc.php
我想把它放在系统的根目录下的Public目录 路径:根目录/Public
在config加载的同时,这个文件也被加载使用.
(参考的dwz+thinkphp)方法如下:
修改config.php,在头部加:(我的config位于APP叫Web应用下;具体路径是:根目录/Web/conf/config.php)
文件:config.php
=====
<?php
$siteconfig = require '../Public/siteconfig.inc.php';
$config=array(
'URL_MODEL'=>1, // 如果你的环境不支持PATHINFO 请设置为3
'DB_TYPE'=>'mysql',
'DB_HOST'=>'localhost',
'DB_NAME'=>'wk_cms',
'DB_USER'=>'root',
'DB_PWD'=>'123456',
'DB_PORT'=>'3306',
'DB_PREFIX'=>'wk_',
//...
);
//config.php 末端 加上一句:
return array_merge($config,$siteconfig);
?>
=====
文件 siteconfig.inc.php
=====
<?php
//网站配置文件
if (!defined('THINK_PATH')) exit();//判断是否加载thinkphp,如果否则退出
return array(
'SITENAME'=>'DWZ富客户端框架 - thinkphp2.0',
'EMAIL'=>'[email protected]',
'CONTACT'=>'张慧华',
'COMPANY'=>'dwz研发组',
'PHONE'=>'',
'FAX'=>'',
'ADDRESS'=>'',
'OFFLINEMESSAGE'=>'本站正在维护中,暂不能访问。<br /> 请稍后再访问本站。',
'SITEURL'=>'http://thinkphp.dwzjs.com',
'DEMOURL'=>'http://demo.dwzjs.com',
'BBSOURL'=>'http://bbs.dwzjs.com',
);
?>
====
Q:新加载进来的静态变量如何在模板里调用?
A:{$Think.config.sitename}
不必担心大小写,官方推荐将静态变量大写;但是无论大写还是小写,统统会被转成小写处理
Q:新加载进来的静态变量如何在类里面调用?
A:$Think.config.sitename
个人的一点体会:
由于可以设定静态变量到文件,所以,没有必要写入数据库;如果写入数据库又需要频繁调用;会影响速度
所以,当前流行的做法都是将常用配置写到文件,然后在后台写一个replace的脚本;
为了便于管理,我在app叫admin(系统管理后台)的config.PHP也加载了siteconfig.inc.php;目的就是在后台可以加载,并可以在后台修改;所以,我把siteconfig.inc.php放到了public目录下