473,387 Members | 1,834 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

php 5 classes: public, protected and private

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
86 4534
Curtis wrote:
>>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.
Hi, Curtis,

Actually, there is. Tony is claiming that variables should not be
private because they are not part of the implementation.

All of the industry-recognized experts, college level OOAD courses, etc.
disagree with him. So do the people who designed Java.

And even the PHP designers disagree with him - otherwise why would they
have bothered adding private and protected to variables, for instance?

Data should be private because it hides how the data is being stored. A
SQL database is a perfect example. You can't access the data directly,
but you can do it through SQL. And even if the internal representation
of the data changes (i.e. switch from MyISAM to InnoDB engines in MySQL,
or upgrade MySQL), you can still access the data with no changes to the
program. The data is encapsulated, but it is not hidden (it's all
available).

From one of the examples Tony quoted for an example of "proper" OO
coding. The user is storing:

public $longitude = 12.3456;
public $latitude = 23.4567;

The problem with having public variables is you may need to change them
later. There are other ways of storing this data, i.e.

public $longdeg = 12;
public $longmin = 34;
public $longsec = 56;

Or
public $longitude = array('deg'=>12, 'min'=>34, 'sec'=>56);

Or
public $longitude = 45678; // number of seconds
Or
public $longitude = "12.34.56"

and so on.

If these variables are public, you can never change them. But what
happens if you need to - i.e. for performance? Or accuracy?

For instance, if your database stores the long/lat in "12.34.56" format,
and all you need to do is display it, converting to and from
degrees/decimal is unnecessary and inefficient.

Or what if your database is stored as number of seconds, and you just
need to pull out the degrees, minutes and seconds? Again, unnecessary
overhead.

Rather, if you encapsulate the longitude and latitude, making them
private, with accessor functions, the data is not hidden - but the
implementation is.

This is where the disagreement lies. And it's why Tony is wrong.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 3 '06 #51
..oO(Tony Marston)
>I have no opinion on the SPL extension as I have never used it.
No surprise.
>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.
So just because you don't use them they are not necessary?
That perfectly sums it all up and explains a lot.

A last short statement: There are some really convenient new features in
the OOP handling in PHP 5, which _require_ interfaces. No interfaces, no
such features. If you haven't used them yet, fine. But that doesn't mean
that they are not necessary. For many other people who make use of all
the benefits PHP 5 has to offer they _are_ necessary.

I'm out.

EOT
Micha
Dec 3 '06 #52
..oO(Tony Marston)
>This is a PHP newsgroup, so I am explaining how interfaces work within PHP.
OK, please do that, no empty promises. Please explain, what interfaces
in PHP are and what you can do with them. Or can't do. I'm listening!

Micha
Dec 3 '06 #53
Hi, Curtis,

Hello :)

<snip>
If these variables are public, you can never change them. But what
happens if you need to - i.e. for performance? Or accuracy?
<snip>
Rather, if you encapsulate the longitude and latitude, making them
private, with accessor functions, the data is not hidden - but the
implementation is.
I see, I see. All of a sudden, it's like a light bulb turned on in my
head. I have have experience using OOP in PHP, Perl, JavaScript, and
very little in Python and C++, but I am nowhere near an expert,
although I have learned a lot from just trying out code and reading
documentation. There is a lot to OOP I have yet to learn, so I'll try
getting the materials by the experts mentioned. ;)

Just to make sure I interpreted your post correctly:

The benefit of encapsulation is doing things like making certain class
members private, and then utilizing setters/getters so that you can be
much more flexible in changing your class in the future.

Dec 4 '06 #54

"Curtis" <dy****@gmail.comwrote in message
news:11********************@79g2000cws.googlegroup s.com...
>Hi, Curtis,

Hello :)

<snip>
>If these variables are public, you can never change them. But what
happens if you need to - i.e. for performance? Or accuracy?
<snip>
>Rather, if you encapsulate the longitude and latitude, making them
private, with accessor functions, the data is not hidden - but the
implementation is.

I see, I see. All of a sudden, it's like a light bulb turned on in my
head. I have have experience using OOP in PHP, Perl, JavaScript, and
very little in Python and C++, but I am nowhere near an expert,
although I have learned a lot from just trying out code and reading
documentation. There is a lot to OOP I have yet to learn, so I'll try
getting the materials by the experts mentioned. ;)

Just to make sure I interpreted your post correctly:

The benefit of encapsulation is doing things like making certain class
members private, and then utilizing setters/getters so that you can be
much more flexible in changing your class in the future.
No, encapsulation is not about making everything private, it is about
putting data and the operations which act upon that data into a single
class. The ability to make certain operations or pieces of data private or
protected is OPTIONAL, not MANDATORY.

I am not saying that you MUST NOT make things private/protected, I am simply
arguing against the statement that you MUST use the private/protected
option. The point is that his is entirely OPTIONAL and is a matter of
personal preference.

As for saying that you MUST make all data private and access it through
getters and setters, you obviously haven't read
http://www.javaworld.com/javaworld/j...5-toolbox.html

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

"Michael Fesser" <ne*****@gmx.dewrote in message
news:ki********************************@4ax.com...
.oO(Tony Marston)
>>I have no opinion on the SPL extension as I have never used it.

No surprise.
>>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.

So just because you don't use them they are not necessary?
That perfectly sums it all up and explains a lot.

A last short statement: There are some really convenient new features in
the OOP handling in PHP 5, which _require_ interfaces. No interfaces, no
such features. If you haven't used them yet, fine. But that doesn't mean
that they are not necessary. For many other people who make use of all
the benefits PHP 5 has to offer they _are_ necessary.
So what you are saying is that interfaces are only necessary if you want to
make use of certain features. This supports my argument that interfaces are
OPTIONAL if you don't want to use those specialised features.

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

