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

快速入门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下载
官方微信
友情提示:

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