PHP语言学习之Thinkphp3.2新手篇之系统运行流程1
小标 2019-04-30 来源 : 阅读 999 评论 0

摘要:本文主要向大家介绍了PHP语言学习之Thinkphp3.2新手篇之系统运行流程1,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言学习之Thinkphp3.2新手篇之系统运行流程1,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

PHP语言学习之Thinkphp3.2新手篇之系统运行流程1

    如果公司使用的tp框架,那么作为新人在首先会被要求了解tp的系统运行流程,本文章意在帮助新童鞋快速了解tp系统流程。流程说明按照tp手册给出的进行(序号也相同,方便大家查看):


1.用户URL请求,2.调用应用入口文件(这里以index.php为例)


    大部分网站是利用url重写隐藏了index.php的,这里的方法请查看tp手册。首先执行index.php,


  
 
 ((,‘5.3.0‘,‘<‘))  (‘require PHP > 5.3.0 !‘ 
 
 (‘APP_DEBUG‘, 
 
 (‘APP_PATH‘,‘./Application/‘ 
 
  ‘./ThinkPHP/ThinkPHP.php‘;


    首先判断php版本是否为5.3.0以上,然后开启调试模式(后面的流程会说明),在定义路径时tp默认的是相对路径,但是使用绝对路径会加快运行速度。tp手册上使用的方法是:


realpath()方法获取绝对路径,这里推荐一个方法getcwd();最后进入核心包中的Thinkphp.php;注意:整个网站流程的执行地址都是在网站根目录的index.php上,不要因为流程进入了其他控制器和方法就认为执行地址也随之变化了,这是新手学习流程的一个误区。


3.载入框架入口文件(Thinkphp.php) 4.记录初始运行时间和内存开销  5.系统常量判断及定义


    Thinkphp.php进入之后会定义很多常量如果常量已经在index.php中定义了,则不能重新定义。值得注意的是下面的代码:


 (!(‘__ROOT__‘           =   ((_PHP_FILE_),‘/‘         (‘__ROOT__‘,  ((==‘/‘ || ==‘\\‘)?‘‘:     }


    这里拿出来是因为当我们使用网站根目录绝对地址时,若我们是本地文件,故根目录形式为‘/xxx‘,但是在项目上线之后的地址为‘/‘,那么问题就出现了,‘/xxx‘后面接地址是要先写一个‘/‘的,而‘/‘后面如果再写一个‘/‘就重复了,为了避免上线和本地之间的路径冲突,这里做了替换,当$_root为‘/‘时,直接替换为空,这样就可以和本地一样直接接‘/‘了。


 
  CORE_PATH.‘Think‘. 
 Think\Think::start();


    接下来执行TP3.2\ThinkPHP\Library\Think下的Think.class.php中的start方法。


6.载入框架引导类(Think\Think)并执行Think::start方法进行应用初始化,----(7-23)同


    首先,注册AUTOLOAD方法,设定错误和异常处理,初始化文件存储方式(这部分暂时不用详细了解)。然后就是重点,预编译文件:


 
         = RUNTIME_PATH.APP_MODE.‘~runtime.php‘       (!APP_DEBUG && Storage::has(           
           Storage::load(       }           
           (Storage::has(               Storage::(           
            =  ‘‘            
              =    (CONF_PATH.‘core.php‘)?CONF_PATH.‘core.php‘:MODE_PATH.APP_MODE.‘.php‘            
            ([‘core‘]                 ((                 
                                   
                 (!APP_DEBUG)    .= compile(   
                
            ([‘config‘]  =>               ()?C(load_config()):C(,load_config(  
            
           (‘common‘ != APP_MODE && (CONF_PATH.‘config_‘.APP_MODE.               C(load_config(CONF_PATH.‘config_‘.APP_MODE. 
             
           (([‘alias‘               self::addMap(([‘alias‘])?[‘alias‘]: [‘alias‘  
            
           ((CONF_PATH.‘alias.php‘               self::addMap( CONF_PATH.‘alias.php‘

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程