thinkphp5.1框架学习笔记心得


# thinkphp5.1框架学习笔记心得

原视频链接 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文件类中

注意:

控制单元文件名与其中类名必须一致,不知道为什么

自定义模块访问
  • 自定义模块

image-20210430170609654

1、在app文件夹下建立index模块的同级目录(新模块),随意命名

2、在模块中建立文件夹,名称为默认的控制器名称controller(控制器)

3、在controller目录下创建控制器文件,这里可随意命名,我命名为Atmujie

4、在Atmujie.php中创建类,类名必须也为Atmujie(类名要和文件名一致),(tp使用大驼峰命名法/帕斯卡命名规范)并定义命名空间

app\mujie\controller

<?php
    namespace app\mujie\controller;
//具体查看php手册命名空间部分

image-20210430171335875

  • 访问

    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
    

    这样我会更容易理解,按自己习惯即可

    image-20210430172050817

    别问为什么时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();
    
  • 单一模块

    如果你的应用比较简单,只有唯一一个模块,那么可以进一步简化成使用单一模块结构,方法如下:

    image-20210505202549375

    image-20210505202700156

空模块

image-20210505202839080

即设置一个错误页面,使访问出错时自动跳转

config目录的app.php可以修改模块设置,其中空模块可以指定访问不存在的页面的返回内容

目录结构

image-20210430173005963

  • 所有模块命名空间均以app为根命名空间,网页模块均放置于application(文件夹下)
  • 根命名空间可配置环境变量改变

模块绑定

thinkphp位于public目录下的index.php可以改变默认的路径

使用get(‘app’)->bind(‘模块名’)->run()->send();

可以达成绑定的效果

image-20210430201636195

image-20210430201702527

image-20210430201646233

根命名空间(类库包)

image-20210505203503005

image-20210505203520667

应用类库包

image-20210505203925362

image-20210505204118156

控制器定义

image-20210430203506341

image-20210430220102560

控制器定义

image-20210505211220543

基本查询

image-20210502110705844


文章作者: Atmujie
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Atmujie !
评论
  目录