首页 > 编程语言 >如何在业务代码中使用 ThinkPHP5.1 封装的容器内反射方法

如何在业务代码中使用 ThinkPHP5.1 封装的容器内反射方法

时间:2023-05-13 14:31:46浏览次数:47  
标签:容器 functions Container getInstance dump die 封装 var ThinkPHP5.1

如何在业务代码中使用 ThinkPHP5.1 封装的容器内反射方法_反射调用

invokeClass
用法:可以不传命名空间实例化 (通过反射实例化)
$obj = Container::getInstance()->invokeClass(InvokerTest::class);
var_dump($obj->invokerNews());die;

-----------------------------------------------------------------------

invokeMethod
用法:传入带命名空间的类和对应方法,实例化后调用该方法
$methods = Container::getInstance()->invokeMethod(["app\common\service\InvokerTest", "invokerNews"]);
var_dump($methods);die;

如何在业务代码中使用 ThinkPHP5.1 封装的容器内反射方法_thinkphp_02

-----------------------------------------------------------------------

invokeFunction
用法:可以执行自定义的函数和闭包,参数以数组形式传递
$functions = Container::getInstance()->invokeFunction(function ($name) {
    return "hello {$name}";
}, ["beiqiaosu"]);
var_dump($functions);die;

$functions = Container::getInstance()->invokeFunction("procmsg", ["12312", "heillo"]);
var_dump($functions);die;

-----------------------------------------------------------------------

invoke
用法:invokeFunction 和 invokeMethod 结合体
$invoke = Container::getInstance()->invoke(["app\common\service\InvokerTest", "invokerNews"]);
var_dump($invoke);die;

 

如何在业务代码中使用 ThinkPHP5.1 封装的容器内反射方法_thinkphp_03


标签:容器,functions,Container,getInstance,dump,die,封装,var,ThinkPHP5.1
From: https://blog.51cto.com/u_11161174/6273709

相关文章

  • 文件相关信息、文件索引信息、链接信息、系统时间、机器克隆、定时任务、paramiko模块
    目录今日内容概要今日内容详细文件相关信息文件索引信息链接信息系统时间机器克隆定时任务paramiko模块公钥私钥paramiko其他操作代码封装面试题回忆etc目录配置相关/etc/profile 环境变量文件/etc/motd 开机欢迎界面usr目录程序相关四种安装软件的方式 1.yum安装 ......
  • MySQL-等保三级整改容器中的MySQL
    记一次等保三级整改过程数据库不合格项:密码复杂度不够需要设置密码过期时间数据库登录失败策略开启binlog由于这台机器处在docker的容器中,和正常MySQL实例大同小异1、安装docker官网的安装步骤,很简单,几条命令即可1.卸载旧版本yumremovedocker\......
  • string容器(下)
    六、string字符串比较1、功能描述:字符串之间的比较2、比较方式:字符串比较是按字符的ASCII码进行对比=   返回0>   返回1<   返回-13、函数原型:(1)intcompare(conststring&s)const; //与字符串s比较(2)intcompare(constchar*s)const; //与字符......
  • 小白的一次Form组件封装分享
    Form组件介绍form表单常用在回显表单信息+验证表单+提交表单信息。通常包含输入框,选择框,日期选择框,文本框等可输入的组件。封装思路通过配置文件生成一个基本的表单,然后配合数据的双向绑定得到我们提交的数据,同时尽量保留第三方UI库组件提供的属性(Attributes)、插槽(Slots)和......
  • 记录--9个封装Vue组件的小技巧
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助组件是前端框架的基本构建块。把它们设计得更好会使我们的应用程序更容易改变和理解。在这节课中,分享一下在过去几年中工作中学到的9个技巧。1.你可能不需要创建一个组件在创建一个组件之前,看看它是为了可重用......
  • axios封装
    当我们调取后端接口时,请求会有多种结果,诸如401(未登录)、403(登录过期)、404(请求地址错误)、500(服务器繁忙)等,以往我们只会打开控制台查看原因,我们可以对此进行优化,当请求接口失败时,可以给出弹窗提示知道失败原因。项目中用到了elementui、qs,使用前需要下载service文件代码s......
  • 浅谈一下ThinkPHP5.1实现事务嵌套的特性
    前言:       在我们平时做的一个项目中,线上环境突然发现数据库被锁住。导致很多有关数据插入和修改的接口全都瘫痪,项目基于ThinkPHP5.1。报错的时候,我们发现了一条sql错误日志,如下。   根据错误信息提示,是说有一个事务回滚时没有找到savepoint的暂存点。所以问题应该......
  • c# 封装sealed修饰符
    使用sealed修饰的类,标识封装类,不能被继承,如classb不能被其他类继承;classA{}sealedclassB:A{}也能用sealed修饰重写的虚方法或属性,如下所示,Y类重写了X类的虚方法,并用sealed修饰F方法,那么,Z类就无法重写F方法,所以可以阻止后代重写sealed修饰的方法和属性;classX{prot......
  • docker 容器中 ip addr 出现 bash: ip: commandnot found
    一、服务器中输入命令#启动tomcat容器别名tomcat1dockerrun-d-P--nametomcat1tomcat#进行tomcat1容器dockerexec-ittomcat1/bin/bash二、输入ipaddripaddrbash:ip:commandnotfound三、解决办法安装工具iproute2#我的服务器是centos的yumi......
  • 西门子1200脉冲运动控制程序 封装好的脉冲运动控制块,直接调用就好了,能实现手动,回原点,
    西门子1200脉冲运动控制程序封装好的脉冲运动控制块,直接调用就好了,能实现手动,回原点,走绝对位置,轴的设定值,轴的实际值,轴的状态,用起来绝对方便省心,博途西门子v15以上都可以打开,ID:5510669731623904......