"Michael Fesser" <ne*****@gmx.dewrote in message
news:41********************************@4ax.com...
.oO(Tony Marston)
>>This is a PHP newsgroup, so I am explaining how interfaces work within
PHP.

OK, please do that, no empty promises. Please explain, what interfaces
in PHP are and what you can do with them. Or can't do. I'm listening!

Micha
It is a simple argument. In PHP interfaces are optional. I *do not* have to
define an interface before I can access a method in an object. The fact that
interfaces may have their uses in specialised circumstances does not get
away from the fact that under normal use they are optional.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 4 '06 #57
Why is it so difficult for you to accept that YOUR opinion is not the ONLY
opinion that is allowed to exist? Just because you can quote some people who
agree with you does not make you right. I have quoted from other sources who
agree with me, yet you dismiss all these different opinions as being
"irrelevant".

Your use of personal insults also shows what a juvenile mind you have.

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

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:v8******************************@comcast.com. ..
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 4 '06 #58

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:v8******************************@comcast.com. ..
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.
I am not changing the subject, you are. This is a PHP newsgroup, and my
argument is simply that interfaces are not necessary in PHP. You cannot
disprove this argument, so you attempt to change it to a different argument.

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

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:df******************************@comcast.com. ..
Curtis wrote:
>>>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.

Hi, Curtis,

Actually, there is. Tony is claiming that variables should not be private
because they are not part of the implementation.
Wrong again. I did not say that they SHOULD NOT be private, I said that they
DO NOT HAVE TO be private. It is optonal, not mandatory.
All of the industry-recognized experts, college level OOAD courses, etc.
disagree with him. So do the people who designed Java.

And even the PHP designers disagree with him - otherwise why would they
have bothered adding private and protected to variables, for instance?
They added those features so that programmers have the option of using them.
Their usage is OPTIONAL, not MANDATORY.
Data should be private because it hides how the data is being stored. A
SQL database is a perfect example. You can't access the data directly,
but you can do it through SQL. And even if the internal representation of
the data changes (i.e. switch from MyISAM to InnoDB engines in MySQL, or
upgrade MySQL), you can still access the data with no changes to the
program. The data is encapsulated, but it is not hidden (it's all
available).
Now it is you who is being stupid. The way in whch data is stored in the
database has nothing to do with making object variables public, protected or
private. In a well-written application all database access should be
performed in a separate data access object (DAO), thus making it possible to
switch from one database to another (e.g. fom MySQL to PostgreSQL) without
having any effect on the business object.

My argument is that it is not NECESSARY to make every class variable private
or protected. It is an OPTION, but one which does not provide any
additional functionality or increased performance. All it does is place
restrictions on the programmer.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 4 '06 #60
Tony Marston wrote:
Why is it so difficult for you to accept that YOUR opinion is not the ONLY
opinion that is allowed to exist? Just because you can quote some people who
agree with you does not make you right. I have quoted from other sources who
agree with me, yet you dismiss all these different opinions as being
"irrelevant".

Your use of personal insults also shows what a juvenile mind you have.
Why is it so difficult for you to understand that you, with no real OO
experience, and in direct conflict with industry-recognized experts such
as Booch, Jacobson and Rumbaugh, as well as virtually every college
level course on the country, are full of shit?

Because you're stoopid, that's why.

And the insults are because you are too stoopid to understand anything
else, Tony.

People around here are laughing at you. Your stoopidity is beyond
comprehension by anyone with any intellect.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 4 '06 #61
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:v8******************************@comcast.com. ..
>>Tony Marston wrote:
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:4q******************************@comcast.c om...
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.


I am not changing the subject, you are. This is a PHP newsgroup, and my
argument is simply that interfaces are not necessary in PHP. You cannot
disprove this argument, so you attempt to change it to a different argument.
Sorry, Tony. You're even too stoopid to understand the difference
between interfaces in the OO context, which is where this started out,
and the PHP interface keyword.

So you try to change the subject to something else you know absolutely
nothing about, then accuse others of doing the same.

Go back through this thread. Everyone was talking about OO interfaces
before troll Tony Marston stuck his big (and stoopid) mouth in here.

But then you didn't understand the difference the first time; you'll be
too stoopid to understand the difference the second time, also.

People are laughing at you, Tony.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 4 '06 #62
Michael Fesser wrote:
.oO(Tony Marston)

>>This is a PHP newsgroup, so I am explaining how interfaces work within PHP.


OK, please do that, no empty promises. Please explain, what interfaces
in PHP are and what you can do with them. Or can't do. I'm listening!

Micha
You notice how Tony refuses to answer your question? It's because he's
too stoopid to respond intelligently.

Have a good laugh with the rest of us - Tony still thinks he (and a few
other unheard of bloggers) are right, and all of the industry-recognized
experts, college professors, experienced OO designers, etc., are wrong.

I'm wondering - does the term megalomaniac ring a bell? Or do you think
it's just that he's beyond stoopid?

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 4 '06 #63
Curtis wrote:
>>Hi, Curtis,


Hello :)

<snip>
>>If these variables are public, you can never change them. But what
happens if you need to - i.e. for performance? Or accuracy?

<snip>
>>Rather, if you encapsulate the longitude and latitude, making them
private, with accessor functions, the data is not hidden - but the
implementation is.


I see, I see. All of a sudden, it's like a light bulb turned on in my
head. I have have experience using OOP in PHP, Perl, JavaScript, and
very little in Python and C++, but I am nowhere near an expert,
although I have learned a lot from just trying out code and reading
documentation. There is a lot to OOP I have yet to learn, so I'll try
getting the materials by the experts mentioned. ;)

Just to make sure I interpreted your post correctly:

