TP框架的业务逻辑谁能给我说说

TP框架的业务逻辑谁能给我说说,第1张

你是要系统流程吧?

这个手册里面有的。我给你粘贴一份吧

用户URL请求

调用应用入口文件(通常是网站的indexphp)

载入框架入口文件(ThinkPHPphp)

记录初始运行时间和内存开销

系统常量判断及定义

载入框架引导类(Think\Think)并执行Think::start方法进行应用初始化

设置错误处理机制和自动加载机制

调用Think\Storage类进行存储初始化(由STORAGE_TYPE常量定义存储类型)

部署模式下如果存在应用编译缓存文件则直接加载(直接跳转到步骤22)

读取应用模式(由APP_MODE常量定义)的定义文件(以下以普通模式为例说明)

加载当前应用模式定义的核心文件(普通模式是 ThinkPHP/Mode/commonphp)

加载惯例配置文件(普通模式是 ThinkPHP/Conf/conventionphp)

加载应用配置文件(普通模式是 Application/Common/Conf/configphp)

加载系统别名定义

判断并读取应用别名定义文件(普通模式是 Application/Common/Conf/aliasphp)

加载系统行为定义

判断并读取应用行为定义文件(普通模式是 Application/Common/Conf/tagsphp)

加载框架底层语言包(普通模式是 ThinkPHP/Lang/zh-cnphp)

如果是部署模式则生成应用编译缓存文件

加载调试模式系统配置文件(ThinkPHP/Conf/debugphp)

判断并读取应用的调试配置文件(默认是 Application/Common/Conf/debugphp)

判断应用状态并读取状态配置文件(如果APP_STATUS常量定义不为空的话)

检测应用目录结构并自动生成(如果CHECK_APP_DIR配置开启并且RUNTIME_PATH目录不存在的情况下)

调用Think\App类的run方法启动应用

应用初始化(app_init)标签位侦听并执行绑定行为

判断并加载动态配置和函数文件

调用Think\Dispatcher::dispatch方法进行URL请求调度

自动识别兼容URL模式和命令行模式下面的$_SERVER['PATH_INFO']参数

检测域名部署以及完成模块和控制器的绑定 *** 作(APP_SUB_DOMAIN_DEPLOY参数开启)

分析URL地址中的PATH_INFO信息

获取请求的模块信息

检测模块是否存在和允许访问

判断并加载模块配置文件、别名定义、行为定义及函数文件

判断并加载模块的动态配置和函数文件

模块的URL模式判断

模块的路由检测(URL_ROUTER_ON开启)

PATH_INFO处理(path_info)标签位侦听并执行绑定行为

URL后缀检测(URL_DENY_SUFFIX以及URL_HTML_SUFFIX处理)

获取当前控制器和 *** 作,以及URL其他参数

URL请求调度完成(url_dispatch)标签位侦听并执行绑定行为

应用开始(app_begin)标签位侦听并执行绑定行为

调用SESSION_OPTIONS配置参数进行Session初始化(如果不是命令行模式)

根据请求执行控制器方法

如果控制器不存在则检测空控制器是否存在

控制器开始(action_begin)标签位侦听并执行绑定行为

默认调用系统的ReadHtmlCache行为读取静态缓存(HTML_CACHE_ON参数开启)

判断并调用控制器的_initialize初始化方法

判断 *** 作方法是否存在,如果不存在则检测是否定义空 *** 作方法

判断前置 *** 作方法是否定义,有的话执行

Action参数绑定检测,自动匹配 *** 作方法的参数

如果有模版渲染(调用控制器display方法)

视图开始(view_begin)标签位侦听并执行绑定行为

调用Think\View的fetch方法解析并获取模版内容

自动识别当前主题以及定位模版文件

视图解析(view_parse)标签位侦听并执行绑定行为

默认调用内置ParseTemplate行为解析模版(普通模式下面)

模版引擎解析模版内容后生成模版缓存

模版过滤替换(template_filter)标签位侦听并执行绑定行为

默认调用系统的ContentReplace行为进行模版替换

输出内容过滤(view_filter)标签位侦听并执行绑定行为

默认调用系统的WriteHtmlCache行为写入静态缓存(HTML_CACHE_ON参数开启)

调用Think\View类的render方法输出渲染内容

视图结束(view_end)标签位侦听并执行绑定行为

判断后置 *** 作方法是否定义,有的话执行

控制器结束(action_end)标签位侦听并执行绑定行为

应用结束(app_end)标签位侦听并执行绑定行为

执行系统的ShowPageTrace行为(SHOW_PAGE_TRACE参数开启并且不是AJAX请求)

日志信息存储写入

