thinkphp 应用模式
应用模式提供了对核心框架进行改造的机会,可以让你的应用适应更多的环境和不同的要求。
每个应用模式有自己的模式定义文件,用于配置当前模式需要加载的核心文件和配置文件,以及别名定义、行为扩展定义等等。根据模式定义文件的定义位置和入口是否需要定义模式,可以分为显式应用模式和隐含应用模式。
显式应用模式大理石平台检定规程
显式应用模式的模式定义文件位于ThinkPHP\Mode目录,如果我们要增加一个应用模式,只需要在该目录下面定义一个模式定义文件即可,下面是一个典型的模式定义文件(lite.php):
return array(// 配置文件'config' => array(THINK_PATH.'Conf/convention.php', // 系统惯例配置CONF_PATH.'config.php', // 应用公共配置),// 别名定义'alias' => array('Think\Exception' => CORE_PATH . 'Exception'.EXT,'Think\Model' => CORE_PATH . 'Model'.EXT,'Think\Db' => CORE_PATH . 'Db'.EXT,'Think\Cache' => CORE_PATH . 'Cache'.EXT,'Think\Cache\Driver\File' => CORE_PATH . 'Cache/Driver/File'.EXT,'Think\Storage' => CORE_PATH . 'Storage'.EXT,),// 函数和类文件'core' => array(MODE_PATH.'Lite/functions.php',COMMON_PATH.'Common/function.php',MODE_PATH . 'Lite/App'.EXT,MODE_PATH . 'Lite/Dispatcher'.EXT,MODE_PATH . 'Lite/Controller'.EXT,MODE_PATH . 'Lite/View'.EXT,CORE_PATH . 'Behavior'.EXT,),// 行为扩展定义'tags' => array('view_parse' => array('Behavior\ParseTemplate', // 模板解析 支持PHP、内置模板引擎和第三方模板引擎),'template_filter'=> array('Behavior\ContentReplace', // 模板输出替换),),);
我们在ThinkPHP/Mode/Lite目录下面创建functions.php函数库文件,以及App.class.php、Dispatcher.class.php、Controller.class.php和View.class.php,这些类都是针对我们新的应用模式定制的核心类,但是和标准模式的命名空间是一致的,也就是说都在Think命名空间下面。
ThinkPHP/Mode/Lite目录用于存放该应用模式下面的所有自定义文件。
应用模式定义文件定义好后,我们就可以在应用中使用该模式了,例如:
define('MODE_NAME','lite');define('APP_PATH','./Application/');require './ThinkPHP/ThinkPHP.php';
隐含应用模式
隐含应用模式的模式定义文件位于应用的配置目录下面 Application/Common/Conf/core.php,模式定义文件和显式应用模式的定义文件一样。 使用隐含应用模式的时候,不需要在入口文件中定义MODE_NAME,或者说存在隐含应用模式定义文件的时候,MODE_NAME定义无效。
注意:如果应用中定义的应用模式需要使用其他的存储类型,需要在入口文件中定义。
define('STORAGE_TYPE','Bae');
thinkphp 应用模式的更多相关文章
- ThinkPHP调试模式与日志记录
1.可以在config.php中进行设置,默认为关闭状态. 'APP_DEBUG' => true 打开\ThinkPHP\Common\debug.php文件可以查看debug的默认设置 ...
- ThinkPHP URL模式和URL重写
现在用的版本是TP3.1.3,这两天总是遇到NotFound的错误,解析路径错误,所以认真研究了一下手册,发现问题出在URL模式上面. URL模式 一般是使用U方法来生成路径,U方法的定义规则如下(方 ...
- thinkphp URL 模式
兼容ThinkPHP三种url模式的nginx rewrite location / { root /var/www; index index.html index.htm index.php; if ...
- centos7 nginx完整支持thinkphp pathinfo模式开启方法
thinkphp运行在linux+nginx,如何开启pathinfo模式,我是完整测试过了,没问题的,在thinkphp配置文件 开启 'URL_MODEL' => 1, 1代 ...
- thinkphp 调试模式
ThinkPHP有专门为开发过程而设置的调试模式,开启调试模式后,会牺牲一定的执行效率,但带来的方便和除错功能非常值得. 直线电机哪家好直线电机生产厂家 我们强烈建议ThinkPHP开发人员在开发阶段 ...
- thinkphp cbd模式
ThinkPHP从3.0版本开始引入了全新的CBD(核心Core+行为Behavior+驱动Driver)架构模式,因为从底层开始,框架就采用核心+行为+驱动的架构体系,核心保留了最关键的部分,并在重 ...
- thinkphp url模式
入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是 ...
- 修改thinkphp路由模式,去掉Home
第一步:入口文件增加 define('BIND_MODULE', 'Home'); 第二步:修改config文件,我这里路由模式设置为2 效果展示:
- nginx+thinkphp pathinfo模式配置
server { listen 81; server_name http://lanxing.cc gohosts.com; root "D:\WWW\lanxing\public" ...
随机推荐
- Linux上安装JDk教程
使用如下命令 uname –a.如果输出结果中含有X86_64,表明系统是64位的,如果出现i686,证明系统是32位的. 没有安装包,就去官网下载 http://www.oracle.com/tec ...
- Nodejs去掉/favicon.ico的请求
const http=require("http"); const server=http.createServer(); server.on("request" ...
- java序列化对象为什么要定义serialversionUID值?
SerialVersionUid,简言之,其目的是序列化对象版本控制,有关各版本反序列化时是否兼容.如果在新版本中这个值修改了,新版本就不兼容旧版本,反序列化时会抛出InvalidClassExcep ...
- mysql查询相关
查询事务 SELECT * FROM information_schema.INNODB_TRX\G; 查询正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB ...
- 【leetcode】969. Pancake Sorting
题目如下: Given an array A, we can perform a pancake flip: We choose some positive integer k <= A.len ...
- window.navigator.userAgent
只读属性 Window.navigator 会返回一个 Navigator 对象的引用,可以用于请求运行当前代码的应用程序的相关信息.window可以省略.来自navigator对象的信息具有误导性, ...
- 【Flutter学习】基本组件之基本列表ListView组件
一,概述 列表是前端最常见的需求. 在flutter中,用ListView来显示列表页,支持垂直和水平方向展示,通过一个属性我们就可以控制其方向,列别有以下分类 水平列表 垂直列表 数据量非常大的列表 ...
- BZOJ 1303: [CQOI2009]中位数图(思路题)
传送门 解题思路 比较好想的思路题.首先肯定要把原序列转化一下,大于\(k\)的变成\(1\),小于\(k\)的变成\(-1\),然后求一个前缀和,还要用\(cnt[]\)记录一下前缀和每个数出现了几 ...
- Thymeleaf 模板布局三种区别
- (转)OS: 生产者消费者问题(多进程+共享内存+信号量)
转:http://blog.csdn.net/yaozhiyi/article/details/7561759 一. 引子 时隔一年再次用到 cout 的时候,哥潸然泪下,这是一种久别重逢的感动,虽然 ...