The benefit of encapsulation is doing things like making certain class
members private, and then utilizing setters/getters so that you can be
much more flexible in changing your class in the future.
Curtis,

Definitely. What you're doing is hiding the implementation of the class
- that is, how the data is stored. The data is still available, via the
accessor functions. But the rest of your program is not dependent on
the internal representation of that data.

Once you've released the class, you can't change or remove anything
that's defined as public (other than to add more to the public
interface). That's because you have no way of knowing who is using it.
You are, however, completely free to change anything declared as
private - because only the class itself can access those items.

The more complex the class, the more important this is. For instance,
there may be a change in the program requirements which necessitates a
change in the data for one reason or another. Or, perhaps there was a
bug in the class itself, and you need to change the data. Or any of a
million different possibilities.

Keeping the data encapsulated ensures any changes to the data only
affect the class itself, and nothing which uses the class.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 4 '06 #64
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:df******************************@comcast.com. ..
>>Curtis wrote:
>>>>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.

Hi, Curtis,

Actually, there is. Tony is claiming that variables should not be private
because they are not part of the implementation.


Wrong again. I did not say that they SHOULD NOT be private, I said that they
DO NOT HAVE TO be private. It is optonal, not mandatory.
Tony, you continue to make a complete ass of yourself. To back into
your little hole, you stoopid troll.
>
>>All of the industry-recognized experts, college level OOAD courses, etc.
disagree with him. So do the people who designed Java.

And even the PHP designers disagree with him - otherwise why would they
have bothered adding private and protected to variables, for instance?


They added those features so that programmers have the option of using them.
Their usage is OPTIONAL, not MANDATORY.
Because you have no idea about what you're talking about. You've been
on one failed OO project - supposedly because those in charge knew less
that you do. You've never taken a class in OO, you've never read any of
the industry-recognized experts on OO (and refuse to do so).

You're just a stoopid troll.
>
>>Data should be private because it hides how the data is being stored. A
SQL database is a perfect example. You can't access the data directly,
but you can do it through SQL. And even if the internal representation of
the data changes (i.e. switch from MyISAM to InnoDB engines in MySQL, or
upgrade MySQL), you can still access the data with no changes to the
program. The data is encapsulated, but it is not hidden (it's all
available).


Now it is you who is being stupid. The way in whch data is stored in the
database has nothing to do with making object variables public, protected or
private. In a well-written application all database access should be
performed in a separate data access object (DAO), thus making it possible to
switch from one database to another (e.g. fom MySQL to PostgreSQL) without
having any effect on the business object.

My argument is that it is not NECESSARY to make every class variable private
or protected. It is an OPTION, but one which does not provide any
additional functionality or increased performance. All it does is place
restrictions on the programmer.
To crawl back into your hole, stoopid troll. You obviously don't
understand encapsulation. And you have no idea what I was talking
about, even though it was in terms simple enough for you to understand.

People continue to laugh at you, Tony. You continue to prove you are
too stoopid to understand your ignorance.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 4 '06 #65
Tony Marston wrote:
No, encapsulation is not about making everything private, it is about
putting data and the operations which act upon that data into a single
class. The ability to make certain operations or pieces of data private or
protected is OPTIONAL, not MANDATORY.
I never claimed to summarize the entirety of encapsulation as the act
of making EVERYTHING private, I was merely restating in my own words to
try and clarify my understanding.
I am not saying that you MUST NOT make things private/protected, I am simply
arguing against the statement that you MUST use the private/protected
option. The point is that his is entirely OPTIONAL and is a matter of
personal preference.
You seem to be best friends with the straw man fallacy.
As for saying that you MUST make all data private and access it through
getters and setters, you obviously haven't read
http://www.javaworld.com/javaworld/j...5-toolbox.html
The sources I've gathered, although differ slightly in diction,
generally concur on the meaning of encapsulation. It is true that not
all experts in a field will agree on everything, but the areas in which
there is genuine knowledge are not up for debate or subject to opinion.
You may be confusing semantics for the actual act of implementation, in
this case.

Please don't put words in my mouth. I never said that you MUST do
anything. Honestly, the source you cited is extremely dubious. Nearly
every comment questions Allen Holub's credibility. This is not an
authoritative source, by any means. One commenter even states:

"We have countless of examples of projects / systems that were and are
successful (the Java source code itself being one) using OO concepts
that are contrary to what Holub advocates. In other words, most of us
has been successful doing what he says we shouldn't do and what he
claims won't work well."

It's not my intention to sit here and argue, and I'm sure you have a
retort in waiting, so I'll just go study elsewhere until I have a
decent question that will be of worth to this newsgroup.

Curtis

Dec 4 '06 #66
..oO(Jerry Stuckle)
>You notice how Tony refuses to answer your question?
Yep.
>I'm wondering - does the term megalomaniac ring a bell? Or do you think
it's just that he's beyond stoopid?
I don't know, but actually I don't really care at all. He has just
proven that any attempt to further discuss these things doesn't make
sense. He is always right, the rest of the world is wrong.

I can live with that and draw my conclusions. ;)

EOT
Micha
Dec 4 '06 #67
Tony Marston wrote:
"Michael Fesser" <ne*****@gmx.dewrote in message
news:41********************************@4ax.com...
.oO(Tony Marston)
>This is a PHP newsgroup, so I am explaining how interfaces work within
PHP.
OK, please do that, no empty promises. Please explain, what interfaces
in PHP are and what you can do with them. Or can't do. I'm listening!

Micha

It is a simple argument. In PHP interfaces are optional. I *do not* have to
define an interface before I can access a method in an object. The fact that
interfaces may have their uses in specialised circumstances does not get
away from the fact that under normal use they are optional.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
- Interfaces are optional, you don't need to use them to access class
functions.
- Classes are optional, you don't need to define them to use functions
and have reusable code.
- High level languages are optional, you don't need to use them to
access the computer's registers and memory
- All programming languages are optional, you can just write the
machine code directly

