Hi Folks:

In trying to add the procedural style interface to the DateTime docs I 
went searching for how we currently present stuff that has both object 
oriented and procedural interfaces.  It turns out there is no consistent 
way of going about it, plus there are some other oddities that would be 
good to discuss.

1) How to label the OOP methodsynopsis?

Here are the current usages:

Object oriented style:
Object oriented style
Object oriented style (method):
Object oriented style (method)
Object oriented style (constructor):
Object oriented style (property):
Object oriented style (property)
&style.oop;

(Though the style.oop entity was mistakenly defined as "Oriented object 
style", though I just fixed it to "Object oriented style".

I suggest we go with &style.oop; (mapping to "Object oriented style") for 
everything.  The parenthetical method/constructor/property are 
supurfluous because the way the stuff is rendered clearly explains the 
usage.

Similarly, "&style.procedural;" should be substituted for "Procedural 
style".

Does this seem reasonable to you?


2) Where to put the example output?

Generally, output for examples is put inside the <example> element.  But 
when both OOP and procedural styles are shown, it's easier to 
write/maintain one output.

Some docs put it in one of the examples, a la 
http://us3.php.net/manual/en/rararchive.getcomment.php.  It's a somewhat 
inelegant.

Some docs put it outside the <example> section.  It works, but it looks a 
little funny without it being offset inside a box.  See 
http://us3.php.net/manual/en/mysqli.affected-rows.php for what I mean.

I did a test of putting the output block inside a separate <example> 
element just above </refsect1>.  It works nicely.  Does this sound good 
to everyone?


3) The way properties are documented/rendered in description refsect1's 
can be better.

Take a look at mysqli affected-rows page (same as above link).  "mysqli" 
is in a box on one line and then "int $affected_rows;" is on another row.
Right now we mark up the DocBook like this:

  <classsynopsis>
   <ooclass><classname>mysqli</classname></ooclass>
   <fieldsynopsis>
    <type>int</type><varname>affected_rows</varname>
   </fieldsynopsis>
  </classsynopsis>

The <classsynopsis> / class name in this section of the output is 
unnecessary because the class in question is clear from the page 
title/etc, plus we don't use it for methods.

It seems like things would be much clearer if the class name weren't 
there and it came out something like this:

  public int $affected_rows

DocBook allows the <fieldsynopsis> to go directly into the <refsect1>.  
So to accomplish this, the DocBook can be written as such:

  <fieldsynopsis>
   <modifier>public</modifier>
   <type>int</type>
   <varname>affected_rows</varname>
  </fieldsynopsis>

and then add "div.refsect1 div.fieldsynopsis" to line 979 of site.css to 
get the border around it just like "div.refsect1 div.methodsynopsis".  
Looks sweet.  What do people think?


Once we come to agreements on which ways to go, I'll be glad implement 
them throughout the existing files.

Thanks,

--Dan

-- 
 T H E   A N A L Y S I S   A N D   S O L U T I O N S   C O M P A N Y
            data intensive web and database programming
                http://www.AnalysisAndSolutions.com/
 4015 7th Ave #4, Brooklyn NY 11232  v: 718-854-0335 f: 718-854-0409

Reply via email to