你是要系统流程吧?
这个手册里面有的。我给你粘贴一份吧
用户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);
ThinkPHPThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)