Optional != Useless

The whole point of all of these languages, paradigms, and concepts we
have available to us isn't to force you to use them, it's to make the
trivial details disappear so you can focus at a higher level and more
abstract ideas. If you don't want to use them, that's your choice, but
they wouldn't exist if lots of people didn't find them useful.

And if the point you're trying to argue is merely that interfaces are
optional, then I think that's a very silly argument to make. Yes, PHP
doesn't *force* you to use interfaces. You win that point. Way to go.
Next up: I claim that the sky is sometimes blue. Anyone care to
disagree?

- Moot

Dec 4 '06 #68
..oO(Moot)
Next up: I claim that the sky is sometimes blue. Anyone care to
disagree?
The sun is not necessary.
At night it doesn't shine, and during the day it's bright anyway.

SCNR
Micha
Dec 4 '06 #69
Michael Fesser wrote:
.oO(Jerry Stuckle)

>>You notice how Tony refuses to answer your question?


Yep.

>>I'm wondering - does the term megalomaniac ring a bell? Or do you think
it's just that he's beyond stoopid?


I don't know, but actually I don't really care at all. He has just
proven that any attempt to further discuss these things doesn't make
sense. He is always right, the rest of the world is wrong.

I can live with that and draw my conclusions. ;)

EOT
Micha
Yea. But the real problem is - he wouldn't even make a good stand-up
comedian :-)

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

"Moot" <mo*******************@yahoo.comwrote in message
news:11*********************@j44g2000cwa.googlegro ups.com...
Tony Marston wrote:
>"Michael Fesser" <ne*****@gmx.dewrote in message
news:41********************************@4ax.com.. .
.oO(Tony Marston)

This is a PHP newsgroup, so I am explaining how interfaces work within
PHP.

OK, please do that, no empty promises. Please explain, what interfaces
in PHP are and what you can do with them. Or can't do. I'm listening!

Micha

It is a simple argument. In PHP interfaces are optional. I *do not* have
to
define an interface before I can access a method in an object. The fact
that
interfaces may have their uses in specialised circumstances does not get
away from the fact that under normal use they are optional.

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

- Interfaces are optional, you don't need to use them to access class
functions.
- Classes are optional, you don't need to define them to use functions
and have reusable code.
- High level languages are optional, you don't need to use them to
access the computer's registers and memory
- All programming languages are optional, you can just write the
machine code directly

Optional != Useless

The whole point of all of these languages, paradigms, and concepts we
have available to us isn't to force you to use them, it's to make the
trivial details disappear so you can focus at a higher level and more
abstract ideas. If you don't want to use them, that's your choice, but
they wouldn't exist if lots of people didn't find them useful.
Some people may find them useful, whie others have no use for them at all.
It is a matter of choice.
And if the point you're trying to argue is merely that interfaces are
optional, then I think that's a very silly argument to make.
It is a perfectly valid argument against the idea that because interfaces
are there you MUST use them.
Yes, PHP
doesn't *force* you to use interfaces. You win that point.
Good. That was the only point I was making.
Way to go.
Next up: I claim that the sky is sometimes blue.
And your point is?

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

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:hu******************************@comcast.com. ..
Tony Marston wrote:
>Why is it so difficult for you to accept that YOUR opinion is not the
ONLY opinion that is allowed to exist? Just because you can quote some
people who agree with you does not make you right. I have quoted from
other sources who agree with me, yet you dismiss all these different
opinions as being "irrelevant".

Your use of personal insults also shows what a juvenile mind you have.

Why is it so difficult for you to understand that you, with no real OO
experience,
Rubbish. I have been writing OO software that works for 4 years.
and in direct conflict with industry-recognized experts such as Booch,
Jacobson and Rumbaugh, as well as virtually every college level course on
the country, are full of shit?
There is no such thing as one set of experts with whom EVERYBODY agrees.
There are lots of people with lots of conflicting opinions. I happen to
disagee with your opinions, and I have quoted other people who also
disagree.
Because you're stoopid, that's why.

And the insults are because you are too stoopid to understand anything
else, Tony.

People around here are laughing at you. Your stoopidity is beyond
comprehension by anyone with any intellect.
Your juvenile insults show just how small minded you really are.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 5 '06 #72
This is a PHP newsgroup, not an OO newsgroup, so the discussion of
interfaces concerns PHP, and in PHP interfaces are optional and unnecessary.

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

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:hu******************************@comcast.com. ..
Tony Marston wrote:
>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:v8******************************@comcast.com ...
>>>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.


I am not changing the subject, you are. This is a PHP newsgroup, and my
argument is simply that interfaces are not necessary in PHP. You cannot
disprove this argument, so you attempt to change it to a different
argument.

Sorry, Tony. You're even too stoopid to understand the difference between
interfaces in the OO context, which is where this started out, and the PHP
interface keyword.

So you try to change the subject to something else you know absolutely
nothing about, then accuse others of doing the same.

Go back through this thread. Everyone was talking about OO interfaces
before troll Tony Marston stuck his big (and stoopid) mouth in here.

But then you didn't understand the difference the first time; you'll be
too stoopid to understand the difference the second time, also.

People are laughing at you, Tony.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================

Dec 5 '06 #73

"Michael Fesser" <ne*****@gmx.dewrote in message
news:4u********************************@4ax.com...
.oO(Jerry Stuckle)
>>You notice how Tony refuses to answer your question?

Yep.
>>I'm wondering - does the term megalomaniac ring a bell? Or do you think
it's just that he's beyond stoopid?

