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

电子商务网站建设合同范本福州 网站设计公司

电子商务网站建设合同范本,福州 网站设计公司,正规代加工,wordpress获取token方法在相对复杂的项目中,我们可以使用分层来减少代码耦合,并封装一些常用方法来加快开发速度. 因此,在实际开发中,代码可以分为: 控制器层,服务层,逻辑层,模型层等. 服务层: 所谓的服务层&#xff0…

46d45202ca37940d23842d8ab76bf609.png

在相对复杂的项目中,我们可以使用分层来减少代码耦合,并封装一些常用方法来加快开发速度. 因此,在实际开发中,代码可以分为: 控制器层,服务层,逻辑层,模型层等.

服务层: 所谓的服务层,我们可以理解为一个统一的输出层,控制器访问数据必须通过服务层进行访问,以保证数据访问的一致性. 因此,当数据结构发生变化时,我们只需要修改数据层或逻辑层,而控制器仅需要访问服务层,而不管逻辑层和模型层中的任何操作和更改.

826e07cff332a39b176cfa66d8ddbd1c.png

在实际应用中,我们发现服务层和逻辑层中有很多重复的方法和代码. 那么php调用类的方法,有什么方法可以减少代码的重复性?

首先,我们使用php的__call方法将服务层的请求转移到逻辑层,那么如何在不知道该方法有多少参数的情况下调用该方法呢?

img_0_3127035550_685124120_27.jpg

反射

即使将类成员定义为私有成员,也可以从外部访问它. 您也可以访问类成员和方法而无需创建类的实例.

405b1046de4f10a5424fbe9b7a6df4_th.jpeg

PHP从5.0版开始增加了一种反射机制. 它提供了一组功能强大的反射API,使您可以在PHP运行时环境中访问和使用类,方法,属性,参数和注释. 它的功能非常强大. 它通常用于高扩展PHP框架中,自动加载插件,自动生成文档,甚至可以用于扩展PHP语言. 因为它是PHP的内置oop扩展,所以它是语言本身的功能,因此可以使用它而无需其他扩展或配置.

下面,我们使用PHP反射来实现php调用类的方法,而无需实例化逻辑层,调用其方法并完成结构返回.

1598a4a38e3557f6e5143937aabc76f6.png

首先,我们在__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.yayakq.cn/news/392542/

相关文章:

  • 自己可以做英文网站么商务邮箱注册
  • 新邱建设网站企业做网站需要准备什么资料
  • 广告联盟做网站怎样创建一个app
  • php网站优化长春财经学院专业
  • 制作网站首先做的工作软文推广代写代发
  • 厦门网站建设求职简历vr网站开发技术
  • 小型企业网站建设旅游景点网论文网站建设要会什么软件
  • 柴沟堡做网站企业网站seo优帮云
  • 佛山电商网站建设视频网站怎么做网站引流
  • 怎么查网站备案的公司广西seo网站推广
  • 深圳市建设工程交易服务中心网站html期末作业网页代码
  • 网站的推广一般有什么方式国外购物网站怎么做
  • WordPress众筹网站主题做电影网站需要什么条件
  • 如何做网站demo做网站排名推广效果怎么样
  • 揭阳网站免费建站昆明做网站建设硬件设备
  • 网站建设方案总结做网站需要的图片去哪找
  • 整站seoseo优化网站建设及发展
  • 高端建站方案免费营销网站制作
  • 网站 导航条网站制作案例价格
  • “一个”网站扬州鼎盛开发建设有限公司网站
  • 180天做180个网站网站cms系统下载
  • 镇江网站优化推广工作室英文
  • 网站开发的目的相关书籍百度售后电话人工服务
  • 沈阳互联网公司排名西安seo代理计费
  • 淄博阿雷网站建设phpwind转WordPress
  • 网站制作主要公司做黑彩网站
  • 效果好网站建设哪家好织梦可以做移动网站吗
  • 关于网站备案简述网页的基本结构
  • 链接提交百度站长平台公司网站后如何更新
  • 重庆网站建设备案做外贸一般做什么