thinkphp5.1

本文深入解析了TP5.1框架中容器的绑定与使用方法,包括类实例的绑定、闭包及实例化助手的运用。同时,详细介绍了门面的设置与调用流程,为开发者提供了一种统一管理和便捷调用类实例的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、门面
1.将一个类绑定到容器中:

public function index(Request $request)
{
  Container::set('indexRepository','app\index\Repository\IndexReposiroty');//indexRepository作为绑定Indexpository类实例的别名
  $temp=Container::get('indexRepository');  //获取IndexReposiroty实例,tp5.1底层会根据该类名的位置生成一个实例。
  $result=$temp->demo1();
  dump($result);
}

也可以传进去一个闭包,也可以是实例:

Container::set('closeTest',function ($name){
    return "闭包测试".$name;
});
$temp=Container::get('closeTest',['传进变量']);

使用实例化助手:

//使用实例化助手
bind('indexRepository','app\index\Repository\IndexReposiroty');
$temp=app('indexRepository');

2.门面(其实就是一个静态代理),就像index.php入口文件先调用base.php文件,其实就是将类都放到容器里面,统一管理,方便调用,再生成静态代理。

1.设置静态代理类,查看\think\facade命名空间下的文件,随便创建一个门面类再模仿该空间下的一个类,例如Request
namespace app\index\facade;
use think\Facade;
class demo1 extends Facade
{
    protected static function getFacadeClass()
    {
        return 'app\index\Repository\IndexReposiroty';//代理这个类
    }
}
2.这时候就可以再其他类中调用该门面类了,就可以调用IndexReposiroty类下的demo1方法。
$result=\app\index\facade\demo1::demo1();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值