I don't know, but actually I don't really care at all. He has just
proven that any attempt to further discuss these things doesn't make
sense. He is always right, the rest of the world is wrong.
I am not wrong. I have made two simple statements that you cannot disprove:

(a) In PHP interfaces are not necessary.
(b) Enapsulation does not mean that all variables must be declared private
or protected.

What's so difficult to understand about that?

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

"Curtis" <dy****@gmail.comwrote in message
news:11**********************@16g2000cwy.googlegro ups.com...
Tony Marston wrote:
>No, encapsulation is not about making everything private, it is about
putting data and the operations which act upon that data into a single
class. The ability to make certain operations or pieces of data private
or
protected is OPTIONAL, not MANDATORY.

I never claimed to summarize the entirety of encapsulation as the act
of making EVERYTHING private, I was merely restating in my own words to
try and clarify my understanding.
>I am not saying that you MUST NOT make things private/protected, I am
simply
arguing against the statement that you MUST use the private/protected
option. The point is that his is entirely OPTIONAL and is a matter of
personal preference.

You seem to be best friends with the straw man fallacy.
So do otherpeople in this newsgroup.
>As for saying that you MUST make all data private and access it through
getters and setters, you obviously haven't read
http://www.javaworld.com/javaworld/j...5-toolbox.html

The sources I've gathered, although differ slightly in diction,
generally concur on the meaning of encapsulation
Not everybody agrees on what encapsulation is. Not everybody agrees on what
OO is. For every opinion there is a different opinion. Some features are
optional, so it is a matter of personal preference whether to use them or
not.
>. It is true that not
all experts in a field will agree on everything, but the areas in which
there is genuine knowledge are not up for debate or subject to opinion.
I disagree. Absolutely everything is open to debate and subject to different
opinions.
You may be confusing semantics for the actual act of implementation, in
this case.

Please don't put words in my mouth. I never said that you MUST do
anything. Honestly, the source you cited is extremely dubious. Nearly
every comment questions Allen Holub's credibility. This is not an
authoritative source, by any means. One commenter even states:

"We have countless of examples of projects / systems that were and are
successful (the Java source code itself being one) using OO concepts
that are contrary to what Holub advocates. In other words, most of us
has been successful doing what he says we shouldn't do and what he
claims won't work well."
That just goes to prove that for every opinion there is a different opinion.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 5 '06 #75
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:hu******************************@comcast.com. ..
>>Tony Marston wrote:
>>>Why is it so difficult for you to accept that YOUR opinion is not the
ONLY opinion that is allowed to exist? Just because you can quote some
people who agree with you does not make you right. I have quoted from
other sources who agree with me, yet you dismiss all these different
opinions as being "irrelevant".

Your use of personal insults also shows what a juvenile mind you have.

Why is it so difficult for you to understand that you, with no real OO
experience,


Rubbish. I have been writing OO software that works for 4 years.
No, you haven't, Tony. You've been writing crap for four years and
calling it OO software.
>
>>and in direct conflict with industry-recognized experts such as Booch,
Jacobson and Rumbaugh, as well as virtually every college level course on
the country, are full of shit?


There is no such thing as one set of experts with whom EVERYBODY agrees.
There are lots of people with lots of conflicting opinions. I happen to
disagee with your opinions, and I have quoted other people who also
disagree.
Every industry-recognized expert, virtually every college professor and
most experienced designers around the world disagree with you.

But you're too stoopid to see that.
>
>>Because you're stoopid, that's why.

And the insults are because you are too stoopid to understand anything
else, Tony.

People around here are laughing at you. Your stoopidity is beyond
comprehension by anyone with any intellect.


Your juvenile insults show just how small minded you really are.
And you're inability to understand just how stoopid you are and what an
arsehole you're making of yourself in this group shows how closed-minded
you are and has everyone laughing at you.

You're just another stoopid troll with delusions of competency, Tony.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 5 '06 #76
Tony Marston wrote:
This is a PHP newsgroup, not an OO newsgroup, so the discussion of
interfaces concerns PHP, and in PHP interfaces are optional and unnecessary.
Again, you don't understand the original contest - which was interfaces
as defined in OO terms. And since PHP is an OO language, it is
perfectly appropriate in this newsgroup.

But since you don't know shit about it, but are determined to stuff your
comments in here anyway, just like any troll, you try to change the subject.

YOU are the only one who has brought up PHP interfaces, Tony. And no
one else is discussing them.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 5 '06 #77
Tony Marston wrote:
"Michael Fesser" <ne*****@gmx.dewrote in message
news:4u********************************@4ax.com...
>>.oO(Jerry Stuckle)

>>>You notice how Tony refuses to answer your question?

Yep.

>>>I'm wondering - does the term megalomaniac ring a bell? Or do you think
it's just that he's beyond stoopid?

I don't know, but actually I don't really care at all. He has just
proven that any attempt to further discuss these things doesn't make
sense. He is always right, the rest of the world is wrong.


I am not wrong. I have made two simple statements that you cannot disprove:

(a) In PHP interfaces are not necessary.
(b) Enapsulation does not mean that all variables must be declared private
or protected.

What's so difficult to understand about that?
You're wrong because:

(a) Interfaces, as defined in OO terms (which is what we were
discussing, and PHP is an OO language) are necessary. They are how you
interact with the object, and
(b) Proper encapsulation means that all variables are defined as
private, because the way the data is stored (variable name, data type,
etc.) is a part of the implementation.

And on this every industry-recognized expert agree. It's even how they
teach it in all of the College courses. But of course, they are all
wrong, and only Troll Tony is right.

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

"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:he******************************@comcast.com. ..
Tony Marston wrote:
>"Michael Fesser" <ne*****@gmx.dewrote in message
news:4u********************************@4ax.com.. .
>>>.oO(Jerry Stuckle)
You notice how Tony refuses to answer your question?

