thinkphp 跨模块调用配置文件信息

比如根目录下面/Conf/下面有config.php 文件

<?php

/**

*项目公共配置

**/

return array(

‘LOAD_EXT_CONFIG‘ => ‘db,info,email,safe,upfile,cache,route,app,alipay,sms,rippleos_key‘, //默认可以加载下面的php信息文件

‘APP_AUTOLOAD_PATH‘     =>‘@.ORG‘,

‘OUTPUT_ENCODE‘         =>  true, /页面压缩输出

‘PAGE_NUM‘ => 15,

/*Cookie配置*/

‘COOKIE_PATH‘           => ‘/‘,     // Cookie路径

‘COOKIE_PREFIX‘         => ‘‘,       // Cookie前缀 避免冲突

/*定义模版标签*/

‘TMPL_L_DELIM‘   =>‘{wqxiu:‘, //模板引擎普通标签开始标记

‘TMPL_R_DELIM‘ =>‘}‘, //模板引擎普通标签结束标记

);

?>

info.php 文件

<?php

return array (

‘site_name‘ => ‘网站名称‘,

‘site_title‘ => ‘网站标题‘,

‘site_url‘ => ‘网站链接‘,

);

我现在想要 在 /Application/Home/View/View/index.html中调用info.php中的信息 怎么办呢 ?

解决方法如下:

我首先 要在 /Application/Common/Conf/config.php 配置调用根目录的info.php信息

<?php

//config_arr1 表示 info.php中的信息   config_arr2 是当前的配置文件信息

$config_arr1 = include(‘./Conf/info.php‘);

$config_arr2 = array(

/* 数据库设置 */

‘DB_TYPE‘ => ‘mysql‘, // 数据库类型

‘SHOW_PAGE_TRACE‘ => FALSE,

‘TOKEN_ON‘ => true, // 是否开启令牌验证

‘TOKEN_NAME‘ => ‘__yj__‘, // 令牌验证的表单隐藏字段名称

‘TOKEN_TYPE‘ => ‘md5‘, //令牌哈希验证规则 默认为MD5

‘TOKEN_RESET‘ => FALSE, //令牌验证出错后是否重置令牌 默认为true

‘LOAD_EXT_CONFIG‘ => ‘systemConfig‘,

‘DEFAULT_C_LAYER‘       =>  ‘Controller‘, // 默认的控制器层名称

‘MODULE_ALLOW_LIST‘     =>  array(‘Home‘,‘s‘), // 配置你原来的分组列表

‘DEFAULT_MODULE‘        =>  ‘Home‘, // 配置你原来的默认分组

‘MODULE_DENY_LIST‘      =>  array(‘Common‘,‘Runtime‘,‘Ucenter‘),

‘URL_ROUTER_ON‘   => true,// 开启路由

);

return array_merge($config_arr1, $config_arr2);

这样就可以在/Application/Home/Controller/IndexController.class.php 中使用thinkphp内置C函数调用 代码如下:

$f_siteName=C(‘site_name‘);

$this->assign(‘f_siteName‘,$f_siteName);

$f_keyword=C(‘keyword‘);

$this->assign(‘f_keyword‘,$f_keyword);

$f_content=C(‘content‘);

$this->assign(‘f_content‘,$f_content);

最后在/Application/Home/View/View/index.html 中输出 {$f_siteName} {$f_keyword} 就可以了

时间: 2024-10-20 17:16:37

thinkphp 跨模块调用配置文件信息的相关文章

ThinkPHP 跨模块调用操作方法(A方法与R方法)

