thinkphp 模板与控制器之间执行过程

thinkphp 模板与控制器之间执行过程,第1张

ThinkPHP中的跨控制器调用与框架执行流程

一、跨控制器调用

UserControllerclassphp

<php

namespace Home/Controller

use Think/Controller

class UserController extends Controller{

public function show(){

//TODO

}

}

复制代码

IndexControllerclassphp(方法一)

复制代码

<php

namespace Home/Controller

use Think/Controller

class IndexController extends Controller{

public function count(){

//通过快捷函数来实例化一个控制器

//User为控制器名

$user = A('User');

$user-> show();

}

}

IndexControllerclassphp(方法二)

<php

namespace Home/Controller

use Think/Controller

class IndexController extends Controller{

public function count(){

//User为控制器名,show为其方法

R('User/show');

}

}

二、ThinkPHP执行流程

当一个客户端发起一个请求的时候先去访问应用入口文件

<php

// 应用入口文件

// 检测PHP环境

if(version_compare(PHP_VERSION,'530','<')) die('require PHP > 530 !');

// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false

define('APP_DEBUG',True);

// 引入ThinkPHP入口文件

require '//ThinkPHP/ThinkPHPphp';

在应用入口文件中引入TinkPHP框架的入口文件,然后执行该文件中的代码。

在TinkPHPphp中做了一些初始化 *** 作,比如定义了大量的全局常量,运行环境检测等

ThinkPHPphp

<php

// 记录开始运行时间

$GLOBALS['_beginTime'] = microtime(TRUE);

// 记录内存初始使用

define('MEMORY_LIMIT_ON',function_exists('memory_get_usage'));

if(MEMORY_LIMIT_ON) $GLOBALS['_startUseMems'] = memory_get_usage();

// 版本信息

const THINK_VERSION = '323';

// URL 模式定义

const URL_COMMON = 0; //普通模式

const URL_PATHINFO = 1; //PATHINFO模式

const URL_REWRITE = 2; //REWRITE模式

const URL_COMPAT = 3; // 兼容模式

// 类文件后缀

const EXT = 'classphp';

// 系统常量定义

defined('THINK_PATH') or define('THINK_PATH', __DIR__'/');

defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME'])'/');

defined('APP_STATUS') or define('APP_STATUS', ''); // 应用状态 加载对应的配置文件

defined('APP_DEBUG') or define('APP_DEBUG', false); // 是否调试模式

if(function_exists('saeAutoLoader')){// 自动识别SAE环境

defined('APP_MODE') or define('APP_MODE', 'sae');

defined('STORAGE_TYPE') or define('STORAGE_TYPE', 'Sae');

}else{

defined('APP_MODE') or define('APP_MODE', 'common'); // 应用模式 默认为普通模式

defined('STORAGE_TYPE') or define('STORAGE_TYPE', 'File'); // 存储类型 默认为File

}

defined('RUNTIME_PATH') or define('RUNTIME_PATH', APP_PATH'Runtime/'); // 系统运行时目录

defined('LIB_PATH') or define('LIB_PATH', realpath(THINK_PATH'Library')'/'); // 系统核心类库目录

defined('CORE_PATH') or define('CORE_PATH', LIB_PATH'Think/'); // Think类库目录

defined('BEHAVIOR_PATH')or define('BEHAVIOR_PATH', LIB_PATH'Behavior/'); // 行为类库目录

defined('MODE_PATH') or define('MODE_PATH', THINK_PATH'Mode/'); // 系统应用模式目录

defined('VENDOR_PATH') or define('VENDOR_PATH', LIB_PATH'Vendor/'); // 第三方类库目录

defined('COMMON_PATH') or define('COMMON_PATH', APP_PATH'Common/'); // 应用公共目录

defined('CONF_PATH') or define('CONF_PATH', COMMON_PATH'Conf/'); // 应用配置目录

defined('LANG_PATH') or define('LANG_PATH', COMMON_PATH'Lang/'); // 应用语言目录

defined('HTML_PATH') or define('HTML_PATH', APP_PATH'Html/'); // 应用静态目录

defined('LOG_PATH') or define('LOG_PATH', RUNTIME_PATH'Logs/'); // 应用日志目录

defined('TEMP_PATH') or define('TEMP_PATH', RUNTIME_PATH'Temp/'); // 应用缓存目录

defined('DATA_PATH') or define('DATA_PATH', RUNTIME_PATH'Data/'); // 应用数据目录

defined('CACHE_PATH') or define('CACHE_PATH', RUNTIME_PATH'Cache/'); // 应用模板缓存目录

defined('CONF_EXT') or define('CONF_EXT', 'php'); // 配置文件后缀

defined('CONF_PARSE') or define('CONF_PARSE', ''); // 配置文件解析方法

defined('ADDON_PATH') or define('ADDON_PATH', APP_PATH'Addon');

// 系统信息

if(version_compare(PHP_VERSION,'540','<')) {

ini_set('magic_quotes_runtime',0);

define('MAGIC_QUOTES_GPC',get_magic_quotes_gpc() true : false);

}else{

define('MAGIC_QUOTES_GPC',false);

}

define('IS_CGI',(0 === strpos(PHP_SAPI,'cgi') || false !== strpos(PHP_SAPI,'fcgi')) 1 : 0 );

define('IS_WIN',strstr(PHP_OS, 'WIN') 1 : 0 );

define('IS_CLI',PHP_SAPI=='cli' 1 : 0);

if(!IS_CLI) {

// 当前文件名

if(!defined('_PHP_FILE_')) {

if(IS_CGI) {

//CGI/FASTCGI模式下

$_temp = explode('php',$_SERVER['PHP_SELF']);

define('_PHP_FILE_', rtrim(str_replace($_SERVER['>

使用方法:

{$ThinkserverSERVER_ADDR} <!--当前服务器的ip-->

{$ThinkserverREMOTE_ADDR} <!--访问者外部的ip-->

{$ThinkserverSERVER_NAME} <!--localhost-->

{$Thinkconst__SELF__} <!--当前项目路径-->

{$ThinkconstAPP_NAME} <!--项目名称-->

<!--2、获得ThinkPHP内部定义的变量-->

{$Thinknow} <!--当前时间-->

{$Thinktemplate} <!--APP/Tpl/Admin/View/showhtml -->

{$Thinkversion} <!--tp版本号-->

{$ThinkLDELIM} <!---->

以上就是关于thinkphp 模板与控制器之间执行过程全部的内容,包括:thinkphp 模板与控制器之间执行过程、thinkphp多维数组中获取多个数值---列如下面的$result数组中药获取 person sex oojnb 并且在模板页面显示、thinkphp常量怎么定义并在模板中使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9295472.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存