zoukankan      html  css  js  c++  java
  • Thinkphp学习之终结

    ThinkPHP5.0 学习笔记

    第一章 TP5.0 基础

    01 tp5.0 安装

    1.TP5.0的安装

    1.1源代码包安装

    1.1.1thinkphp官网(www.thinkphp.cn) 下载

    1.1.2解压到网站根目录(www)

    1.1.3地址栏访问:http://localhost/tp5/public

    1.2 composer安装

    1.3 git安装

    02 配置虚拟主机

    1.配置本地路由表(C:WindowsSystem32driversetchosts)

    添加 127.0.0.1 www.tp5.com

    2.apache 开启虚拟主机(D:PHPHOMEApache24confhttpd.conf)

    第505行 去掉# Include conf/extra/httpd-vhosts.conf

    3.修改虚拟主机的配置(D:PHPHOMEApache24confextrahttpd-vhosts.conf)

    1 <VirtualHost *:80>
    2 DocumentRoot "D:PHPHOMEwww	p5public"
    3 ServerName www.tp5.com
    4 <Directory "D:PHPHOMEwww	p5public">
    5 Options Indexes FollowSymLinks
    6 AllowOverride All
    7 Require all granted
    8 </Directory>
    9 </VirtualHost>

    4.重启 apache

    访问:www.tp5.com

    03 tp5 目录介绍

    |--application # 应用目录,是整个网站的核心
    
    |--|--index # 前台目录
    
    |--|--|--controller # 控制器
    
    |--|--|--model # 数据模型
    
    |--|--|--view # 页面
    
    |--|--admin # 后台目录
    
    |--extend # 扩展类库目录
    
    |--public # 静态资源和入口文件
    
    |--|--static # 存放静态资源 css,js,img
    
    |--|--index.php # 入口文件
    
    |--runtime # 网站运行临时文件
    
    |--tests # 测试目录
    
    |--thinkphp # 框架的核心文件
    
    |--|--lang # 语言包
    
    |--|--library # TP核心文件
    
    |--|--tpl # 模板页面
    
    |--vendor # 第三方扩展目录

    04 url 地址了解

    http:// www.tp5.com/ index.php/ Index/ Index/ index

             域名         入口文件    前台   控制器   方法

    05 了解网站开发模式

    1.开启调试模式(D:PHPHOMEwww p5applicationconfig.php)

    // 应用调试模式
    'app_debug' => true,

    2.连接数据库(D:PHPHOMEwww p5applicationdatabase.php)

    // 数据库类型
    'type' => 'mysql',
    // 服务器地址
    'hostname' => '127.0.0.1',
    // 数据库名
    'database' => '',
    // 用户名
    'username' => 'root',
    // 密码
    'password' => '',

    3.控制器中书写代码(D:PHPHOMEwww p5applicationindexcontrollerIndex.php)

    <?php
    namespace appindexcontroller;
    
    use appindexcontrollerUser;
    
    use appadmincontrollerIndex as AdminIndex;
    
    // 引入系统数据类
    use thinkDb;
    
    // 引入 Config 类
    use 	hinkConfig;
    
    // 引入系统控制器类
    use thinkController;
    
    // 引入Env类
    use 	hinkEnv;
    class Index extends Controller
    {
        public function index()
        {
            /*
            页面返回 Hello world
            return "Hello world";
            */
            // 从数据库中读取数据
            $data=Db::table('login')->select();
            // var_dump($data);
    
            // 分配数据给页面
            $this->assign('data',$data);
    
            // 加载页面
            return view();
        }
    }

    4.页面中(D:PHPHOMEwww p5applicationindexviewindexindex.html)

    <html>
    <head>
    <title>Document</title>
    </head>
    <body>
    <table border="1" width="800px" align="center">
    <tr>
    <th>ID</th>
    <th>username</th>
    <th>passwd</th>
    </tr>
    {volist name='data' id="value"}
    <tr>
    <td>{$value.id}</td>
    <td>{$value.username}</td>
    <td>{$value.passwd}</td>
    </tr>
    {/volist}
    </body>
    </html

    05 MVC模式

    1.M model 模型

    # D:PHPHOMEwww p5applicationindexmodel

    作用:执行数据库相关处理

    2.V view 视图

    # D:PHPHOMEwww p5applicationindexview

    作用:其实就是页面

    3.C controller 控制器

    # D:PHPHOMEwww p5applicationindexcontroller

    作用:主要负责整个逻辑运转

    扩展:

    MC 模型和控制器

    # 主要作用:用于接口开发

    VC 视图和控制器

    # 主要作用:单页面的网站

    第二章 TP5.0 架构

    01 TP 架构的概述

    ThinkPHP 使用了MVC 模式,它强制性的使应用程序的输入,处理和输出分开。使用 MVC应用程序被分成三个核心部件:模型(M),视图(V),控制器(C),它们各自处理自己的 任务

    02 URL 解析

    http:// www.tp5.com /index.php /Index /Index /index

     协议          域名         入口文件    模块 控制器 方法

    03 入口文件

    1.文件地址

    # D:PHPHOMEwww p5publicindex.php

    2.作用

    负责整个TP的请求

    04 应用

    1.应用地址

    # D:PHPHOMEwww p5application

    2.作用

    一个应用代表一个网站

    05 模块(以前台为例)

    1.模块地址

    # D:PHPHOMEwww p5applicationindex

    2.作用

    网站所有的前台相关都与其有关

    3.新建后台模块

    a.在应用目录下(D:PHPHOMEwww p5application)新建admin目录

    b.在admin目录下新建 model,view,controller

    c.在Controller目录中新建Index控制器(Index.php)

    d.在Index.php中书写代码

    <?php
    // 声明命名空间
    namespace appindexcontroller;
    
    // 声明控制器
    class User{
        // index 方法
        public function index(){
            return "我是后台控制器";
        }
    }
    ?>

    e.通过地址栏访问

    http://www.tp5.com/index.php/Admin/Index/index

    06 控制器

    1.控制器目录

    # D:PHPHOMEwww p5applicationindexcontroller

    2.作用 书写业务逻辑

    3.新建控制器(以前台为例)

    a.在前台控制器目录(D:PHPHOMEwww p5applicationindexcontroller)下新建 User.php

    b.在控制器中书写代码

    <?php
    // 声明命名空间
    namespace appindexcontroller;
    
    // 声明控制器
    class User{
        // index 方法
        public function index(){
            return "我是前台 User 控制器中的 index 方法";
        }
    }
    ?>

    c.地址栏访问

    http://www.tp5.com/index.php/Index/User/index

    d.注意

    1.控制器的文件名必须首字母大写

    2.控制中必须声明命名空间

    3.控制器中的类名必须和文件名相同

    07 操作(方法)

    1.操作地址 操作一般都在控制器的文件中

    2.新建一个操作(以前台index控制器为例)

    2.1 打开前台index控制器 (D:PHPHOMEwww p5applicationindexcontrollerIndex.php)

    2.2 在控制器新建test方法

    public function test()
    {
        return "我是用户自己创建的方法";
    }

    2.3 地址栏访问

    # http://www.tp5.com/index.php/Index/Index/test

    08 模型(数据模型)

    1.数据模型地址

    # D:PHPHOMEwww p5applicationindexmodel

    2.作用 负责数据库相关的处理

    09 视图(页面)

    1.视图地址

    # D:PHPHOMEwww p5applicationindexview

    2.作用 网站页面

    10 命名空间

    1.与目录有关(以前台index控制器命名空间为例)

    namespace appindexcontroller;
    D:PHPHOMEwww	p5applicationindexcontroller

    11 跨控制器调用

    1.使用命名空间

    $model=new appindexcontrollerUser();
    echo $model­>index();

    2.使用 user

    use appadmincontrollerIndex as AdminIndex;
    $model=new AdminIndex();
    echo $model->index();

    3.使用系统方法

    # 系统方法一般在(D:PHPHOMEwww p5 hinkphphelper.php)

    $model=controller('admin/Index'); // 注意此时为反斜杠,如果书写成 \,将会出错
    echo $model­>index();

    11 调用方法

    1.调用当前控制器的test方法

    # 使用面向对象的技术

    // 调用当前控制器的 test 方法
    echo $this­>test();
    echo "<hr>";
    echo self::test();
    echo "<hr>";
    echo Index::test();

    2.调用User控制器下的index方法

    # 命名空间

    $model=new appindexcontrollerUser;
    echo $model­>index();
    # 使用系统方法
    echo action('User/index');

    3.调用后台模块下Index控制器index方法

    # 命名空间
    $model=new appadmincontrollerIndex();
    echo $model­>index();
    # 使用系统方法
    echo action('Admin/Index/index');

    11 主要分析TP执行流程

    1.入口文件(D:PHPHOMEwww p5publicindex.php)

    作用:

    1)定义目录常量

    2)加载框架引导目录

    2.加载框架的引导文件(D:PHPHOMEwww p5 hinkphpstart.php)

    作用:

    1)引导基础文件

    2)对应用进行运转

    3.加载框架的基础引导文件(D:PHPHOMEwww p5 hinkphpase.php)

    作用:

    1)加载系统常量

    2)引入loader类(D:PHPHOMEwww p5 hinkphplibrary hinkLoader.php)

    3)引入环境变量

    4)注册自动加载机制

    5)注册异常处理进制(D:PHPHOMEwww p5 hinkphplibrary hinkError.php)

    6)记载惯例配置(D:PHPHOMEwww p5 hinkphpconvention.php)

    4.运行应用(D:PHPHOMEwww p5 hinkphplibrary hinkApp.php) 下的 run方法

    1)第一步:加载当前控制器中 initCommon() 方法

    2)第二步:加载当前控制器中 init() 方法 加载各种配置文件,加载公共文件,加载语言包

    3)第三步:设置时区

    4)第四步:加载当前控制器 routeCheck() 方法 路由检测

    5)第五步:调用控制器中 exec() 方法 根据用户请求进行分发处理

    6)第六步:根据不同的请求类型加载对应文件 module() 方法 加载到对应的控制器和对应方法 5.响应输出 用户看到的所有界面就加载出来

    第三章 TP5.0 配置

    01 配置文件格式

    1.ThinkPHP支持多种格式的配置格式,但最终都是解析为PHP数组的方式

    return [
    // 默认模块名 'default_module' => 'index',
    // 默认控制器名 'default_controller' => 'Index',
    // 默认操作名 'default_action' => 'index',
    //更多配置参数
    //...

    02 配置的形式

    1.惯例配置

    a.惯例配置目录# D:PHPHOMEwww p5 hinkphpconvention.php

    2.应用配置

    a.应用配置目录 # D:PHPHOMEwww p5applicationconfig.php

    3.扩展配置

    a.扩展配置 其实就是对配置文件进行分目录的管理

    b.扩展配置目录 # D:PHPHOMEwww p5applicationdatabase.php

    # D:PHPHOMEwww p5applicationextra 用户可以自定义配置文件

    c.读取database扩展配置 # 读取database中的扩展项 dump(config('扩展文件名.password'))

    dump(config('database.password'));
    # 读取所有database扩展
    dump(config('database'));

    d.自定义扩展配置

    d1.在扩展目录(D:PHPHOMEwww p5applicationextra)下新建对应文件 user.php

    d2.打开文件书写相关配置

    <?php
    
    return [
        'name'=>'LQ6H',
        'dream'=>'hacker',
        'waihao'=>'xiaoqiang'
    ];
    
    ?>

    d3.读取自定义的扩展配置

    dump(config('user'));
    dump(config('user.dream'));

    4.场景配置

    a.解决问题 开发过程可能不同环境下进行开发

    b.如何使用 b1.修改应用配置(D:PHPHOMEwww p5applicationconfig.php) # 修改成 home

    // 应用模式状态
    'app_status' => 'home',

    b2.在应用目录下新建(D:PHPHOMEwww p5application) 新建对应home.php office.php b3.在 home.php 中书写相关配置

    return [
        // 数据库类型
        'type'            => 'mysql',
        // 服务器地址
        'hostname'        => '127.0.0.1',
        // 数据库名
        'database'        => 'home',
        // 用户名
        'username'        => 'root',
        // 密码
        'password'        => '123456',
        // 端口
        'hostport'        => '',
        // 连接dsn
        'dsn'             => '',
        // 数据库连接参数
        'params'          => [],
        // 数据库编码默认采用utf8
        'charset'         => 'utf8',
        // 数据库表前缀
        'prefix'          => '',
        // 数据库调试模式
        'debug'           => true,

    在office.php中书写相关配置

    return [
        // 数据库类型
        'type'            => 'mysql',
        // 服务器地址
        'hostname'        => '127.0.0.1',
        // 数据库名
        'database'        => 'office',
        // 用户名
        'username'        => 'root',
        // 密码
        'password'        => '123456',
        // 端口
        'hostport'        => '',
        // 连接dsn
        'dsn'             => '',
        // 数据库连接参数
        'params'          => [],
        // 数据库编码默认采用utf8
        'charset'         => 'utf8',
        // 数据库表前缀
        'prefix'          => '',
        // 数据库调试模式
        'debug'           => true,

    b4.读取配置信息

    // 读取场景配置
    public function getchangjiang()
    {
        dump(config('database.database'));
        dump(config('database.password'));
    }

    如果改成:

    // 应用模式状态 'app_status' => 'office',

    思考:比较输出内容,明白场景配置

    5.模块配置

    a.解决问题 每一个模块,都有自己特有的配置

    b.如何使用(以前台模块为例)

    b1.在前台模块下(D:PHPHOMEwww p5applicationindex)新建 config.php

    b2.打开配置文件书写

    <?php
    return [
        'index'=>'我是前台配置'?>

    b3.读取

    // 读取模块配置
    public function getmokuai()
    {
        dump(config('index'));
    }

    6.动态配置(D:PHPHOMEwww p5applicationindexcontrollerIndex.php)

    a.系统方法

    // 通过系统方法 ,config(参数1,参数2)
    config('name','PHP 开发');
    dump(config('name'));

    b.系统类

    // 通过系统类
    	hinkconfig::set('name','web 前端');
    dump(config('name'));

    通过 use

    // 引入 Config 类
    use 	hinkConfig;
    // 通过use
    Config::set('name','小程序开发');
    dump(config('name'));

    03 读取配置

    1.通过系统类

    a.打印配置信息

    // 通过系统类读取配置
    echo 	hinkConfig::get('name'// 如果配置项存在,直接输出,不存在返回NULL
    dump(	hinkConfig::get('abc'));

    b.打印数组配置信息

    dump(	hinkConfig::get('teacher'));
    dump(	hinkConfig::get('teacher.name'));

    2.通过系统方法

    a.打印配置信息

    // 系统函数读取配置
    echo config('name'echo "<hr>";
    echo config('age'echo "<hr>";
    echo config('ZhuiZhu');

    b.打印数组配置信息

    // 通过config方法获取数组
    dump(config('teacher'));
    // 使用 teacher['name'],输出 NULL
    dump(config('teacher.name'));

    c.读取所有配置

    dump(config());

    3.使用 use

    a.打印配置信息

    // 引入 Config 类
    use 	hinkConfig;
    echo dump(Config::get('ZhuiZhu'));

    b.打印数组配置信息

    // 引入 Config 类
    use 	hinkConfig;
    // 通过config类 获取配置
    dump(Config::get('teacher'));

    06 系统类(D:PHPHOMEwww p5 hinkphplibrary hink)

    1.config

    # 设置和获取配置文件

    07 系统方法(D:PHPHOMEwww p5 hinkphphelper.php)

    1.Controller # 实例化控制器

    2.action # 调用模块的操作方法

    3.config # 设置和获取配置

    4.dump # 浏览器友好的变量输出

    08 配置文件之间的加载顺序

    1.优先级 动态配置>模块配置>场景配置>扩展配置>应用配置>惯例配置

    2.加载顺序(D:PHPHOMEwww p5 hinkphplibrary hinkApp.php)

    惯例配置->应用配置->扩展配置->场景配置->模块配置->动态配置 3.配置文件实现原理 后面加载的数据对前面的数据覆盖

    $temp1=array(
        'name'=>'LQ6H',
        'a'=>'a'$temp2=array(
        'name'=>'xiaoqiang',
        'b'=>'b'
    );
    dump(array_merge($temp1,$temp2));

    09 环境变量配置

    1. ThinkPHP5.0 支持使用环境变量配置,切记不能使用中文

    2.设置环境变量配置

    a.打开网站根目录(D:PHPHOMEwww p5) 新建 .env 文件

    b.书写环境配置

    name=LQ6H
    age=20
    sex=nan
    
    [database]
    type=mysql
    name=root
    password=123456

    c.读取环境配置

    # 命名空间
    // 使用系统类
    dump(	hinkEnv::get('name'));
    dump(	hinkEnv::get('abc','不存在'));
    # 使用use 导入Env类
    // 引入Env类
    use 	hinkEnv;
    dump(Env::get('age'));
    #读取数组配置,不能读取整个数组
    dump(Env::get('database.name'));

    3.如何使用

    a.打开配置文件

    use 	hinkEnv;
    return [
    // 应用调试模式
    'app_debug'=>Env::get('app_deubg',false),
    // 应用状态
    'app_status'=>Env::get('app_status',''),

    第四天 TP5.0 路由 

    01 路由作用

    1.简化 URL 地址,方便大家记忆

    2.有利于搜索引擎优化

    02 入口文件

    1.前后台分离

    a.在网站 public 目录下(D:PHPHOMEwww p5public) 新建admin.php

    // 定义应用目录
    define('APP_PATH', __DIR__ . '/../application/');
    
    // 绑定后台
    define('BIND_MODULE','admin');
    
    // 加载框架引导文件
    require __DIR__ . '/../thinkphp/start.php';
    
    // 关闭 admin 模块的路由
    	hinkApp::route(false);

    2.绑定模块

    a.实现功能

    index.php 这个入口文件 只能去前台模块

    admin.php 这个入口文件 只能去后台模块

    b.如何实现 在入口文件中

    // 绑定前台
    define('BIND_MODULE','index'// 绑定后台
    define('BIND_MODULE','admin');

    c.URL 地址发生改变

    c1.入口绑定之前

    # http://www.tp5.com/admin.php/admin/index/index

                                                         模块 控制器 方法

    c2.入口绑定之后

    # http://www.tp5.com/admin.php/index/index

                                                      控制器 方法

    3.隐藏入口文件

    a.开启 apache 的重写(D:PHPHOMEApache24confhttpd.conf)

    在文件的 158 行,去掉前面的 # 注释,开启重写功能 LoadModule rewrite_module modules/mod_rewrite.so

    b.设置访问权限(D:PHPHOMEApache24confextrahttpd-vhosts.conf) 将 AllowOverride None 将 None 改为 All

    <VirtualHost *:80>
    DocumentRoot "D:PHPHOMEwww	p5public"
    ServerName www.tp5.com
    <Directory "D:PHPHOMEwww	p5public">
    AllowOverride All
    </Directory>
    </VirtualHost>

    c.入口文件在网站public 目录下(D:PHPHOMEwww p5public) 新建.htaccess 文件 在 TP5 中,已经帮我们新建并配置好文件了

    <IfModule mod_rewrite.c>
    Options +FollowSymlinks ­Multiviews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !­d
    RewriteCond %{REQUEST_FILENAME} !­f
    RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
    </IfModule>

    d.重启服务

    e.url地址变化

    e1.隐藏之前 # http://www.tp5.com/index.php/Index/test

    e2.隐藏之后 # http://www.tp5.com/Index/test

    03 TP5.0 路由学习注意

    1.支持三种方式的URL 解析规则

    2.路由只针对应用,不针对模块,因此路由的设置也是针对应用下面的所有模块

    3.如果有些模块不想使用路由,关闭后台模块 (D:PHPHOMEwww p5publicadmin.php) 注:此代码必须写在 加载框架引导文件之后

    // 关闭 admin 模块的路由
    	hinkApp::route(false

    04 路由模式

    1.普通模式

    a.定义 关闭路由,完全使用默认的 PATH_INFO 方式URL

    b.形式 # http://www.tp5.com/admin.php/Index/index

    c.如何设置(D:PHPHOMEwww p5applicationconfig.php)

    // 是否开启路由
    'url_route_on' => false,
    // 是否强制使用路由
    'url_route_must' => false,

    2.混合模式

    a.定义 开启路由,并使用路由定义+默认 PATH_INFO 方式的混合

    b.如何设置

    // 是否开启路由
    'url_route_on' => true,
    // 是否强制使用路由
    'url_route_must' => false,

    3.强制模式

    a.定义 开启路由,并设置必须定义路由才能访问

    b.如何设置

    // 是否开启路由
    'url_route_on' => true,
    // 是否强制使用路由
    'url_route_must' => true,

    05 设置路由

    1.设置路由--动态单个注册

    a.设置路由文件 # D:PHPHOMEwww p5application oute.php

    b.如何设置

    // 引入系统类
    use thinkRoute;
    // 定义路由规则
    Route::rule('/','index/index/index');
    Route::rule('test','index/index/test');

    c.路由的形式

    c1.静态地址路由

    Route::rule('test','index/index/test');

    c2. 给路由带参数 注册带参数路由

    http://www.tp5.com/course/1

    http://www.tp5.com/index/index/index/id/1

    // 带参数路由
    Route::rule('course/:id','index/index/course');
    Route::rule('time/:year/:month','index/index/shijian');

    c3.可选参数路由

    // 可选参数
    Route::rule('time/:year/[:month]','index/index/shijian');

    c4.全动态路由

    // 全动态路由
    Route::rule(':a/:b','index/index/dongtai');

    d.设置请求类型

    d1.TP 中请求类型 get,post,put,delete

    d2.设置各种请求

    // 支持 get请求
    Route::rule('type','Index/index/type','get');
    Route::get('type','Index/index/type')
    支持所有路由
    Route::rule('type','Index/index/type','*');
    Route::any('type','Index/index/type');

    2.设置路由--动态批量注册

    a.基本格式

    Route::rule([
        '路由规则1'=>'路由地址和参数',
        '路由规则2'=>['路由地址和参数','匹配参数(数组)','变量规则(数组)']
    ...
    ],'','请求类型','匹配参数(数组)','变量规则');

    b.使用

    Route::rule([
    'test'=>'index/index/test',
    'course/:id'=>'index/index/course'
    ],'','get');

    3.设置路由--配置文件批量注册

    // 使用配置文件批量注册
    return [
    'test'=>'index/index/test',
    'course/

    06 变量规则

    // 变量规则
    Route::rule('course/:id','index/index/course','get',[],['id'=>'d{1,3}']);

    07 路由参数

    08 资源路由

    1.资源路由的声明

    # Route::resource('blog','index/blog');

    2. 会自动注册7个路由规则

    后台功能 add页面,展示页面,删除页面,修改页面,修改功能,增加功能

     09 快捷路由

    1.声明

    // 给User控制器设置快捷路由 Route::controller('user','index/User');

    2.使用

    namespace appindexcontroller;
    class User {
    public function getInfo() {
    }
    public function getPhone() {
    }
    public function postInfo() {
    }
    public function putInfo() {
    }
    public function deleteInfo() {
    }
    }

    3.URL 访问

    get http://localhost/user/info

    get http://localhost/user/phone

    post http://localhost/user/info

    put http://localhost/user/info

    delete http://localhost/user/info

    10 URL生成

    1.通过系统类

    # dump(Url::build('index/index/index'));

    2.系统方法

    # dump(url('index/index/index'));

    第五章 TP5.0 控制器

    01 新建控制器(前台模块为例)

    1.在前台控制器目录下(D:PHPHOMEwww p5applicationindexcontroller) 新建控制器文件 User.php

    2.User.php文件中如何书写

    <?php
    // 声明命名空间
    namespace appindexcontroller;
    
    // 引入View类
    use 	hinkView;
    
    // 引入系统控制器类
    use thinkController;
    
    // 声明控制器
    class User extends Controller
    {
    
        public function index()
        {
            return "我是 User 控制器的 index 方法";
        }
    }

    3.地址栏访问

    # http://www.tp5.com/index.php/Index/User/index

    4.注意

    a.控制器文件名必须首字母大写,文件名采用驼峰命名

    b.控制器名必须跟文件名一一对应

    c.命名空间必须和文件名对应

    # namespace appindexcontroller;

    # D:PHPHOMEwww p5applicationindexcontroller

    d.如果控制器名字采用驼峰命名 UserInfo.php,进行url地址访问时必须使用 user_info # http://www.tp5.com/index.php/Index/User_Info/index

    02 控制器如何加载页面

    1.系统 View 类

    // 实例化系统 View 类
    //$view=new 	hinkView();
    //return $view­>fetch();
    // 引入View类
    use 	hinkView;
    // 使用use
    $view=new View();
    return $view­>fetch();

    2.系统 Controller 类,需要继承

    class User extends Controller
    // 使用系统控制器方法
    return $this->fetch();

    3.系统函数

    // 使用系统函数
    return view();

    03 数据输出

    1.在应用配置文件中可以设置数据返回格式

    // 默认输出类型
    'default_return_type' => 'html',

    04 控制器的初始化

    1.控制器初始化方法必须继承系统控制器

    public function _initialize()
    {
        echo "我是初始化方法";
    }

    2.只要调用控制器下的任意方法,都会先找初始化方法

    3.控制器初始化方法的使用

    a.可以用来提取控制器下公共的代码

    b.网站后台

    05 前置操作

    1.前置方法 把一些公共的设置提取成方法进行调用

    2.前置方法必须结合系统控制器

    // 前置方法属性
    protected $beforeActionList=[
    'one',
    // 表示这些方法不使用前置方法 two
    'two'=>['except'=>'index'],
    // 仅仅可以让index方法使用 three
    'three'=>[

    06 页面跳转

    1.页面跳转基于系统控制器,类,所以控制器必须继承系统控制器

    2.方法所在路径 # D:PHPHOMEwww p5 hinkphplibrary raitscontrollerJump.php

    3.跳转方式

    a.成功跳转,所用函数为 success

    // 登录成功之后跳转
    // $this­>>success
    // 跳转地址未设置时,默认返回上一页面
    $this­>success("登录成功","index/index");

    b.失败跳转,所用函数为 error

    // 失败之后跳转
    $this­>error("登录失败");

    4.修改成功和失败的模板页面

    a.找到默认模板页面(D:PHPHOMEwww p5applicationconfig.php)

    // 默认跳转页面对应的模板文件
    'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
    'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',

    b.文件目录

    # D:PHPHOMEwww p5 hinkphp pldispatch_jump.tpl

    c.跳转方法给模板页面的数据

    c1.$code 返回的状态码 成功为1,失败为0

    c2.$msg 页面的提示信息

    c3.$wait 等待时间

    c4.$url 制定跳转页面 默认返回上一个页面

    c5.$data 用户返回的数据

    d.修改成功和失败页面 在成功失败模板页面进行修改

    5.用户自定义页面跳转模板

    a.修改配置文件

    'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'success.tpl',
    'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'error.tpl',

    b.在系统模板目录下(D:PHPHOMEwww p5 hinkphp pl) 新建 success.php 和 error.php

    07 重定向

    1.作用 重定向(Redirect) 就是通过各种方法将各种网络请求重新定个方向转到其他位置

    2.使用(D:PHPHOMEwww p5 hinkphplibrary raitscontrollerJump.php)

    08 空操作和空控制器

    1.空操作

    # 主要解决用户恶意的地址栏输入,报错影响交互

    // 空操作
    public function _empty()
    {
        $this­>redirect('index/index');
    }

    2.空控制器

    <?php
    // 声明命名空间
    namespace appindexcontroller;
    use thinkController;
    // 声明控制器
    class Error extends Controller
    {
        public function index()
        {
            $this­>redirect('index/index');
        }
        // 空操作
        public function _empty()
        {
            $this­>redirect('index/index');
        }
    }
    ?>
                

    09 命名行模式

    1.切换到网站的根目录下

    2.输入 php think

    3.使用

    a.创建控制器

    # php think make:controller appindexcontrollerGoods

    b.创建数据模型

    # php think make:controller appindexmodelGoods

  • 相关阅读:
    .vue 文件中怎么引用全局的sass 样式
    git 本地仓库同时推送到多个远程仓库
    markdown文件生成html页面
    查看IPA安装包文件信息工具
    如何给iOS安装包IPA注入一个动态库文件?
    一年级语文上册读拼音写汉字,聪明的家长已收藏,偷偷给孩子练习
    关于直接下载第三方IPA应用分发平台之蒲公英的研究
    如何给iOS安装包IPA添加时间锁功能?
    关于几种获取iOS设备UDID典型方式的技术探讨
    针对五款IPA文件安装工具的深度评测
  • 原文地址:https://www.cnblogs.com/LQ6H/p/php-1.html
Copyright © 2011-2022 走看看