Yep.
I'm wondering - does the term megalomaniac ring a bell? Or do you think
it's just that he's beyond stoopid?

I don't know, but actually I don't really care at all. He has just
proven that any attempt to further discuss these things doesn't make
sense. He is always right, the rest of the world is wrong.


I am not wrong. I have made two simple statements that you cannot
disprove:

(a) In PHP interfaces are not necessary.
(b) Enapsulation does not mean that all variables must be declared
private or protected.

What's so difficult to understand about that?

You're wrong because:

(a) Interfaces, as defined in OO terms (which is what we were discussing,
and PHP is an OO language) are necessary.
In PHP interfaces are NOT necessary.
They are how you interact with the object, and
Wrong. You interact with an object by calling an object's method. The fact
that a method may have an optional interface declaration has nothing to do
with it.
(b) Proper encapsulation means that all variables are defined as private,
Wrong. Encapsulation simply means putting all the data for an object, and
the operations which act upon that data, into a single class. There is no
requirement to make all the data private, as there is no requirement to make
any methods private.
because the way the data is stored (variable name, data type, etc.) is a
part of the implementation.

And on this every industry-recognized expert agree.
Not everybody agrees with your description, industry expert or not. I
certainly don't
It's even how they teach it in all of the College courses. But of
course, they are all wrong, and only Troll Tony is right.
I am right in the following:

(a) In PHP interfaces are not necessary.
(b) Encapsulation does not mean that all variables must be declared private
or protected.

--
Tony Marston

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

Dec 6 '06 #79
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:he******************************@comcast.com. ..
>>Tony Marston wrote:
>>>"Michael Fesser" <ne*****@gmx.dewrote in message
news:4u********************************@4ax.com ...
.oO(Jerry Stuckle)

>You notice how Tony refuses to answer your question?

Yep.

>I'm wondering - does the term megalomaniac ring a bell? Or do you think
>it's just that he's beyond stoopid?

I don't know, but actually I don't really care at all. He has just
proven that any attempt to further discuss these things doesn't make
sense. He is always right, the rest of the world is wrong.
I am not wrong. I have made two simple statements that you cannot
disprove:

(a) In PHP interfaces are not necessary.
(b) Enapsulation does not mean that all variables must be declared
private or protected.

What's so difficult to understand about that?

You're wrong because:

(a) Interfaces, as defined in OO terms (which is what we were discussing,
and PHP is an OO language) are necessary.


In PHP interfaces are NOT necessary.

>They are how you interact with the object, and


Wrong. You interact with an object by calling an object's method. The fact
that a method may have an optional interface declaration has nothing to do
with it.
And in OO terms that is the INTERFACE! But you don't know anything
about OO, that's obvious.
>
>(b) Proper encapsulation means that all variables are defined as private,


Wrong. Encapsulation simply means putting all the data for an object, and
the operations which act upon that data, into a single class. There is no
requirement to make all the data private, as there is no requirement to make
any methods private.
Wrong again, Troll Tony.
>
>>because the way the data is stored (variable name, data type, etc.) is a
part of the implementation.

And on this every industry-recognized expert agree.


Not everybody agrees with your description, industry expert or not. I
certainly don't
But you've already shown you don't understand OO, have no idea what good
programming practices are, and are just plain stupid. So that doesn't
surprise me.

And you know what? I really don't give a damn if you agree or not. I
get my answers from industry-recognized experts such as Booch, Iverson
and Rumbaugh, not some wanna-be's blog.

Try reading what the REAL EXPERTS have to say. Then try taking a
college level course on OOAD. They will all say the same thing. YOU'RE
WRONG!
>
>It's even how they teach it in all of the College courses. But of
course, they are all wrong, and only Troll Tony is right.


I am right in the following:

(a) In PHP interfaces are not necessary.
(b) Encapsulation does not mean that all variables must be declared private
or protected.
And your head is still up your ass. Stupid troll.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 6 '06 #80
Tony Marston wrote:
In PHP interfaces are NOT necessary.
They are how you interact with the object, and

Wrong. You interact with an object by calling an object's method. The fact
that a method may have an optional interface declaration has nothing to do
with it.
I think what's happening here is the unfortunate result of one word
having two different meanings. In this whole argument back and forth
between you two (Tony and Jerry), you each keep using the opposite
definition. Tony interprets "interface" to be the PHP language
construct, while Jerry uses the term "interface" in its object-oriented
context. Neither are wrong, but to have an intelligent, reasonable,
(and hopefully friendly) debate, one needs to define the terms used
beforehand to clear up any confusion.

- PHP language construct "interface": a construct defined which
declares a set of functions and parameters which must be implemented if
an object claims to use that interface.
- OO concept "interface": an abstract idea that the member functions
which an object exposes to the outside (ie: public, but not private
functions), comprise the interface to that object through which other
objects may interact with it.

The language construct interface is indeed optional and requires
seperate code specifically written for this purpose. The OO concept of
an interface is *implicit to an object* and requires no additional code
to be written. Any public function of an object is automatically a
part of this interface.

For a physical world example, think of your car stereo. Its interface
(in the OO context) consists of buttons, dials, and a screen (the
public functions which you use to interact with it), while the laser
which reads the CD's and it's power adapter are not part of the
interface (they would be private functions which are used only inside
the class). Now say that it has an iPod connector. In order to make
sure that is sends and receives the correct signals to your iPod, it
must implement some kind of standard, defined by Apple in the (language
construct context) iPod Interface.

So you see? You're both right in your own context. Everybody wins.
Cookies and punch are available in the next room for anyone who wants
to put this semantic pissing match to rest.

