DZone.com: SOLID for packag...err, namespaces
On DZone.com there's a recent article from Giorgio Sironi about the SOLID set of principles for software development (more on those here) and how some related principles can be applied to namespaced code in PHP.
While studying for the advanced software engineering exam at PoliMi, I discovered there is also a set of principles akin to SOLID for the design of packages, and not only of classes and interfaces. Uncle Bob published them after the SOLID series. Note that package here can be intended as a zip or any deliverable binary unit, not necessarily as a PHP namespace or Java package, or a source folder. [...] In fact, I think that PHP namespaces will play the role of packages soon, as they provide a mechanism for encapsulation: use statements are not necessary when you refer to entities in the same namespace, just like java imports.
These three additional principles (CCA) are:
- CRP: Common Reuse Princple
- CCP: Common Closure Principle
- ADP: Acyclic Dependencies Principle
Check out the rest of the article for their full descriptions.