成长脚印-专注于互联网发展
【分享】Thinkphp添加自定义的配置(或自定义常量)方法
post by:天之骄子 2012-10-24 23:10

在最开始,用最简洁的文字来描述和解决这个问题。后面会贴上oschina的一篇不错的文章。

【问题起源】还是访问地址的整合,多个页面都需要跳转到某一个指定的地址,当然不想每次地址变更就得去重复修改包含这个地址的文件咯。所以最好的方法就是将这个地址设为常量或置入系统配置文件中。

【问题解决】

在项目的conf下的配置文件中添加自己的配置参数就可以了,

如:

<?php
return array(
    //'配置项'=>'配置值'
    'APP_DEBUG'=>true,
    'TMPL_L_DELIM'=>'<{',
    'TMPL_R_DELIM'=>'}>',
    'DEFAULT_CHARSET' => 'utf-8', // 默认输出编码
    'MY_CONF' => '123456', //自定义配置参数项
);

?>
怎么调用这个自定义配置参数呢?

项目中,用C('MY_CONF')来访问配置参数。

模板中,用<{$Think.config.sitename}

在类里,用$Think.config.sitename

 

【附】:---------------------在thinkphp里加入自定义的配置属性方法-------------------------

这里先说明下, 我当前的想法是在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目录下

 --------------------------------------------------------------------------------------------------------------------------------------------

【参考】

在thinkphp里加入自定义的配置属性方法 >>  >>

THINKPHP如何自定义一个常量 >>

评论:
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容