- Moot

Dec 6 '06 #81
Moot wrote:
Tony Marston wrote:
>>In PHP interfaces are NOT necessary.

>>They are how you interact with the object, and

Wrong. You interact with an object by calling an object's method. The fact
that a method may have an optional interface declaration has nothing to do
with it.


I think what's happening here is the unfortunate result of one word
having two different meanings. In this whole argument back and forth
between you two (Tony and Jerry), you each keep using the opposite
definition. Tony interprets "interface" to be the PHP language
construct, while Jerry uses the term "interface" in its object-oriented
context. Neither are wrong, but to have an intelligent, reasonable,
(and hopefully friendly) debate, one needs to define the terms used
beforehand to clear up any confusion.

- PHP language construct "interface": a construct defined which
declares a set of functions and parameters which must be implemented if
an object claims to use that interface.
- OO concept "interface": an abstract idea that the member functions
which an object exposes to the outside (ie: public, but not private
functions), comprise the interface to that object through which other
objects may interact with it.

The language construct interface is indeed optional and requires
seperate code specifically written for this purpose. The OO concept of
an interface is *implicit to an object* and requires no additional code
to be written. Any public function of an object is automatically a
part of this interface.

For a physical world example, think of your car stereo. Its interface
(in the OO context) consists of buttons, dials, and a screen (the
public functions which you use to interact with it), while the laser
which reads the CD's and it's power adapter are not part of the
interface (they would be private functions which are used only inside
the class). Now say that it has an iPod connector. In order to make
sure that is sends and receives the correct signals to your iPod, it
must implement some kind of standard, defined by Apple in the (language
construct context) iPod Interface.

So you see? You're both right in your own context. Everybody wins.
Cookies and punch are available in the next room for anyone who wants
to put this semantic pissing match to rest.

- Moot
Moot,

The problem is the original discussion was about interface in the OO
concept. But Tony knows nothing about OO, other than what he's read in
a few blogs by unknown authors of dubious credibility. So he tries to
take it into something he has never used, but can look up easily - the
PHP interface keyword.

I'm just not letting him change the subject.

It would be refreshing if he knew anything. But he obviously has no
clue what he's talking about - even in the case of a PHP interface.

He's just a troll with delusions of competency.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 7 '06 #82

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

"Michael Fesser" <ne*****@gmx.dewrote in message
news:4u********************************@4ax.co m...
<snip>
>>>>I am not wrong. I have made two simple statements that you cannot
disprove:

(a) In PHP interfaces are not necessary.
(b) Enapsulation does not mean that all variables must be declared
private or protected.

What's so difficult to understand about that?
You're wrong because:

(a) Interfaces, as defined in OO terms (which is what we were
discussing, and PHP is an OO language) are necessary.

In PHP interfaces are NOT necessary.
>>They are how you interact with the object, and

Wrong. You interact with an object by calling an object's method. The
fact that a method may have an optional interface declaration has nothing
to do with it.

And in OO terms that is the INTERFACE! But you don't know anything about
OO, that's obvious.
You are confusing the term inetrface (as in Application Programming
Interface or API) with the construct that uses the word "interface" and
"implements". An API is simply a function name with a list of arguments,
while interfaces are hings which exist in addition to the function
definition.

It is a simple fact that I can access an object's method by using the
function definition (API) and NOT tghe piece of code which contains the word
"interface".

The terms API and interface in OO terminology do not mean the same thing.
>>
>>(b) Proper encapsulation means that all variables are defined as
private,


Wrong. Encapsulation simply means putting all the data for an object, and
the operations which act upon that data, into a single class. There is no
requirement to make all the data private, as there is no requirement to
make any methods private.

Wrong again, Troll Tony.
My definition of encapsulation is not wrong What is your definition?

I still stick to my original statements:

(a) In PHP interfaces are not necessary.
(b) Encapsulation does not mean that all variables must be declared private
or protected.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org
Dec 7 '06 #83
There is a big difference between interface as in API (Application
Programming Interface) and interface as an OO construct which contains the
words "interface" and "implements".

In PHP I can access an object's method through its API, and I do not need
that additional declaration that contains the word "interface".

Simple, isn't it?

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

"Moot" <mo*******************@yahoo.comwrote in message
news:11**********************@73g2000cwn.googlegro ups.com...
Tony Marston wrote:
>In PHP interfaces are NOT necessary.
They are how you interact with the object, and

Wrong. You interact with an object by calling an object's method. The
fact
that a method may have an optional interface declaration has nothing to
do
with it.

I think what's happening here is the unfortunate result of one word
having two different meanings. In this whole argument back and forth
between you two (Tony and Jerry), you each keep using the opposite
definition. Tony interprets "interface" to be the PHP language
construct, while Jerry uses the term "interface" in its object-oriented
context. Neither are wrong, but to have an intelligent, reasonable,
(and hopefully friendly) debate, one needs to define the terms used
beforehand to clear up any confusion.

- PHP language construct "interface": a construct defined which
declares a set of functions and parameters which must be implemented if
an object claims to use that interface.
- OO concept "interface": an abstract idea that the member functions
which an object exposes to the outside (ie: public, but not private
functions), comprise the interface to that object through which other
objects may interact with it.

The language construct interface is indeed optional and requires
seperate code specifically written for this purpose. The OO concept of
an interface is *implicit to an object* and requires no additional code
to be written. Any public function of an object is automatically a
part of this interface.

For a physical world example, think of your car stereo. Its interface
(in the OO context) consists of buttons, dials, and a screen (the
public functions which you use to interact with it), while the laser
which reads the CD's and it's power adapter are not part of the
interface (they would be private functions which are used only inside
the class). Now say that it has an iPod connector. In order to make
sure that is sends and receives the correct signals to your iPod, it
must implement some kind of standard, defined by Apple in the (language
construct context) iPod Interface.

