Re: phpsadness

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 27, 2011 at 12:52 PM, Daevid Vincent <daevid@xxxxxxxxxx> wrote:

> A friend sent me this URL today. While amusing, he's got many valid points
> and I certainly share in his frustration.
>
> http://www.phpsadness.com
>

Some points are valid, but many others show a lack of understanding of PHP
and OOP in general.

* #18 (as stated) is intentional. If you want an instance property--use an
instance property! A static variable in an instance method could do one of
two things: create a static variable private to the method or an instance
variable private to the method. But using "static" to create an instance
property would be very confusing.

* #24 on reflection methods. I agree that the lack of documentation is sad,
but allowsNull() and isOptional() are definitely separate. Any parameter
with a type hint (array or class) will allow null only if it has a null
default value. So a parameter can be optional and disallow null and vice
versa.

* #33 The point of private methods is to block subclasses (and other
classes) from accessing or overriding them. Yes, it makes mocking them
impossible, but this is a core OOP concept. Make those methods protected and
put a comment on them stating that they should not be overridden by
subclasses if you need to mock them.

* #41 You can create a final class with a private constructor or better yet
simply *avoid* instantiating the class. Problem solved. Seriously, who cares
if someone instantiates your class full of static methods?

Hopefully we're all a little less sad now. :)

David

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux