Yii框架使用魔术方法实现跨文件调用功能示例

发布时间 - 2026-01-11 01:11:58    点击率:

本文实例讲述了Yii框架使用魔术方法实现跨文件调用。分享给大家供大家参考,具体如下:

目前项目用yii框架,controller调用facade的方法,facade调用adapter的方法,adapter调用api的方法,api封装了sql方法,但是大部分情况下,只是单纯的调用,但限于目前项目的规则,都要写方法,而方法都是单纯的return,于是写了个demo,模拟了下。

<?php
class aApi
{
  public static function tt1($name, $age)
  {
    print_r($name);
    echo $age;
  }
}
class aAdapter
{
  public function __call($func, $params)
  {
    $class = substr(get_called_class(), 0, -7) . 'Api';
    return call_user_func_array(array($class, $func), $params);
  }
}
class aFacade
{
  public static function __callstatic($func, $params)
  {
    // 这里也可以用debug_backtrace()
    $class = substr(get_called_class(), 0, -6) . 'Adapter';
    $obj = new $class();
    return call_user_func_array(array($obj, $func), $params);
  }
}
class aController
{
  public function actionC()
  {
    aFacade::tt1(['name'], 'age');
  }
}
$a = new aController;
$a->actionC();

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。


# Yii  # 魔术方法  # 跨文件调用  # Yii编程开发常见调用技巧集锦  # Yii2实现跨mysql数据库关联查询排序功能代码  # Yii2实现多域名跨域同步登录退出  # Yii2下session跨域名共存的解决方案  # Yii基于数组和对象的Model查询技巧实例详解  # Yii学习总结之数据访问对象 (DAO)  # Yii框架实现的验证码、登录及退出功能示例  # Yii框架实现图片上传的方法详解  # Yii框架分页实现方法详解  # 程序设计  # 都是  # 相关内容  # 可以用  # 感兴趣  # 给大家  # 写了  # 更多关于  # 装了  # 所述  # 要写  # 面向对象  # 情况下  # 操作技巧  # 讲述了  # brush  # php  # pre  # class  # lt 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  javascript读取文本节点方法小结  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  如何在万网主机上快速搭建网站?  网站制作企业,网站的banner和导航栏是指什么?  千库网官网入口推荐 千库网设计创意平台入口  如何快速搭建高效简练网站?  大连 网站制作,大连天途有线官网?  如何获取PHP WAP自助建站系统源码?  高防服务器:AI智能防御DDoS攻击与数据安全保障  nodejs redis 发布订阅机制封装实现方法及实例代码  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  Linux系统命令中screen命令详解  如何在建站之星网店版论坛获取技术支持?  教你用AI润色文章,让你的文字表达更专业  EditPlus中的正则表达式 实战(2)  ,网页ppt怎么弄成自己的ppt?  Laravel Docker环境搭建教程_Laravel Sail使用指南  如何基于云服务器快速搭建网站及云盘系统?  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何在Windows虚拟主机上快速搭建网站?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Laravel如何处理和验证JSON类型的数据库字段  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  如何生成腾讯云建站专用兑换码?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  高防服务器租用首荐平台,企业级优惠套餐快速部署  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  如何在IIS中新建站点并配置端口与物理路径?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何在局域网内绑定自建网站域名?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  潮流网站制作头像软件下载,适合母子的网名有哪些?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  Bootstrap整体框架之JavaScript插件架构  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  微信小程序 input输入框控件详解及实例(多种示例)  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  用v-html解决Vue.js渲染中html标签不被解析的问题