ThinkPHP框架基础 【MVC模式】 【控制器访问及路由解析】 【开发、生产模式】 【控制器和对应方法创建】 【视图模板文件创建】 【url地址大小写设置】 【系统常量信息】

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

什么框架:

         一堆代码的集合,里边有变量、函数、类、常量,里边也有许多设计模式MVC、AR数据库、单例等等。

         框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次。

其他相关框架

  • 1. zendframework   zend php语言公司发布的官方框架,重量级(功能多)
  • 2. yii   美国华人开发的框架,xue qiang, qiang,  重量级框架,纯OOP框架
  • 3. CI  CodeIgniter轻量级框架,开发速度快,部署灵活
  • cakephp外国框架,重量级,速度慢
  • symfony外国重量级框架
  • ThinkPHP轻量级框架,国人框架,入门容易

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

【框架项目部署】

步骤:

创建入口文件:

  1. 在ThinkPHP目录下创建一个入口文件index.php

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

  1. 访问入口文件的同时系统会自动把对应的应用目录文件Shop创建出来

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

  1. 打开Home文件夹

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

M:Model 数据模型层,负责数据操作

V:View 视图层,负责显示视图

C:Controller 控制器,实现业务逻辑

【控制器访问及路由解析】

通过url地址get参数找到指定的控制器,并进行对应方法调用请求

http://网址/index.php?m=模块名称&c=控制器&a=方法

以上url地址信息代码不够优雅、不安全。

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】
tp框架url地址可以由以下四种

  1. http://网址/index.php?m=XX&c=XX&a=XX   基本get模式
  2. http://网址/index.php/模块/控制器/操作方法路径模式pathinfo(默认)
  3. http://网址/模块/控制器/操作方法           rewrite重写模式
  4. http://网址/index.php?s=/模块/控制器/方法兼容模式

action:操作,放在控制器里面的方法

之前访问的方式:访问的具体页面

MVC访问的方式:访问控制器下的操作(方法),不是一个具体页面

具体url地址模式设置(配置文件ThinkPHP/Conf/convertion.php)

URL_MODEL  =  0/1/2/3  分别代表四种url地址模式

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

config.php是我们当前自己项目的配置文件,我们可以通过修改该文件达到配置变量的目录

这个文件在系统运行过程中会覆盖convertion.php的配置变量

include “convertion.php”;

include “config.php”;  后引入的文件要把先引入的文件配置变量给覆盖掉

MVC:约定胜于配置

我们系统有兼容4中url地址模式的使用

系统有的时候会自动创建url地址,它会根据当前模式进行url地址创建使用

快捷函数U();  创建url地址

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

通过url地址模式我们学习到了以下内容:

  1. 我们学习到了配置变量(核心配置变量conversion.php、当前应用配置变量config.php)
  2. 快捷函数U(“模块/控制器/方法”)  根据参数和url模式创建对应的url地址
  3. 把框架的模式调整为开发调试模式

【开发、生产模式】

开发调试模式:系统需要加载大概24个文件  index.php  define(“APP_DEBUG”,true);

生产模式:系统只需要加载很少的大概7个文件在入口文件

index.php中定义: define(“APP_DEBUG”,false);

节省了许多文件的开发、关闭的系统开销,节省资源

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

【控制器和对应方法创建】

控制器是MVC模式中的核心,tp默认有一个Index控制器:

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

Index控制器里面有一个操作方法:Index

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

我们在访问http://localhost:8080/Thinkphp/index.php入口文件的时候,会默认访问Index控制器下面的Index方法

如果要自己创建一个控制器Login:

  1. 在ShopHomeController文件夹下新建一个控制器文件LoginController.class.php

注意:文件命名规则,按照驼峰法命名

IndexController.class.php首字母大写

     2.打开该文件,在里面造控制器Login类

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

     3.如果要自定义操作方法,在控制器Login类里面加一个函数Login():

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

这样我们就完成了控制器和操作方法的建立,如果要访问我们刚才的Login控制器下的Login方法:

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

     4.控制器中如果要调用视图层中的模板:

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

这样再次访问,会发现报错:

 ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

原因:模板文件没有创建,这时候我们就要去创建模板文件

【视图模板文件创建】

视图模板文件存放发位置在:

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

里面没有模板文件

如果我们想要访问Login控制器中的Login方法,首先我们要创建一个Login控制器对应的模板文件夹,该文件夹就对应着Login控制器:

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

然后在Login文件夹下再创建一个login.html的模板文件来对应Login控制器下的Login方法:

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

在login.html里面写入要显示的代码:

<body>
<h1>hello login</h1>
</body>

然后再次请求:

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

【url地址大小写设置】

默认是不敏感的:

在config.php里边对url大小写敏感进行设置

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

然并卵!!!

【系统常量信息】

获取系统常量信息:

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】

如果加参数true,会分组显示:

var_dump(get_define_constants(true));

ThinkPHP框架基础
【MVC模式】
【控制器访问及路由解析】
【开发、生产模式】
【控制器和对应方法创建】
【视图模板文件创建】
【url地址大小写设置】
【系统常量信息】