[development] Cleaner and more consistent code.

Larry Garfield larry at garfieldtech.com
Fri Aug 3 14:58:55 UTC 2007


On Friday 03 August 2007, adrian rossouw wrote:
> On 03 Aug 2007, at 2:28 PM, Jeff Eaton wrote:
> > Honestly, this straightforward nesting syntax is the only reason
> > that I've felt we should steer away from objects in D6. the use of
> > # to mean 'property' took a log of explaining. Getting rid of that,
> > while maintaining the clean nesting syntax, would be a huge huge win.
>
> Next, I really wish that somewhere down the road php gets named
> parameters. That would be the fscking awesome.
> So instead of doing :
>
> $form['title'] = new drupal_textfield(array('title' => 'blah',
> 'default_value' => blah));
>
> we could do :
>
> $form['title'] = new drupal_textfield(title = 'blah', default_value =
> 'blah');

Bug the php-internals folks. ;-)

One thing that I've been considering lately is that FAPI structure are right 
now about 90% compatible with SimpleXML.  SimpleXML uses ArrayObject, and 
child objects are referenced with -> while properties are referenced with [].  
Then you get all sorts of iteration magic with it, the ability to trivially 
dump to/from XML, etc.  

That other 10%, though, is array properties.  #options is an array, by nature, 
and therefore can't easily serialize to XML.  I don't know if there's a good 
solution for that.

That said, a syntax that somewhat parallels SimpleXML and leverages 
ArrayObject, iterators, and the rest of SPL, but just doesn't translate 
directly to XML the way SimpleXML does, could make FAPI a lot cleaner and 
more intuitive.

Oh, so many options... :-)  (Go vote for the "Drupal and PHP5" Barcelona 
presentation that chx and I want to give so we can discuss this in person!)

-- 
Larry Garfield			AIM: LOLG42
larry at garfieldtech.com		ICQ: 6817012

"If nature has made any one thing less susceptible than all others of 
exclusive property, it is the action of the thinking power called an idea, 
which an individual may exclusively possess as long as he keeps it to 
himself; but the moment it is divulged, it forces itself into the possession 
of every one, and the receiver cannot dispossess himself of it."  -- Thomas 
Jefferson


More information about the development mailing list