1 startphp文件 1 导入basephp文件 2 执行App:run()->send();函数运行框架; 2 basephp文件 1 定义全局变量,主要是各文件夹路径的定义,以及环境变量的检查(比如服务器是否是windows) 2 加载libary\think\loaderphp文件,注册自动加载机制,注册异常处理机制。 3 加载根目录下的环境变量文件(env),如果存在则配置环境变量(使用putenv()函数)。 4 加载默认配置文件。 3 执行App::run()->send()函数 1 调用Request::instance(),初始化Request,该函数是一个单例模式的函数。 2 调用self::instance(),初始化应用。 21 判断是否为调试模式,是否输出错误信息 22 注册应用命名空间 23 加载configphp中配置的extra_file_list扩展函数文件。 24 设置configphp中配置的default_timezone默认时区 25 执行Hook::listen('app_init'); 3 绑定路由模块,如果在配置文件中定义了auto_bind_module则自动绑定入口文件。 4 根据配置文件中配置的default_fileter,设置默认过滤函数,过滤请求内容 5 判断是否开启多语言机制,并加载相应的语言包文件。 6 根据请求路由,获得调度信息,并保存调度信息。 7 判断请求类型,以及是否设置了请求缓存,如果存在并没有过期则执行重定向。 该 *** 作会极大的节省服务器的性能,但也会让数据延迟,适合数据不经常更新的页面使用。 71 redirect类型,在配置文件里开启了request_cache后,再次请求同一个页面,会直接重定向到原来的缓存页面,不会再重新加载页面。 72 module类型,普通的页面请求,会调用self::module()函数,获得请求的模块,控制器和 *** 作,并通过反射函数self::invokeMethod()执行action。 73 controller类型:暂时还不知道什么时候回执行。 74 method类型:执行回调函数,也是通过self::invokeMethod()反射函数来执行的。

怎么在thinkphp添加数据时获取自动增长的id?

下面是TP5的方法,TP3的在添加后变量直接就获取了。添加数据后如果需要返回新增数据的自增主键,可以使用 getLastInsID 方法:

Db::name('user')->insert($data);

$userId = Db::name('user')->getLastInsID();或者直接使用 insertGetId 方法新增数据并返回主键值:

Db::name('user')->insertGetId($data);

ThinkPHP

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP 开发框架,遵循 Apache2 开源协议发布,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。

基本特性

简单易用的MVC模式                                                                         

模型(M):模型的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。

控制器(C):应用控制器(核心控制器)和Action控制器都承担了控制器的角色,区别在于Action控制器完成业务过程,而应用控制器(App类)负责调度控制。Action控制器位于项目目录下面的LibAction目录。

视图(V):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。

2独创的核心编译和二分法项目编译机制

ThinkTemplate是一个使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。

路由器安装不当。tp无线路由器是一个比较老的路由器品牌,电信还有专门tp路由版本,tp路由器获取网络时间失败是因为路由器安装不当导致的,路由器(Router,又称路径器或宽带分享器)是一种计算机网络设备,能将数据包通过一个个网络传送至目的地,这个过程称为路由。

TP中的每一个xxxActionclassphp文件代表着一个应用模块,此Action中的每一个方法(function)代表着一个 *** 作, *** 作分为有输出到模板的 *** 作和只具执行不需要输出的 *** 作。

1 在TP开发中,要增加一个应用模块,就在Action文件夹里建立一个类,类的文件命名格式是模块名称+Actionclassphp。例如我们这里的应用模块是Index,所以定义文件名为IndexActionclassphp

2 应用模块类的定义要继承框架的Action类。要为这个应用模块添加一个 *** 作,则定义一个以此 *** 作为命名的function例如上面的index *** 作。

通常一个应用模块中,会有若干 *** 作(function)需要有与用户交互的页面,这就需要用到模板输出,

TP本身已内置了一套具有TP特色的,很强大易扩展但应用非常方便兼简单的模板引擎。

1 在Myapp/Tpl/default/下建立一个文件夹,根据应用模块的名称,我们将这个文件夹命名为Index

2 在Myapp/Tpl/default/Index/下建立一个html文件,根据 *** 作名称,我们命名该文件为indexhtml

3 打开Myapp/Lib/Action/IndexActionclassphp文件,修改代码为

<php

class IndexAction extends Action{

public function index(){

$value

=

'hello,ThinkPHP';

$this->assign('name',$value);

$this->display();

以上就是关于TP框架的业务逻辑谁能给我说说全部的内容,包括:TP框架的业务逻辑谁能给我说说、tp5按钮执行方法、怎么在thinkphp添加数据时获取自动增长的id等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存