TP的依赖注入:将类类型的对象作为参数注入到当前类中

思想

依赖注入其实本质上是指对类的依赖通过构造器完成自动注入,

例如在控制器架构方法和操作方法中一旦对参数进行对象类型约束则会自动触发依赖注入,

由于访问控制器的参数都来自于URL请求,普通变量就是通过参数绑定自动获取,对象变量则是通过依赖注入生成。

<?php
namespace app\controller;

use think\Request;

class Index
{
    protected $request;

    public function __construct(Request $request)
    {
        $this->request = $request;
    }

    public function hello($name)
    {
        return 'Hello,' . $name . '!This is '. $this->request->action();
    }
}

构造方法实例化

$foo = new Foo($bar);

$foo = invoke('Foo');

普通方法实例化

$result = invoke(['Foo', 'bar']);

 手动绑定类:前面是名字  后面是真实的类文件

$this->app->bind('think\Cache', 'app\common\Cache');
bind('cache', 'think\Cache');

手动绑定对象

$cache = new think\Cache;
// 绑定类实例
bind('cache', $cache);

全局绑定provider.php

<?php
use app\ExceptionHandle;
use app\Request;

// 容器Provider定义文件
return [
    'think\Request'          => Request::class,
    'think\exception\Handle' => ExceptionHandle::class,
];

TP很多内置的绑定

类的实例化使用

$app = app();
// 判断对象实例是否存在
isset($app->cache);

// 注册容器对象实例
$app->cache = think\Cache::class;

// 获取容器中的对象实例
$cache = $app->cache;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值