前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ThinkPHP 简易开发思路 && MVC和URL跳转

ThinkPHP 简易开发思路 && MVC和URL跳转

作者头像
安全小王子
发布2020-07-31 17:21:21
1.2K0
发布2020-07-31 17:21:21
举报
文章被收录于专栏:betasecbetasec

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

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

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

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

代码语言:javascript
复制
 define('APP_PATH', "./App/"); //项目路径
 define('THINK_PATH', "./Include/");//
 require THINK_PATH . 'ThinkPHP.php'; //加载ThinkPHP框架

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

代码语言:javascript
复制
 define('BIND_MODULE', 'Manage'); //
 define('THINK_PATH', "./Include/");
 require THINK_PATH . 'ThinkPHP.php'; //加载ThinkPHP框架

在APP路径下生成MANAGE目录

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

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

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

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

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

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

常用变量

  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完全开发手册

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 betasec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
代码审计
代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档