我经常一次又一次地问自己这个问题。在PHP中封装数据有什么用?虽然我确实理解隐藏数据或从公共设计实现应用程序的用法和用途。我同意这种方式,我可以通过不允许其他开发人员看到我如何实现其他方法来实现很多安全性。现在在PHP的情况下,我仍然有一些未解决的问题。
a)如何在PHP中封装数据 会帮助我,因为PHP没有 提供任何加密系统(我知道 虽然很少,但我正在谈论 general)将加密我的来源 任何人都可以阅读代码 总能回来看看我的来源和 相应地修改违反规则。 现在这奠定了整个目的 数据封装不是吗?
现在可能有不同的情况我可能要处理使用PHP让我考虑两种情况,我根据情况有两个交易。
情况A:
客户希望我开发一个Web 应用程序,将存储 本地进入他的台式机和 从那里访问。在上下文中 这种情况我无能为力 确保没有人接触到来源 码。封装数据是没有的 在这里使用我明白了。不是吗?
情况B:
我需要开发一个Web应用程序 它将托管在服务器和 从那里访问,我有 定义了几个有界的类 通过封装,但我想要其他 开发人员通过扩展类 利用Public API。我真的这么做 我对如何允许没有任何想法 任何人(开发人员)使用我的扩展 在这种情况下上课?我真的 不确定如何公开API的东西 工作??如果有人,我将不胜感激 可以对逻辑有所了解 在实施PUBLIC API背后。并且是 这是Data Encapsulation的来源 进入图片?这是唯一的 我迫切需要的情况 要实现的封装 在我的申请中?
谢谢。
答案 0 :(得分:2)
您不使用封装,因为它会阻止人们触摸您的代码,但是因为您希望为对象创建有限但专用的公共API来交换消息。这是OOP范式中的一个关键因素。目标不是安全,而是可维护和灵活的应用程序。如果人们想修改你的代码,那就试试吧。他们是成年人。
答案 1 :(得分:1)
我相信你在这里混音。一方面是数据封装的设计原则,另一个概念是源代码的可用性或逆向工程。
数据封装对您的开发团队很重要。它的优点是代码更加可重用,这得益于清晰的接口,代码更易于阅读和理解,因为数据在逻辑上是分开的。
这与代码可用性和反向工程代码的可能性无关。即使数据被封装,您的代码仍然可以被查看和分析。
当您发布封闭源库时,这些概念会遇到。您希望确保它具有明确的公共API,作为接口提供,并且您希望确保它已加密,因此没有人可以复制其内部。