Are today's major frameworks capable of enterprise capable applications?

I do not have ANY scripts in my software which start with 400+ include statements for class files. Not even 40 include statements. Not even 4.

And we get to see just how ridiculous you are. So the following pieces of code are exactly equal in quality? There is no way to objectively claim one is better than another?

$str =  'a';
$str .= 'b';
$str .=  'c';
$str .=  'd';
$str .=  'e';
$str .=  'f';
$str .=  'g';
echo strrev(strrev(implode(explode('', $str))));
echo 'abcdefg';

I did not say that there is no such thing as “better”, I simply said that it cannot be measured scientifically. It is all down to a person’s opinion, therefore it is subjective and not objective.

Your reading comprehension level needs some work. If you’d actually read what I wrote I pointed out that you have 400+ require_once lines which would be made redundant. The fact that these aren’t “at the top of a file” is 100% relevant. And as I already said, until you can provide a scenario where an autoloader is inferior in some way to hundreds of require_once lines your argument is invalid.

Soc (Separation of Concerns) and SRP (Single Responsibility Principle) mean exactly the same thing.

Coupling only exists when one module calls another, not when one class inherits from another.

Could you give a brief description of your understanding of what coupling means?

What exactly do you think happens during $this->method() when method is supplied by a parent/child class?

And please answer the damn question:

Is Uncle Bob wrong or are you?

Tony Marston:

it is quite wrong to say that inheritance automatically produces tight coupling.

Uncle Bob:

One of the problems with implementing an abstract class with inheritance is that the derived class is so tightly coupled to the base class

One of you is wrong, which is it?

The “coupling” which is produced when one module calls another is quite different from the “coupling” which is produced when one class inherits from another. It may be the same word, but they have different meanings in different contexts. As I have already pointed out from the article which you cited previously, when applying metrics to measure the theoretical quality of a piece of software, the effects of coupling resulting from inheritance can be excluded because they are irrelevant.

Just answer the question… is Uncle Bob wrong or are you?

It’s been painfully apparent that we were discussing coupling in terms of OOP throughout the thread so no dice. And that’s wrong anyway because uncle bob points out, tight coupling is one of the problems cause by inheritance

I disagree. Coupling only exists when one object calls another. When one class inherits from another the result is a single object, therefore there is no inter-object communication, therefore there is no coupling.

Just answer the question: Is Uncle Bob wrong or are you?

Tony Marston:

it is quite wrong to say that inheritance automatically produces tight coupling.

Uncle Bob:

One of the problems with implementing an abstract class with inheritance is that the derived class is so tightly coupled to the base class

One of you is wrong, which is it?

As an experienced programmer my personal opinion would be that the second piece of code is better than the first. My point is that you could not build a machine to make that same evaluation.

How are you deciding that the second is better? What metric are you using to determine that?

They those statements are spread over a huge number of scripts, so I would have to refactor a huge number of scripts in order to use an autoloader. And for what benefit? Absolutely none, as the code would continue to do exactly what it did before, but do it differently.

I never said that an autoloader is inferior to using include/require statements, I said that retrofitting an autoloader into a huge existing codebase would involve enormous costs but zero benefits. It is simply not worth the effort.

Coupling involves the amount of code required for one object to call another, and how this code would need to be modified following any changes made to either of these two objects. This is all explained in http://en.wikipedia.org/wiki/Coupling_(computer_programming) in which the word “inheritance” does not appear at all.

Stop backtracking please. Nobody is asking you to go back and change anything, we’re asking why you have actively avoided writing one for code you’ve written in the last 10 years. And don’t say you haven’t written a require line in 10 years as that’s just not true. If you diff two versions of your framework code it proves it…

So Wikipedia is now more authoritative than Robert. C. Martin?

Also, are you blind? From that exact page:

Subclass Coupling
Describes the relationship between a child and its parent. The child is connected to its parent, but the parent is not connected to the child.

See my answer in post #357

Like I said earlier. SoC and SRP are two different things. We are talking about SRP, not SoC, so my statement is far from ridiculous.

Scott