By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
449,423 Members | 1,294 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 449,423 IT Pros & Developers. It's quick & easy.

php 5 classes: public, protected and private

P: n/a
Hi,

finally giving php 5 a go, and going over the new approach to classes.
Can someone clarify the public, private and protected to me?

I quote the php manual: "The visibility of a property or method can be
defined by prefixing the declaration with the keywords: public,
protected or private. Public declared items can be accessed
everywhere."

But should I read "...can be accessed everywhere within a given class."
or "...can be accessed by all other classes." ?

Job

Nov 27 '06 #1
Share this Question
Share on Google+
86 Replies


P: n/a
jopperdepopper wrote:
Hi,

finally giving php 5 a go, and going over the new approach to classes.
Can someone clarify the public, private and protected to me?

I quote the php manual: "The visibility of a property or method can be
defined by prefixing the declaration with the keywords: public,
protected or private. Public declared items can be accessed
everywhere."

But should I read "...can be accessed everywhere within a given class."
or "...can be accessed by all other classes." ?

Job
Job,

You should read "can be accessed everywhere".

Private members can be accessed by members of the class only.
Protected members can be accessed by members of the class or a derived
class.
Public members can be accessed by anyone, including other classes,
functions and any other code.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 27 '06 #2

P: n/a
>
You should read "can be accessed everywhere".

Private members can be accessed by members of the class only.
Protected members can be accessed by members of the class or a derived
class.
Public members can be accessed by anyone, including other classes,
functions and any other code.

Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
to classes, and so far having a hard time. I fail to see the 'why'
behind the 'public, protected and private' and stuff like abstraction,
interfaces and whatnot. Feels like things are being over-complicated
somehow... or it's just my being inexperienced on this...

Any other reading material on this suggested, someone?

Nov 27 '06 #3

P: n/a
jopperdepopper wrote:
>>You should read "can be accessed everywhere".

Private members can be accessed by members of the class only.
Protected members can be accessed by members of the class or a derived
class.
Public members can be accessed by anyone, including other classes,
functions and any other code.

Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
to classes, and so far having a hard time. I fail to see the 'why'
behind the 'public, protected and private' and stuff like abstraction,
interfaces and whatnot. Feels like things are being over-complicated
somehow... or it's just my being inexperienced on this...

Any other reading material on this suggested, someone?
Look for some good books on OO theory and design.

Two of the concepts in OO are 'encapsulation' and 'methods'.

Encapsulation means the internals of an object are managed only by that
object and are not available to anyone else. In PHP these are private
members.

Methods are implemented as functions in PHP. They operate on the object.

The idea is to completely separate the implementation of the class from
the use of it. It means you can change the class any way you want. As
long as the public interface remains the same, it makes no difference.

A good example of this is floating point numbers. They are stored as a

x * 2^y

X is the mantissa, y is the base 2 exponent. For instance, 8 would be
stored as x=1 and y=3, because 8 is 1 * 2^3. But all of this is hidden
behind the scenes; you can do operations on a floating point number such
as add, subtract, print, etc.

And if at some other time PHP changed the implementation to something
else, none of your code would change.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 27 '06 #4

P: n/a
Look for some good books on OO theory and design.
Thanks Jerry, maybe the php 5 approach is a better implementation than
the php 4 approach? I have always felt that in php 4 using classes (or
at least my way of using them) was more a convenient way to organise
code, grouping some related functions in one class, other related ones
in another...

Gotta get me some books & hope it's going to be a loooong coooold
winter ;)

Nov 27 '06 #5

P: n/a
jopperdepopper wrote:
>>Look for some good books on OO theory and design.


Thanks Jerry, maybe the php 5 approach is a better implementation than
the php 4 approach? I have always felt that in php 4 using classes (or
at least my way of using them) was more a convenient way to organise
code, grouping some related functions in one class, other related ones
in another...

Gotta get me some books & hope it's going to be a loooong coooold
winter ;)
Yes, I think it is - but then I've been doing OO programming for a
number of years, both in C++ and Java.

Classes are a good way to organize code - but more importantly, they are
a way of organizing code AND DATA. A properly constructed class should,
as much as possible, manage it's own data independent of other classes
and code.

It's a whole different way of thinking which is usually quite a jump for
experienced programmers. In fact, I find newer programmers typically
have less problems, because structured code techniques are not so deeply
ingrained in their mind. :-)

But it's well worth it; the resulting code can be much more readable and
maintainable.

