为了账号安全,请及时绑定邮箱和手机立即绑定

快速入门ThinkPHP 5.0--基础篇

难度中级
时长 5小时20分
学习人数
综合评分9.63
150人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • thinkphp是一个单入口文件框架;所有请求都通过public文件夹下的index.php进入,通过携带不同的参数,转发到相应的控制器中来实现相应的功能;

    单入口文件的定义: 应用程序所有的http请求都由一个文件接收并由该文件转发到功能代码中

    在入口文件中可以进行以下操作:
    1.必须引入thinkphp框架的引导文件(它可以帮助过滤些网站的安全、检测的问题)
    2.可以在这里定义在thinkphp/base.php中有的一些常量,如应用目录常量、配置文件目录常量等。没定义的话则会使用base.php中的默认值。

    查看全部
    1 采集 收起 来源:入口文件

    2018-06-09

  • 在每个方法执行之前都会先执行

    public function  __construct(){

        config('key', 'value');

    }

    查看全部
    1 采集 收起 来源:动态配置

    2018-05-17

  • <?php
    namespace app\index\controller;
    class Index{
        public function index(){
            //return view();  #默认找app/index/view/index/index.html
            //return view('upload');  #默认找app/index/view/index/upload.html
           // return view('**/upload');  #默认找app/index/view/index/**(上级文件目录)/upload.html
           //return view('./upload.html');  #默认找入口文件同级目录下的upload.html注意必须加.html后缀!
           return view('index',[
               'email' => 'abc@qq.com',//如在对应html文件中添加<h1>{$email}</h1>(即数组的key,注意表示方式)则会输出abc@qq.com
               'adress' => 'hahaha'
           ],[
               'STATIC' => '当前是STATIC的替换内容'//如在对应html文件中添加<h1>STATIC</h1>(即数组的key,注意表示方式)则会输出''中的文字
               ]
           );
        }
    }


    查看全部
    1 采集 收起 来源:视图view

    2018-05-06

  • fetch直接使用模板文件

    display直接将字符串进行模板替换和变量输出

    在接口中需要提供界面,没有使用模板文件,可以直接使用display,传递的第一个参数是字符串

    开发有前台的建议用fetch,可以使MVC分离:创建view层级,新建模板文件,直接将fetch的第一个参数指向这个模板文件

    ------------------------------

    <?php

    namespace app\index\controller;

    use think\Controller;

    class Index extends Controller

    {

    public function index()

    {

    # 默认模板地址

    # app/index/view/index/index.html

    # 传递第一个参数 修改模板文件目录

    # (修改为upload)app/index/view/index/upload.html

    # (public/upload)app/index\view\public\upload.html

    # 如果以./开头,那么就找到入口文件下同级开始的模板文件


    /*return view('index',[

    'email' =>  '123@qq.com',

    'user'  =>  'rui'

    ],[

    'STATIC'=>'当前是static的替换内容'

    ]);*/

    //以./开头,默认入口在public目录下

    //想在html中使用变量的输出以及函数等,要用{}

    //$this->assign('assign','assign传递的值');


    /*return $this->fetch('index',[

    'email' => '123@qq.com',

    'user'  => 'rui'

    ],[

    'STATIC'=> '当前是static的替换内容'

    ]);*/

    $this->assign('user','imooc');

    return $this->display('这是一个{$email}字符串{$user}',[

    'email' => '123@qq.com'

    ]);

    }

    }

    -----------------------------

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8">

    <title></title>

    </head>

    <body>

    <h1>这是index.html,在app/index/view/index目录下</h1>


    <p>{$email}</p>

    <p>{$user}</p>

    <p>{$assign}</p>

    <p>STATIC</p>

    </body>

    </html>

    ------------------------------

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8">

    <title></title>

    </head>

    <body>

    <h1>这是upload.html,在app/index/view/index目录下</h1>

    </body>

    </html>

    ---------------------------------

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8">

    <title></title>

    </head>

    <body>

    <h1>这是public/upload.html,在app/index/view/public目录下</h1>

    </body>

    </html>

    --------------------------------

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8">

    <title></title>

    </head>

    <body>

    <h1>这是public/html/index.html</h1>

    </body>

    </html>

    ---------------------------------

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8">

    <title></title>

    </head>

    <body>

    <h1>这是public/index.php同级的123.html</h1>

    </body>

    </html>

    查看全部
    1 采集 收起 来源:视图view

    2018-04-21

  • 可以在conf文件中创建对应模块的配置文件进行配置,也可以在方法内传递参数配置。但是实际开发中会在入口文件或者构造方法来统一的修改访问类型

    <?php

    return [

    'default_return_type' =>'xml'

    ];特殊封装,不需要在每个方法里都传递这样的参数,可以通过入口/构造方法来统一修改返回类型


    响应对象Response

      1.针对某一个模块返回其他格式类型,那么需要给在conf文件中创建对应模块的配置文件config.php中配置default_return_type

      2.针对某一个操作返回特殊的类型,那么可以通过动态配置实现

    在TP5中不允许在控制器和方法里die(),因为响应有可能发生问题

    一般在控制器里面直接return 数据,默认格式为html,默认会调用response对象出输出数据,如果需要对数据格式进行修改,第一种在config.php中修改,这个设置全局的,如果想对某个控制器的数据进行修改,一般在控制器里面动态设置返回格式


    <?php

    namespace app\api\controller;

    use think\Config;

    class Index

    {

    public function getUserInfo($type='json')

    {

    if(!in_array($type,['json','jsonp','xml']))

    {

    $type = 'json';

    }

    Config::set('default_return_type',$type);//动态配置,这样就不用修改配置文件,可以通过同一个方法返回不同的响应对象

    $data = [

    'code'=>200,

    'result'=>[

    'username'=>'rui',

    'email'=>'123@qq.com',

    'gender'=>'female'

    ]

    ];

    return $data;

    //html返回的是字符串,当前返回的是数组,无法解析

    }

    }



    <?php

    namespace app\index\controller;

    use think\Request;

    use think\Config;

    class Index

    {

    public function index(Request $request)

    {

    $res = [

    'code'=> 200,

    'result'=>[

    'list' =>[1,2,3,4,5,6]

    ]

    ];

    Config::set('default_return_type','xml');

    return $res;

    //dump($res);

    }

    }


    查看全部
    1 采集 收起 来源:响应对象

    2018-04-21

  • swith标签    Think.get.level通过URL传参获得   

    {switch name="Think.get.level"}

    {case value="1|4"}<p>1</p>{/case}  1|4表示当get的传参值等于1或4时

    {case value="2"}<p>2</p>{/case}

    {case value="3"}<p>2</p>{/case}

    {default/}<p>other</p>

    {/switch}


    range标签 

    type的值为between、notbetween、in、notin

    当type值为in、notin时,value的值可以为多个整数如:1,2,3,10

    当type值为between、notbetween时,value的值只能为两个整数如:1,10

    {range name="Think.get.level" value="1,10" type="notbetween"}

    <p>当前的level值不在1到10之间</p>

    {else/}

    <p>当前的level值在1到10之间</p>

    {/range}


    defined标签  判断常量是否被定义

    {defined name="APP_PATH_NO"}

    <p>APP_PATH_NO已定义</p>

    {else/}

    <p>APP_PATH_NO未定义</p>

    {/defined}


    if标签 条件判断

    {if condition="($Think.get.level==1)"}

    <p>当前的值为1</p>

    {else/}

    <p>当前的值不为1</p>

    {/if}


    查看全部
    1 采集 收起 来源:条件判断标签

    2018-04-20

  • https://img1.sycdn.imooc.com//5ad8411b0001512906400224.jpg此变量为系统中已经定义好的可替换指定路径的变量

    同时,该变量还可在项目应用配置文件中 view_replace_str 进行设置(可设置其他的自定义变量),主要是为了方便当系统的css或js文件位置改变时,页面无法加载js、css样式的情况,通过定义该变量,若样式路径发生改变,只需在配置文件中进行修改即可,除tp5外,tp3.x版本中不具备此项功能https://img1.sycdn.imooc.com//5ad8419d00019ad308220373.jpg变量的调用具有加载优先性,tp核心配置文件中的最优先-》应用配置文件-》方法中配置文件  最后会进行依次覆盖

    查看全部
  • 还可以通过调用Controller控制器的fetch方法 调用指定的view文件

    调用前需要加载use think\Controller 命名空间,并在指定的应用控制器中extends Controller类

    $this-> fetch()各参数同view()助手函数相同,区别是fetch()方法也可使用

    $this -> assign()方法传递变量的视图层(此方法需继承Controller类才可调用)即tp3.x版本相同,view()方法不能调用此方法


    tp3.x版本不同的是,$this->display()是直接在控制器中输出要显示的字符串,原3.x版本表示的是调用视图层,也可使用$this -> assign()方法,webserver项目中不建议使用$this->display()方法,这会导致视图层不可用

    查看全部
    1 采集 收起 来源:视图view

    2018-04-19

  • 获取请求对象的三种方式

    1. $request = request( );

      dump($request);即可打印出请求的对象

    2. 需要先加载request命名空间

      use think\Request;

      public function index( ){


        $request = Request::instance( );

      dump($request);即可打印出请求的对象

      }

    3. 需要先加载request命名空间

      use think\Request;

      在方法中传入request对象参数 如下:

      public function index(Request  $request){

         dump($request);

      }

    查看全部
    1 采集 收起 来源:请求对象获取

    2018-04-18

  • 1.先在应用配置文件中定义

    conf/config.php/

    'url_route_on'  => true,

    'url_route_must'=> false,这两条规则 

    2.然后再conf文件夹下新建自定义路由文件route.php.定义规则return ['news/:id' =>'Index/index/ppap']; 3.public function ppap($id) { 

     echo url('Index/index/ppap',['id'=>17]).'<br/>';

     return "{$id}"; 

     }

    运行此url  localhost/news/5.html 改方法输出

    /news/17.html(tp5路由会根据路由规则自动匹配 url助手函数会生成正确的url)

    5(根据路由规则匹配到的ID)

    查看全部
    1 采集 收起 来源:路由

    2018-04-18

  • thinkphp5
    查看全部
    1 采集 收起 来源:课程介绍

    2018-04-12

    1. 对不同环境下工作的人员可通过同一文件,进行简单的参数配置,就可以在他需要的环境下正常运行  

    2. 环境变量ENV配置和使用的实现  

       a.在web访问的目录下创建.env配置文件  

      b..env的配置:例如status=dev,[database]  host=local  user=root  password=123456,表示一组参数  

      c.config.php,与环境变量相关的都从.env配置文件中获取值    

      <?php

      use think\Env;

      return [

      'app_status' => Env::get('status','dev');

      ];

    使用Env::get()方法获取配置的参数值;对于组参数需要这样使用Env::get(database.user)

    查看全部
  • config()助手函数功能使用 1.设置一个配置参数:config('user_name', 'david', 'index'),设置的参数名为user_name,值为david,作用域为index 2.获取一个配置参数:config('user_name', 'index'),获取的参数名为user_name,是从作用域为index中获取 3.判断配置参数是否存在:config('?user_name'),必须带上?,且放在参数名之前
    查看全部
  • .env的值dump不出来的原因:在TP5的新版中,已经取消了环境变量的优先识别,所以需要使用环境变量必须通过Env类来读取,改了php.ini文件variables_order = "EGPCS"之后,只是可以dump出环境变量,.env依然读取不到,该处不是bug,只是新旧版本的机制不同罢了 不建议修改php.ini文件的variables_order,导致一些性能损失。
    查看全部
  • TP5开发规范: * 目录命名、配置参数、非类库文件名、表名、字段名:小写+下划线 * 类文件名和其内的类名:驼峰,首字母大写,两者名字要一样 * 函数、属性名:驼峰,首字母小写 * 常量:大写字母+下划线 * 类文件名均以.php结尾 * 类文件的命名空间和类文件所在的路径一致 * 以双下划线__开头的函数或方法为魔术方法 * 应用的类库文件的命名空间,最顶级的统一为app
    查看全部

举报

0/150
提交
取消
课程须知
1、有一定的php基础。 2、对git composer 有一定的了解。 3、本机安装好相应的开发环境 4、最好有一定的mvc 框架的使用经验
老师告诉你能学到什么?
1、框架的搭建 2、目录文件的介绍 3、环境的配置 (开发 测试 线上环境) 4、请求对象和数据请求参数获取 5、相应对象和返回相应类型的数据 6、模板的使用 比较 判断 循环

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!