Re: Your opinion about QuickForm2 API
| From: | Bob Bell | Date: | Mon, 16 Apr 2007 14:20:52 +0000 |
| Subject: | Re: Your opinion about QuickForm2 API | ||
| References: | 1 | Groups: | php.pear.dev php.pear.general |
| Request: | Send a blank email to pear-dev+get-46241@lists.php.net to get a copy of this message | ||
I haven't been working with QuickForm, PEAR, or even PHP very long (though I'm a veteran of other non-web languages), so take my opinion likely, but I prefer Bertrand's syntax. I find the concept whereby parameters can having multiple different meanings confusing. I like the clarity of Bertrand's proposals, even if it might not seem as 'terse' as Alexey's options.
On Mon, Apr 16, 2007 at 11:08:16AM +0200, Bertrand Mansion wrote:
Hi all, We are in the middle of a discussion Alexey and I about QuickForm2 API for elements creation and I would like your opinion as well. At this point, nothing is immutable since we aren't even talking about alpha stage, so your preferences as users and developers is interesting. To summarize, Alexey would be in favor of this: $form->addElement('button', 'aButton', 'Click me please'); $form->addElement('select', 'aSelect', array('1' => 'option 1', '2' => 'option 2')); While I would be in favor of this: $form->addElement('button', 'aButton')->setContent('Click me please'); $form->addElement('select', 'aSelect')->setOptions(array('1' => 'option 1', '2' => 'option 2')); This is an example for adding a button to a form. The API can get more complex for Date elements and other javascript aided elements. My opinion is that we shouldn't mix configuration parameters for elements with other kind of data they might need. The other point we are discussing is about the extra parameter in element creation. I suggest we always use an array, even when there is only one extra parameter. Alexey suggests that we use a scalar if there is only one extra parameter. For example, for a given "Year" element which would only accept one configuration parameter 'startYear', Alexey would use: $form->addElement('year', 'aYear', '2007'); While I would use: $form->addElement('year', 'aYear', array('startYear' => '2007')); So my way is more verbose and less writable, but is also more readable and extensible. Given these examples, are there any opinions or preferences in favor of one or the other proposed API ? Thanks in advance,