🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
应用模式提供了对核心框架进行改造的机会,可以让你的应用适应更多的环境和不同的要求。 每个应用模式有自己的模式定义文件,用于配置当前模式需要加载的核心文件和配置文件,以及别名定义、行为扩展定义等等。根据模式定义文件的定义位置和入口是否需要定义模式,可以分为**显式应用模式**和**隐含应用模式**。 ## 显式应用模式 显式应用模式的模式定义文件位于`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'); ~~~