Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Optimal extended class naming convention?

Which of the following naming conventions is most used/accepted, or which is most optimal for most projects? I'm having a hard time deciding.

Base class: \Model
Sub class: \Model\User

Base class: \Model\Model
Sub class: \Model\User

Base class: \Model\Base
sub class: \Model\User

So in other words, should I put the base class in the same namespace as the subclasses, and should I call it something constant like "base" or should it just have the same name as the namespace?

like image 887
Daniel Avatar asked Jun 21 '10 07:06

Daniel


2 Answers

Honestly, I always put the base class in the same directory as the sub classes, inless the base class is intended as part of a multi-application framework, in which case it would go in a generic library library,

like image 75
Antony Gibbs Avatar answered Sep 22 '22 21:09

Antony Gibbs


Not sure how PHP handles namespaces/packages, but in other languages there are benefits to keeping things in the same packages. I'm thinking specifically, of the ability to use Java's default and protected access modifiers, or C++'s friend keyword. These might not be possible/as straightforward once you start separating abstracts into a different package from concretes.

like image 22
Tom Tresansky Avatar answered Sep 19 '22 21:09

Tom Tresansky