“豪情卷起万重浪,吼吼哈哈~”一学thinkPHP才知道这是个国内研究的php web开发框架,瞬间自豪感如电流一般传遍全身

这就不多不说说

一.控制器

所谓MVC编程,无外乎函数(sometimes类结构),模板,输出处理结果,接收处理请求,模型----说白了就是利用web框架预定义的类,去创建数据库表结构

那么thinkPHP的项目结构如下:

其中public文件夹下的index.php我们不妨理解为网站程序的主入口,他对应的启动了thinkphp内置的一段网站欢迎程序;但public文件夹下的index.php并不用来构建功能页面(或者是我们所说的html代码),他只负责传递请求(不妨看作是一个分发程序),真正接受请求的是index文件夹下的controller文件夹下的Index.php!!!再根据请求的类型来调用Index.php(当然是controller文件夹下的)中的具体功能函数

namespace app\index\controller;
use think\Controller;
use think\Request; /**
* @property request
*/
class Index extends Controller
{
public function index()
{
return '<style type="text/css">*{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor:
    pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei";
    color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;">
    <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一剑 - 为API开发设计的高性能框架</span></p><span style="font-size:22px;">
    [ V5.0 版本由 <a href="http://www.qiniu.com" target="qiniu">七牛云</a> 独家赞助发布 ]</span></div><script type="text/javascript"
    src="https://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="ad_bd568ce7058a1091"></think>';
} public function sniffsocks()
{
print_r($this->request->param());
exit;
}
public function xinlihua($say)
{
echo $say;
} public function iwant()
{
echo "晚上想跟小松鼠学学散打";
} }
#配置: /etc/hosts文件
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 www.olddream.com
在地址栏中输入:http://www.olddream.com/index.php/index/Index/iwant
返回结果:

绑定参数的url路径访问方法

#以thinkphp5..23为例创建新模块

在项目目录下运行 运行命令行命令   php think build --module tianheiwadi

//url中省略index.php的访问方式
在httpd.conf中作出如下配置 1.加载rewrite模块 LoadModule rewrite_module modules/mod_rewrite.so 2.在网站virtualhost中添加<Directory></Directory>并设定AllowOverride参数值为All
原函数和访问效果
//一种继续简化url的方式,我们谓之路由
找到项目application文件夹下的config.php,找到'url_route_must'设置为true
//编写视图函数
//找到application下的route.php
'wenwadi' => 'tianheiwadi/Obscene/wenheisi'这段是朕添加的
访问结果:

//带参数的路由,依然在route.php中设定
'tianwadi/:name' => 'tianheiwadi/Obscene/checkinfo'
//函数如下
public function checkinfo($name)
{
switch ($name)
{
case $name=="cpc":
echo "大家好,我是陈培昌,今年21,快来找我学习站立式格斗吧";
break;
case $name=="xxd":
echo "诶~姑娘和小伙子们,mma训练结束后请我吃大肉";
break;
default:
echo "欢迎来到帅厉猴儿的搏击私房菜";
  }
}
效果:

可以看到。在启用了路由简化参数后。直接就是域名加上路由别名和参数访问

