原视频链接 https://www.bilibili.com/video/BV17J411K7Zd?p=4&share_source=copy_web
下载不做赘述,按官方手册即可
URL解析模式
URL访问
未开启url伪静态
架构总览
使用前记得去database.php文件里配置数据库,不然卡一天都没人告诉你错在哪,别问我怎么知道
刚下载完成时有访问示例:
http://127.0.0.1/public/index.php/index/index/hello //http://127.0.0.1/public http://域名 //index.php 入口文件 //index/index 第一个是模块,第二个是控制器 //hello 操作,在实际的php文件类中
注意:
控制单元文件名与其中类名必须一致,不知道为什么
自定义模块访问
- 自定义模块
1、在app文件夹下建立index模块的同级目录(新模块),随意命名
2、在模块中建立文件夹,名称为默认的控制器名称controller(控制器)
3、在controller目录下创建控制器文件,这里可随意命名,我命名为Atmujie
4、在Atmujie.php中创建类,类名必须也为Atmujie(类名要和文件名一致),(tp使用大驼峰命名法/帕斯卡命名规范)并定义命名空间
app\mujie\controller
<?php namespace app\mujie\controller; //具体查看php手册命名空间部分
访问
http://127.0.0.1/public/index.php/mujie/Atmujie/cnm 【可选部分:/who/thinkphp】
前面按url解析规则定位到我们建立的模块,后面可选为传参
未开启伪静态时,为了方便理解,我们这样做:
http://127.0.0.1/public/index.php?s=mujie/atmujie/cnm?who=thinkphp
这样我会更容易理解,按自己习惯即可
别问为什么时cnm,换你卡一天也这样
开启url伪静态
开启url伪静态可忽略index.php,让访问更简洁
方法百度,这里不做讲解
但,可以开,没必要
参考地址
https://blog.csdn.net/qq_39944559/article/details/101389393 错误原因原文
https://www.kancloud.cn/manual/thinkphp5_1/353949 tp5.1 官方手册
https://blog.csdn.net/weixin_28736145/article/details/115138177 驼峰命名法
模块设计
一个模块既是一个完整的目录
模块中包含控制器,模板,试图三个大文件,及配置文件等其他文件
模块目录均使用小写下划线命名
模块名称需要避免使用php保留字
模块库类
命名空间
一个模块的命名空间均为app/模块名/..
即命名空间为文件所在的文件路径,期中第一个文件简写为app
模块和控制器隐藏
由于默认是采用多模块的支持,所以多个模块的情况下必须在URL地址中标识当前模块,如果只有一个模块的话,可以在入口文件中进行模块绑定:
<?php // [ 应用入口文件 ] namespace think; // 加载基础文件 require __DIR__ . '/../thinkphp/base.php'; // 执行应用并响应(绑定当前访问到index模块) Container::get('app')->bind('index')->run()->send();
单一模块
如果你的应用比较简单,只有唯一一个模块,那么可以进一步简化成使用单一模块结构,方法如下:
空模块
即设置一个错误页面,使访问出错时自动跳转
config目录的app.php可以修改模块设置,其中空模块可以指定访问不存在的页面的返回内容
目录结构
- 所有模块命名空间均以app为根命名空间,网页模块均放置于application(文件夹下)
- 根命名空间可配置环境变量改变
模块绑定
thinkphp位于public目录下的index.php可以改变默认的路径
使用get(‘app’)->bind(‘模块名’)->run()->send();
可以达成绑定的效果