I'm working on a PHP web app and I'm trying to use the MVC model. I have a lot of things that exist as 'database entities' -- a row, or a set of related rows, that are conceptually one human recognizable 'thing'. So I often try to provide an interface to that thing in a model class.
So of course, the run of the mill functionality is to have an existing entity, get some data from it, and sometimes update it. However, where I run into problems is when I need to create a new entity. None of the default data for an existing entity exists yet!
For instance, my __construct()
methods will often have arguments (i.e. $id
for WHERE id = $id
) so that I can select data from the database and populate all the properties of the object from that data. However, when I want to create a new entity, the values for those arguments don't exist yet!
How do you all handle this situation? Do you
- try to provide functionality for both creation and subsequent manipulation in the same object
- have another class just for generating the entity
- avoid
__construct
and have somthing likecreate()
for new entities andinstantiate()
for existing ones - something else?