So you see? You're both right in your own context. Everybody wins.
Cookies and punch are available in the next room for anyone who wants
to put this semantic pissing match to rest.

- Moot

Dec 7 '06 #84
Tony Marston wrote:
"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:uK******************************@comcast.com. ..
>>Tony Marston wrote:
>>>"Jerry Stuckle" <js*******@attglobal.netwrote in message
news:he******************************@comcast.c om...
Tony Marston wrote:
>"Michael Fesser" <ne*****@gmx.dewrote in message
>news:4u********************************@4ax.c om...

<snip>
>>>>>I am not wrong. I have made two simple statements that you cannot
>disprove:
>
>(a) In PHP interfaces are not necessary.
>(b) Enapsulation does not mean that all variables must be declared
>private or protected.
>
>What's so difficult to understand about that?
>

You're wrong because:

(a) Interfaces, as defined in OO terms (which is what we were
discussing, and PHP is an OO language) are necessary.

In PHP interfaces are NOT necessary.
They are how you interact with the object, and

Wrong. You interact with an object by calling an object's method. The
fact that a method may have an optional interface declaration has nothing
to do with it.

And in OO terms that is the INTERFACE! But you don't know anything about
OO, that's obvious.


You are confusing the term inetrface (as in Application Programming
Interface or API) with the construct that uses the word "interface" and
"implements". An API is simply a function name with a list of arguments,
while interfaces are hings which exist in addition to the function
definition.
You really don't know anything about OO, do you, Tony. Not even the
most basic terminology.
It is a simple fact that I can access an object's method by using the
function definition (API) and NOT tghe piece of code which contains the word
"interface".
Stupid troll doesn't understand basic OO.
The terms API and interface in OO terminology do not mean the same thing.
You really don't know OO terminology, Tony. I suggest you at least read
up on the basics of OO - from a RESPECTED SOURCE, not your favorite blog
entries.

You only continue to make a huge fool of yourself. But you're only a
stupid troll, so that's only to be expected.
>
>>>>(b) Proper encapsulation means that all variables are defined as
private,
Wrong. Encapsulation simply means putting all the data for an object, and
the operations which act upon that data, into a single class. There is no
requirement to make all the data private, as there is no requirement to
make any methods private.

Wrong again, Troll Tony.


My definition of encapsulation is not wrong What is your definition?

I still stick to my original statements:

(a) In PHP interfaces are not necessary.
(b) Encapsulation does not mean that all variables must be declared private
or protected.
You really don't understand even the most basic elements of OO
programming, Tony. You're just a troll.

Read from RESPECTED RESOURCES. Then open your mouth. You're only
making a bigger fool of yourself, and people are laughing at you.

What little credibility you ever had in the newsgroup is virtually all
gone now. You've made too much of an ass of yourself for anyone to take
you seriously.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 7 '06 #85
Tony Marston wrote:
There is a big difference between interface as in API (Application
Programming Interface) and interface as an OO construct which contains the
words "interface" and "implements".

In PHP I can access an object's method through its API, and I do not need
that additional declaration that contains the word "interface".

Simple, isn't it?
Yep, you've once again shown you don't understand even the basic
terminology of OO programming, Tony.

Tony the Troll once again makes a complete ass of himself.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 7 '06 #86
Jerry Stuckle wrote:
>
Tony the Troll once again makes a complete ass of himself.

I don't mean to be rude, but you aren't showing yourself in too good of
a light right now, either, by prolonging this argument.

If I didn't believe you way back in the beginning when you said he was
just trolling, I sure do now. But what's the #1 rule for trolls?
Don't feed them.

I'd like to thank the both of you for making my workday a slight bit
more entertaining the past week or so, but I've just about had my fill
of this thread. I suggest that you stop caring about getting the last
word and just let it die. At this point, I think everyone realizes who
knows what he's talking about and who doesn't.

- Moot

Dec 7 '06 #87

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
by: verbatime | last post by:
Please explain me how this works - or should work: Got my two classes - bcBasic (baseclass) and the derived cBasic. //--------------------------------------- class bcBasic { int number;...
45
by: Steven T. Hatton | last post by:
This is a purely *hypothetical* question. That means, it's /pretend/, CP. ;-) If you were forced at gunpoint to put all your code in classes, rather than in namespace scope (obviously classes...
3
by: Bryan Parkoff | last post by:
I have C++ Primer Third Edition -- Author Stanley B. Lippman and Josee Lajoie. I have been studying it for couple months however it does not provide a valuable information which it is about...
14
by: Pratts | last post by:
I am a new one who have joined u plz try to help me bcoz i could not find ny sutiable answer foer this Question Qus>>why do we need classes when structures provide similar functionality??
6
by: steve bull | last post by:
I created a usercontrol class, RGBColorSpace, which is derived from an abstract class, ColorSpace, but when I try to click on the design panel for the control I get an error message "Unable to...
11
by: Kevin Prichard | last post by:
Hi all, I've recently been following the object-oriented techiques discussed here and have been testing them for use in a web application. There is problem that I'd like to discuss with you...
5
by: Chris Szabo | last post by:
Good afternoon everyone. I'm running into a problem deserializing a stream using the XmlSerializer. A stored procedure returns the following from SQL Server: <Student StudentId="1" Status="1"...
2
by: miked | last post by:
I am architecting in a read only class for use in mapping data to a business object. The object makes strong use of nested classes and their ability to access protected fields. The downside is...
47
by: Larry Smith | last post by:
I just read a blurb in MSDN under the C++ "ref" keyword which states that: "Under the CLR object model, only public single inheritance is supported". Does this mean that no .NET class can ever...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.