如果您熟悉 Java,可能您已经知道 POJO (普通 Java 类). 因为 POJO 这个词最早是由 Martin Fowler、Rebecca Parsons 和 Josh MacKenzie 于 2000 年在 Java 编程语言上创造的。 POJO 使我们更容易理解类对象中的数据结构类型。

我们有如下的问题:

  1. POJO 在另一种编程语言中的名称是什么?
  2. 为什么在现代 PHP 编程中使用 POPO?
  3. 如何在现代 php 编程中制作 POPO?
  4. 如何在现代 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,我们

  1. 可以调用 “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 简化你的参数函数,你可以得到更好地通信每个对象或类。

参考

  1. Plain old Java Object
  2. Data Transfer Object

更多学习内容请访问:

腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)

如何使用简单 PHP 对象 POPO (Plain old PHP Object) 来优化你的代码的更多相关文章

  1. javascript自定义简单map对象功能

    这里介绍一种js创建简单map对象的方法: function Map() { //创建object对象, 并给object对象添加key和value属性 var obj1=new Object(); ...

  2. 在C#中实现简单的对象池

    当我们频繁创建删除大量对象的时候,对象的创建删除所造成的开销就不容小觑了.为了提高性能,我们往往需要实现一个对象池作为Cache:使用对象时,它从池中提取.用完对象时,它放回池中.从而减少创建对象的开 ...

  3. Java网络与多线程系列之1:实现一个简单的对象池

    前言 为什么要从对象池开始呢,先从一个网络IO操作的demo说起 比如下面这段代码,显而易见已经在代码中使用了一个固定大小的线程池,所以现在的重点在实现Runnble接口的匿名对象上,这个对象每次创建 ...

  4. Java基础-SSM之Spring的POJO(Plain Old Java Object)实现AOP

    Java基础-SSM之Spring的POJO(Plain Old Java Object)实现AOP 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 上次我分享过Spring传统的A ...

  5. 代码轮子之很简单但是挺管用的基于C# Task的模拟并发的代码

    代码轮子之很简单但是挺管用的基于C# Task的模拟并发的代码

  6. 该对象尚未初始化。请确保在所有其他初始化代码后面的应用程序启动代码中调用 HttpConfiguration.EnsureInitialized()。

    WebAPI使用属性路由,配置config.MapHttpAttributeRoutes();后出现错误: System.InvalidOperationException: 该对象尚未初始化.请确保 ...

  7. 简单类型对象 String

    简单值不是对象,因此也没有属性方法,因此运行下面代码时   var s1 = “some text”; var s2 = s1.substring(2);   实际上是运行在read模式,字符串的值会 ...

  8. 用最简单的例子理解对象为Null模式(Null Object Pattern)

    所谓的"对象为Null模式",就是要求开发者考虑对象为Null的情况,并设计出在这种情况下的应对方法. 拿"用最简单的例子理解策略模式(Strategy Pattern) ...

  9. Unity实现简单的对象池

    一.简介 先说说为什么要使用对象池 在Unity游戏运行时,经常需要生成一些物体,例如子弹.敌人等.虽然Unity中有Instantiate()方法可以使用,但是在某些情况下并不高效.特别是对于那些需 ...

随机推荐

  1. MD5中使用16进制

    MD5中使用16进制消息摘要 分类: java_secruity2012-12-28 13:11 719人阅读 评论(0) 收藏 举报 消息摘要 由于数据在计算机中的表示,最终以二进制的形式存在,所以 ...

  2. d3.js v4曲线图的拖拽功能实现Zoom

    zoom缩放案例 源码:https://github.com/HK-Kevin/d...:demo:https://hk-kevin.github.io/d3...: 原理:通过zoom事件来重新绘制 ...

  3. 爬取腾讯网的热点新闻文章 并进行词频统计(Python爬虫+词频统计)

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:一棵程序树 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  4. E2. Send Boxes to Alice (Hard Version)

    秒的有点难以理解:https://blog.csdn.net/weixin_42868863/article/details/103200132 #include<bits/stdc++.h&g ...

  5. win10下cuda安装以及利用anaconda安装pytorch-gpu过程

    安装环境:win10+2070super 1.Cuda的下载安装及配置 (1)测试本机独立显卡是否支持CUDA的安装,点击此处查询显卡是否在列表中. (2)查看自己是否能右键找到NVIDA控制面板,如 ...

  6. 今天开始让我们一起来学JavaScript吧!(今天先扯先别的)

    1.为什么要学习JavaScript? 首先它是web开发人员必须学习的3门语言之一: ①HTML定义了网页的内容 ②CSS描述了网页的布局: ③JavaScript网页的行为 首先JavaScrip ...

  7. 4. css事件

    可通过使用css伪类实现点击元素变色的效果,两个伪类是:active, :focus :active :active选择器用于选择活动链接.当在一个链接上点击时,它就会成为活动的(激活的),:acti ...

  8. 乱 七 八 糟 $(n.)$

    \(2020/4/22\) 今天常规作业还是太慢了,白天似乎已经抓紧了,但总还能挤出时间来的.八点钟了还有物理和英语作业,回去又得很晚睡. 还是容易开小差,不过回忆了一下,今天化学课还是太懒散,其余的 ...

  9. Laravel - 上手实现 - 邮件发送

    Laravel 自带 SwiftMailer 库,集成了多种邮件API,可以很方便的实现邮件的发送. 我们使用到的是SMTP(Simple Message Transfer Protocol)简单邮件 ...

  10. django基础(一) - 安装和配置文件

    django介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C. <div style='color: red'> ...