thinkPHP5.0.22初体验---路由,url访问的更多相关文章

  1. thinkPHP5.0.22初体验---request相关用法

    如果浏览器要返回美观排列的json数据,可以安装火狐浏览器的插件 返回XML的数据格式 渲染模板的用法 return $this->fetch('index/index2')效果 扒掉stirp ...

  2. 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验

    在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...

  3. thinkphp5.0.22远程代码执行漏洞分析及复现

    虽然网上已经有几篇公开的漏洞分析文章,但都是针对5.1版本的,而且看起来都比较抽象:我没有深入分析5.1版本,但看了下网上分析5.1版本漏洞的文章,发现虽然POC都是一样的,但它们的漏洞触发原因是不同 ...

  4. Django3.0 异步通信初体验

    此前博主曾经写过一篇博文,介绍了Django3.0的新特性,其中最主要的就是加入对ASGI的支持,实现全双工的异步通信. 2019年12月2日,Django终于正式发布了3.0版本.怀着无比的期待,我 ...

  5. Django3.0 异步通信初体验(小结)

    2019年12月2日,Django终于正式发布了3.0版本.怀着无比的期待,我们来尝试一下吧! (附ASGI官方文档地址:https://asgi.readthedocs.io/en/latest/e ...

  6. PHP Slim 框架初体验之无法访问控制器

    话不多说,先把报错贴出来: 刚开始用slim框架,在设置完自动加载文件和路由文件之后,我写了一个控制器: <?php use \Psr\Http\Message\ServerRequestInt ...

  7. Spark2.1.0——Spark初体验

    学习一个工具的最好途径,就是使用它.这就好比<极品飞车>玩得好的同学,未必真的会开车,要学习车的驾驶技能,就必须用手触摸方向盘.用脚感受刹车与油门的力道.在IT领域,在深入了解一个系统的原 ...

  8. beego 初体验 - 路由

    beego 的路由系统写的很精简 直接将 url 和要映射的 controller 类关联起来就OK: 然后再放一张 login 的 controller 实现,刚好展示下同一个 url 映射到不同方 ...

  9. selenium 3.0 beta2 初体验

    经过漫长的等待,终于迎来了selenium 3.0 从selenium 1.0 至今,差不多有十多年的历史.这个月终于迎来了selenium3.0 那么selenium3.0 为我们带来了什么? 看一 ...

随机推荐

  1. Redis高级主题

    Redis高级主题   持久化 Redis 支持持久化, 其持久化数据有两种方式. 两种可以同时使用. 如果同时使用, Reids 在重启时将使用 AOF 方式来还原数据. RDB 按照一定策略定时同 ...

  2. 登录进入Mysql数据库的几种方式

    前提:连接进入mysql数据库 本机安装的myslq基础信息: host= "localhost", # 数据库主机地址:127.0.0.1 port=3306, # 端口号 us ...

  3. [转] DLL加载方式

    静态加载: 如果你有a.dll和a.lib,两个文件都有的话可以用静态加载的方式: message函数的声明你应该知道吧,把它的声明和下面的语句写到一个头文件中 #pragma comment(lib ...

  4. c++ 读入优化通用模板

    struct ioss { #define endl '\n' ; char obuf[LEN], *oh = obuf; std::streambuf *fb; ioss() { ios::sync ...

  5. 浅谈Linux kill命令

    傻瓜常规篇: 首先,用ps查看进程,方法如下: $ ps -ef ……smx       1822     1  0 11:38 ?        00:00:49 gnome-terminalsmx ...

  6. 设计模式:备忘录模式(Memento)

    个人比较喜欢玩单机游戏,什么仙剑.古剑.鬼泣.使命召唤.三国无双等等一系列的游戏我都玩过(现在期待凡人修仙传),对于这些游戏除了剧情好.场面大.爽快之外,还可以随时存档,等到下次想玩了又可以从刚开始的 ...

  7. FFmpeg4.0笔记:VS2019编译FFmpeg4.0源码

    0.下载TDM.msys和yasm 1.安装TDM-GCC-64 2.安装msys到TDM-GCC的安装目录中 3.将call "C:\Program Files (x86)\Microso ...

  8. jmeter 获取图形验证码接口测试

    今天开发提测了一个图形验证码的接口,以前没有测过这个,上来有点懵..... 记录一下. 使用jmeter配置好接口和参数,运行后查看结果树,显示都是乱码 解决方法: 添加一个后置处理器--beansh ...

  9. ps -ef

    status, msg = commands.getstatusoutput("ps -ef | grep start.sh | grep -Fv grep | awk '{print $1 ...

  10. node-images Windows 64-bit with Unsupported runtime 错误解决办法 及 node 历史版本下载

    在做项目的时候下载的最新的10.16[2019.6.12]版本,出现了模块不兼容的问题[node-images]. 在git上发现了相同问题 https://github.com/zhangyuanw ...