0x01 快速入门

  1. 首先简单的对目录有个大概的映像,来看一下目录的截图

application -> 应用目录
extend -> 扩展目录
public -> 网站对外目录
runtime -> 运行时目录
thinkphp -> thinkphp框架核心目录
vendor -> 第三方类库
bulid.php -> 自动生成文件
composer.json -> 惯例配置文件

thinkphp5默认自带入口文件,位于public/lndex.php(实际部署时public目录为你的应用对外访问目录
入口文件内容如下

  1. // 定义应用目录
  2. define('APP_PATH', __DIR__ . '/../application/');
  3. // 加载框架引导文件
  4. require __DIR__ . '/../thinkphp/start.php';

这时可以在浏览器中访问入口文件http://localhost/public
image.pngimage.png
5.0版本采用模块化的设计架构,默认的应用目录下只有index模块目录,如果要添加新的模块可以使用控制台命令生成。
image.png
这时application目录下多了一个demo目录,里面的内容分别是mvc的文件夹,common和config
image.png

0x02 控制器

image.png
找到index模块的index控制器,把控制器的index方法改为helloworld
image.png
再次访问文件
image.png
根据类的命名空间可以快速定位文件位置,app命名空间通常代表了文件的起始目录为application。而think命名空间起始目录为thinkphp/library/think,后面的命名空间则表示起始目录的子目录。
继承一个公共的控制器类
image.png
可以为操作方法定义参数,如:
image.png
然后传递参数name
image.png
控制器类可以包括多个操作方法,但如果你的操作方法是protected或者是private类型的话,是无法通过url访问到操作的,也就是说只有public类型的操作才是可以通过url访问的。
验证:

  1. <?php
  2. namespace app\index\controller;
  3. class Index
  4. {
  5. public function index(){
  6. return 'Hello wolrd';
  7. }
  8. public function test(){
  9. return '测试方法';
  10. }
  11. protected function hello1(){
  12. return 'protected方法';
  13. }
  14. private function hello2(){
  15. return 'private方法';
  16. }
  17. }

访问4个url:
http://127.0.0.1/public/index.php/index/index/test 正常
http://127.0.0.1/public/index.php/index/index/hello1 异常,提示方法不存在
http://127.0.0.1/public/index.php/index/index/hello2 异常,提示方法不存在
详细的错误详细可以在前台看到,因为开启了debug模式,如果关闭debug模式则只会提示页面错误
debug模式下:
image.png
关闭掉debug模式
image.png
开关debug模式要在application目录下的config.php修改 键名为app_debug

0x03 视图

现在我们再给控制器添加视图文件功能,我们在application/index目录下创建一个view目录,然后添加模板文件。
view/index/hello.html我们添加模板如下:
image.png

修改index.php
image.png
image.png

0x04 读取数据

首先修改application/database.php
image.png
修改控制器方法,添加读取数据的代码:
image.png
view代码:
image.png
效果:
image.png

0x05 总结

学习了thinkphp的基本使用,和mvc模式下的开发
主要是通过url访问public的方法,和数据库操作以及显示在前台的功能