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

快速入门ThinkPHP 5.0--基础篇

难度中级
时长 5小时20分
学习人数
综合评分9.63
150人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 本教程是对tp5框架的剖析;剖析框架中的框架的目录架构、组成部分、所有执行流程执行原理等等;只需要过一遍有点印象就行,不深入理解也没有关系;框架的熟练运用和理解需要在以后的实战中进行;或者以后经过多次实战开发以后,可以再回来看本教程,那个时候理解起来更深刻,更有同感;
    我们最终的目的就是:可以熟练的使用框架进行项目开发;充分利用框架中的各种功能的设置给我们带来的便利

    查看全部
  • 记住:框架所有默认配置信息:都在convention.php中
    我们要针对项目单独做配置;就去convention.php中找到默认配置;
    复制粘贴到conf下的config.php中进行设置;开启session也是在config.php中开启

    查看全部
  • 这里有个小知识点;使用.html作为后缀来隐藏我们本身的编程语言;这样让我们的网站稍微安全一些;也可以通过修改配置文件来修改文件的后缀名

    查看全部
  • 分清PHP内置函数和tp框架内置函数;
    这是两码事;

    查看全部
  • url中 ?id=10这是get的传参方式

    查看全部
  • index.php入口文件中只需要定义一些常量,包括引入框架的引导文件

    查看全部
  • 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( );等等,框架中各自只有这一个类;
    并且单例模式那个类只需要实例化一次,在整个框架下都可以直接使用了

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

    2018-06-09

  • 路由: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-06-09

  • 入口文件绑定

    就是说,通过在入口文件(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');

    ?>

    查看全部
  • thinkphp在路由中(url中)隐藏入口文件index.php时

    若服务器为apache 可在http.conf配置文件中

    修改 LoadModule rewrite_module modules/mod_rewrite.so 去掉#

    修改AllowOverride None 为 AllowOverride All

    同时还需要注意项目public目录下的.htaccess重定向文件(框架已经为我们准备好了),若项目端口不是默认的80端口,需将.htaccess文件中

    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

    改为:

    RewriteRule ^(.*)$ ?index.php/$1 [QSA,PT,L]  加上?表示匹配端口,或改为

    RewriteRule ^(.*)$ index.php?$1 [QSA,PT,L]

    隐藏入口文件  1.什么是隐藏入口文件:其实就是将入口文件index.php不显示在路由中,例如:在不开启隐藏入口文件设置下,需要访问应用默认的index方法,需要这样写:localhost/index.php/index/index/index,如果开启隐藏入口文件设置,那么将index.php拿掉也是可以访问

     2.如何来设置隐藏入口文件:apache提供重写静态规则在public目录下创建.htaccess文件,默认apache会去访问这个文件,实现隐藏的需求;nginx需要在nginx.conf文件中配置静态规则(规则可百度)

    查看全部
    2 采集 收起 来源:隐藏入口文件

    2018-06-09

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

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

    2018-06-09

  • thinkphp是一个单入口文件框架;所有请求都通过public文件夹下的index.php进入,通过携带不同的参数,转发到相应的控制器中来实现相应的功能;

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

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

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

    2018-06-09

  • 这些常量框架系统已经在thinkphp目录下base.php定义过了;
    我们只是在其他地方定义会把他覆盖,即允许重定义;这些是默认定义而已

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

    2018-06-09

  • 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里的配置;

    查看全部
  • 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');

    查看全部

举报

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

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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