A good example. I needed to implement some pages based on a database.
However, the particular host being used at the time did not have MySQL
available (they claimed they did, but it wasn't very reliable...).

So I implemented the code in flat files using a class for the data being
displayed, and pages to use that class. Later, when they changed to a
host which had MySQL, all I had to do was go back to the class and
change it to read from a database instead of a flat file. No changes to
the pages were needed at all. Very clean and easy to do, because I
segregated the operations on the data in the class, and used the web
page code just to display the data.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 27 '06 #6

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Ib******************************@comcast.com. ..
jopperdepopper wrote:
>>>You should read "can be accessed everywhere".

Private members can be accessed by members of the class only.
Protected members can be accessed by members of the class or a derived
class.
Public members can be accessed by anyone, including other classes,
functions and any other code.

Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
to classes, and so far having a hard time. I fail to see the 'why'
behind the 'public, protected and private' and stuff like abstraction,
interfaces and whatnot.
Intefaces are not necessary in PHP. Once you have defined a method it is a
total waste to time to also define an interface. Interfaces are a "fix" in
those languages as a means of dealing with optional arguments and statyic
typing. PHP has ifferent ways of dealing with bth of these, therefore
interfaces serve no useful purpose.
>Feels like things are being over-complicated
somehow... or it's just my being inexperienced on this...

Any other reading material on this suggested, someone?

Look for some good books on OO theory and design.

Two of the concepts in OO are 'encapsulation' and 'methods'.

Encapsulation means the internals of an object are managed only by that
object and are not available to anyone else. In PHP these are private
members.
Wrong. Encapsulation means that the data and the functions which operate on
that data are contained (encapsulated) within a single object. While the
methods (functions) thenselves may be visible the code behind those methods
(i.e. the implementaton behind those methods) is not. Encapslation is NOT
about hiding information, it is about hiding the implementation. It is not
necessary to use public/private/protected on any methods or properties. It
does not add any functionality, it merely creates restrictions which often
get in the way.
Methods are implemented as functions in PHP. They operate on the object.
That's one thing you got right.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Nov 27 '06 #7

P: n/a
..oO(Tony Marston)
>Intefaces are not necessary in PHP. Once you have defined a method it is a
total waste to time to also define an interface. Interfaces are a "fix" in
those languages as a means of dealing with optional arguments and statyic
typing. PHP has ifferent ways of dealing with bth of these, therefore
interfaces serve no useful purpose.
What's called an interface in PHP is a completely different mechanism
than what you described above.
>Wrong. Encapsulation means that the data and the functions which operate on
that data are contained (encapsulated) within a single object. While the
methods (functions) thenselves may be visible the code behind those methods
(i.e. the implementaton behind those methods) is not. Encapslation is NOT
about hiding information, it is about hiding the implementation. It is not
necessary to use public/private/protected on any methods or properties.
Of course it is necessary.
>It
does not add any functionality, it merely creates restrictions which often
get in the way.
It prevents developers from doing things that shouldn't be done, for
example calling an internal method out of context. I don't want all my
methods being publicly available, simply in order to avoid errors and
unpredictable results.

Micha
Nov 27 '06 #8

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Ib******************************@comcast.com. ..
>>jopperdepopper wrote:
>>>>You should read "can be accessed everywhere".

Private members can be accessed by members of the class only.
Protected members can be accessed by members of the class or a derived
class.
Public members can be accessed by anyone, including other classes,
functions and any other code.

Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
to classes, and so far having a hard time. I fail to see the 'why'
behind the 'public, protected and private' and stuff like abstraction,
interfaces and whatnot.


Intefaces are not necessary in PHP. Once you have defined a method it is a
total waste to time to also define an interface. Interfaces are a "fix" in
those languages as a means of dealing with optional arguments and statyic
typing. PHP has ifferent ways of dealing with bth of these, therefore
interfaces serve no useful purpose.
Ah, the great Tony Marston is back to trolling again.

Wrong. In OO terms, the interface is the way to interact with the
object. It consists of all public members - both methods (functions, in
PHP) and variables. And for derived classes, the base class adds
protected members.

A PHP interface is something entirely different.
>
>>>Feels like things are being over-complicated
somehow... or it's just my being inexperienced on this...

Any other reading material on this suggested, someone?

Look for some good books on OO theory and design.

Two of the concepts in OO are 'encapsulation' and 'methods'.

Encapsulation means the internals of an object are managed only by that
object and are not available to anyone else. In PHP these are private
members.


Wrong. Encapsulation means that the data and the functions which operate on
that data are contained (encapsulated) within a single object. While the
methods (functions) thenselves may be visible the code behind those methods
(i.e. the implementaton behind those methods) is not. Encapslation is NOT
about hiding information, it is about hiding the implementation. It is not
necessary to use public/private/protected on any methods or properties. It
does not add any functionality, it merely creates restrictions which often
get in the way.
Wrong again, Tony. Encapsulation means internal representations of the
object are not visible outside of the class. Just like the base &
mantissa are not visible outside of a floating point number.
>
>>Methods are implemented as functions in PHP. They operate on the object.


That's one thing you got right.
More than you got right. Go crawl back into your hole and don't come
out again until you know what you're talking about.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 28 '06 #9

P: n/a

"Michael Fesser" <ne*****@gmx.dewrote in message
news:fd********************************@4ax.com...
.oO(Tony Marston)
>>Intefaces are not necessary in PHP. Once you have defined a method it is a
total waste to time to also define an interface. Interfaces are a "fix" in
those languages as a means of dealing with optional arguments and statyic
typing. PHP has ifferent ways of dealing with bth of these, therefore
interfaces serve no useful purpose.

What's called an interface in PHP is a completely different mechanism
than what you described above.
I disagree. It is possible to define a function (method) within a class,
then to define a separate thng called an "interface". It is possible access
he function without using the interface, therefore the inteface is not
necessary.
>>Wrong. Encapsulation means that the data and the functions which operate
on
that data are contained (encapsulated) within a single object. While the
methods (functions) thenselves may be visible the code behind those
methods
(i.e. the implementaton behind those methods) is not. Encapslation is NOT
about hiding information, it is about hiding the implementation. It is not
necessary to use public/private/protected on any methods or properties.

Of course it is necessary.
I disagree. it is *not* necessary for the simple reason that the code will
perform exactly the same function whether methods and properties are marked
as public/private/protected or not.
>>It
does not add any functionality, it merely creates restrictions which often
get in the way.
That is why I said "It does not add any functionality, it merely creates
restrictions"
It prevents developers from doing things that shouldn't be done, for
example calling an internal method out of context. I don't want all my
methods being publicly available, simply in order to avoid errors and
unpredictable results.
That is a matter for programmer discipline, it is not a matter of additional
functionality. The code will do exactly the same with or without it.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Nov 28 '06 #10

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:j9******************************@comcast.com. ..
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Ib******************************@comcast.com ...
>>>jopperdepopper wrote:

>You should read "can be accessed everywhere".
>
>Private members can be accessed by members of the class only.
>Protected members can be accessed by members of the class or a derived
>class.
>Public members can be accessed by anyone, including other classes,
>functions and any other code.

Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
to classes, and so far having a hard time. I fail to see the 'why'
behind the 'public, protected and private' and stuff like abstraction,
interfaces and whatnot.


Intefaces are not necessary in PHP. Once you have defined a method it is
a total waste to time to also define an interface. Interfaces are a "fix"
in those languages as a means of dealing with optional arguments and
statyic typing. PHP has ifferent ways of dealing with bth of these,
therefore interfaces serve no useful purpose.

Ah, the great Tony Marston is back to trolling again.

Wrong. In OO terms, the interface is the way to interact with the object.
It consists of all public members - both methods (functions, in PHP) and
variables. And for derived classes, the base class adds protected
members.

A PHP interface is something entirely different.
I disagree. It is possible to define a function (method) within a class,
then to define a separate thing called an "interface". It is possible access
the function without using the interface, therefore the interface is not
necessary.
>>
>>>>Feels like things are being over-complicated
somehow... or it's just my being inexperienced on this...

Any other reading material on this suggested, someone?
Look for some good books on OO theory and design.

Two of the concepts in OO are 'encapsulation' and 'methods'.

Encapsulation means the internals of an object are managed only by that
object and are not available to anyone else. In PHP these are private
members.


Wrong. Encapsulation means that the data and the functions which operate
on that data are contained (encapsulated) within a single object. While
the methods (functions) thenselves may be visible the code behind those
methods (i.e. the implementaton behind those methods) is not.
Encapslation is NOT about hiding information, it is about hiding the
implementation. It is not necessary to use public/private/protected on
any methods or properties. It does not add any functionality, it merely
creates restrictions which often get in the way.

Wrong again, Tony. Encapsulation means internal representations of the
object are not visible outside of the class. Just like the base &
mantissa are not visible outside of a floating point number.
I disagree. Encapsulation means that both the data and the methods which
operate on that data are contained within a single unit or "capsule". The
data names and the method names may be visible, it is only the code which
lies behind each method name which is invisible. A piece of data may be
accessed directly, as in $object->var, or it may be accessed through a
getter, as in $object->getVar().

If you bothered to read the right books you will see that encapsulation
means "implementation hiding" and not "information hiding".
>>
>>>Methods are implemented as functions in PHP. They operate on the object.


That's one thing you got right.

More than you got right. Go crawl back into your hole and don't come out
again until you know what you're talking about.
I do know what I'm talking about..

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Nov 28 '06 #11

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:j9******************************@comcast.com. ..
>>Tony Marston wrote:
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Ib******************************@comcast.c om...
jopperdepopper wrote:
>>You should read "can be accessed everywhere".
>>
>>Private members can be accessed by members of the class only.
>>Protected members can be accessed by members of the class or a derived
>>class.
>>Public members can be accessed by anyone, including other classes,
>>functions and any other code.
>
>
>
>Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
>to classes, and so far having a hard time. I fail to see the 'why'
>behind the 'public, protected and private' and stuff like abstraction,
>interfaces and whatnot.
Intefaces are not necessary in PHP. Once you have defined a method it is
a total waste to time to also define an interface. Interfaces are a "fix"
in those languages as a means of dealing with optional arguments and
statyic typing. PHP has ifferent ways of dealing with bth of these,
therefore interfaces serve no useful purpose.

Ah, the great Tony Marston is back to trolling again.

Wrong. In OO terms, the interface is the way to interact with the object.
It consists of all public members - both methods (functions, in PHP) and
variables. And for derived classes, the base class adds protected
members.

A PHP interface is something entirely different.


I disagree. It is possible to define a function (method) within a class,
then to define a separate thing called an "interface". It is possible access
the function without using the interface, therefore the interface is not
necessary.
Tony,

You really need to learn about OO before spouting off. In OO terms, an
interface is something entirely different than a PHP interface.

PHP is not the only OO language. Some don't even have a term
"interface" as part of the language. But the still have an interface.

Try some of the books by James Rumbaugh, Grady Booch and/or Ivar Jacobson.
>
>>>>>Feels like things are being over-complicated
>somehow... or it's just my being inexperienced on this...
>
>Any other reading material on this suggested, someone?
>

Look for some good books on OO theory and design.

Two of the concepts in OO are 'encapsulation' and 'methods'.

Encapsulation means the internals of an object are managed only by that
object and are not available to anyone else. In PHP these are private
members.
Wrong. Encapsulation means that the data and the functions which operate
on that data are contained (encapsulated) within a single object. While
the methods (functions) thenselves may be visible the code behind those
methods (i.e. the implementaton behind those methods) is not.
Encapslation is NOT about hiding information, it is about hiding the
implementation. It is not necessary to use public/private/protected on
any methods or properties. It does not add any functionality, it merely
creates restrictions which often get in the way.

Wrong again, Tony. Encapsulation means internal representations of the
object are not visible outside of the class. Just like the base &
mantissa are not visible outside of a floating point number.


I disagree. Encapsulation means that both the data and the methods which
operate on that data are contained within a single unit or "capsule". The
data names and the method names may be visible, it is only the code which
lies behind each method name which is invisible. A piece of data may be
accessed directly, as in $object->var, or it may be accessed through a
getter, as in $object->getVar().

If you bothered to read the right books you will see that encapsulation
means "implementation hiding" and not "information hiding".
Again, read the experts before spouting off. You have repeatedly shown
how little you understand about OO programming techniques.

And yes, encapsulation is "implementation hiding". And the variables
are part of the IMPLEMENTATION.
>
>>>>Methods are implemented as functions in PHP. They operate on the object.
That's one thing you got right.

More than you got right. Go crawl back into your hole and don't come out
again until you know what you're talking about.


I do know what I'm talking about..
Then why do you continually disagree with the recognized experts in the
OO community, like the ones I mentioned above?
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 28 '06 #12

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Pe******************************@comcast.com. ..
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:j9******************************@comcast.com ...
>>>Tony Marston wrote:

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Ib******************************@comcast. com...
>jopperdepopper wrote:
>
>
>>>You should read "can be accessed everywhere".
>>>
>>>Private members can be accessed by members of the class only.
>>>Protected members can be accessed by members of the class or a
>>>derived
>>>class.
>>>Public members can be accessed by anyone, including other classes,
>>>functions and any other code.
>>
>>
>>
>>Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
>>to classes, and so far having a hard time. I fail to see the 'why'
>>behind the 'public, protected and private' and stuff like abstraction,
>>interfaces and whatnot.
Intefaces are not necessary in PHP. Once you have defined a method it is
a total waste to time to also define an interface. Interfaces are a
"fix" in those languages as a means of dealing with optional arguments
and statyic typing. PHP has ifferent ways of dealing with bth of these,
therefore interfaces serve no useful purpose.
Ah, the great Tony Marston is back to trolling again.

Wrong. In OO terms, the interface is the way to interact with the
object. It consists of all public members - both methods (functions, in
PHP) and variables. And for derived classes, the base class adds
protected members.

A PHP interface is something entirely different.


I disagree. It is possible to define a function (method) within a class,
then to define a separate thing called an "interface". It is possible
access
the function without using the interface, therefore the interface is not
necessary.

Tony,

You really need to learn about OO before spouting off. In OO terms, an
interface is something entirely different than a PHP interface.
How so? All the documentation I have seen describes how an interface simply
describes a method which it imlements. If it is possible to access a method
(a function in PHP) without going though an interface, ten an interface is
not necessary in any language.
PHP is not the only OO language. Some don't even have a term "interface"
as part of the language. But the still have an interface.

Try some of the books by James Rumbaugh, Grady Booch and/or Ivar Jacobson.
>>
>>>>>>Feels like things are being over-complicated
>>somehow... or it's just my being inexperienced on this...
>>
>>Any other reading material on this suggested, someone?
>>
>
>Look for some good books on OO theory and design.
>
>Two of the concepts in OO are 'encapsulation' and 'methods'.
>
>Encapsulation means the internals of an object are managed only by that
>object and are not available to anyone else. In PHP these are private
>members.
Wrong. Encapsulation means that the data and the functions which operate
on that data are contained (encapsulated) within a single object. While
the methods (functions) thenselves may be visible the code behind those
methods (i.e. the implementaton behind those methods) is not.
Encapslation is NOT about hiding information, it is about hiding the
implementation. It is not necessary to use public/private/protected on
any methods or properties. It does not add any functionality, it merely
creates restrictions which often get in the way.
Wrong again, Tony. Encapsulation means internal representations of the
object are not visible outside of the class. Just like the base &
mantissa are not visible outside of a floating point number.


I disagree. Encapsulation means that both the data and the methods which
operate on that data are contained within a single unit or "capsule". The
data names and the method names may be visible, it is only the code which
lies behind each method name which is invisible. A piece of data may be
accessed directly, as in $object->var, or it may be accessed through a
getter, as in $object->getVar().

If you bothered to read the right books you will see that encapsulation
means "implementation hiding" and not "information hiding".

Again, read the experts before spouting off. You have repeatedly shown
how little you understand about OO programming techniques.

And yes, encapsulation is "implementation hiding". And the variables are
part of the IMPLEMENTATION.
I disagree. Inplementation is code, information is data. If you don't
believe me then read "Encapsulation is not information hiding" at
http://www.javaworld.com/javaworld/j...psulation.html and
also "Abstraction, Encapsulation, and Information Hiding" at
http://www.itmweb.com/essay550.htm
>>
>>>>>Methods are implemented as functions in PHP. They operate on the
>object.
That's one thing you got right.
More than you got right. Go crawl back into your hole and don't come out
again until you know what you're talking about.


I do know what I'm talking about..

Then why do you continually disagree with the recognized experts in the OO
community, like the ones I mentioned above?
I disagree with YOU simply because you clam to be a recognised expert when
in fact you are no such thing. I keep finding papers on the internet which
disagree with your explanations, yet you persist in claiming that you are
right and everybody who dares to disagree with you is wrong. Such arrogance!

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Nov 28 '06 #13

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Pe******************************@comcast.com. ..
>>Tony Marston wrote:
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:j9******************************@comcast.c om...
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>news:Ib******************************@comcast .com...
>
>
>
>>jopperdepopper wrote:
>>
>>
>>
>>>>You should read "can be accessed everywhere".
>>>>
>>>>Private members can be accessed by members of the class only.
>>>>Protected members can be accessed by members of the class or a
>>>>derived
>>>>class.
>>>>Public members can be accessed by anyone, including other classes,
>>>>functions and any other code.
>>>
>>>
>>>
>>>Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
>>>to classes, and so far having a hard time. I fail to see the 'why'
>>>behind the 'public, protected and private' and stuff like abstraction,
>>>interfaces and whatnot.
>
>
>Intefaces are not necessary in PHP. Once you have defined a method it is
>a total waste to time to also define an interface. Interfaces are a
>"fix" in those languages as a means of dealing with optional arguments
>and statyic typing. PHP has ifferent ways of dealing with bth of these,
>therefore interfaces serve no useful purpose.
>

Ah, the great Tony Marston is back to trolling again.

Wrong. In OO terms, the interface is the way to interact with the
object. It consists of all public members - both methods (functions, in
PHP) and variables. And for derived classes, the base class adds
protected members.

A PHP interface is something entirely different.
I disagree. It is possible to define a function (method) within a class,
then to define a separate thing called an "interface". It is possible
access
the function without using the interface, therefore the interface is not
necessary.

Tony,

You really need to learn about OO before spouting off. In OO terms, an
interface is something entirely different than a PHP interface.


How so? All the documentation I have seen describes how an interface simply
describes a method which it imlements. If it is possible to access a method
(a function in PHP) without going though an interface, ten an interface is
not necessary in any language.
You need to understand the difference between an interface as described
in OO terms and the PHP interface.

The PHP interface defines a set of methods (function) which are required
by the classes which implement the interface. Java is similar in that
respect. But both are a subset of the total interface.
>
>>PHP is not the only OO language. Some don't even have a term "interface"
as part of the language. But the still have an interface.

Try some of the books by James Rumbaugh, Grady Booch and/or Ivar Jacobson.

>>>>>>>Feels like things are being over-complicated
>>>somehow... or it's just my being inexperienced on this...
>>>
>>>Any other reading material on this suggested, someone?
>>>
>>
>>Look for some good books on OO theory and design.
>>
>>Two of the concepts in OO are 'encapsulation' and 'methods'.
>>
>>Encapsulation means the internals of an object are managed only by that
>>object and are not available to anyone else. In PHP these are private
>>members.
>
>
>Wrong. Encapsulation means that the data and the functions which operate
>on that data are contained (encapsulated) within a single object. While
>the methods (functions) thenselves may be visible the code behind those
>methods (i.e. the implementaton behind those methods) is not.
>Encapslation is NOT about hiding information, it is about hiding the
>implementation. It is not necessary to use public/private/protected on
>any methods or properties. It does not add any functionality, it merely
>creates restrictions which often get in the way.
>

Wrong again, Tony. Encapsulation means internal representations of the
object are not visible outside of the class. Just like the base &
mantissa are not visible outside of a floating point number.
I disagree. Encapsulation means that both the data and the methods which
operate on that data are contained within a single unit or "capsule". The
data names and the method names may be visible, it is only the code which
lies behind each method name which is invisible. A piece of data may be
accessed directly, as in $object->var, or it may be accessed through a
getter, as in $object->getVar().

If you bothered to read the right books you will see that encapsulation
means "implementation hiding" and not "information hiding".

Again, read the experts before spouting off. You have repeatedly shown
how little you understand about OO programming techniques.

And yes, encapsulation is "implementation hiding". And the variables are
part of the IMPLEMENTATION.


I disagree. Inplementation is code, information is data. If you don't
believe me then read "Encapsulation is not information hiding" at
http://www.javaworld.com/javaworld/j...psulation.html and
also "Abstraction, Encapsulation, and Information Hiding" at
http://www.itmweb.com/essay550.htm
OK, so you quote a couple of blogs by people who have their own opinions.

Read books by the authors I mentioned. They are the experts on OO, not
just anyone who can post a blog or essay on the web.
>
>>>>>>Methods are implemented as functions in PHP. They operate on the
>>object.
>
>
>That's one thing you got right.
>

More than you got right. Go crawl back into your hole and don't come out
again until you know what you're talking about.
I do know what I'm talking about..

Then why do you continually disagree with the recognized experts in the OO
community, like the ones I mentioned above?


I disagree with YOU simply because you clam to be a recognised expert when
in fact you are no such thing. I keep finding papers on the internet which
disagree with your explanations, yet you persist in claiming that you are
right and everybody who dares to disagree with you is wrong. Such arrogance!
No, you disagree with every recognized expert in the field. Read what
the authors I mentioned have to say about it. THEY are the recognized
experts in the field.

I can create a paper on the internet saying the sun rises in the west.
It's quite simple to do. But that doesn't make it a fact.

Now go home and do some reading. You might actually learn something.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 28 '06 #14

P: n/a
..oO(Tony Marston)
>I disagree. it is *not* necessary for the simple reason that the code will
perform exactly the same function whether methods and properties are marked
as public/private/protected or not.
Then why do we use OOP and high-level languages like PHP at all? Pure
hand-written assembler code will perform exactly the same function.
>It prevents developers from doing things that shouldn't be done, for
example calling an internal method out of context. I don't want all my
methods being publicly available, simply in order to avoid errors and
unpredictable results.

That is a matter for programmer discipline, it is not a matter of additional
functionality. The code will do exactly the same with or without it.
The code written in a language like Delphi for example will also do
exactly the same with all type checks, range checks, overflow checks
etc. turned off. But does it make sense to do that and just rely on
"programmer discipline"? No, it doesn't, because it will lead to
erroneous code on the long run.

Compilers are able to automatically check a lot of things and warn the
developer if he made a mistake. Such checks and restrictions don't add
any functionality, but are necessary in order to write reliable code.

The same goes for visibility declarations. I don't rely on discipline or
a comment like "please don't call this method". If a method is not meant
to be called directly then it's declared as such - problem solved.

Micha
Nov 28 '06 #15

P: n/a
Michael Fesser wrote:
.oO(Tony Marston)

>>I disagree. it is *not* necessary for the simple reason that the code will
perform exactly the same function whether methods and properties are marked
as public/private/protected or not.


Then why do we use OOP and high-level languages like PHP at all? Pure
hand-written assembler code will perform exactly the same function.

>>>It prevents developers from doing things that shouldn't be done, for
example calling an internal method out of context. I don't want all my
methods being publicly available, simply in order to avoid errors and
unpredictable results.

That is a matter for programmer discipline, it is not a matter of additional
functionality. The code will do exactly the same with or without it.


The code written in a language like Delphi for example will also do
exactly the same with all type checks, range checks, overflow checks
etc. turned off. But does it make sense to do that and just rely on
"programmer discipline"? No, it doesn't, because it will lead to
erroneous code on the long run.

Compilers are able to automatically check a lot of things and warn the
developer if he made a mistake. Such checks and restrictions don't add
any functionality, but are necessary in order to write reliable code.

The same goes for visibility declarations. I don't rely on discipline or
a comment like "please don't call this method". If a method is not meant
to be called directly then it's declared as such - problem solved.

Micha
Micha,

Tony and I have been into this before. He breaks into conversations
trying to spout his version of OO, with a few blogs from people no one
every heard of to back him up.

It's not worth getting into the argument. He's just a troll with
delusions of competency.

He'd never survive in a corporate programming shop.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 29 '06 #16

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:bp******************************@comcast.com. ..
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Pe******************************@comcast.com ...
>>>Tony Marston wrote:

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:j9******************************@comcast. com...
>Tony Marston wrote:
>
>
>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>>news:Ib******************************@comcas t.com...
>>
>>
>>
>>>jopperdepopper wrote:
>>>
>>>
>>>
>>>>>You should read "can be accessed everywhere".
>>>>>
>>>>>Private members can be accessed by members of the class only.
>>>>>Protected members can be accessed by members of the class or a
>>>>>derived
>>>>>class.
>>>>>Public members can be accessed by anyone, including other classes,
>>>>>functions and any other code.
>>>>
>>>>
>>>>
>>>>Thanks Jerry. I'm trying to make a bit of sense of the php 5
>>>>approach
>>>>to classes, and so far having a hard time. I fail to see the 'why'
>>>>behind the 'public, protected and private' and stuff like
>>>>abstraction,
>>>>interfaces and whatnot.
>>
>>
>>Intefaces are not necessary in PHP. Once you have defined a method it
>>is a total waste to time to also define an interface. Interfaces are a
>>"fix" in those languages as a means of dealing with optional arguments
>>and statyic typing. PHP has ifferent ways of dealing with bth of
>>these, therefore interfaces serve no useful purpose.
>>
>
>Ah, the great Tony Marston is back to trolling again.
>
>Wrong. In OO terms, the interface is the way to interact with the
>object. It consists of all public members - both methods (functions, in
>PHP) and variables. And for derived classes, the base class adds
>protected members.
>
>A PHP interface is something entirely different.
I disagree. It is possible to define a function (method) within a class,
then to define a separate thing called an "interface". It is possible
access
the function without using the interface, therefore the interface is not
necessary.
Tony,

You really need to learn about OO before spouting off. In OO terms, an
interface is something entirely different than a PHP interface.


How so? All the documentation I have seen describes how an interface
simply describes a method which it imlements. If it is possible to access
a method (a function in PHP) without going though an interface, ten an
interface is not necessary in any language.

You need to understand the difference between an interface as described in
OO terms and the PHP interface.

The PHP interface defines a set of methods (function) which are required
by the classes which implement the interface. Java is similar in that
respect. But both are a subset of the total interface.
It is possible to access the method directly without an interface, therefore
an interfae is not necessary.
>>
>>>PHP is not the only OO language. Some don't even have a term "interface"
as part of the language. But the still have an interface.

Try some of the books by James Rumbaugh, Grady Booch and/or Ivar
Jacobson.
>>>>Feels like things are being over-complicated
>>>>somehow... or it's just my being inexperienced on this...
>>>>
>>>>Any other reading material on this suggested, someone?
>>>>
>>>
>>>Look for some good books on OO theory and design.
>>>
>>>Two of the concepts in OO are 'encapsulation' and 'methods'.
>>>
>>>Encapsulation means the internals of an object are managed only by
>>>that object and are not available to anyone else. In PHP these are
>>>private members.
>>
>>
>>Wrong. Encapsulation means that the data and the functions which
>>operate on that data are contained (encapsulated) within a single
>>object. While the methods (functions) thenselves may be visible the
>>code behind those methods (i.e. the implementaton behind those
>>methods) is not. Encapslation is NOT about hiding information, it is
>>about hiding the implementation. It is not necessary to use
>>public/private/protected on any methods or properties. It does not add
>>any functionality, it merely creates restrictions which often get in
>>the way.
>>
>
>Wrong again, Tony. Encapsulation means internal representations of the
>object are not visible outside of the class. Just like the base &
>mantissa are not visible outside of a floating point number.
I disagree. Encapsulation means that both the data and the methods which
operate on that data are contained within a single unit or "capsule".
The data names and the method names may be visible, it is only the code
which lies behind each method name which is invisible. A piece of data
may be accessed directly, as in $object->var, or it may be accessed
through a getter, as in $object->getVar().

If you bothered to read the right books you will see that encapsulation
means "implementation hiding" and not "information hiding".
Again, read the experts before spouting off. You have repeatedly shown
how little you understand about OO programming techniques.

And yes, encapsulation is "implementation hiding". And the variables are
part of the IMPLEMENTATION.


I disagree. Inplementation is code, information is data. If you don't
believe me then read "Encapsulation is not information hiding" at
http://www.javaworld.com/javaworld/j...psulation.html
and also "Abstraction, Encapsulation, and Information Hiding" at
http://www.itmweb.com/essay550.htm

OK, so you quote a couple of blogs by people who have their own opinions.

Read books by the authors I mentioned. They are the experts on OO, not
just anyone who can post a blog or essay on the web.
Oh, I see. Only those people who agree with you can be called experts, while
everyone else is a charlatan. Even Martin Fowler says that "Encapsulation
Wasn't Meant To Mean Data Hiding" at
http://homepage.mac.com/keithray/blog/2006/02/22/, so are you saying that
Martin Fowler is not an expert?

>>
>>>>>>>Methods are implemented as functions in PHP. They operate on the
>>>object.
>>
>>
>>That's one thing you got right.
>>
>
>More than you got right. Go crawl back into your hole and don't come
>out again until you know what you're talking about.
I do know what I'm talking about..
Then why do you continually disagree with the recognized experts in the
OO community, like the ones I mentioned above?


I disagree with YOU simply because you clam to be a recognised expert
when in fact you are no such thing. I keep finding papers on the internet
which disagree with your explanations, yet you persist in claiming that
you are right and everybody who dares to disagree with you is wrong. Such
arrogance!

No, you disagree with every recognized expert in the field. Read what the
authors I mentioned have to say about it. THEY are the recognized experts
in the field.
There is no such thing as a single view upon which all "experts" agree.
Wherever you look, either in books or on the internet, you will come across
examples where different sets of "experts" have different opinions and
views. Therefore it does not matter which set of "experts" you choose to
follow as a different set of "experts" will always say that you are wrong.
I can create a paper on the internet saying the sun rises in the west.
It's quite simple to do. But that doesn't make it a fact.
In your opinion it does if an "expert" says so. You have to know when an
"expert" is spouting wisdom and when he is spouting bulls*t.
Now go home and do some reading. You might actually learn something.
The only thing I can learn from you is how NOT to do things.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Nov 29 '06 #17

P: n/a

"Michael Fesser" <ne*****@gmx.dewrote in message
news:lo********************************@4ax.com...
.oO(Tony Marston)
>>I disagree. it is *not* necessary for the simple reason that the code will
perform exactly the same function whether methods and properties are
marked
as public/private/protected or not.

Then why do we use OOP and high-level languages like PHP at all? Pure
hand-written assembler code will perform exactly the same function.
You can write OO code that uses pubic/private/protected and it will perform
exactly the same function as code which does not use
public/private/protected, therefore the use of public/private/protected does
not add any value. It is therefore optional and not mandatory.
>>It prevents developers from doing things that shouldn't be done, for
example calling an internal method out of context. I don't want all my
methods being publicly available, simply in order to avoid errors and
unpredictable results.

That is a matter for programmer discipline, it is not a matter of
additional
functionality. The code will do exactly the same with or without it.

The code written in a language like Delphi for example will also do
exactly the same with all type checks, range checks, overflow checks
etc. turned off. But does it make sense to do that and just rely on
"programmer discipline"? No, it doesn't, because it will lead to
erroneous code on the long run.
You are missing the point. If a piece of code does exactly the same thing
whether a feature is turned ON or OFF then that feature is optional.
Compilers are able to automatically check a lot of things and warn the
developer if he made a mistake. Such checks and restrictions don't add
any functionality, but are necessary in order to write reliable code.
I disagree. I do not need a statically typed language to write software. I
can do just as well with a dynamically typed laguage. So can all the
millions of other programmers who use dynamically typed languages.
The same goes for visibility declarations. I don't rely on discipline or
a comment like "please don't call this method". If a method is not meant
to be called directly then it's declared as such - problem solved.

Micha
Whether a method or variable is marked visible or not does not make the
software run any differently, therefore it is optional, not mandatory.
Nov 29 '06 #18

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Vo******************************@comcast.com. ..
Michael Fesser wrote:
>.oO(Tony Marston)

>>>I disagree. it is *not* necessary for the simple reason that the code
will perform exactly the same function whether methods and properties are
marked as public/private/protected or not.


Then why do we use OOP and high-level languages like PHP at all? Pure
hand-written assembler code will perform exactly the same function.

>>>>It prevents developers from doing things that shouldn't be done, for
example calling an internal method out of context. I don't want all my
methods being publicly available, simply in order to avoid errors and
unpredictable results.

That is a matter for programmer discipline, it is not a matter of
additional functionality. The code will do exactly the same with or
without it.


The code written in a language like Delphi for example will also do
exactly the same with all type checks, range checks, overflow checks
etc. turned off. But does it make sense to do that and just rely on
"programmer discipline"? No, it doesn't, because it will lead to
erroneous code on the long run.

Compilers are able to automatically check a lot of things and warn the
developer if he made a mistake. Such checks and restrictions don't add
any functionality, but are necessary in order to write reliable code.

The same goes for visibility declarations. I don't rely on discipline or
a comment like "please don't call this method". If a method is not meant
to be called directly then it's declared as such - problem solved.

Micha

Micha,

Tony and I have been into this before. He breaks into conversations
trying to spout his version of OO, with a few blogs from people no one
every heard of to back him up.
I see. So in your opinion Martin Fowler is of of these "people no one ever
heard of "? He says, like I do, that "Encapsulation Wasn't Meant To Mean
Data Hiding" at http://homepage.mac.com/keithray/blog/2006/02/22/

Are you saying that YOU are more of an expert than Martin Fowler? What
arrogance!
It's not worth getting into the argument. He's just a troll with
delusions of competency.
If everyone who disagrees with you is incompetent then the world is full of
idiots. Your opinion is not the only opinion, and there are plenty of
"experts" who have opposing views.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Nov 29 '06 #19

P: n/a
..oO(Tony Marston)
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:bp******************************@comcast.com ...
>>
The PHP interface defines a set of methods (function) which are required
by the classes which implement the interface. Java is similar in that
respect. But both are a subset of the total interface.

It is possible to access the method directly without an interface, therefore
an interfae is not necessary.
RTFM!

Object Interfaces
http://www.php.net/manual/en/languag...interfaces.php

Micha
Nov 29 '06 #20

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Vo******************************@comcast.com. ..
>>Michael Fesser wrote:
>>>.oO(Tony Marston)

I disagree. it is *not* necessary for the simple reason that the code
will perform exactly the same function whether methods and properties are
marked as public/private/protected or not.
Then why do we use OOP and high-level languages like PHP at all? Pure
hand-written assembler code will perform exactly the same function.

>It prevents developers from doing things that shouldn't be done, for
>example calling an internal method out of context. I don't want all my
>methods being publicly available, simply in order to avoid errors and
>unpredictable results.

That is a matter for programmer discipline, it is not a matter of
additional functionality. The code will do exactly the same with or
without it.
The code written in a language like Delphi for example will also do
exactly the same with all type checks, range checks, overflow checks
etc. turned off. But does it make sense to do that and just rely on
"programmer discipline"? No, it doesn't, because it will lead to
erroneous code on the long run.

Compilers are able to automatically check a lot of things and warn the
developer if he made a mistake. Such checks and restrictions don't add
any functionality, but are necessary in order to write reliable code.

The same goes for visibility declarations. I don't rely on discipline or
a comment like "please don't call this method". If a method is not meant
to be called directly then it's declared as such - problem solved.

Micha

Micha,

Tony and I have been into this before. He breaks into conversations
trying to spout his version of OO, with a few blogs from people no one
every heard of to back him up.


I see. So in your opinion Martin Fowler is of of these "people no one ever
heard of "? He says, like I do, that "Encapsulation Wasn't Meant To Mean
Data Hiding" at http://homepage.mac.com/keithray/blog/2006/02/22/

Are you saying that YOU are more of an expert than Martin Fowler? What
arrogance!
No, I'm saying Booch, Rumbaugh and Jacobson, among others, are more
expert than Martin Fowler. And yes, I've heard of him.

But you're not quoting Martin Fowler. You're quoting Keith Ray's
INTERPRETATION if Martin Fowler.
>
>>It's not worth getting into the argument. He's just a troll with
delusions of competency.


If everyone who disagrees with you is incompetent then the world is full of
idiots. Your opinion is not the only opinion, and there are plenty of
"experts" who have opposing views.
No, I disagree with a lot of competent people. It's YOU who are an
incompetent troll. And you continue to prove it.

Try these - with direct quotes from recognized experts, and examples:

http://www.research.umbc.edu/~tarr/d...ciples-2pp.pdf
http://www.nnwj.de/encapsulation.html

Or better yet, read the real books by these authors.

But I know you won't, because you disagree with what they say, and don't
want to burst your little bubble.

Troll.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 29 '06 #21

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:bp******************************@comcast.com. ..
>>Tony Marston wrote:
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Pe******************************@comcast.c om...
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>news:j9******************************@comcast .com...
>
>
>
>>Tony Marston wrote:
>>
>>
>>
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>>>news:Ib******************************@comca st.com...
>>>
>>>
>>>
>>>
>>>>jopperdepopper wrote:
>>>>
>>>>
>>>>
>>>>
>>>>>>You should read "can be accessed everywhere".
>>>>>>
>>>>>>Private members can be accessed by members of the class only.
>>>>>>Protected members can be accessed by members of the class or a
>>>>>>derived
>>>>>>class.
>>>>>>Public members can be accessed by anyone, including other classes,
>>>>>>functions and any other code.
>>>>>
>>>>>
>>>>>
>>>>>Thanks Jerry. I'm trying to make a bit of sense of the php 5
>>>>>approach
>>>>>to classes, and so far having a hard time. I fail to see the 'why'
>>>>>behind the 'public, protected and private' and stuff like
>>>>>abstraction,
>>>>>interfaces and whatnot.
>>>
>>>
>>>Intefaces are not necessary in PHP. Once you have defined a method it
>>>is a total waste to time to also define an interface. Interfaces are a
>>>"fix" in those languages as a means of dealing with optional arguments
>>>and statyic typing. PHP has ifferent ways of dealing with bth of
>>>these, therefore interfaces serve no useful purpose.
>>>
>>
>>Ah, the great Tony Marston is back to trolling again.
>>
>>Wrong. In OO terms, the interface is the way to interact with the
>>object. It consists of all public members - both methods (functions, in
>>PHP) and variables. And for derived classes, the base class adds
>>protected members.
>>
>>A PHP interface is something entirely different.
>
>
>I disagree. It is possible to define a function (method) within a class,
>then to define a separate thing called an "interface". It is possible
>access
>the function without using the interface, therefore the interface is not
>necessary.
>

Tony,

You really need to learn about OO before spouting off. In OO terms, an
interface is something entirely different than a PHP interface.
How so? All the documentation I have seen describes how an interface
simply describes a method which it imlements. If it is possible to access
a method (a function in PHP) without going though an interface, ten an
interface is not necessary in any language.

You need to understand the difference between an interface as described in
OO terms and the PHP interface.

The PHP interface defines a set of methods (function) which are required
by the classes which implement the interface. Java is similar in that
respect. But both are a subset of the total interface.


It is possible to access the method directly without an interface, therefore
an interfae is not necessary.
"Possible" != "CORRECT"
>
>>>>PHP is not the only OO language. Some don't even have a term "interface"
as part of the language. But the still have an interface.

Try some of the books by James Rumbaugh, Grady Booch and/or Ivar
Jacobson.

>>>>>Feels like things are being over-complicated
>>>>>somehow... or it's just my being inexperienced on this...
>>>>>
>>>>>Any other reading material on this suggested, someone?
>>>>>
>>>>
>>>>Look for some good books on OO theory and design.
>>>>
>>>>Two of the concepts in OO are 'encapsulation' and 'methods'.
>>>>
>>>>Encapsulation means the internals of an object are managed only by
>>>>that object and are not available to anyone else. In PHP these are
>>>>private members.
>>>
>>>
>>>Wrong. Encapsulation means that the data and the functions which
>>>operate on that data are contained (encapsulated) within a single
>>>object. While the methods (functions) thenselves may be visible the
>>>code behind those methods (i.e. the implementaton behind those
>>>methods) is not. Encapslation is NOT about hiding information, it is
>>>about hiding the implementation. It is not necessary to use
>>>public/private/protected on any methods or properties. It does not add
>>>any functionality, it merely creates restrictions which often get in
>>>the way.
>>>
>>
>>Wrong again, Tony. Encapsulation means internal representations of the
>>object are not visible outside of the class. Just like the base &
>>mantissa are not visible outside of a floating point number.
>
>
>I disagree. Encapsulation means that both the data and the methods which
>operate on that data are contained within a single unit or "capsule".
>The data names and the method names may be visible, it is only the code
>which lies behind each method name which is invisible. A piece of data
>may be accessed directly, as in $object->var, or it may be accessed
>through a getter, as in $object->getVar().
>
>If you bothered to read the right books you will see that encapsulation
>means "implementation hiding" and not "information hiding".
>

Again, read the experts before spouting off. You have repeatedly shown
how little you understand about OO programming techniques.

And yes, encapsulation is "implementation hiding". And the variables are
part of the IMPLEMENTATION.
I disagree. Inplementation is code, information is data. If you don't
believe me then read "Encapsulation is not information hiding" at
http://www.javaworld.com/javaworld/j...psulation.html
and also "Abstraction, Encapsulation, and Information Hiding" at
http://www.itmweb.com/essay550.htm

OK, so you quote a couple of blogs by people who have their own opinions.

Read books by the authors I mentioned. They are the experts on OO, not
just anyone who can post a blog or essay on the web.


Oh, I see. Only those people who agree with you can be called experts, while
everyone else is a charlatan. Even Martin Fowler says that "Encapsulation
Wasn't Meant To Mean Data Hiding" at
http://homepage.mac.com/keithray/blog/2006/02/22/, so are you saying that
Martin Fowler is not an expert?
First of all, this is not Martin Fowler's text. It is Keith Ray's
interpretation of what Martin fowler said.

And Booch, Rumbaugh and Jacobson are generally considered to be THE
experts on the OO world.
>
>>>>>>>>Methods are implemented as functions in PHP. They operate on the
>>>>object.
>>>
>>>
>>>That's one thing you got right.
>>>
>>
>>More than you got right. Go crawl back into your hole and don't come
>>out again until you know what you're talking about.
>
>
>I do know what I'm talking about..
>

Then why do you continually disagree with the recognized experts in the
OO community, like the ones I mentioned above?
I disagree with YOU simply because you clam to be a recognised expert
when in fact you are no such thing. I keep finding papers on the internet
which disagree with your explanations, yet you persist in claiming that
you are right and everybody who dares to disagree with you is wrong. Such
arrogance!

No, you disagree with every recognized expert in the field. Read what the
authors I mentioned have to say about it. THEY are the recognized experts
in the field.


There is no such thing as a single view upon which all "experts" agree.
Wherever you look, either in books or on the internet, you will come across
examples where different sets of "experts" have different opinions and
views. Therefore it does not matter which set of "experts" you choose to
follow as a different set of "experts" will always say that you are wrong.
Yes, you can always find so-called "experts" who disagree. But the ones
I've named are generally considered to be the experts in the field by
most experienced OO designers and other knowledgeable people.
>
>>I can create a paper on the internet saying the sun rises in the west.
It's quite simple to do. But that doesn't make it a fact.


In your opinion it does if an "expert" says so. You have to know when an
"expert" is spouting wisdom and when he is spouting bulls*t.
So you're saying Booch, et. al. are spouting "bullshit" because they
disagree with little Tony? ROFLMAO!
>
>>Now go home and do some reading. You might actually learn something.


The only thing I can learn from you is how NOT to do things.
To home and do some reading, troll. And have fun with your incompetence.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 29 '06 #22

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:2a******************************@comcast.com. ..
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Vo******************************@comcast.com ...
>>>Michael Fesser wrote:

.oO(Tony Marston)

>I disagree. it is *not* necessary for the simple reason that the code
>will perform exactly the same function whether methods and properties
>are marked as public/private/protected or not.
Then why do we use OOP and high-level languages like PHP at all? Pure
hand-written assembler code will perform exactly the same function.

>>It prevents developers from doing things that shouldn't be done, for
>>example calling an internal method out of context. I don't want all my
>>methods being publicly available, simply in order to avoid errors and
>>unpredictable results.
>
>That is a matter for programmer discipline, it is not a matter of
>additional functionality. The code will do exactly the same with or
>without it.
The code written in a language like Delphi for example will also do
exactly the same with all type checks, range checks, overflow checks
etc. turned off. But does it make sense to do that and just rely on
"programmer discipline"? No, it doesn't, because it will lead to
erroneous code on the long run.

Compilers are able to automatically check a lot of things and warn the
developer if he made a mistake. Such checks and restrictions don't add
any functionality, but are necessary in order to write reliable code.

The same goes for visibility declarations. I don't rely on discipline or
a comment like "please don't call this method". If a method is not meant
to be called directly then it's declared as such - problem solved.

Micha

Micha,

Tony and I have been into this before. He breaks into conversations
trying to spout his version of OO, with a few blogs from people no one
every heard of to back him up.


I see. So in your opinion Martin Fowler is of of these "people no one
ever heard of "? He says, like I do, that "Encapsulation Wasn't Meant To
Mean Data Hiding" at http://homepage.mac.com/keithray/blog/2006/02/22/

Are you saying that YOU are more of an expert than Martin Fowler? What
arrogance!

No, I'm saying Booch, Rumbaugh and Jacobson, among others, are more expert
than Martin Fowler. And yes, I've heard of him.

But you're not quoting Martin Fowler. You're quoting Keith Ray's
INTERPRETATION if Martin Fowler.
If you bothered to follow the link to Martn Fowler's page at
http://martinfowler.com/bliki/GetterEradicator.html you would see in
paragraph 4 tha it is a direct quotation, not an interpretation.
>>
>>>It's not worth getting into the argument. He's just a troll with
delusions of competency.


If everyone who disagrees with you is incompetent then the world is full
of idiots. Your opinion is not the only opinion, and there are plenty of
"experts" who have opposing views.

No, I disagree with a lot of competent people. It's YOU who are an
incompetent troll. And you continue to prove it.

Try these - with direct quotes from recognized experts, and examples:

http://www.research.umbc.edu/~tarr/d...ciples-2pp.pdf
http://www.nnwj.de/encapsulation.html

Or better yet, read the real books by these authors.

But I know you won't, because you disagree with what they say, and don't
want to burst your little bubble.

Troll.
Whether you like it or not there is no such thing as a single opinion as to
what OOP is and is not, and there are multiple interpretations as to the
real meaning of encapsulation, inheritance, polymorphism, implementation
hiding and information hiding. Just because you quote sources who agree with
you does not mean you are right and everybody else is wrong. Here are
sources with the opinion that "Encapsulation is NOT information hiding":

http://homepage.mac.com/keithray/blog/2006/02/22/
http://martinfowler.com/bliki/GetterEradicator.html
http://www.javaworld.com/javaworld/j...on.html?page=1
http://www.itmweb.com/essay550.htm
http://nat.truemesh.com/archives/000498.html

The world is full of different opinions, so who is to say which ones are
right and which ones are wrong?

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Nov 30 '06 #23

P: n/a

"Michael Fesser" <ne*****@gmx.dewrote in message
news:dl********************************@4ax.com...
.oO(Tony Marston)
>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:bp******************************@comcast.co m...
>>>
The PHP interface defines a set of methods (function) which are required
by the classes which implement the interface. Java is similar in that
respect. But both are a subset of the total interface.

It is possible to access the method directly without an interface,
therefore
an interfae is not necessary.

RTFM!

Object Interfaces
http://www.php.net/manual/en/languag...interfaces.php

Micha
That just tells me what interfaces ARE, but it certainly does not say that
interfaces are REQUIRED. It is possible to define a class method and access
it directly WITHOUT going through an interface, therefore an interface IS
NOT NECESSARY.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Nov 30 '06 #24

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:n9******************************@comcast.com. ..
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:bp******************************@comcast.com ...
>>>Tony Marston wrote:

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Pe******************************@comcast. com...
>Tony Marston wrote:
>
>
>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>>news:j9******************************@comcas t.com...
>>
>>
>>
>>>Tony Marston wrote:
>>>
>>>
>>>
>>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>>>>news:Ib******************************@comc ast.com...
>>>>
>>>>
>>>>
>>>>
>>>>>jopperdepopper wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>>You should read "can be accessed everywhere".
>>>>>>>
>>>>>>>Private members can be accessed by members of the class only.
>>>>>>>Protected members can be accessed by members of the class or a
>>>>>>>derived
>>>>>>>class.
>>>>>>>Public members can be accessed by anyone, including other
>>>>>>>classes,
>>>>>>>functions and any other code.
>>>>>>
>>>>>>
>>>>>>
>>>>>>Thanks Jerry. I'm trying to make a bit of sense of the php 5
>>>>>>approach
>>>>>>to classes, and so far having a hard time. I fail to see the 'why'
>>>>>>behind the 'public, protected and private' and stuff like
>>>>>>abstraction,
>>>>>>interfaces and whatnot.
>>>>
>>>>
>>>>Intefaces are not necessary in PHP. Once you have defined a method
>>>>it is a total waste to time to also define an interface. Interfaces
>>>>are a "fix" in those languages as a means of dealing with optional
>>>>arguments and statyic typing. PHP has ifferent ways of dealing with
>>>>bth of these, therefore interfaces serve no useful purpose.
>>>>
>>>
>>>Ah, the great Tony Marston is back to trolling again.
>>>
>>>Wrong. In OO terms, the interface is the way to interact with the
>>>object. It consists of all public members - both methods (functions,
>>>in PHP) and variables. And for derived classes, the base class adds
>>>protected members.
>>>
>>>A PHP interface is something entirely different.
>>
>>
>>I disagree. It is possible to define a function (method) within a
>>class,
>>then to define a separate thing called an "interface". It is possible
>>access
>>the function without using the interface, therefore the interface is
>>not
>>necessary.
>>
>
>Tony,
>
>You really need to learn about OO before spouting off. In OO terms, an
>interface is something entirely different than a PHP interface.
How so? All the documentation I have seen describes how an interface
simply describes a method which it imlements. If it is possible to
access a method (a function in PHP) without going though an interface,
ten an interface is not necessary in any language.
You need to understand the difference between an interface as described
in OO terms and the PHP interface.

The PHP interface defines a set of methods (function) which are required
by the classes which implement the interface. Java is similar in that
respect. But both are a subset of the total interface.


It is possible to access the method directly without an interface,
therefore an interfae is not necessary.

"Possible" != "CORRECT"
That's just your opinion. Where does it say that I *MUST* define and use an
interface before I can access a class method? Interfaces are optional
(especuially in PHP) so it is not wrong to excercise the option NOT to use
them. I can define a class method and access that method without using an
interface, and that is what I choose to do.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Nov 30 '06 #25

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:2a******************************@comcast.com. ..
>>Tony Marston wrote:
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Vo******************************@comcast.c om...
Michael Fesser wrote:
>.oO(Tony Marston)
>
>
>
>
>>I disagree. it is *not* necessary for the simple reason that the code
>>will perform exactly the same function whether methods and properties
>>are marked as public/private/protected or not.
>
>
>Then why do we use OOP and high-level languages like PHP at all? Pure
>hand-written assembler code will perform exactly the same function.
>
>
>
>
>>>It prevents developers from doing things that shouldn't be done, for
>>>example calling an internal method out of context. I don't want all my
>>>methods being publicly available, simply in order to avoid errors and
>>>unpredictable results.
>>
>>That is a matter for programmer discipline, it is not a matter of
>>additional functionality. The code will do exactly the same with or
>>without it.
>
>
>The code written in a language like Delphi for example will also do
>exactly the same with all type checks, range checks, overflow checks
>etc. turned off. But does it make sense to do that and just rely on
>"programmer discipline"? No, it doesn't, because it will lead to
>erroneous code on the long run.
>
>Compilers are able to automatically check a lot of things and warn the
>developer if he made a mistake. Such checks and restrictions don't add
>any functionality, but are necessary in order to write reliable code.
>
>The same goes for visibility declarations. I don't rely on discipline or
>a comment like "please don't call this method". If a method is not meant
>to be called directly then it's declared as such - problem solved.
>
>Micha

Micha,

Tony and I have been into this before. He breaks into conversations
trying to spout his version of OO, with a few blogs from people no one
every heard of to back him up.
I see. So in your opinion Martin Fowler is of of these "people no one
ever heard of "? He says, like I do, that "Encapsulation Wasn't Meant To
Mean Data Hiding" at http://homepage.mac.com/keithray/blog/2006/02/22/

Are you saying that YOU are more of an expert than Martin Fowler? What
arrogance!

No, I'm saying Booch, Rumbaugh and Jacobson, among others, are more expert
than Martin Fowler. And yes, I've heard of him.

But you're not quoting Martin Fowler. You're quoting Keith Ray's
INTERPRETATION if Martin Fowler.


If you bothered to follow the link to Martn Fowler's page at
http://martinfowler.com/bliki/GetterEradicator.html you would see in
paragraph 4 tha it is a direct quotation, not an interpretation.
Yes, and did you actually read that page? To quote from Martin Fowler:

"For me, the point of encapsulation isn't really about hiding the data,
but in hiding design decisions, particularly in areas where those
decisions may have to change. The internal data representation is one
example of this..."

This is in perfect agreement with Booch, Rumbaugh, Iverson and others.
And a direct CONTRADICTION to troll Tony Marston.
>
>>>>It's not worth getting into the argument. He's just a troll with
delusions of competency.
If everyone who disagrees with you is incompetent then the world is full
of idiots. Your opinion is not the only opinion, and there are plenty of
"experts" who have opposing views.

No, I disagree with a lot of competent people. It's YOU who are an
incompetent troll. And you continue to prove it.

Try these - with direct quotes from recognized experts, and examples:

http://www.research.umbc.edu/~tarr/d...ciples-2pp.pdf
http://www.nnwj.de/encapsulation.html

Or better yet, read the real books by these authors.

But I know you won't, because you disagree with what they say, and don't
want to burst your little bubble.

Troll.


Whether you like it or not there is no such thing as a single opinion as to
what OOP is and is not, and there are multiple interpretations as to the
real meaning of encapsulation, inheritance, polymorphism, implementation
hiding and information hiding. Just because you quote sources who agree with
you does not mean you are right and everybody else is wrong. Here are
sources with the opinion that "Encapsulation is NOT information hiding":

http://homepage.mac.com/keithray/blog/2006/02/22/
http://martinfowler.com/bliki/GetterEradicator.html
http://www.javaworld.com/javaworld/j...on.html?page=1
http://www.itmweb.com/essay550.htm
http://nat.truemesh.com/archives/000498.html

The world is full of different opinions, so who is to say which ones are
right and which ones are wrong?
Yea, and some, like yours, troll, are just wrong.

Read the experts I've mentioned several times. You might actually learn
something.

But I know you won't. Like all trolls you know everything and anyone
who disagrees with you is wrong - no matter how much of a recognized
expert he is.

Go and crawl back into your hole, troll. And take your delusions of
competence with you.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 30 '06 #26

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:n9******************************@comcast.com. ..
>>Tony Marston wrote:
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:bp******************************@comcast.c om...
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>news:Pe******************************@comcast .com...
>
>
>
>>Tony Marston wrote:
>>
>>
>>
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>>>news:j9******************************@comca st.com...
>>>
>>>
>>>
>>>
>>>>Tony Marston wrote:
>>>>
>>>>
>>>>
>>>>
>>>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>>>>>news:Ib******************************@com cast.com...
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>jopperdepopper wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>>You should read "can be accessed everywhere".
>>>>>>>>
>>>>>>>>Private members can be accessed by members of the class only.
>>>>>>>>Protected members can be accessed by members of the class or a
>>>>>>>>derived
>>>>>>>>class.
>>>>>>>>Public members can be accessed by anyone, including other
>>>>>>>>classes,
>>>>>>>>functions and any other code.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>Thanks Jerry. I'm trying to make a bit of sense of the php 5
>>>>>>>approach
>>>>>>>to classes, and so far having a hard time. I fail to see the 'why'
>>>>>>>behind the 'public, protected and private' and stuff like
>>>>>>>abstraction,
>>>>>>>interfaces and whatnot.
>>>>>
>>>>>
>>>>>Intefaces are not necessary in PHP. Once you have defined a method
>>>>>it is a total waste to time to also define an interface. Interfaces
>>>>>are a "fix" in those languages as a means of dealing with optional
>>>>>arguments and statyic typing. PHP has ifferent ways of dealing with
>>>>>bth of these, therefore interfaces serve no useful purpose.
>>>>>
>>>>
>>>>Ah, the great Tony Marston is back to trolling again.
>>>>
>>>>Wrong. In OO terms, the interface is the way to interact with the
>>>>object. It consists of all public members - both methods (functions,
>>>>in PHP) and variables. And for derived classes, the base class adds
>>>>protected members.
>>>>
>>>>A PHP interface is something entirely different.
>>>
>>>
>>>I disagree. It is possible to define a function (method) within a
>>>class,
>>>then to define a separate thing called an "interface". It is possible
>>>access
>>>the function without using the interface, therefore the interface is
>>>not
>>>necessary.
>>>
>>
>>Tony,
>>
>>You really need to learn about OO before spouting off. In OO terms, an
>>interface is something entirely different than a PHP interface.
>
>
>How so? All the documentation I have seen describes how an interface
>simply describes a method which it imlements. If it is possible to
>access a method (a function in PHP) without going though an interface,
>ten an interface is not necessary in any language.
>

You need to understand the difference between an interface as described
in OO terms and the PHP interface.

The PHP interface defines a set of methods (function) which are required
by the classes which implement the interface. Java is similar in that
respect. But both are a subset of the total interface.
It is possible to access the method directly without an interface,
therefore an interfae is not necessary.

"Possible" != "CORRECT"


That's just your opinion. Where does it say that I *MUST* define and use an
interface before I can access a class method? Interfaces are optional
(especuially in PHP) so it is not wrong to excercise the option NOT to use
them. I can define a class method and access that method without using an
interface, and that is what I choose to do.
When are you going to get it through that pea-sized mind of yours that a
PHP interface is not the same as an interface as defined in OO terms?

In OO terms, a public method is part of the interface. The PHP keyword
interface just defines a set of functions which must be implemented by
the class.

They are two entirely different things.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 30 '06 #27

P: n/a
..oO(Tony Marston)
>That just tells me what interfaces ARE, but it certainly does not say that
interfaces are REQUIRED. It is possible to define a class method and access
it directly WITHOUT going through an interface, therefore an interface IS
NOT NECESSARY.
Forget it. Obviously you haven't understood what interfaces in PHP are
used for and what you can do/ensure with them. Just an example: Without
these interfaces it wouldn't be possible to use 'foreach' to iterate
over any arbitrary object:

foreach ($directory as $file) {...}
foreach ($resultSet as $record) {...}

Micha
Nov 30 '06 #28

P: n/a

"Michael Fesser" <ne*****@gmx.dewrote in message
news:m8********************************@4ax.com...
.oO(Tony Marston)
>>That just tells me what interfaces ARE, but it certainly does not say that
interfaces are REQUIRED. It is possible to define a class method and
access
it directly WITHOUT going through an interface, therefore an interface IS
NOT NECESSARY.

Forget it. Obviously you haven't understood what interfaces in PHP are
used for and what you can do/ensure with them.
My point is that in PHP interfaces are OPTIONAL, not MANDATORY. It is a
simpe point which you cannot disprove, so why are you continuing to argue
about it?
Just an example: Without
these interfaces it wouldn't be possible to use 'foreach' to iterate
over any arbitrary object:

foreach ($directory as $file) {...}
foreach ($resultSet as $record) {...}

Micha
With PHP 5 it is possible to use 'foreach' on an object without the use of
interfaces, so your argument is not valid.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 1 '06 #29

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Du******************************@comcast.com. ..
< snip>
>>>>>The PHP interface defines a set of methods (function) which are
>required by the classes which implement the interface. Java is similar
>in that respect. But both are a subset of the total interface.
It is possible to access the method directly without an interface,
therefore an interfae is not necessary.
"Possible" != "CORRECT"


That's just your opinion. Where does it say that I *MUST* define and use
an interface before I can access a class method? Interfaces are optional
(especuially in PHP) so it is not wrong to excercise the option NOT to
use them. I can define a class method and access that method without
using an interface, and that is what I choose to do.

When are you going to get it through that pea-sized mind of yours that a
PHP interface is not the same as an interface as defined in OO terms?

In OO terms, a public method is part of the interface. The PHP keyword
interface just defines a set of functions which must be implemented by the
class.

They are two entirely different things.
The fact that a method and an interface are different things is irrelevant.
I am just pointing out that in PHP an interface is not necessary as I can
access the method directly without going through an interface. Is this
statement true or false?

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 1 '06 #30

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:rN******************************@comcast.com. ..
Tony Marston wrote:
< snip>
>>>>>Tony and I have been into this before. He breaks into conversations
>trying to spout his version of OO, with a few blogs from people no one
>every heard of to back him up.
I see. So in your opinion Martin Fowler is of of these "people no one
ever heard of "? He says, like I do, that "Encapsulation Wasn't Meant To
Mean Data Hiding" at http://homepage.mac.com/keithray/blog/2006/02/22/

Are you saying that YOU are more of an expert than Martin Fowler? What
arrogance!
No, I'm saying Booch, Rumbaugh and Jacobson, among others, are more
expert than Martin Fowler. And yes, I've heard of him.

But you're not quoting Martin Fowler. You're quoting Keith Ray's
INTERPRETATION if Martin Fowler.


If you bothered to follow the link to Martn Fowler's page at
http://martinfowler.com/bliki/GetterEradicator.html you would see in
paragraph 4 tha it is a direct quotation, not an interpretation.

Yes, and did you actually read that page? To quote from Martin Fowler:

"For me, the point of encapsulation isn't really about hiding the data,
but in hiding design decisions, particularly in areas where those
decisions may have to change. The internal data representation is one
example of this..."
The full quote is "The internal data representation is one example of this,
** but not the only one and not always the best one.**" The significant
point is the sentence which reads "point of encapsulation isn't really about
hiding the data, but in hiding design decisions". If you follow the link he
provides to
http://www.craiglarman.com/articles/...20Software.pdf
by Craig Larman there is an interesting chapter with the title "Information
hiding is PV, not data encapsulation". The hiding of design decisions was
supposed to mean hiding the code which manipulates the data, not the data
itself.

As I have said several times, and quoted from other resources, encapsulation
is NOT about INFORMATION hiding but about IMPLEMENTATION hiding. There is a
subtle difference which you fail to grasp.
This is in perfect agreement with Booch, Rumbaugh, Iverson and others. And
a direct CONTRADICTION to troll Tony Marston.
>>
>>>>>It's not worth getting into the argument. He's just a troll with
>delusions of competency.
If everyone who disagrees with you is incompetent then the world is full
of idiots. Your opinion is not the only opinion, and there are plenty of
"experts" who have opposing views.
No, I disagree with a lot of competent people. It's YOU who are an
incompetent troll. And you continue to prove it.

Try these - with direct quotes from recognized experts, and examples:

http://www.research.umbc.edu/~tarr/d...ciples-2pp.pdf
http://www.nnwj.de/encapsulation.html

Or better yet, read the real books by these authors.

But I know you won't, because you disagree with what they say, and don't
want to burst your little bubble.

Troll.


Whether you like it or not there is no such thing as a single opinion as
to what OOP is and is not, and there are multiple interpretations as to
the real meaning of encapsulation, inheritance, polymorphism,
implementation hiding and information hiding. Just because you quote
sources who agree with you does not mean you are right and everybody else
is wrong. Here are sources with the opinion that "Encapsulation is NOT
information hiding":

http://homepage.mac.com/keithray/blog/2006/02/22/
http://martinfowler.com/bliki/GetterEradicator.html
http://www.javaworld.com/javaworld/j...on.html?page=1
http://www.itmweb.com/essay550.htm
http://nat.truemesh.com/archives/000498.html

The world is full of different opinions, so who is to say which ones are
right and which ones are wrong?

Yea, and some, like yours, troll, are just wrong.
In your opinion they are wrong, but I do not value your opinion.
Read the experts I've mentioned several times. You might actually learn
something.

But I know you won't. Like all trolls you know everything and anyone who
disagrees with you is wrong - no matter how much of a recognized expert he
is.
All the "experts" in the world do not agree. "My" experts disagree with
"your" experts. Just because I, and many others, disagree with your opinion
does not make me/us wrong.
Go and crawl back into your hole, troll. And take your delusions of
competence with you.
Typical reaction of a moron. When you start losing the argument out come the
insults.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 1 '06 #31

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:rN******************************@comcast.com. ..
>>Tony Marston wrote:

< snip>
>>>>>>Tony and I have been into this before. He breaks into conversations
>>trying to spout his version of OO, with a few blogs from people no one
>>every heard of to back him up.
>
>
>I see. So in your opinion Martin Fowler is of of these "people no one
>ever heard of "? He says, like I do, that "Encapsulation Wasn't Meant To
>Mean Data Hiding" at http://homepage.mac.com/keithray/blog/2006/02/22/
>
>Are you saying that YOU are more of an expert than Martin Fowler? What
>arrogance!
>

No, I'm saying Booch, Rumbaugh and Jacobson, among others, are more
expert than Martin Fowler. And yes, I've heard of him.

But you're not quoting Martin Fowler. You're quoting Keith Ray's
INTERPRETATION if Martin Fowler.
If you bothered to follow the link to Martn Fowler's page at
http://martinfowler.com/bliki/GetterEradicator.html you would see in
paragraph 4 tha it is a direct quotation, not an interpretation.

Yes, and did you actually read that page? To quote from Martin Fowler:

"For me, the point of encapsulation isn't really about hiding the data,
but in hiding design decisions, particularly in areas where those
decisions may have to change. The internal data representation is one
example of this..."


The full quote is "The internal data representation is one example of this,
** but not the only one and not always the best one.**" The significant
point is the sentence which reads "point of encapsulation isn't really about
hiding the data, but in hiding design decisions". If you follow the link he
provides to
http://www.craiglarman.com/articles/...20Software.pdf
by Craig Larman there is an interesting chapter with the title "Information
hiding is PV, not data encapsulation". The hiding of design decisions was
supposed to mean hiding the code which manipulates the data, not the data
itself.

As I have said several times, and quoted from other resources, encapsulation
is NOT about INFORMATION hiding but about IMPLEMENTATION hiding. There is a
subtle difference which you fail to grasp.
No, the point YOU fail to grasp, which ALL the experts, including Martin
Fowler, is the actual variables used are PART OF THE IMPLEMENTATION.

I never said you should hide the information. But you should hide HOW
THE INFORMATION IS STORED. That is one of the DESIGN DECISIONS he is
talking about.

This is something on which EVERY expert agrees. But you fail to understand.

And the same thing with Craig Larman's article. He agrees that
encapsulation is good because it hides the design details. No one ever
claimed it hid information.

Wrong on both counts, Tony the Troll. Learn to read.
>
>>This is in perfect agreement with Booch, Rumbaugh, Iverson and others. And
a direct CONTRADICTION to troll Tony Marston.

>>>>>>It's not worth getting into the argument. He's just a troll with
>>delusions of competency.
>
>
>If everyone who disagrees with you is incompetent then the world is full
>of idiots. Your opinion is not the only opinion, and there are plenty of
>"experts" who have opposing views.
>

No, I disagree with a lot of competent people. It's YOU who are an
incompetent troll. And you continue to prove it.

Try these - with direct quotes from recognized experts, and examples:

http://www.research.umbc.edu/~tarr/d...ciples-2pp.pdf
http://www.nnwj.de/encapsulation.html

Or better yet, read the real books by these authors.

But I know you won't, because you disagree with what they say, and don't
want to burst your little bubble.

Troll.
Whether you like it or not there is no such thing as a single opinion as
to what OOP is and is not, and there are multiple interpretations as to
the real meaning of encapsulation, inheritance, polymorphism,
implementation hiding and information hiding. Just because you quote
sources who agree with you does not mean you are right and everybody else
is wrong. Here are sources with the opinion that "Encapsulation is NOT
information hiding":

http://homepage.mac.com/keithray/blog/2006/02/22/
http://martinfowler.com/bliki/GetterEradicator.html
http://www.javaworld.com/javaworld/j...on.html?page=1
http://www.itmweb.com/essay550.htm
http://nat.truemesh.com/archives/000498.html

The world is full of different opinions, so who is to say which ones are
right and which ones are wrong?

Yea, and some, like yours, troll, are just wrong.


In your opinion they are wrong, but I do not value your opinion.
I really don't give a flying fuck if you or any other troll values my
opinion, Tony. Your idiocy is beyond comprehension.
>
>>Read the experts I've mentioned several times. You might actually learn
something.

But I know you won't. Like all trolls you know everything and anyone who
disagrees with you is wrong - no matter how much of a recognized expert he
is.


All the "experts" in the world do not agree. "My" experts disagree with
"your" experts. Just because I, and many others, disagree with your opinion
does not make me/us wrong.
Where did your "experts" get their training? The great Tony Martson
School of Bullshit?

These are experts recognized by the INDUSTRY - not me, not Tony Marston.
They are recognized by top programmers, university professors,
industry groups, publishers and more.

And quite frankly, troll Tony Marston's opinion on who an expert is
isn't important.
>
>>Go and crawl back into your hole, troll. And take your delusions of
competence with you.


Typical reaction of a moron. When you start losing the argument out come the
insults.
Yep, you've labeled yourself for sure. I am not "losing the argument".
Rather, you are just too thick-headed and stubborn to listen to the
real experts in the field.

You've done a little programming in one (or maybe even two) languages.
You think reading some of the crap on the Internet makes you an expert
in the matter.

Let me clue you in, Tony. You are far from an expert in anything. A
web site with some copied (and incorrect) information does not make you
an expert. Posting your bullshit in this and other newsgroups does not
make you an expert. And quoting people no one ever heard of does not
make you an expert.

Try working on an OO project with 100 programmers. Learn how to do
proper OO. Then spend another 5-10 years or so working your way up in
the OOAD field, until you're managing projects like the one above. Then
your opinions might count. I've done all of that over the years.

Or even read the books I mentioned by those authors.

But I know you won't. Like all trolls, you're just plain stupid, and
are totally afraid the bullshit you've been espousing might be wrong.

Go away, troll.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 1 '06 #32

P: n/a
Michael Fesser wrote:
.oO(Tony Marston)

>>That just tells me what interfaces ARE, but it certainly does not say that
interfaces are REQUIRED. It is possible to define a class method and access
it directly WITHOUT going through an interface, therefore an interface IS
NOT NECESSARY.


Forget it. Obviously you haven't understood what interfaces in PHP are
used for and what you can do/ensure with them. Just an example: Without
these interfaces it wouldn't be possible to use 'foreach' to iterate
over any arbitrary object:

foreach ($directory as $file) {...}
foreach ($resultSet as $record) {...}

Micha
Micha,

Tony is just a troll who is beyond stupid. He can't even understand the
"experts" he quotes. They contradict what he says, but he can't see that.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 1 '06 #33

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Du******************************@comcast.com. ..
< snip>
>>>>>>The PHP interface defines a set of methods (function) which are
>>required by the classes which implement the interface. Java is similar
>>in that respect. But both are a subset of the total interface.
>
>
>It is possible to access the method directly without an interface,
>therefore an interfae is not necessary.
>

"Possible" != "CORRECT"
That's just your opinion. Where does it say that I *MUST* define and use
an interface before I can access a class method? Interfaces are optional
(especuially in PHP) so it is not wrong to excercise the option NOT to
use them. I can define a class method and access that method without
using an interface, and that is what I choose to do.

When are you going to get it through that pea-sized mind of yours that a
PHP interface is not the same as an interface as defined in OO terms?

In OO terms, a public method is part of the interface. The PHP keyword
interface just defines a set of functions which must be implemented by the
class.

They are two entirely different things.


The fact that a method and an interface are different things is irrelevant.
I am just pointing out that in PHP an interface is not necessary as I can
access the method directly without going through an interface. Is this
statement true or false?
No, the fact that they are different are VERY RELEVANT. The fact you
can't understand the difference is also VERY RELEVANT. Or is it just
that you disregard facts which don't support with your stupidness?

Losing the argument so you need to disregard the facts? Typical troll
behavior.

Whether or not a PHP interface is required is immaterial - we are
talking about the OO concept of an interface, not PHP interfaces.

But that's way too deep for you to understand - the same word having
different meanings in different contexts? Hope your head didn't explode.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 1 '06 #34

P: n/a
Python does what LISP does with better syntax. So I would say Python
bets both LISP and PHP and with mod_python (for Apache), maybe you
should learn it.

Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:n9******************************@comcast.com. ..
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:bp******************************@comcast.com. ..

Tony Marston wrote:

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Pe******************************@comcast.c om...
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>news:j9******************************@comcast .com...
>
>
>
>>Tony Marston wrote:
>>
>>
>>
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>>>news:Ib******************************@comca st.com...
>>>
>>>
>>>
>>>
>>>>jopperdepopper wrote:
>>>>
>>>>
>>>>
>>>>
>>>>>>You should read "can be accessed everywhere".
>>>>>>
>>>>>>Private members can be accessed by members of the class only.
>>>>>>Protected members can be accessed by members of the class or a
>>>>>>derived
>>>>>>class.
>>>>>>Public members can be accessed by anyone, including other
>>>>>>classes,
>>>>>>functions and any other code.
>>>>>
>>>>>
>>>>>
>>>>>Thanks Jerry. I'm trying to make a bit of sense of the php 5
>>>>>approach
>>>>>to classes, and so far having a hard time. I fail to see the 'why'
>>>>>behind the 'public, protected and private' and stuff like
>>>>>abstraction,
>>>>>interfaces and whatnot.
>>>
>>>
>>>Intefaces are not necessary in PHP. Once you have defined a method
>>>it is a total waste to time to also define an interface. Interfaces
>>>are a "fix" in those languages as a means of dealing with optional
>>>arguments and statyic typing. PHP has ifferent ways of dealing with
>>>bth of these, therefore interfaces serve no useful purpose.
>>>
>>
>>Ah, the great Tony Marston is back to trolling again.
>>
>>Wrong. In OO terms, the interface is the way to interact with the
>>object. It consists of all public members - both methods (functions,
>>in PHP) and variables. And for derived classes, the base class adds
>>protected members.
>>
>>A PHP interface is something entirely different.
>
>
>I disagree. It is possible to define a function (method) within a
>class,
>then to define a separate thing called an "interface". It is possible
>access
>the function without using the interface, therefore the interface is
>not
>necessary.
>

Tony,

You really need to learn about OO before spouting off. In OO terms, an
interface is something entirely different than a PHP interface.
How so? All the documentation I have seen describes how an interface
simply describes a method which it imlements. If it is possible to
access a method (a function in PHP) without going though an interface,
ten an interface is not necessary in any language.
You need to understand the difference between an interface as described
in OO terms and the PHP interface.

The PHP interface defines a set of methods (function) which are required
by the classes which implement the interface. Java is similar in that
respect. But both are a subset of the total interface.
It is possible to access the method directly without an interface,
therefore an interfae is not necessary.
"Possible" != "CORRECT"

That's just your opinion. Where does it say that I *MUST* define and use an
interface before I can access a class method? Interfaces are optional
(especuially in PHP) so it is not wrong to excercise the option NOT to use
them. I can define a class method and access that method without using an
interface, and that is what I choose to do.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 1 '06 #35

P: n/a
..oO(Jerry Stuckle)
>Tony is just a troll who is beyond stupid.
I start to believe that. ;(

Micha
Dec 1 '06 #36

P: n/a
..oO(Tony Marston)
>Just an example: Without
these interfaces it wouldn't be possible to use 'foreach' to iterate
over any arbitrary object:

foreach ($directory as $file) {...}
foreach ($resultSet as $record) {...}

With PHP 5 it is possible to use 'foreach' on an object without the use of
interfaces, so your argument is not valid.
It's a huge difference whether you just loop through all of the object's
properties like an array (that's what you described above) or if each
iteration automatically calls a particular method, which for example
fetches the next record from a database.

The latter is the basis of the SPL extension and not possible without
interfaces. Maybe IYHO the entire extension is not valid as well?

Micha
Dec 1 '06 #37

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:kv******************************@comcast.com. ..
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Du******************************@comcast.com ...
< snip>
>>>>>>>The PHP interface defines a set of methods (function) which are
>>>required by the classes which implement the interface. Java is
>>>similar in that respect. But both are a subset of the total
>>>interface.
>>
>>
>>It is possible to access the method directly without an interface,
>>therefore an interfae is not necessary.
>>
>
>"Possible" != "CORRECT"
That's just your opinion. Where does it say that I *MUST* define and use
an interface before I can access a class method? Interfaces are optional
(especuially in PHP) so it is not wrong to excercise the option NOT to
use them. I can define a class method and access that method without
using an interface, and that is what I choose to do.
When are you going to get it through that pea-sized mind of yours that a
PHP interface is not the same as an interface as defined in OO terms?

In OO terms, a public method is part of the interface. The PHP keyword
interface just defines a set of functions which must be implemented by
the class.

They are two entirely different things.


The fact that a method and an interface are different things is
irrelevant. I am just pointing out that in PHP an interface is not
necessary as I can access the method directly without going through an
interface. Is this statement true or false?

No, the fact that they are different are VERY RELEVANT. The fact you
can't understand the difference is also VERY RELEVANT. Or is it just that
you disregard facts which don't support with your stupidness?

Losing the argument so you need to disregard the facts? Typical troll
behavior.

Whether or not a PHP interface is required is immaterial - we are talking
about the OO concept of an interface, not PHP interfaces.

But that's way too deep for you to understand - the same word having
different meanings in different contexts? Hope your head didn't explode.
This is a PHP newsgroup, so I am explaining how interfaces work within PHP.
It is a simple fact that interfaces ARE NOT NECESSARY in PHP. The fact that
interfaces are treated differently in other languages is totally irrelevant.
The fact that YOU think that interfaces in PHP should behave exactly the
same as in other languages is also irrelevant.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 2 '06 #38

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Wf******************************@comcast.com. ..
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:rN******************************@comcast.com ...
>>>Tony Marston wrote:

< snip>
>>>>>>>Tony and I have been into this before. He breaks into conversations
>>>trying to spout his version of OO, with a few blogs from people no
>>>one every heard of to back him up.
>>
>>
>>I see. So in your opinion Martin Fowler is of of these "people no one
>>ever heard of "? He says, like I do, that "Encapsulation Wasn't Meant
>>To Mean Data Hiding" at
>>http://homepage.mac.com/keithray/blog/2006/02/22/
>>
>>Are you saying that YOU are more of an expert than Martin Fowler? What
>>arrogance!
>>
>
>No, I'm saying Booch, Rumbaugh and Jacobson, among others, are more
>expert than Martin Fowler. And yes, I've heard of him.
>
>But you're not quoting Martin Fowler. You're quoting Keith Ray's
>INTERPRETATION if Martin Fowler.
If you bothered to follow the link to Martn Fowler's page at
http://martinfowler.com/bliki/GetterEradicator.html you would see in
paragraph 4 tha it is a direct quotation, not an interpretation.
Yes, and did you actually read that page? To quote from Martin Fowler:

"For me, the point of encapsulation isn't really about hiding the data,
but in hiding design decisions, particularly in areas where those
decisions may have to change. The internal data representation is one
example of this..."


The full quote is "The internal data representation is one example of
this, ** but not the only one and not always the best one.**" The
significant point is the sentence which reads "point of encapsulation
isn't really about hiding the data, but in hiding design decisions". If
you follow the link he provides to
http://www.craiglarman.com/articles/...20Software.pdf
by Craig Larman there is an interesting chapter with the title
"Information hiding is PV, not data encapsulation". The hiding of design
decisions was supposed to mean hiding the code which manipulates the
data, not the data itself.

As I have said several times, and quoted from other resources,
encapsulation is NOT about INFORMATION hiding but about IMPLEMENTATION
hiding. There is a subtle difference which you fail to grasp.

No, the point YOU fail to grasp, which ALL the experts, including Martin
Fowler, is the actual variables used are PART OF THE IMPLEMENTATION.

I never said you should hide the information. But you should hide HOW THE
INFORMATION IS STORED. That is one of the DESIGN DECISIONS he is talking
about.
I suggest you learn to read. The article by Craig Larman clearly states "In
it, Parnas introduces information hiding. Many people have misinterpretted
this term as meaning data encapsulation, and some books erroneously define
the concepts as synonyms"
Do you see? "Encapsulation" is not supposed to mean "data encapsulation".

This is something on which EVERY expert agrees. But you fail to
understand.
Not EVERY export. Some agree, some don't..
And the same thing with Craig Larman's article. He agrees that
encapsulation is good because it hides the design details. No one ever
claimed it hid information.

Wrong on both counts, Tony the Troll. Learn to read.
"Encapsulation" is not supposed to mean "data encapsulation". It is supposed
to hide the implemetation (code), not the information (data).
>>
>>>This is in perfect agreement with Booch, Rumbaugh, Iverson and others.
And a direct CONTRADICTION to troll Tony Marston.
>>>It's not worth getting into the argument. He's just a troll with
>>>delusions of competency.
>>
>>
>>If everyone who disagrees with you is incompetent then the world is
>>full of idiots. Your opinion is not the only opinion, and there are
>>plenty of "experts" who have opposing views.
>>
>
>No, I disagree with a lot of competent people. It's YOU who are an
>incompetent troll. And you continue to prove it.
I see. I agree with some of the people that you disagree with, yet that
makes me a troll.
>>>>>Try these - with direct quotes from recognized experts, and examples:
>
>http://www.research.umbc.edu/~tarr/d...ciples-2pp.pdf
>http://www.nnwj.de/encapsulation.html
>
>Or better yet, read the real books by these authors.
>
>But I know you won't, because you disagree with what they say, and
>don't want to burst your little bubble.
>
>Troll.
Whether you like it or not there is no such thing as a single opinion as
to what OOP is and is not, and there are multiple interpretations as to
the real meaning of encapsulation, inheritance, polymorphism,
implementation hiding and information hiding. Just because you quote
sources who agree with you does not mean you are right and everybody
else is wrong. Here are sources with the opinion that "Encapsulation is
NOT information hiding":

http://homepage.mac.com/keithray/blog/2006/02/22/
http://martinfowler.com/bliki/GetterEradicator.html
http://www.javaworld.com/javaworld/j...on.html?page=1
http://www.itmweb.com/essay550.htm
http://nat.truemesh.com/archives/000498.html

The world is full of different opinions, so who is to say which ones are
right and which ones are wrong?
Yea, and some, like yours, troll, are just wrong.


In your opinion they are wrong, but I do not value your opinion.

I really don't give a flying fuck if you or any other troll values my
opinion, Tony. Your idiocy is beyond comprehension.
>>
>>>Read the experts I've mentioned several times. You might actually learn
something.

But I know you won't. Like all trolls you know everything and anyone who
disagrees with you is wrong - no matter how much of a recognized expert
he is.


All the "experts" in the world do not agree. "My" experts disagree with
"your" experts. Just because I, and many others, disagree with your
opinion does not make me/us wrong.

Where did your "experts" get their training? The great Tony Martson
School of Bullshit?

These are experts recognized by the INDUSTRY - not me, not Tony Marston.
They are recognized by top programmers, university professors, industry
groups, publishers and more.

And quite frankly, troll Tony Marston's opinion on who an expert is isn't
important.
Neither is yours.
>>>Go and crawl back into your hole, troll. And take your delusions of
competence with you.


Typical reaction of a moron. When you start losing the argument out come
the insults.

Yep, you've labeled yourself for sure. I am not "losing the argument".
Rather, you are just too thick-headed and stubborn to listen to the real
experts in the field.
As I keep on saying, there is no such thing as one set of experts with whom
EVERYBODY agrees, just as there is no such thing as one programming style
with which EVEYBODY agrees.In every walk of life there are different
opinions, and all I am doing is expressing an opinion which isdifferent from
yours.
You've done a little programming in one (or maybe even two) languages.
I have done a lot of programming in many languages.
You think reading some of the crap on the Internet makes you an expert in
the matter.
Just as the crap you read makes you an expert.
Let me clue you in, Tony. You are far from an expert in anything. A web
site with some copied (and incorrect)
It is only your opinion that it is incorect. Other people do not think so.
information does not make you an expert. Posting your bullshit in this
and other newsgroups does not make you an expert.
Posting your bullsh*t does not make you an expert either.
And quoting people no one ever heard of does not make you an expert.
Just because you haven't heard of them does no mean that they do not exist,
nor hat their opinions are worthless.
Try working on an OO project with 100 programmers. Learn how to do
proper OO.
I once worked on a project with a team of so-called OO "experts", and it was
the worst technical disaster of my entire career. They were so full of their
fancy ideas they coud not tell which way was up. They were so incompetent
they could not find their own backsides in the dark if you let them use both
hands and gave them a map and compass.
Then spend another 5-10 years or so working your way up in the OOAD
field, until you're managing projects like the one above. Then your
opinions might count. I've done all of that over the years.

Or even read the books I mentioned by those authors.

But I know you won't. Like all trolls, you're just plain stupid, and are
totally afraid the bullshit you've been espousing might be wrong.

Go away, troll.
No, I won't. I will keep contradicting your opinions until hell freezes over
for the simple reason that I, and others, do not agree with your opinions.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 2 '06 #39

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Wf******************************@comcast.com. ..
Michael Fesser wrote:
>.oO(Tony Marston)

>>>That just tells me what interfaces ARE, but it certainly does not say
that interfaces are REQUIRED. It is possible to define a class method and
access it directly WITHOUT going through an interface, therefore an
interface IS NOT NECESSARY.


Forget it. Obviously you haven't understood what interfaces in PHP are
used for and what you can do/ensure with them. Just an example: Without
these interfaces it wouldn't be possible to use 'foreach' to iterate
over any arbitrary object:

foreach ($directory as $file) {...}
foreach ($resultSet as $record) {...}

Micha

Micha,

Tony is just a troll who is beyond stupid. He can't even understand the
"experts" he quotes. They contradict what he says, but he can't see that.
They also contradict what you say, and you can't see that.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 2 '06 #40

P: n/a

"Michael Fesser" <ne*****@gmx.dewrote in message
news:u4********************************@4ax.com...
.oO(Tony Marston)
>>Just an example: Without
these interfaces it wouldn't be possible to use 'foreach' to iterate
over any arbitrary object:

foreach ($directory as $file) {...}
foreach ($resultSet as $record) {...}

With PHP 5 it is possible to use 'foreach' on an object without the use of
interfaces, so your argument is not valid.

It's a huge difference whether you just loop through all of the object's
properties like an array (that's what you described above) or if each
iteration automatically calls a particular method, which for example
fetches the next record from a database.

The latter is the basis of the SPL extension and not possible without
interfaces. Maybe IYHO the entire extension is not valid as well?

Micha
I have no opinion on the SPL extension as I have never used it. That
argument is irrelevant anyway. The point being debated here is whether
interfaces in PHP are necessary, and it is my opinion that they are NOT.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 2 '06 #41

P: n/a
"Buddy" <bu***********@gmail.comwrote in message
news:11**********************@73g2000cwn.googlegro ups.com...
Python does what LISP does with better syntax. So I would say Python
bets both LISP and PHP and with mod_python (for Apache), maybe you
should learn it.
What has this got to do with the topic being discussed?

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:n9******************************@comcast.com ...
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:bp******************************@comcast.com ...

Tony Marston wrote:

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Pe******************************@comcast. com...
>Tony Marston wrote:
>
>
>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>>news:j9******************************@comcas t.com...
>>
>>
>>
>>>Tony Marston wrote:
>>>
>>>
>>>
>>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
>>>>news:Ib******************************@comc ast.com...
>>>>
>>>>
>>>>
>>>>
>>>>>jopperdepopper wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>>You should read "can be accessed everywhere".
>>>>>>>
>>>>>>>Private members can be accessed by members of the class only.
>>>>>>>Protected members can be accessed by members of the class or a
>>>>>>>derived
>>>>>>>class.
>>>>>>>Public members can be accessed by anyone, including other
>>>>>>>classes,
>>>>>>>functions and any other code.
>>>>>>
>>>>>>
>>>>>>
>>>>>>Thanks Jerry. I'm trying to make a bit of sense of the php 5
>>>>>>approach
>>>>>>to classes, and so far having a hard time. I fail to see the
>>>>>>'why'
>>>>>>behind the 'public, protected and private' and stuff like
>>>>>>abstraction,
>>>>>>interfaces and whatnot.
>>>>
>>>>
>>>>Intefaces are not necessary in PHP. Once you have defined a
>>>>method
>>>>it is a total waste to time to also define an interface.
>>>>Interfaces
>>>>are a "fix" in those languages as a means of dealing with
>>>>optional
>>>>arguments and statyic typing. PHP has ifferent ways of dealing
>>>>with
>>>>bth of these, therefore interfaces serve no useful purpose.
>>>>
>>>
>>>Ah, the great Tony Marston is back to trolling again.
>>>
>>>Wrong. In OO terms, the interface is the way to interact with the
>>>object. It consists of all public members - both methods
>>>(functions,
>>>in PHP) and variables. And for derived classes, the base class
>>>adds
>>>protected members.
>>>
>>>A PHP interface is something entirely different.
>>
>>
>>I disagree. It is possible to define a function (method) within a
>>class,
>>then to define a separate thing called an "interface". It is
>>possible
>>access
>>the function without using the interface, therefore the interface
>>is
>>not
>>necessary.
>>
>
>Tony,
>
>You really need to learn about OO before spouting off. In OO terms,
>an
>interface is something entirely different than a PHP interface.
How so? All the documentation I have seen describes how an interface
simply describes a method which it imlements. If it is possible to
access a method (a function in PHP) without going though an
interface,
ten an interface is not necessary in any language.
You need to understand the difference between an interface as
described
in OO terms and the PHP interface.

The PHP interface defines a set of methods (function) which are
required
by the classes which implement the interface. Java is similar in that
respect. But both are a subset of the total interface.
It is possible to access the method directly without an interface,
therefore an interfae is not necessary.
"Possible" != "CORRECT"

That's just your opinion. Where does it say that I *MUST* define and use
an
interface before I can access a class method? Interfaces are optional
(especuially in PHP) so it is not wrong to excercise the option NOT to
use
them. I can define a class method and access that method without using an
interface, and that is what I choose to do.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org

Dec 2 '06 #42

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Wf******************************@comcast.com. ..
>>Tony Marston wrote:
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:rN******************************@comcast.c om...
Tony Marston wrote:

< snip>

>>>>Tony and I have been into this before. He breaks into conversations
>>>>trying to spout his version of OO, with a few blogs from people no
>>>>one every heard of to back him up.
>>>
>>>
>>>I see. So in your opinion Martin Fowler is of of these "people no one
>>>ever heard of "? He says, like I do, that "Encapsulation Wasn't Meant
>>>To Mean Data Hiding" at
>>>http://homepage.mac.com/keithray/blog/2006/02/22/
>>>
>>>Are you saying that YOU are more of an expert than Martin Fowler? What
>>>arrogance!
>>>
>>
>>No, I'm saying Booch, Rumbaugh and Jacobson, among others, are more
>>expert than Martin Fowler. And yes, I've heard of him.
>>
>>But you're not quoting Martin Fowler. You're quoting Keith Ray's
>>INTERPRETATION if Martin Fowler.
>
>
>If you bothered to follow the link to Martn Fowler's page at
>http://martinfowler.com/bliki/GetterEradicator.html you would see in
>paragraph 4 tha it is a direct quotation, not an interpretation.
>

Yes, and did you actually read that page? To quote from Martin Fowler:

"For me, the point of encapsulation isn't really about hiding the data,
but in hiding design decisions, particularly in areas where those
decisions may have to change. The internal data representation is one
example of this..."
The full quote is "The internal data representation is one example of
this, ** but not the only one and not always the best one.**" The
significant point is the sentence which reads "point of encapsulation
isn't really about hiding the data, but in hiding design decisions". If
you follow the link he provides to
http://www.craiglarman.com/articles/...20Software.pdf
by Craig Larman there is an interesting chapter with the title
"Information hiding is PV, not data encapsulation". The hiding of design
decisions was supposed to mean hiding the code which manipulates the
data, not the data itself.

As I have said several times, and quoted from other resources,
encapsulation is NOT about INFORMATION hiding but about IMPLEMENTATION
hiding. There is a subtle difference which you fail to grasp.

No, the point YOU fail to grasp, which ALL the experts, including Martin
Fowler, is the actual variables used are PART OF THE IMPLEMENTATION.

I never said you should hide the information. But you should hide HOW THE
INFORMATION IS STORED. That is one of the DESIGN DECISIONS he is talking
about.


I suggest you learn to read. The article by Craig Larman clearly states "In
it, Parnas introduces information hiding. Many people have misinterpretted
this term as meaning data encapsulation, and some books erroneously define
the concepts as synonyms"
Do you see? "Encapsulation" is not supposed to mean "data encapsulation".
Yes, I suggest you learn to read, Tony. Start with the real experts.

You're just a stupid troll who looks around for someone to support his
position. Read the authors I recommended.

And no, I don't need to read any more of your "experts". I've read
enough to see that you really don't understand what they're talking about.
>
>>This is something on which EVERY expert agrees. But you fail to
understand.


Not EVERY export. Some agree, some don't..
OK, every RECOGNIZED expert. That does not include the "experts" trolls
like you recognize. Nor anyone who posts an essay or blog on the web.
>
>>And the same thing with Craig Larman's article. He agrees that
encapsulation is good because it hides the design details. No one ever
claimed it hid information.

Wrong on both counts, Tony the Troll. Learn to read.


"Encapsulation" is not supposed to mean "data encapsulation". It is supposed
to hide the implemetation (code), not the information (data).
Encapsulation includes bot DATA AND CODE. How information is stored is
part of the implementation, also. But that's what you can't get through
your thick skull.

Maybe if you stood up and took a load off of your brain you could think
more clearly. I'd suggest you take a shit but I'm afraid you'd loose
what ever brains you might have.
>
>>>>This is in perfect agreement with Booch, Rumbaugh, Iverson and others.
And a direct CONTRADICTION to troll Tony Marston.

>>>>It's not worth getting into the argument. He's just a troll with
>>>>delusions of competency.
>>>
>>>
>>>If everyone who disagrees with you is incompetent then the world is
>>>full of idiots. Your opinion is not the only opinion, and there are
>>>plenty of "experts" who have opposing views.
>>>
>>
>>No, I disagree with a lot of competent people. It's YOU who are an
>>incompetent troll. And you continue to prove it.


I see. I agree with some of the people that you disagree with, yet that
makes me a troll.
No, you're a troll because you come into a tread and start arguing your
case. You refuse to read industry-recognized experts, but quote blogs
by people who agree with you.

And even when you post a page of someone who agrees with me and I point
it out, you refute it and change the subject - finding another unknown
"expert" to support your claim.

Also, I challenge you to find even ONE college level OO course in the
U.S. which agrees with you. I bet you can't. So I guess all those
professors are wrong, also.

You are a troll because you have absolutely no idea of which you talk.
You have no real experience outside of your little bubble, yet claim you
are an expert. You would never last in a corporate programming
environment - or any other serious programming group.

IOW, you're a total idiot, and proving it every day.
>
>>>>>>Try these - with direct quotes from recognized experts, and examples:
>>
>>http://www.research.umbc.edu/~tarr/d...ciples-2pp.pdf
>>http://www.nnwj.de/encapsulation.html
>>
>>Or better yet, read the real books by these authors.
>>
>>But I know you won't, because you disagree with what they say, and
>>don't want to burst your little bubble.
>>
>>Troll.
>
>
>Whether you like it or not there is no such thing as a single opinion as
>to what OOP is and is not, and there are multiple interpretations as to
>the real meaning of encapsulation, inheritance, polymorphism,
>implementation hiding and information hiding. Just because you quote
>sources who agree with you does not mean you are right and everybody
>else is wrong. Here are sources with the opinion that "Encapsulation is
>NOT information hiding":
>
>http://homepage.mac.com/keithray/blog/2006/02/22/
>http://martinfowler.com/bliki/GetterEradicator.html
>http://www.javaworld.com/javaworld/j...on.html?page=1
>http://www.itmweb.com/essay550.htm
>http://nat.truemesh.com/archives/000498.html
>
>The world is full of different opinions, so who is to say which ones are
>right and which ones are wrong?
>

Yea, and some, like yours, troll, are just wrong.
In your opinion they are wrong, but I do not value your opinion.

I really don't give a flying fuck if you or any other troll values my
opinion, Tony. Your idiocy is beyond comprehension.
>>>>Read the experts I've mentioned several times. You might actually learn
something.

But I know you won't. Like all trolls you know everything and anyone who
disagrees with you is wrong - no matter how much of a recognized expert
he is.
All the "experts" in the world do not agree. "My" experts disagree with
"your" experts. Just because I, and many others, disagree with your
opinion does not make me/us wrong.

Where did your "experts" get their training? The great Tony Martson
School of Bullshit?

These are experts recognized by the INDUSTRY - not me, not Tony Marston.
They are recognized by top programmers, university professors, industry
groups, publishers and more.

And quite frankly, troll Tony Marston's opinion on who an expert is isn't
important.


Neither is yours.
No, but my opinion is supported by Jacobson, Booch and Rumbaugh, among
other industry-recognized experts. Yours is only supported by bloggers
who, like you, are trying in vain to get noticed in this world.

And you won't even read the industry experts. Your mantra is:

"I've made up my mind. Don't confuse me with the facts".

>
>>>>Go and crawl back into your hole, troll. And take your delusions of
competence with you.
Typical reaction of a moron. When you start losing the argument out come
the insults.

Yep, you've labeled yourself for sure. I am not "losing the argument".
Rather, you are just too thick-headed and stubborn to listen to the real
experts in the field.


As I keep on saying, there is no such thing as one set of experts with whom
EVERYBODY agrees, just as there is no such thing as one programming style
with which EVEYBODY agrees.In every walk of life there are different
opinions, and all I am doing is expressing an opinion which isdifferent from
yours.

>>You've done a little programming in one (or maybe even two) languages.


I have done a lot of programming in many languages.
ROFLMAO! Basic? Javascript?
>
>>You think reading some of the crap on the Internet makes you an expert in
the matter.


Just as the crap you read makes you an expert.
Yea, Booch, Jacobson and Rumbaugh are "crap". That shows just how much
of a stupid troll you are, Tony.
>
>>Let me clue you in, Tony. You are far from an expert in anything. A web
site with some copied (and incorrect)


It is only your opinion that it is incorect. Other people do not think so.
It's the opinion of a lot of people on this newsgroup, Tony. You've
made a complete ass of yourself too many times.
>
>>information does not make you an expert. Posting your bullshit in this
and other newsgroups does not make you an expert.


Posting your bullsh*t does not make you an expert either.
The difference is my "bullshit" is supported by industry-recognized
techniques. Yours is only supported by unknown people who are trying to
get their names out.
>
>And quoting people no one ever heard of does not make you an expert.


Just because you haven't heard of them does no mean that they do not exist,
nor hat their opinions are worthless.
And it also doesn't mean they have any credibility. As a reference,
their opinions are worthless.
>
>>Try working on an OO project with 100 programmers. Learn how to do
proper OO.


I once worked on a project with a team of so-called OO "experts", and it was
the worst technical disaster of my entire career. They were so full of their
fancy ideas they coud not tell which way was up. They were so incompetent
they could not find their own backsides in the dark if you let them use both
hands and gave them a map and compass.
Right. And the great Tony Marston was the only competent programmer
there. Are you familiar with the term "megalomaniac"? Looks like we
need to add that to your description, also.
>
>Then spend another 5-10 years or so working your way up in the OOAD
field, until you're managing projects like the one above. Then your
opinions might count. I've done all of that over the years.

Or even read the books I mentioned by those authors.

But I know you won't. Like all trolls, you're just plain stupid, and are
totally afraid the bullshit you've been espousing might be wrong.

Go away, troll.


No, I won't. I will keep contradicting your opinions until hell freezes over
for the simple reason that I, and others, do not agree with your opinions.
And you'll keep making a complete ass of yourself, Tony. Almost
everyone here is laughing at you and your pitiful attempts to show how
little you know.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 2 '06 #43

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:kv******************************@comcast.com. ..
>>Tony Marston wrote:
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:Du******************************@comcast.c om...
< snip>

>>>>The PHP interface defines a set of methods (function) which are
>>>>required by the classes which implement the interface. Java is
>>>>similar in that respect. But both are a subset of the total
>>>>interface.
>>>
>>>
>>>It is possible to access the method directly without an interface,
>>>therefore an interfae is not necessary.
>>>
>>
>>"Possible" != "CORRECT"
>
>
>That's just your opinion. Where does it say that I *MUST* define and use
>an interface before I can access a class method? Interfaces are optional
>(especuially in PHP) so it is not wrong to excercise the option NOT to
>use them. I can define a class method and access that method without
>using an interface, and that is what I choose to do.
>

When are you going to get it through that pea-sized mind of yours that a
PHP interface is not the same as an interface as defined in OO terms?

In OO terms, a public method is part of the interface. The PHP keyword
interface just defines a set of functions which must be implemented by
the class.

They are two entirely different things.
The fact that a method and an interface are different things is
irrelevant. I am just pointing out that in PHP an interface is not
necessary as I can access the method directly without going through an
interface. Is this statement true or false?

No, the fact that they are different are VERY RELEVANT. The fact you
can't understand the difference is also VERY RELEVANT. Or is it just that
you disregard facts which don't support with your stupidness?

Losing the argument so you need to disregard the facts? Typical troll
behavior.

Whether or not a PHP interface is required is immaterial - we are talking
about the OO concept of an interface, not PHP interfaces.

But that's way too deep for you to understand - the same word having
different meanings in different contexts? Hope your head didn't explode.


This is a PHP newsgroup, so I am explaining how interfaces work within PHP.
It is a simple fact that interfaces ARE NOT NECESSARY in PHP. The fact that
interfaces are treated differently in other languages is totally irrelevant.
The fact that YOU think that interfaces in PHP should behave exactly the
same as in other languages is also irrelevant.
The subject of interfaces came up in the OO context, not a PHP interface.

However, you're too stupid to understand there's a difference between
the two. So you keep trying to change the subject then justifying your
change - just like any troll.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 2 '06 #44

P: n/a
That's just your opinion. Where does it say that I *MUST* define and use an
interface before I can access a class method? Interfaces are optional
(especuially in PHP) so it is not wrong to excercise the option NOT to use
them. I can define a class method and access that method without using an
interface, and that is what I choose to do.
No one is saying that you have to use interfaces. The point is that it
is there to help in organizing and creating classes, the same goes for
visibility keywords. Just because you don't have to use these, doesn't
mean that you should not use them.

I can see an advantage in using interfaces and/or visibility keywords
in PHP, if one is creating a large library, or to help communications
between a team of developers. These features can help track down where
a problem is if something isn't working right, or just for clarifying
the particular usage for the class or its members.

BTW, I do not believe there is any controversy over what encapsulation
is; if so, I haven't heard about it.

Dec 3 '06 #45

P: n/a

"Curtis" <dy****@gmail.comwrote in message
news:11**********************@80g2000cwy.googlegro ups.com...
>That's just your opinion. Where does it say that I *MUST* define and use
an
interface before I can access a class method? Interfaces are optional
(especuially in PHP) so it is not wrong to excercise the option NOT to
use
them. I can define a class method and access that method without using an
interface, and that is what I choose to do.

No one is saying that you have to use interfaces.
Exactly. All I am saying is that interfaces are not necessary, just as the
use on private/protected is not necessary. Others keep arguning the
opposite.
The point is that it
is there to help in organizing and creating classes, the same goes for
visibility keywords. Just because you don't have to use these, doesn't
mean that you should not use them.

I can see an advantage in using interfaces and/or visibility keywords
in PHP, if one is creating a large library, or to help communications
between a team of developers. These features can help track down where
a problem is if something isn't working right, or just for clarifying
the particular usage for the class or its members.

BTW, I do not believe there is any controversy over what encapsulation
is; if so, I haven't heard about it.
To some people encapsulation means "implementation hiding" while to others
it means "information hiding". This is discussed in the following documents:
http://www.itmweb.com/essay550.htm
http://homepage.mac.com/keithray/blog/2006/02/22/
http://www.javaworld.com/javaworld/j...psulation.html

There is no single view as to what OOP actually IS or IS NOT. People cannot
agree on what the basic terminology means, which leads to greater arguments
on how it should be implemented.

There are some people in this newsgroup who do not like views which differ
from their own. They consider their way to be the RIGHT way, the ONLY way,
just like religious fanatics. All I am trying to do is point out that there
is no single truth, no single point of view.

--
Tony Marston

http://www.tonymarston.net
http://www.radicore.org


Dec 3 '06 #46

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:4q******************************@comcast.com. ..
Tony Marston wrote:
<snip>
>I suggest you learn to read. The article by Craig Larman clearly states
"In it, Parnas introduces information hiding. Many people have
misinterpretted this term as meaning data encapsulation, and some books
erroneously define the concepts as synonyms"
Do you see? "Encapsulation" is not supposed to mean "data encapsulation".

Yes, I suggest you learn to read, Tony. Start with the real experts.

You're just a stupid troll who looks around for someone to support his
position. Read the authors I recommended.

And no, I don't need to read any more of your "experts". I've read enough
to see that you really don't understand what they're talking about.
>>
>>>This is something on which EVERY expert agrees. But you fail to
understand.


Not EVERY export. Some agree, some don't..

OK, every RECOGNIZED expert. That does not include the "experts" trolls
like you recognize. Nor anyone who posts an essay or blog on the web.
Oh I see. Someone is not an expert unless you personally give them your seal
of approval. That is NOT how it works.
>>>And the same thing with Craig Larman's article. He agrees that
encapsulation is good because it hides the design details. No one ever
claimed it hid information.

Wrong on both counts, Tony the Troll. Learn to read.
I suggest YOU learn to read. Encapsulation is NOT the same as data hiding.
>"Encapsulation" is not supposed to mean "data encapsulation". It is
supposed to hide the implemetation (code), not the information (data).

Encapsulation includes bot DATA AND CODE. How information is stored is
part of the implementation, also. But that's what you can't get through
your thick skull.
Encapsulation means "implementation hiding" not "information hiding". I do
not need private/protected variables to implement encapsulation.
Maybe if you stood up and took a load off of your brain you could think
more clearly. I'd suggest you take a shit but I'm afraid you'd loose what
ever brains you might have.
>>
>>>>>This is in perfect agreement with Booch, Rumbaugh, Iverson and others.
>And a direct CONTRADICTION to troll Tony Marston.
And other experts, such as Martin Fowler.
>>>>>>>>>It's not worth getting into the argument. He's just a troll with
>>>>>delusions of competency.
>>>>
>>>>
>>>>If everyone who disagrees with you is incompetent then the world is
>>>>full of idiots. Your opinion is not the only opinion, and there are
>>>>plenty of "experts" who have opposing views.
>>>>
>>>
>>>No, I disagree with a lot of competent people. It's YOU who are an
>>>incompetent troll. And you continue to prove it.


I see. I agree with some of the people that you disagree with, yet that
makes me a troll.

No, you're a troll because you come into a tread and start arguing your
case.
That is what newsgroups are for, to expose different points of view.
You refuse to read industry-recognized experts, but quote blogs by people
who agree with you.
I read from a different set of experts, as do many others.
And even when you post a page of someone who agrees with me and I point it
out, you refute it and change the subject - finding another unknown
"expert" to support your claim.
So you agree that there are others out there, expert or not, who share MY
opinion and which contradicts YOUR opinion.
Also, I challenge you to find even ONE college level OO course in the U.S.
which agrees with you. I bet you can't. So I guess all those professors
are wrong, also.
If they are teaching that there is only one way to interpret what OO means,
and only one way to implement that interpretation, then they ARE wrong. Just
like those religious fanatics who preach that theirs is the ONE and ONLY
"true" faith.
You are a troll because you have absolutely no idea of which you talk.
I have an open mind. I am prepared to listen to all arguments before I
decide which path to follow. And I choose NOT to follow your particular
path.
You have no real experience outside of your little bubble, yet claim you
are an expert.
I have never claimed to be an expert, unlike YOU. All I have done is pointed
out that other experts have opinions which differ from yours.

< snip>
And you won't even read the industry experts. Your mantra is:
"I've made up my mind. Don't confuse me with the facts".
That's funny. I thought that was YOUR mantra.

<snip>
The difference is my "bullshit" is supported by industry-recognized
techniques. Yours is only supported by unknown people who are trying to
get their names out.
So Martin Fowler is not a recognised expert?

< snip>
>>>Try working on an OO project with 100 programmers. Learn how to do
proper OO.
That's the problem. Different people have a totally different idea as to
what "proper OO" actually is. You are the arrogant one who keeps insisting
that YOUR opinion is the ONLY opinion worth having.

--
Tony Marston

http://www.tonymarston.net
http://www.radicore.org
Dec 3 '06 #47

P: n/a

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:4q******************************@comcast.com. ..
Tony Marston wrote:
<snip>
>This is a PHP newsgroup, so I am explaining how interfaces work within
PHP. It is a simple fact that interfaces ARE NOT NECESSARY in PHP. The
fact that interfaces are treated differently in other languages is
totally irrelevant. The fact that YOU think that interfaces in PHP should
behave exactly the same as in other languages is also irrelevant.

The subject of interfaces came up in the OO context, not a PHP interface.

However, you're too stupid to understand there's a difference between the
two. So you keep trying to change the subject then justifying your
change - just like any troll.
This is a PHP newsgroup. All my arguments concern PHP. I do not care that
other languages have different implementations because that is totally
irrelevant. The simple fact is that in PHP it is not necessary to use
interfaces.

--
Tony Marston

http://www.tonymarston.net
http://www.radicore.org

Dec 3 '06 #48

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:4q******************************@comcast.com. ..
>>Tony Marston wrote:

<snip>
>>>I suggest you learn to read. The article by Craig Larman clearly states
"In it, Parnas introduces information hiding. Many people have
misinterpretted this term as meaning data encapsulation, and some books
erroneously define the concepts as synonyms"
Do you see? "Encapsulation" is not supposed to mean "data encapsulation".

Yes, I suggest you learn to read, Tony. Start with the real experts.

You're just a stupid troll who looks around for someone to support his
position. Read the authors I recommended.

And no, I don't need to read any more of your "experts". I've read enough
to see that you really don't understand what they're talking about.

>>>
This is something on which EVERY expert agrees. But you fail to
understand.
Not EVERY export. Some agree, some don't..

OK, every RECOGNIZED expert. That does not include the "experts" trolls
like you recognize. Nor anyone who posts an essay or blog on the web.


Oh I see. Someone is not an expert unless you personally give them your seal
of approval. That is NOT how it works.
That's hilarious. You think you're an expert because you one time
worked on one failed OO project. Try working on a few dozen successful
ones. Then maybe you'll learn someone.

And these are experts recognized by the INDUSTRY. People who have been
doing OOAD for years. University Professors. Industry giants. And so on.

But you think anyone who doesn't agree with you doesn't know anything.
You are beyond stupid, Tony. And people laugh at you.
>
>>>>And the same thing with Craig Larman's article. He agrees that
encapsulation is good because it hides the design details. No one ever
claimed it hid information.

Wrong on both counts, Tony the Troll. Learn to read.


I suggest YOU learn to read. Encapsulation is NOT the same as data hiding.
And I suggest you learn to read. I never said encapsulation had
anything do to with data hiding. But you're too stoopid to understand
that, either.
>
>>>"Encapsulation" is not supposed to mean "data encapsulation". It is
supposed to hide the implemetation (code), not the information (data).

Encapsulation includes bot DATA AND CODE. How information is stored is
part of the implementation, also. But that's what you can't get through
your thick skull.


Encapsulation means "implementation hiding" not "information hiding". I do
not need private/protected variables to implement encapsulation.
Exactly. And how data is stored is part of the implementation. But
again, you're too stoopid to understand that part.
>
>>Maybe if you stood up and took a load off of your brain you could think
more clearly. I'd suggest you take a shit but I'm afraid you'd loose what
ever brains you might have.

>>>>>>This is in perfect agreement with Booch, Rumbaugh, Iverson and others.
>>And a direct CONTRADICTION to troll Tony Marston.


And other experts, such as Martin Fowler.
And no, your beloved Martin Fowler is not a widely recognized expert.
Not like Booch, Rumbaugh and Iverson, for three. But even so, Martin
Fowler agrees with the other three experts. But you're too stoopid to
understand that, either.
>
>>>>>>>>>>It's not worth getting into the argument. He's just a troll with
>>>>>>delusions of competency.
>>>>>
>>>>>
>>>>>If everyone who disagrees with you is incompetent then the world is
>>>>>full of idiots. Your opinion is not the only opinion, and there are
>>>>>plenty of "experts" who have opposing views.
>>>>>
>>>>
>>>>No, I disagree with a lot of competent people. It's YOU who are an
>>>>incompetent troll. And you continue to prove it.
I see. I agree with some of the people that you disagree with, yet that
makes me a troll.

No, you're a troll because you come into a tread and start arguing your
case.


That is what newsgroups are for, to expose different points of view.
Yea, but the problem is you can't keep people like Tony Marston with
shit for brains out, either. But that's ok, there are a lot of people
getting a big laugh at you.

Imaging - calling yourself an "expert" when you've only worked on one
project - which failed. ROFLMAO!
>
>You refuse to read industry-recognized experts, but quote blogs by people
who agree with you.


I read from a different set of experts, as do many others.
And your "experts" are not recognized by the industry. They're just
like you - poor wanna-be's with a web site and delusions of competence.
People who are so desperate for attention they'll post any bullshit
they can find, just to get attention.
>
>>And even when you post a page of someone who agrees with me and I point it
out, you refute it and change the subject - finding another unknown
"expert" to support your claim.


So you agree that there are others out there, expert or not, who share MY
opinion and which contradicts YOUR opinion.
Sure, there are people who don't understand OO, encapsulation and the
rest. In fact, I'll bet bet Hillary Clinton would agree with you. And
she's even famous!
>
>>Also, I challenge you to find even ONE college level OO course in the U.S.
which agrees with you. I bet you can't. So I guess all those professors
are wrong, also.


If they are teaching that there is only one way to interpret what OO means,
and only one way to implement that interpretation, then they ARE wrong. Just
like those religious fanatics who preach that theirs is the ONE and ONLY
"true" faith.
So now you're saying even all the colleges and universities in this
country are wrong, also, because they don't agree with Tony Marston?

ROFLMAO!
>
>>You are a troll because you have absolutely no idea of which you talk.


I have an open mind. I am prepared to listen to all arguments before I
decide which path to follow. And I choose NOT to follow your particular
path.
That is the best line you've come up with yet, Tony!

No, you don't have an open mind. Your mind is fixated on how YOU think
things should be, and the rest of the world should conform to YOUR
ideas. And anyone who disagrees with you is wrong - including all
colleges, universities, industry-recognized experts...

That is not an open mind, Tony. That's a sign of megalomania. And
you're a troll, on top of it.
>
>>You have no real experience outside of your little bubble, yet claim you
are an expert.


I have never claimed to be an expert, unlike YOU. All I have done is pointed
out that other experts have opinions which differ from yours.
You have posted no "experts" who's opinions differ from mine. All
you've posted are blogs and other website entries by people no one else
knows.
< snip>
>>And you won't even read the industry experts. Your mantra is:
"I've made up my mind. Don't confuse me with the facts".


That's funny. I thought that was YOUR mantra.
Nope, the facts I have are from recognized experts. You have no real
experience in OO, you have not read industry experts, you haven't even
taken a college course on OOAD. And yet you think everyone else is wrong.
<snip>
>>The difference is my "bullshit" is supported by industry-recognized
techniques. Yours is only supported by unknown people who are trying to
get their names out.


So Martin Fowler is not a recognised expert?
Not as widely recognized as Booch, Rumbaugh and Iverson, amongst others.
And even so, if you really read what he says, he does agree with the
three above.
< snip>
>>>>Try working on an OO project with 100 programmers. Learn how to do
proper OO.


That's the problem. Different people have a totally different idea as to
what "proper OO" actually is. You are the arrogant one who keeps insisting
that YOUR opinion is the ONLY opinion worth having.
Yes, you are arrogant, Tony. And I can see why they fired your ass from
the project.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 3 '06 #49

P: n/a
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:4q******************************@comcast.com. ..
>>Tony Marston wrote:


<snip>
>>>This is a PHP newsgroup, so I am explaining how interfaces work within
PHP. It is a simple fact that interfaces ARE NOT NECESSARY in PHP. The
fact that interfaces are treated differently in other languages is
totally irrelevant. The fact that YOU think that interfaces in PHP should
behave exactly the same as in other languages is also irrelevant.

The subject of interfaces came up in the OO context, not a PHP interface.

However, you're too stupid to understand there's a difference between the
two. So you keep trying to change the subject then justifying your
change - just like any troll.


This is a PHP newsgroup. All my arguments concern PHP. I do not care that
other languages have different implementations because that is totally
irrelevant. The simple fact is that in PHP it is not necessary to use
interfaces.
This discussion has to do with interfaces in the OO context. They are
not the same as PHP interfaces.

But you're too stoopid to understand the difference, so like a troll you
try to change the subject.

Go away, troll.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 3 '06 #50

86 Replies

This discussion thread is closed

Replies have been disabled for this discussion.