As the title states; the way one groups classes in PHP compared to for example Java, is it supposed to be different? I am currently reading O’Reilly’s book OOA&D and in the chapters I’ve learned to use one class for each specific task and not one class for a grouped thing. Recently, I looked upon some code for a calendar, and the class was thousands of lines and had everything inside it that was to be used. However, this feels to me like it’s violating the point of having many objects doing one task, but seeing as PHP is web development, is it supposed to be different? E.g. monster-classes.
Share
Answer: use good design principles, even in PHP.
In addition to not creating Monster classes (also known as God-classes or objects) the following patterns are worth mentioning specifically:
privateunless you’ve got a dang good reason not to, and in such case, useprotected. Almost always you should avoidpublic.A somewhat outdated article on PHP design patterns that’s still worth reading but is hard on the eyes.
Short-version:
If you are ever relying on an array to hold a particular structure it should probably be in a class.
An example from my life: ActiveRecord
What if I want to build a website that does not need any particular Active Record implemenation? At the moment, I’m quite stuck once I choose an implementation because they are all so unique. If they actually implemented an
ActiveRecordInterface, I would be able to swap out my actualActiveRecordEngineif I wanted to change.