为什么我要开始用PHP编写面向对象的代码?

为什么我要开始用PHP编写面向对象的代码?,php,oop,Php,Oop,我已经使用普通PHP有一段时间了。我的正式代码培训是零。无论我学到了什么,我都在PHP文档网站、MySQL文档等上找到了 我从头开始编写PHP。我使用函数来处理重复出现的任务,我应用MVC来编写更易于维护的代码,最近我用我的一些函数编写了一个很好的小库,这样我可以在未来的项目中节省时间。长话短说,我不是什么大师,我与PHP有着良好的关系,到目前为止,它似乎为我完成了一些事情 所以我的问题如下:为什么我应该开始用PHP编写面向对象的代码?它将如何使我的编程生活变得更好?为什么它比传统的做事方式更好

我已经使用普通PHP有一段时间了。我的正式代码培训是零。无论我学到了什么,我都在PHP文档网站、MySQL文档等上找到了

我从头开始编写PHP。我使用函数来处理重复出现的任务,我应用MVC来编写更易于维护的代码,最近我用我的一些函数编写了一个很好的小库,这样我可以在未来的项目中节省时间。长话短说,我不是什么大师,我与PHP有着良好的关系,到目前为止,它似乎为我完成了一些事情


所以我的问题如下:为什么我应该开始用PHP编写面向对象的代码?它将如何使我的编程生活变得更好?为什么它比传统的做事方式更好?

使用OO,您可以更快、更干净地开发应用程序。通过扩展Existing类(减少代码基数),可以很容易地重用它们

使用OO设计,您在任何时候都只需要处理一小段代码,而不是处理一个包含3000多行代码的文件中的一堆函数。你也应该照顾孩子
.OOP是为了使编程语言更接近现实生活而设计的

这是什么意思? 我们生活在一个物体的世界里。你是一个对象(
),你住在一个对象
房子
房子
对象(以及任何其他
房子
对象)有一个
房子::$address
房子:$number
,你的房子可能包含其他对象,如
客厅
厨房
厨房
可以容纳
烤箱
炉子
冰箱
,它们都是
KitchenAppliance
对象的扩展

OOP编程采用这种方法,并将其融入编程世界

这对我有什么帮助? 嗯,有几件事:

  • 它使您的代码更易于维护。如果将数据库连接视为一个对象(也就是说,可以有多个数据库连接,它们共享方法属性,但每一个都在不同的实例上执行),则可以将程序分为对象,而不是将程序分为任务(函数),它使它更容易理解和维护
  • 它使您的代码更具可读性。使用
    类定义对象,然后使用
    新类名()
    关键字调用它
  • 它允许扩展性和灵活性。就像
    KitchenAppliance
    可以扩展到
    烤箱
    炉子
    一样,您的对象和类也可以扩展
总结
面向对象编程具有许多优点。它需要一种稍微不同的思维方式,但最终是值得的。

一个词:凝聚力

当您开始使用对象开发软件时(特别是当这些对象使用时),您会发现通用功能开始被吸引到它们自己的专门类中,这些类可以重用。这使得维护和增强软件变得更加容易,并产生更高质量的软件

例如:

许多应用程序使用会话来存储各种内容。当所有会话数据由专门的会话管理器类管理时,负责处理会话的所有代码都保存在一个地方。如果您想更改应用程序使用会话数据的方式(可能是为了使其更安全或更高效),您只需要在一个地方更改代码

三个月前我跳转到OOP PHP,这是我做过的最好的事情之一

我刚开始,刚结束。这两本书对我都有很大帮助,我强烈推荐它们


学习曲线相当高。但是我保证,你会很高兴你转向了OOP。

当然,你可以在不使用任何对象的情况下编写代码,并尝试实现类似MVC的设计/模式

我不想回答为什么要用OOP编程。这是你可以读入的

我认为您想知道,您的编码行为会在何时以及为什么会失败:

  • 这可能是在你试图与另一个人一起工作的时候。另一个程序员将永远不会发现您的代码可读。他需要很长时间才能理解你的软件是如何工作的
  • 我认为在团队合作的代码中很难将任务分开。您的文件是如何分离的,命名约定是如何的?你必须自己解决这个问题,不要重复使用所有已知的模式
  • 你在用第三方的东西做什么?如何整合它们?我不知道任何不使用OOP模式的可用库

当然还有很多问题是可以解决的,但是每次你失去了让别人理解你的代码并在其他程序中重用它的可能性时…

你已经得到了很多全面的答案,所以我将使用一个论点:设计模式。()

您可以找到解决commons问题的解决方案,这可以节省您的时间并提高代码的质量

一些设计模式示例:

  • 策略模式()-用于在课堂上使用不同的alghoritms/解决方案,而不进行更改
  • 观察者模式()-当对象的状态改变时,您可以调用不同的操作(并在执行期间注册它们)
  • Decorator模式()-您可以动态扩展对象,并以与旧对象相同的方式使用新对象
坦率地说,如果你想更好地理解OOP,你必须:

  • 学习或理解常见的设计模式
  • 开始使用单元测试,您会发现缺乏依赖注入在糟糕的体系结构中可能是真正的痛苦
  • 学以致用