位置: 编程技术 - 正文

简单谈谈PHP中的trait(简单谈谈php中的安全性)

编辑:rootadmin

推荐整理分享简单谈谈PHP中的trait(简单谈谈php中的安全性),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:简述php的优点,简述php的概念和特点,php的概述,简述php,简单谈谈php中的安全性,简单谈谈php中的安全性,简述php,简单谈谈php中的数学思想,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

之前的一个同事换工作,在面试被问到了 PHP 的 trait 。因为没用过, 所以没答好,我大概是用过几次的,想了想整理了以下的总结。

trait

trait 是在一些类(Class)的应该具备的特定的属性或方法,而同父级的另外一些类应该避免包含这些属性和方法情况下使用的.

当然, 这也和开发者对类的抽象能力有关, 有些抽象能力好的, 可以减少对 trait 的使用 但是这种情况应该是无法避免的 不然 trait 出现就毫无意义了.

还有一种情况, 就是使用 trait 的时候, 可以起到的约束开发者的作用, 提醒开发者注意需要在开发的过程中调用 trait 的某些属性和方法.

同事则提出了一个好问题, 接口(interface) 不也是这个作用么&#;

简单谈谈PHP中的trait(简单谈谈php中的安全性)

不急, 让我们先看个例子:

比如你要收集网站上各类数据, 开发了 Spider 类. Spider 有个方法叫 request() 负责请求.

但是采集数据的过程中, 有些网站对蜘蛛敏感有些则不. 对于敏感的网站, 我们给出了一个使用代理的解决方案. 但是使用代理是会影响抓取速度的. 这就产生了 Spider 的子类有些需要用代理, 而能不用代理则尽量不用的情况.

于是这个时候我们新增了一个 trait Proxy:

trait 重写了 Spider 的 request() 方法, 限定了在没有调用代理的情况下调用会抛出异常.

回到之前的问题, trait 这样的用法和 接口(interface) 有什么区别&#;

接口的约束是前置的是定义初始就必须实现的, 他可以约束方法的实现却无法约束方法的调用, trait 是一种后置的调用, 他已经实现了方法, 关键的是, 他只对调用了自身的类产生约束(废话一句), 而对没有调用自身的类不产生影响(再一句废话), 同时他是可复用的, 而且没有破坏 Spider 类自身的实现增加, Spider 还是那个 Spider.

我想 trait 的用法再这里已经很有效了吧.

后话

有人可能决定 另外实现一个 request 比如叫, proxyRequst 不就完了么&#; 你说的好有道理…然是如果我使用了不一样的 代理具体对请求上有细节差异怎么办呢&#; 在代码里不停的 if if if 么&#; trait 如此清爽的方案 为何要放弃呢&#;

总结

好了,

标签: 简单谈谈php中的安全性

本文链接地址:https://www.jiuchutong.com/biancheng/293458.html 转载请保留说明!

上一篇:PHP函数rtrim()使用中的怪异现象分析(php trim函数)

下一篇:解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory(编译安装php8)

  • 自行研发的无形资产不确认递延所得税
  • 报税扣款锁定如何解除
  • 房产租金收入免不免房产税?
  • 管理费用中的办公费占比是多少
  • 不动产销售额怎么填
  • 小规模纳税人开票税率
  • 电子税务局财务报表在哪里查询
  • 股票分红会冲抵成本吗
  • 银行对账单用英语怎么说
  • 未提供一般纳税人证明
  • 原材料亏损率怎么算
  • 职工在病假领取失业金
  • 农业合作社预付款怎么算
  • 银行卡季度结息
  • 建筑施工外包
  • 个人承担的社保算工资吗
  • 资产负债表和利润表和现金流量表的关系
  • 不属于抵扣范围的是什么
  • 吊车租赁增值税税率最新2022
  • 账本印花税每年交吗,要交几本
  • 长期租赁存在的主要原因为什么是节税
  • 按次申报是什么意思
  • 开专票和普票的税点
  • 企业一般每个月几号上工伤保险
  • 节能控制模块
  • 库存现金清查短款会计分录
  • 收到财产保险赔款会计分录
  • 土地开垦费怎么征收
  • 汇算清缴补交所得税后报表需要调整吗
  • 票据状态提示付款
  • 腾讯手游助手卡顿严重
  • 期末调汇凭证怎么调
  • 客户申请退款商家拒绝退货退款会有什么效果
  • 制造费用主要包括哪些费用
  • 八个与cpu相关的字符
  • 旅游企业会计ppt
  • vue获取当前路由地址
  • 今日清明节的下一句是什么
  • thinkphp where or
  • 存货捐赠视同销售的会计分录怎么做?
  • 训练自己的GPT
  • 计算机视觉opencv 有什么项目
  • vue如何实现登录
  • 比较好的微信名称有哪些
  • 专项应付款二级明细科目有哪些
  • 税审报告什么时候需要
  • 大额的维修费用怎么摊销
  • 入库管理业务流程图
  • 固定资产清理怎么报税呢
  • 一般纳税人之间转让土地使用权交哪些税金
  • 利息收入怎么入账
  • sql server必知必会
  • 支付宝收付款如何截图
  • 纳税人具有怎样的特征?
  • 简述税收筹划的意义
  • 确认资产减值损失后可以转回的
  • 怎么算股本溢价
  • 事业单位零余额账户使用流程
  • 存货盘亏有哪些情况
  • 购买空调报销写什么科目的
  • 高铁行程信息提示可以乘车吗
  • 期末自动结转期间损益
  • 销售商品托收承付怎么确认收入
  • mysql两种安装方式
  • 基于Sql Server通用分页存储过程的解决方法
  • chrome浏览器81.0
  • 远程桌面连接 server 2016
  • win10快速启动怎么进入bios
  • MacOS X Yosemite升级后postgresql启动报错的解决办法
  • 让mac桌面变整洁的方法
  • ubuntu下的vivado2022怎么打开
  • macbook屏幕自动亮度调节
  • win10version最新版本
  • scanregistry.exe - scanregistry是什么进程 有什么用
  • win10预览版和正式版区别
  • iframe 自适应宽度和高度
  • jquery插件使用教程
  • jquery的使用步骤
  • bat批处理命令大全
  • 工程合同可以违背国家规范吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设