thinkphp 一个文件怎么调用另一个文件中的define()_ThinkPHP 简易开发思路 && MVC和URL跳转...

点击上方“蓝字”关注公众号获取最新信息!

本文作者:Twe1ve(贝塔安全实验室-核心成员)


这段时间在看PHP代码审计相关知识,国内有不少CMS都是基于ThinkPHP开发的,因此了解ThinkPHP的开发思路更容易理解这类CMS的代码

一般分为前后台等模块进行开发:

index.php前台入口文件定义引入ThinkPHP_PATH、项目路径、项目名称

5a5aafefa8240dd9e24cd8f565aafd0a.png

admin.php前台入口文件定义引入ThinkPHP_PATH、后台模块路径、后台名称

在APP路径下生成MANAGE目录

1ca15f59b571ef13a68a9b9971ebe1b3.png

MVC 框架

    M-modole(模型):编写model类对数据进行操作

        对应目录:项目目录/应用目录/Lib/Model

   V-view(视图):编写html、页面呈现

        对应目录:项目目录/应用目录/Tpl

    C-controller(控制器):编写类文件(如UserAction.class.php)

        对应目录:项目目录/应用目录/Lib/Action

URL 4种访问模式

    模式设置:URL_MODEL=0/1/2/3 (在ThinkPHP/conf/convention.php文件中)

    0、普通模式

        http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2

    1、Pathinfo(路由模式)********

        http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2

    2、Rewrite(重写模式)

         http://域名/项目名/模块名/方法名/键1/值1/键2/值2

    3、兼容模式 ******

         http://域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值2

URL访问Controller

http://127.0.0.1/xyhcms/index.php

默认使用的模块index(为方便理解,这里我把模块理解成Controller...和其他地方讲解的有出入)

默认使用的方法是index

即相当于访问http://127.0.0.1/xyhcms/index.php/index/index

0d7532b547cdace1294c8fed80ecc630.png

不同栏目的跳转和页面呈现

通过上面的一些例子,应该可以看到一些端倪:

不同 模块( 前后 台)内部通过Controller控制器实现不同栏目,再通过Controller中的方法实现不同页面的呈现

可通过一个简答的小实验来验证:

修改xyhcms\App\Home\Controller\IndexController.class.php

6e6aa675573839257df5202ce76d8f65.png

常用变量

  1.     __PUBLIC__: 公共(一般为public)文件目录

  2.     __Model__: 获取当前模块名

  3.     __ROOT__:替换为当前网站地址(不包含域名)

  4.     __APP__:替换为当前应用URL地址(不包含域名)

  5.     __MODULE__:当前模块URL地址(不包含域名)

  6.     __Controller__:当前控制器URL地址(不包含域名)

  7.     __Action__:当前操作URL地址(不包含域名)

  8.     __SELF__:当前页面URL

参考链接:

https://blog.csdn.net/weixin_33924312/article/details/89628867

http://document.thinkphp.cn/manual_3_2.html#read_data  ThinkPHP3.2完全开发手册


更多的学习资源,

更好的学习氛围,

欢迎加入我们的知识星球!

53296f5d2bce66829e89819e2a5e4e68.png


b9b99a39a737857923038376bd08e9c1.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值