You are here: Re: Best way to create object from a form with lots of fields « PHP Programming Language « IT news, forums, messages
Re: Best way to create object from a form with lots of fields

Posted by Henk verhoeven on 06/25/07 22:43

Dave wrote:
> I have multiple forms that will create an object. Basically a energy
> efficiency measure object. The measure object will have a couple of
> required properties set but after that it can have 10-20 different fields
> that are optional per measure.
>
> How do I account for the different fields that will be
> posted from the different forms when I create the measure object? Should
> I create a constructor method with just the required fields as the
> parameters and then create some sort of setter method for the optional
> fields? Or do I create a different concrete measure object from an an
> abstract measure base class? I have about 10 different measure objects
> that I can think of but really the only difference between them are what
> optional fields are posted.

Hi Dave,

If the only difference is really what optional fields are to be in the
form, i would use a single Measure class and ten different layouts for
the forms.

In any case i do not like the idea of a contructor with the required
fields as parameters:
1. Validating the field values is typically a task of the object, it is
kind of hard to ask the object to do that if it has not yet been contructed,
2. If you change your mind and decide that some of the required fields
should not have been required, or some of the optional fiels are to be
required, you have to change the constructor, and all the calls that are
made to it.

A better apoach is to use meta data to declare wheather a field is
required or optional. When the form is processed you simply let the
object check if each of the required fields is holding valid data and
produce user-understandable error feedback if necessary.

>
> Going forward the other issue is I need these measures to persist across
> the pages of the application (sort of like a shopping cart app) and I see
> that I can serialize an object in a $_SESSION object but do the fields
> that I would set in the setter method also get serialized or do only the
> actual properties of the object get set.
>
> I then need to retrieve all these measure objects and send them to a
> stored procedure to enter into a database so unfortunately I can't save
> the fields as serialized because each field has to be separate to be sent
> as the parameters to the stored procedure.

If the system is for a small audience of authenticated users i would
store the Measure objects in a database table of pending measures and
give them the user name as a foreign key. Then if a user returns he will
not have lost all of the measures he has already submitted. If he has
finished entering measures he should press a button or so to store all
pending measures in the final database. If successfull this will delete
his pending measures.

If the system is for a large audience of unauthenticated users, like a
shopping cart, i would store the pending measures in the session. But I
would not use serialize on the object itself but on an array with the
field names as keys and their values as values. That way there will not
be any errors because of the class not yet being included or being renamed.
>
> Basically my question is how do people deal with huge forms and fields
> easily from a html post? Any help would be appreciated...thanks...
>
> P.S. Using ZendFramework1.0RC2 and PHP5.

IMHO the framework should offer a way to declare the meta data and take
care of the conversion and validation of form values.

Greetings,

Henk Verhoeven,
www.phpPeanuts.org.

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация