位置: 编程技术 - 正文

简单谈谈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)

  • 税务局纳税申报网站官网
  • 销售部门使用的管理设备计提的折旧应计入的账户为
  • 电汇汇票和电汇的异同点
  • 合并报表成本法和权益法区别
  • 航天信息服务费不交可以吗
  • 工程施工企业的账务处理
  • 增值税专用发票抵扣税额是什么意思
  • 房产税的计税依据有哪些
  • 费用摊销怎么做
  • 营改增举例说明
  • 医院收到工会的钱怎么办
  • 报废物资收入计入什么科目旧准则
  • 企业为什么要签订集体合同
  • 生产企业出口发票数量开错有什么影响
  • 增值税缴纳计入成本吗
  • 应纳增值税计算公式怎么算
  • 固定资产折旧年限的最新规定2023
  • 酒店水电费分录
  • 设备租赁收入属于什么收入
  • 压缩包损坏修复软件
  • 如何在Excel中进行数据筛选
  • 如何玩转win11
  • 事业单位年终事迹材料
  • php add
  • 公司刚成立多久可以注销
  • 分批供货付款方式
  • PHP:pg_escape_bytea()的用法_PostgreSQL函数
  • 公益性捐赠支出的标准
  • 对公账户转私人账户有限额吗
  • 下岗职工生活费最多发多少个月
  • 借款业务包括以下哪些形式
  • 公司收到个人汇款怎么办
  • linux编译安装php扩展命令
  • 进销项抵扣规则
  • php后端主要会涉及到哪些技术
  • visual studio code怎么创建vue项目
  • 微软edge插件
  • jmeter接口串联
  • 运行vue项目的快捷键
  • detr训练自己的数据集
  • _ html
  • 深度解析冯德伦最后为什么选了舒淇
  • 库存亏损要缴纳增值税吗
  • 个人向公司借款协议书范本
  • 增值税年末留底
  • 对公账户的种类有几种
  • 走工资支付福利怎么算
  • 织梦网站怎么改logo
  • 公司基本户如何注销
  • 国税实名认证手机号如何解绑
  • 现金流量表怎么填写
  • 银行转账付款会计分录
  • 资产负债表应付职工薪酬是负数是什么原因
  • 延期付款利息收入要交增值税吗
  • 低值易耗品摊销借贷方向
  • 同一控制下的企业合并和非同一控制下的企业合并的区别
  • 如何查看员工社保
  • 固定资产发票未到可以确认固定资产吗
  • 企业开了发票
  • sqlserver怎么删除字段
  • ubuntu搭建网站教程
  • 国产操作系统有免费的吗
  • windows怎么查
  • win7系统压缩包
  • windows7中ie浏览器怎么打开
  • linux命令date
  • win7系统磁盘分区必须分区为什么才能安装
  • win8如何打开任务管理器
  • Win7如何卸载dualmonitor
  • cocos creator 优化 drawcall 合并
  • 用vue写登录页面
  • python3利用smtplib通过qq邮箱发送邮件方法示例
  • python视频下载
  • javascript入门教程
  • javascript基础
  • 2022河南省地方专项计划分数线
  • 核准类结算账户包括
  • 湖北税务发票查询系统网
  • 厦门市税务局电话
  • 住宅区地下车位产权归属
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设