应用模式提供了对核心框架进行改造的机会,可以让你的应用适应更多的环境和不同的要求。

每个应用模式有自己的模式定义文件,用于配置当前模式需要加载的核心文件和配置文件,以及别名定义、行为扩展定义等等。根据模式定义文件的定义位置和入口是否需要定义模式,可以分为显式应用模式隐含应用模式

显式应用模式大理石平台检定规程

显式应用模式的模式定义文件位于ThinkPHP\Mode目录,如果我们要增加一个应用模式,只需要在该目录下面定义一个模式定义文件即可,下面是一个典型的模式定义文件(lite.php):

  1. return array(
  2. // 配置文件
  3. 'config' => array(
  4. THINK_PATH.'Conf/convention.php', // 系统惯例配置
  5. CONF_PATH.'config.php', // 应用公共配置
  6. ),
  7. // 别名定义
  8. 'alias' => array(
  9. 'Think\Exception' => CORE_PATH . 'Exception'.EXT,
  10. 'Think\Model' => CORE_PATH . 'Model'.EXT,
  11. 'Think\Db' => CORE_PATH . 'Db'.EXT,
  12. 'Think\Cache' => CORE_PATH . 'Cache'.EXT,
  13. 'Think\Cache\Driver\File' => CORE_PATH . 'Cache/Driver/File'.EXT,
  14. 'Think\Storage' => CORE_PATH . 'Storage'.EXT,
  15. ),
  16. // 函数和类文件
  17. 'core' => array(
  18. MODE_PATH.'Lite/functions.php',
  19. COMMON_PATH.'Common/function.php',
  20. MODE_PATH . 'Lite/App'.EXT,
  21. MODE_PATH . 'Lite/Dispatcher'.EXT,
  22. MODE_PATH . 'Lite/Controller'.EXT,
  23. MODE_PATH . 'Lite/View'.EXT,
  24. CORE_PATH . 'Behavior'.EXT,
  25. ),
  26. // 行为扩展定义
  27. 'tags' => array(
  28. 'view_parse' => array(
  29. 'Behavior\ParseTemplate', // 模板解析 支持PHP、内置模板引擎和第三方模板引擎
  30. ),
  31. 'template_filter'=> array(
  32. 'Behavior\ContentReplace', // 模板输出替换
  33. ),
  34. ),
  35. );

我们在ThinkPHP/Mode/Lite目录下面创建functions.php函数库文件,以及App.class.phpDispatcher.class.phpController.class.phpView.class.php,这些类都是针对我们新的应用模式定制的核心类,但是和标准模式的命名空间是一致的,也就是说都在Think命名空间下面。

ThinkPHP/Mode/Lite目录用于存放该应用模式下面的所有自定义文件。

应用模式定义文件定义好后,我们就可以在应用中使用该模式了,例如:

  1. define('MODE_NAME','lite');
  2. define('APP_PATH','./Application/');
  3. require './ThinkPHP/ThinkPHP.php';

隐含应用模式

隐含应用模式的模式定义文件位于应用的配置目录下面 Application/Common/Conf/core.php,模式定义文件和显式应用模式的定义文件一样。 使用隐含应用模式的时候,不需要在入口文件中定义MODE_NAME,或者说存在隐含应用模式定义文件的时候,MODE_NAME定义无效。

注意:如果应用中定义的应用模式需要使用其他的存储类型,需要在入口文件中定义。

  1. define('STORAGE_TYPE','Bae');
 

