当前位置: 首页 > news >正文

百度公司官方网站企业网站制作商

百度公司官方网站,企业网站制作商,wordpress怎么搭建用户中心,wordpress 嵌套软件在相对复杂的项目中#xff0c;我们可以使用分层来减少代码耦合#xff0c;并封装一些常用方法来加快开发速度. 因此#xff0c;在实际开发中#xff0c;代码可以分为: 控制器层#xff0c;服务层#xff0c;逻辑层#xff0c;模型层等. 服务层: 所谓的服务层#xff0… 在相对复杂的项目中我们可以使用分层来减少代码耦合并封装一些常用方法来加快开发速度. 因此在实际开发中代码可以分为: 控制器层服务层逻辑层模型层等. 服务层: 所谓的服务层我们可以理解为一个统一的输出层控制器访问数据必须通过服务层进行访问以保证数据访问的一致性. 因此当数据结构发生变化时我们只需要修改数据层或逻辑层而控制器仅需要访问服务层而不管逻辑层和模型层中的任何操作和更改. 在实际应用中我们发现服务层和逻辑层中有很多重复的方法和代码. 那么php调用类的方法有什么方法可以减少代码的重复性 首先我们使用php的__call方法将服务层的请求转移到逻辑层那么如何在不知道该方法有多少参数的情况下调用该方法呢 反射 即使将类成员定义为私有成员也可以从外部访问它. 您也可以访问类成员和方法而无需创建类的实例. PHP从5.0版开始增加了一种反射机制. 它提供了一组功能强大的反射API使您可以在PHP运行时环境中访问和使用类方法属性参数和注释. 它的功能非常强大. 它通常用于高扩展PHP框架中自动加载插件自动生成文档甚至可以用于扩展PHP语言. 因为它是PHP的内置oop扩展所以它是语言本身的功能因此可以使用它而无需其他扩展或配置. 下面我们使用PHP反射来实现php调用类的方法而无需实例化逻辑层调用其方法并完成结构返回. 首先我们在__call中收到要调用的方法和传递的参数. public function __call($func, $arguments) { return $this-invokeLogicObjectFunc($func, $arguments); } 接下来我们使用反射来实现调用过程: final private function invokeLogicObjectFunc($func, $arguments) { $class  $this-logicLayer.$this-logicName; if(!class_exists($class)) { throw new Exception(class .$this-logicName. not exist); } $object  new \ReflectionClass($class); if(!$object-hasMethod($func)) { throw new Exception(method .$func. in class .$this-logicName.  is not exist); } $objectInstance  $object-newInstance(); $reflectionMethod  new \ReflectionMethod($class, $func); //检测成员方法是否存在 if(empty($reflectionMethod)) { throw new Exception(class .$this-logicName.  not exist method. $func); } //校验成员方法是否是public if (!$reflectionMethod-isPublic()) { throw new Exception(class . $this-logicName.  method is not allow access); } $parameters  $reflectionMethod-getParameters(); if (empty($parameters)) { return $reflectionMethod-invoke($objectInstance); } else { return $reflectionMethod-invoke($objectInstance, ...$arguments); } } 注意: 调用也可以使用invokeArgs来实现. 此外我们还可以使用PHP反射来实现API文档的主动生成(使用反射来获取批注解析为API文档)自动调用类等. 本文来自电脑杂谈转载请注明本文网址 http://www.pc-fly.com/a/ruanjian/article-254676-1.html
http://www.hkea.cn/news/14517595/

相关文章:

  • 做网站培训班南京什么是网站名称
  • 门户类网站前台广东全屋定制十大名牌
  • 哪些网站可以做电脑画画赚钱网站做视频转流量
  • 开源网站源码下载甘肃住房城乡建设厅网站首页
  • 做网站的视频教学义乌网站建设推广专家
  • 做网站分层技术昌乐营销型网站建设
  • 网站标题在线制作更改wordpress主题语言
  • 南京做南京美容整形网站威海市住房和城乡建设局官方网站
  • 全栈网站开发流行框架东莞建设网雅园新村第20期名单公布
  • 网站每年维护费用廊坊专门做网站
  • 百度蜘蛛站长服务平台自学网站建设要多久
  • 安徽平台网站建设设计网络文化经营许可证有什么用
  • 建筑方案设计网站软件技术是学什么的
  • 山东网站建设服务怎么建设阿里巴巴国际网站
  • 网站页面设置手机版做特卖的购物网站
  • 网站的承诺合肥建设干部学校网站首页
  • 手机网站来几个中国菲律宾仁爱礁
  • 杭州做企业网站的公司保定网站制作案例
  • 腾讯网qq网站宁波高新区做网站的公司
  • 做吃穿住行网站免费网站建设平台哪个好
  • 公司网站搭建费用网页设计网站有哪些
  • xd软件可做网站吗社区类网站有哪些
  • 电商网站建设与运营哦godaddy
  • 麻栗坡网站建设网站域名解析ip地址
  • 网站设置支付宝在线支付同江佳木斯网站设计
  • 北京东城做网站尚层装饰官网
  • 如何设置域名seo推广培训
  • 筑巢网站建设怎么样网站建设 昆山
  • 与市场营销有关的网站做外贸的有哪些网站有哪些
  • 建设厅考试成绩查询山东seo推广