ThinkPHP 跨模块调用操作方法(A方法与R方法) 跨模块调用操作方法 前面说了可以使用 $this 来调用当前模块内的方法,但实际情况中还经常会在当前模块调用其他模块的方法.ThinkPHP 内置了 A方法与 R 方法这两个特殊的大写字母方法来处理跨模块调用的问题. 目前 Index 模块内有 index 操作,User 模块有 showName 操作,User 模块及 showName 操作具体代码如下: <?php class UserAction extends Action{ pu

ThinkPHP跨模块调用模板

跨模块调用success和error方法的模板 在模块配置文件中变更如下配置  //默认错误跳转对应的模板文件  'TMPL_ACTION_ERROR' => APP_PATH.'Home/View/Tpl/dispatch_jump.html',  //默认成功跳转对应的模板文件  'TMPL_ACTION_SUCCESS' => APP_PATH.'Home/View/Tpl/dispatch_jump.html',  // 定义公共错误模板  'TMPL_EXCEPTION_FILE'=

ThinkPHP实现跨模块调用操作方法概述

ThinkPHP实现跨模块调用操作方法概述 投稿:shichen2014 字体:[增加 减小] 类型:转载 使用 $this 可以调用当前模块内的方法,但是很多情况下经常会在当前模块中调用其他模块的方法.这篇文章主要介绍了ThinkPHP跨模块调用操作,需要的朋友可以参考下 使用 $this 可以调用当前模块内的方法,但是很多情况下经常会在当前模块中调用其他模块的方法.ThinkPHP内置了A方法与R方法这两个特殊的大写字母方法来处理跨模块调用的问题. 目前Index模块内有index操作Use

Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)

原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问这个类不存在的方法,那么它会去访问”魔术方法__call()” 用户访问一个不存在的操作—>解决:给每个控制器都定义个_empty()方法来处理 第二个解决方法:定义一个空操作 [空模块处理] 我们使用一个类,但是现在这个类还没有被include进来. 我们可以通过自动加载机制处理__autoloa

ThinkPHP跨控制器调用方法

跨控制器调用方法 1. 先造对象,再调用里面的方法 $sc=new \Home\Controller\IndexController();  用绝对路径找echo $sc->ShuChu(); 2. $sc=new IndexController();  用相对路径 echo $sc->ShuChu(); 还可以使用thingkphp中的快捷方法 1. $sc=A("Index");      使用TP框架的快捷方法A来创建控制器对象  ()内直接写控制器名 [跨模块调用]

spring之跨模块引用配置文件

1.导入包或加入依赖关系 2.引入spring配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.

ThinPHP命名空间,连接数据库是要修改的配置文件,Model数据模型层,跨控制器调用,如何获取系统常量信息,

一.命名空间(主要是为了实现自动加载类) *命名空间(相当于虚拟的目录),为了让类有一个统一的文件夹来管理(可以自动加载'类'),每个文件都要有命名空间*tp如何做命名空间:*TP框架下有一个初始命名空间(相当于根目录)ThinkPHP\Libray*在初始命名空间下又包含很多根命名空间,这些根命名空间主要分两类:1.TP核心类里面的根(系统文件)        在Libray下,有几个文件夹就有几个根(所有的文件夹都是根)2.APP里面的根(自定义文件)        APP里面的根是以模块名

ThinkPHP 3.2.2跨控制器调用方法

 所谓跨控制器调用,指的是在一个控制器中调用另一个控制器的某个方法.在ThinkPHP中有三种方式实现跨控制器调用: 直接实例化: A()函数实例化; R()函数实例化. (1)直接实例化  直接实例化就是通过new关键字实例化相关控制器,例如: 1 $goods = new GoodsController() //直接实例化Goods控制器类 2 $info = $goods->info(); //调用Goods控制器类的info()方法 需要注意的是,如果实例化的控制器与当前控制器不在同一目

[转]python3 跨目录模块调用,你真的懂了吗?

小伙伴们,你们有遇到过调用自己写的模块(跨目录模块调用),提示你ImportError:No module named ...的情况,如果有,而且到现在还没有搞明白的,我想说,你今天看对文章了. 这篇文章主要是讲解怎么还原一个出错的场景,然后分析出错原因,一步一步的解决这个问题的思路. 项目结构 代码内容 # model1/student.py def get_name(): return "hting" # model1/new_student.py from student imp