如何使用简单 PHP 对象 POPO (Plain old PHP Object) 来优化你的代码
如果您熟悉 Java,可能您已经知道 POJO (普通 Java 类). 因为 POJO 这个词最早是由 Martin Fowler、Rebecca Parsons 和 Josh MacKenzie 于 2000 年在 Java 编程语言上创造的。 POJO 使我们更容易理解类对象中的数据结构类型。
我们有如下的问题:
- POJO 在另一种编程语言中的名称是什么?
- 为什么在现代 PHP 编程中使用 POPO?
- 如何在现代 php 编程中制作 POPO?
- 如何在现代 PHP 编程中实现 POPO?
1.那么在另一种编程语言中 POJO 的名字是什么呢?
关于普通旧对象的约定是 “普通旧编程语言对象”。如果你在 Ruby 上,你可以调用 PORO(普通旧 Ruby 对象),也许 Rubyist 已经知道了。如果是在 PHP 中,则被称为 POPO(普通旧 PHP 对象)。如果每种语言都有一个类,那么它们都可以实现普通的旧对象。
2为什么在现代 PHP 编程中使用 POPO ?
POPO 可以指导我们了解数据结构,并让我们清楚地了解对象上的数据类型。 你可以在 POPO 中创建 DTO(数据传输对象),例如:“toArray ()”,“castToClass ()”,“toJSON ()” 之类的。所以数据或值不是在变量中,而是在基于类对象的。它可以为你提供关于如何从对象 A 到对象 B 进行通信的标准化。 给你更少的函数参数,你只需通过 POPO 类。在现代的 PHP 编程 web 应用程序中,我们经常使用 MVC(模型、视图、控制器),它会经常与每个对象通信。从控制器到 service,控制器从 service 获取数据返回,并返回到视图。有了 POPO,我们可以更好地与每个对象通信。
3.如何在 PHP 编程中定义 POPO?
你可以通过定义什么类、什么属性来使用 POPO?POPO 应该有 setter 和 getter。首先定义类,食品有属性名、价格、数量和总价。然后我们可以通过食品 POPO 上的 setter 函数来设置值。如果我们想把它转换成 JSON,我们
- 可以调用 “toJSON ()” 函数等。你可以根据自己的需要开发。例如:
4.如何在现代 PHP 编程中实现 POPO ?
你可以通过创建新的 POPO 来启动它。在上面的例子中,我们可以用 php 语法调用 “new Food ()”。
例 1 (简单 Controller):
在例 1 中,我们使用 toArray () 与 Model 通信。
示例 2 (Controller, Service and Model):
我们将类对象传递给 service
我们使用 toArray () 来与 Model 通信。
在下面的 food 服务中,没有 POPO 函数使他看起来不可维护,太多参数了。
结论
这是现代 PHP 中的一个快速实现。你可以使用 POPO 简化你的参数函数,你可以得到更好地通信每个对象或类。
参考
更多学习内容请访问:
腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)
最新文章
- 创建Hello World程序(part-1)
- .offset().top是什么意思?
- 【译】用jQuery 处理XML-- jQuery与XML
- 分布式缓存技术memcached学习(一)——linux环境下编译memcahed
- 【转】有向图强连通分量的Tarjan算法
- 20个Linux系统监视工具
- (转)将wcf 以webservice的方式调用
- linux下mysql的远程连接
- BZOJ 1355: [Baltic2009]Radio Transmission [KMP 循环节]
- 吾八哥学Selenium(四):操作下拉框select标签的方法
- 【一天一道LeetCode】#97. Interleaving String
- qt 窗口鼠标穿透
- ATS 相关
- [转帖]oracle改版sql server问题点汇总
- Python、Lua和Ruby三大语言脚本哪家强?
- npm install 报错(npm ERR! errno -4048,Error: EPERM: operation not permitted,)解决方法
- listen()函数中backlog参数分析
- Android-JVM中的多线程&;垃圾回收
- js数据绑定(模板引擎原理)
- jQuery的Ajax操作小结——$.ajax和$.getJSON等用法小结
热门文章
- "多行文本"组件:<;multi>; —— 快应用组件库H-UI
- 【python实现卷积神经网络】激活函数的实现(sigmoid、softmax、tanh、relu、leakyrelu、elu、selu、softplus)
- 刨根问底系列(3)——关于socket api的原子操作性和线程安全性的探究和实验测试(多线程同时send,write)
- tf.train.GradientDescentOptimizer 优化器
- 搭建WEB、NFS共享、sersync实时同步以及全网定时备份服务流程
- 搭建vue2.0开发环境及手动安装vue-devtools工具
- 11-JS变量
- 如何正确管理HBase的连接,从原理到实战
- webpack 中常用安装插件的一些命令
- caddy配置php-fpm