thinkphp 应用模式的更多相关文章

  1. ThinkPHP调试模式与日志记录

    1.可以在config.php中进行设置,默认为关闭状态. 'APP_DEBUG'   =>  true 打开\ThinkPHP\Common\debug.php文件可以查看debug的默认设置 ...

  2. ThinkPHP URL模式和URL重写

    现在用的版本是TP3.1.3,这两天总是遇到NotFound的错误,解析路径错误,所以认真研究了一下手册,发现问题出在URL模式上面. URL模式 一般是使用U方法来生成路径,U方法的定义规则如下(方 ...

  3. thinkphp URL 模式

    兼容ThinkPHP三种url模式的nginx rewrite location / { root /var/www; index index.html index.htm index.php; if ...

  4. centos7 nginx完整支持thinkphp pathinfo模式开启方法

    thinkphp运行在linux+nginx,如何开启pathinfo模式,我是完整测试过了,没问题的,在thinkphp配置文件 开启    'URL_MODEL'   =>  1,   1代 ...

  5. thinkphp 调试模式

    ThinkPHP有专门为开发过程而设置的调试模式,开启调试模式后,会牺牲一定的执行效率,但带来的方便和除错功能非常值得. 直线电机哪家好直线电机生产厂家 我们强烈建议ThinkPHP开发人员在开发阶段 ...

  6. thinkphp cbd模式

    ThinkPHP从3.0版本开始引入了全新的CBD(核心Core+行为Behavior+驱动Driver)架构模式,因为从底层开始,框架就采用核心+行为+驱动的架构体系,核心保留了最关键的部分,并在重 ...

  7. thinkphp url模式

    入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是 ...

  8. 修改thinkphp路由模式,去掉Home

    第一步:入口文件增加 define('BIND_MODULE', 'Home'); 第二步:修改config文件,我这里路由模式设置为2 效果展示:

  9. nginx+thinkphp pathinfo模式配置

    server { listen 81; server_name http://lanxing.cc gohosts.com; root "D:\WWW\lanxing\public" ...

随机推荐

  1. Jmeter的安装与环境配置

    1.首先从jmeter的官网http://jmeter.apache.org/download_jmeter.cgi下载jmeter,目前最新版本为5.1,支持的JDK为1.8.. 然后进行解压. 2 ...

  2. propTypes和 defaultProps

    propTypes和 defaultProps propTypes: 可以 用来做类型的校验 限制类型 isRequired 必须要求传递 要使用必须先引入: import PropTypes fro ...

  3. js中如何避免动态引入重复资源

    创建存储数据的数组或者对象: 每次调用方法的时候,往里面添加资源对象,包括路径: 每次调用的时候遍历此路劲是否存在,如存在,就调用此资源对象的promise进行操作. 可避免资源未加载完成就执行的情况 ...

  4. Ansible自动化部署K8S集群

    Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企 ...

  5. Web前端/全栈核心(html5/css3/js/vue/react/angular/es6/node)观看笔记

    a标签中的超链接,需要加   http://    否则会出现页面找不到. iframe中添加a标签,a标签中的target属性可以控制即将打开的页面,在那个位置显示. _blank 在新窗口中打开被 ...

  6. [NOIP模拟16]题解

    A.Blue 出题人大概已经去为国家处理积压子弹了? 贪心,让每一只青蛙(我怂行吧)都尽量往远跳,能到达的最远的被踩了就跳次远的,以此类推.可以维护一个单调队列,表示每只青蛙的位置(开始都是0).然后 ...

  7. Robotframework之下拉列表select

    下拉框控件很常见啊,主要说一下robotframework中怎么玩转下拉框,第一点要注意的就是,别看到下拉的就用select控件去操作,因为很多下拉列表用的不一定就是select控件.robotfra ...

  8. java程序中线程cpu使用率计算

    原文地址:https://www.imooc.com/article/27374 最近确实遇到题目上的刚需,也是花了一段时间来思考这个问题. cpu使用率如何计算 计算使用率在上学那会就经常算,不过往 ...

  9. HDU 1392 Surround the Trees (凸包周长)

    题目链接:HDU 1392 Problem Description There are a lot of trees in an area. A peasant wants to buy a rope ...

  10. 剑指offer——52第一个只出现一次的字符

    题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 题解: 想复杂了,从头遍历 ...