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

快速入门ThinkPHP 5.0--基础篇

难度中级
时长 5小时20分
学习人数
综合评分9.63
150人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 响应对象:

        可在方法名中带一个参数:type

        方法中判断请求类型:

        if(!is_array($type,['json','jsonp','xml'])){$type = 'json';}

        Config::set('default_return_type',$type);


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

    2018-10-30

  • request类input函数调用:

        文件中引入think\Request;

        在方法中引入,如:public function index(Request $request)

        可调用  有:get、post、put、patch、delete、param、request、session、cookie、server、env、path、file

        操作:

        调用模式:$request->参数类型(key名,key值,函数名);

        $request->session('email','imooc@qq.com','trim');

        input('patch.sid');


    查看全部
    0 采集 收起 来源:input助手函数

    2018-10-30

  • #获取浏览器输入框的值

            dump($request->domain());

            dump($request->pathinfo());

            dump($request->path());

            #请求类型

            dump($request->method());

            dump($request->isGet());

            dump($request->isPost());

            dump($request->isAjax());

            

            #获取请求的参数

            dump($request->get());

            dump($request->param());

            dump($request->post());

            //session('name','sunxiaopeng');

            dump($request->session());

            cookie('email','sunxiaopeng@163.com');

            dump($request->cookie());

            

            dump($request->param('type'));

            dump($request->cookie('email'));

            

            #获取模块 控制器 和操作

            dump($request->module());

            dump($request->controller());

            dump($request->action());

            

            dump($request->url());

            dump($request->baseUrl());


    查看全部
  • tp是一个单入口框架,所有请求都进入index.php入口文件;我们通过index.php来接受所有http请求(即用户请求),请求中的所有参数,我们都可以通过Request这个对象接受和处理;

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

    1、助手函数

    $request = request( );

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


    2、使用think下的request类获取实例(单例模式))

    需要先加载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);

    }

    单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例;比如Config类,Config::get('key'); Request类,Request::instance( );等等,框架中各自只有这一个类;
    并且单例模式那个类只需要实例化一次,在整个框架下都可以直接使用了


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

    2018-10-30

  • 路由:url简化

    步骤:

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


    conf/config.php配置里设置

    // 是否开启路由

    'url_route_on'  => true,

    // 是否强制使用路由,当开启强制路由,一定要用路由,值为true即为开启

    'url_route_must'=> false

    2.然后再conf文件夹下新建自定义路由文件route.php(文件名称必须为route.php)

      在里面定义规则:

      return ['news/:id' =>'Index/index/index'];

      这时访问index模块下的index控制器下的index方法,并传参数id时,就可以这样localhost/news/5访问就可以


      url()助手函数,当采用路由时,可将页面上的默认访问URL改为路由访问URL。

       即echo url('index/index/index',['id' => 10]);打印出来的结果是 localhost/news/10

       

       

       tp5路由

      1.这里所说的路由是tp5才引入的路由概念

      2.如何在tp5中使用路由

        a.通过配置url_route_on参数(默认为开启),在config.php同级目录下创建route.php文件配置路由规则,如图所述

        b.通过配置url_route_must参数,如果强制开启路由后,那么tp中通过path_info访问的url规则将失效,所有操作的访问都需要在route.php中配置


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

    2018-10-30

  • 入口文件绑定

    就是说,通过在入口文件(index.php)里设置

    define('BIND_MODULE','admin');//定义此常量,绑定admin模块,这时整个项目,只能访问admin这个模块

    define('BIND_MODULE','admin/index');//绑定admin模块下的index控制器(只允许访问admin模块下的index控制器)

    define('BIND_MODULE','admin/index/index');//绑定admin模块下的index控制器下的index方法(只允许访问admin模块下的index控制器下的index方法)

    可以使用户在访问网站时,只能访问指定模块下的控制器,或者只能访问指定模块下的指定控制器下的指定方法;


    这个功能存在的意义?

    当我们的项目在给第三方对接时,就可以重新定义一个入口文件(比如叫api.php),原本默认的入口文件是index.php依然存在,index.php这个入口文件是供正常用户访问项目的入口文件;

    通过定义一个新的入口文件来限制第三方访问的模块(比如叫api.php);并且第三方只能通过api.php这个入口文件访问,才能得到他们想要的数据,同时我们一般把第三方想要的数据单独放在一个模块(比如api模块);

    这时可以在api.php里面设置,只允许第三方访问指定模块,或者指定方法;其他模块或者其他方法不允许其访问;


    在public下可创建多个入口文件,可实现不同入口文件访问不同模块。入口文件名与模块文件必须相同,自动访问与之对应的模块。

    这时需要在在conf->config.php 里配置自动绑定 "auto_bind_module"  => true  

    相当于public下api.php文件define("BIND_MODULE","api");

    注意新建的入口文件里面的一些内容是默认的:

    <?php

    // 定义应用目录

    define('APP_PATH', __DIR__ . '/../app/');

    define('CONF_PATH', __DIR__ . '/../conf/');

    // 加载框架引导文件

    require (__DIR__ . '/../thinkphp/start.php');

    ?>


    查看全部
  • 1、绑定模块:

    1define('BIND_MODULE','admin');

    如果是这样绑定的,那访问admin模块时只需要加上控制器名和方法名:

    如: http://localhost/index/index 

    或是 http://localhost/user/index 

    这种是只绑定模块名,可以访问模块下的所有控制器

    1define('BIND_MODULE','admin/index');

    若是这种方式绑定了  模块名/控制器名  那访问时只可以访问这个控制器的方法,不可以访问其它控制器的方法

    如: http://localhost/这种表示访问 admin模块下的index控制器下的index方法

    http://localhost/demo 访问admin模块下的index控制器下的demo方法

    http://localhost/user/index 表示访问 admin模块下的user控制器下的index方法,这种方式就不能访问了

    2、大型项目时就不在这里设置 BIND_MODULE 的绑定了

    那就要新建一个入口文件了。比如第三方接口文件操作

    那就要新建 public/api.php文件 ,然后再开启入口文件自动绑定,即  访问api.php文件时自动访问 app/api/controller/Index.php文件。


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

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

    2018-10-30

  • 1.什么是环境变量

    tp除了加载项目配置config.php,还会去加载一个可能存在的 env.php ,位于项目根目录下,也就是跟composer.json同级。

    有点类似于场景配置,就是说在不同的情况下,项目对配置的要求会有所不同,比如项目的开发环境、预上线环境、测试环境、生产环境等等对配置的要求都不同;这个时候我们就要切换到相应的配置;


    2.方法步骤:

         a.在和app文件夹同级目录下,新建".env"或者env.php这个文件;

          env.php格式和配置文件一样,返回一个数组,例如:

                 <?php

                return [

                'app_debug' =>false

                       ];

                 ?>

    如果是新建的文件格式是.env,里面就不用<?php?>标识符了;直接书写  'app_debug' =>false这样就行;

    通过以上方式就算是初步把env配置设置好了,下面步骤就是开始使用env里面的配置了;

    b.接下来我们要掌握怎么获取到.env文件里面的配置了;

    例:我们在.env文件里书写了status=dev,接下来我们在conf文件下的config.php里面来获取这个设置:

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

    <?php

    use think\Env;//注意这里别忘了写

    return [

    //tp5提供了一个惯例参数app_status,只需要改变它的值就能实现一键切换运行环境

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

    ];

    使用Env::get()方法获取配置的参数值;(或者$_ENV['a'])对于组参数需要这样使用Env::get(database.user);

    同时系统也会自带环境变量;查看所有环境变量的方式dump($_ENV);

    3.env.php优先级:高于config.php;就是说.env里的设置会覆盖config.php里的配置;


    查看全部
  • .env文件写法

    查看全部
  • config类和助手函数config();主要功能获取和设置配置的两种方法

    tp5的全局config()函数;

      1.实现的原理

        a.config()函数的所有功能来源于thinkphp框架目录下library目录下的think目录下的config.php类提供的方法

        b.通过thinkphp框架目录下的helper.php文件定义了一个全局的function config()方法,根据传参调用config.php类中不同的方法实现不同的功能,注意Config是首字母大写,因为tp5中所有类首字母都是大写

      2.config()函数的使用

        a.可以在项目任何地方调用

        b.因为不能确保在helper.php文件定义全局function config()方法之前是否已经定义了,所以在项目中建议使用config.php中的类方法操作整个框架的配置参数

        c.项目文件中通过 use think\config 引入类方法,因为是静态类,所以通过 Config::get() 可以获取所有配置的参数

        获取配置参数的值:Config::get('key');    等价于   config('key');

        设置配置参数的值:Config::set('key', 'value');   等价于   config('key', 'value');

        设置配置参数的作用域:Config::set('key', 'value', '作用域');   等价于   Config('key','value','作用域');

        检测配置参数是否存在:Config::has('key');  等价于   Config('?key');

        注意:参数不存在或者值为null,var_dump时都返回false;例:key=null; $a=Config::has('key'); var_dump($a);则返回false;

        

    设置配置时,注意所设置的配置的服务作用域;

    例:Config::set('key', 'value', 'index');设置配置的作用域是服务index模块的,那么获取的时候也要加上作用域

    Config::get('key','index');


    查看全部
  • 1、public function __construct(){} 在类文件中执行下面任何方法前都会用执行这个方法。

    在这方法中直接用助手函数。https://img1.sycdn.imooc.com//5b6c125c00010b0008550299.jpg

    运行结果为

    https://img1.sycdn.imooc.com//5b6c12b10001b75d03450126.jpg

    如果只在方法里动态配置应用项,那只有这个方法才可以使用,同文件的其它方法是不能使用的。如:

    https://img1.sycdn.imooc.com//5b6c15440001d87208670595.jpg


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

    2018-10-29

  • 模块配置:专门为单个模块提供配置服务,之前的扩展配置和场景配置都是相对整个项目应用级别的,而模块配置是相对模块级别,作用域不同

    在conf文件夹下新建文件夹,文件夹的名字和相应的模块名字必须一致,例如在conf文件夹下新建文件夹的名为index,则这个文件夹下的所有配置只对index这个模块生效;

    1.在conf目录下index文件夹下新建config.php文件来进行对单个模块的配置进行设置,注意这个文件名必须为config.php;

    2.conf目录下index文件夹下也可以通过创建extra目录来扩展配置;

    |conf配置的作用域是整个项目应用

    |模块配置作用域只对相应单个模块生效;


    查看全部
    0 采集 收起 来源:模块配置

    2018-10-29

  • 配置文件执行顺序 conf/extra/database.php > conf/database.php > thinkphp/convention.php

    在不同的环境中使用不同的配置文件叫场景配置

    在conf/config.php文件中加多一项:

    home场景时就加conf/home.php文件,office环境就加一个conf/offic.php文件,下面的值也改成offic

    'app_status'	=>	'home',

    home场景时就在conf里加一个home文件

    场景配置文件 conf/home.php可以跟conf/config.php文件执行array_merge()操作

    database会替换掉全部,所以需要全部复制。tp5的bug

    查看全部
    1 采集 收起 来源:场景配置

    2018-10-29

  • extra->扩展配置

    config.php->应用配置

    database.php->数据库的默认配置

    extra里面的database为扩展配置可以替换掉数据库的默认配置convention下的database

    database.php可以跟extra同级目录,而且可以替换掉应用配置config.php里面的database

    优先级:扩展配置>应用配置>默认配置


    查看全部
    1 采集 收起 来源:扩展配置

    2018-10-29

举报

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

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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