lcobucci/php-annotations — comment on commit 113023c3ae4048a844a299890b91bfb25b24427e
File:  line 0
By mindplay-dk:

Generally, I agree you should avoid prefixes and redundant artifacts such as "interface" or "class" in names (or worse, and more commonly seen, "table" or "tbl" in every table-name, ick!)

The trouble in this case is, Annotation is an optional base-class, and IAnnotation is the base annotation interface - I can't name them both Annotation.

I could name the the base-class AnnotationBase or something, but how is that any less ugly?

Or as I've seen some people do, I could put the interface in an "Interfaces" sub-namespace, but again, how is that any less ugly? The fully qualified namespace of the interface will include the word "Interfaces", which is what you were trying to avoid.

I can into such issues frequently, and simply resorted to naming all interfaces with an "I" prefix.

How do you suggest I avoid this?