欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Thinkphp 框架扩展之应用模式实现方法分析

程序员文章站 2022-03-08 14:18:03
本文实例讲述了thinkphp 框架扩展之应用模式实现方法。分享给大家供大家参考,具体如下:应用模式应用模式是你的生活环境 开发环境 执行环境 ,就好比一个框架的应用场景(模式),是指这个框架在哪个平...

本文实例讲述了thinkphp 框架扩展之应用模式实现方法。分享给大家供大家参考,具体如下:

应用模式

应用模式是你的生活环境 开发环境 执行环境 ,就好比一个框架的应用场景(模式),是指这个框架在哪个平台上运行,

thinkphp中sae、普通、api三种模式,

  • 普通是指用于普通web开发和运行方式,
  • api是指用作api请求服务端,大多为别的客户端进行服务,供远程调用
  • sae是指在新浪的sae平台上用的

不同的模式下配置都是不一样的

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

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

显式应用模式

显式应用模式的模式定义文件位于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.phpdispatcher.class.phpcontroller.class.phpview.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');