【分享】Thinkphp添加自定义的配置(或自定义常量)方法

在最开始,用最简洁的文字来描述和解决这个问题。后面会贴上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如何自定义一个常量 >>


阅读本文后,您的心情是:
 
恶心
愤怒
强赞
感动
路过
无聊
雷囧
关注
知识共享许可协议
评论(0) 浏览(23018) 引用(0)
引用地址:http://blog.baiwand.com/tb.php?sc=22e2d0&id=88
Tags:
« 【分享】ThinkPHP函数详解:import方法 【解决】实现jsp和php共享session(多服务器:Apache和Tomcat) »

Blogger

  • blogger
  • 天之骄子
  • 职位:研发工程师
    铭言:
    阳光与欢乐同在,
    与我同在
    主页:
    blog.baiwand.com

分类目录

日志归档

主题标签

数据统计

  • 日志:151篇
  • 评论:45条
  • 碎语:264条
  • 引用:0条

链接表

随机日志 »

最新日志 »

最新评论 »

标签云 »

订阅Rss
sitemap