

Protected vs Private Scope: Arrogance, Fear, and Handcuffs - vlucas
http://www.vancelucas.com/blog/protected-vs-private-scope-arrogance-fear-and-handcuffs/

======
ldh
" _I know the right way to use this code and I have thought of all the
possible use cases. If you don’t agree, then you have to prove me wrong and
wait until I either agree or figure out a better right way for you._ This is
the real message developers hear when internal code is private scope or marked
with the final keyword – a message that they have arbitrarily limited power
and ability to make changes where they need to. But it doesn’t stop there."

Maybe I'm missing something, but I kind of agree with the (italicized) straw
man argument the article is trying to refute. My private implementation
details should be irrelevant if I give you a public API, and it's likely that
I _have_ thought it through enough to tell what'll be useful. Furthermore I
can change the implementation without breaking you. If you need to muck around
with the private implementation details, there's something missing from the
public API. What happens if the original author wants to change the
implementation later?

Hiding the implementation details just seems like reasonable encapsulation to
me. Is there something specific to the PHP world which places less emphasis on
this than I'm accustomed to?

