Re: OOP versus Procedural/Functional [message #177627 is a reply to message #177556] |
Wed, 11 April 2012 11:16 |
crankypuss
Messages: 147 Registered: March 2011
Karma:
|
Senior Member |
|
|
On 04/09/2012 01:35 PM, Mr. B-o-B wrote:
> I was curious about peoples thoughts in regards to OOP with PHP.
>
> Are there pro's/con's of writing OOP code versus procedural/functional
> coding?
>
> Strictly speaking for PHP, I do the bulk of my coding as
> procedural/functional. I really haven't found any added benefit to going
> the OOP route.
>
> Am I missing something, or is it just a different approach to the same
> problem?
OOP is basically a good idea carried to an extreme.
There is a boatload of value in the concept of inheritance, but that's
largely negated by the mechanics of how inheritance is done in OOP
languages.
Polymorphism is something that's more in the eye of the programmer than
in the language, data constructs can be specific or generalized.
The idea that making something into an object gives it superior
robustness is a joke if you can step back and look at it.
I remember writing a Java application and trying to derive an actually
useful string class from the garbage they had declared "final" and that
was it for me and Java. I cannot begin to count the times when I've had
to hoke up an object pointer to use some simple processing method that
was part of a C++ class.
Of course that's all personal opinion. I avoid all OOP constructs in
PHP wherever I can, the more closely I can make it resemble C the easier
it will be to convert it when the time comes. There is one exception to
that in my code, one of the zip functionalities is only supported
through some objects... that stuff is encapsulated in a subroutine.
Since I value inheritance I've build myself a layered methodology that
lets me override various functions by adding or inserting different
layers at runtime.
Perhaps the nicest thing about programming is that it puts the lie to
religious adherences... as one of my college instructors put it, "if
your program works for all cases it is by definition correct".
|
|
|