On Mon, Jun 4, 2012 at 6:03 PM, Philip Olson <phi...@roshambo.org> wrote: > > On Jun 2, 2012, at 10:02 AM, Hannes Magnusson wrote: > >> On Sat, Jun 2, 2012 at 5:36 PM, Peter Cowburn <petercowb...@gmail.com> wrote: >>> On 2 June 2012 12:53, Hannes Magnusson <hannes.magnus...@gmail.com> wrote: >>>> >>>> Yep. +1 from me. >>>> >>> >>> Excellent. I've committed your patches for PhD, the >>> mysql_affected_rows() docs change, and mine for phpweb. I've also >>> opened a ticket to track these changes (and conveniently forgot to >>> reference it in the commits!) at https://bugs.php.net/62213 >>> >>> I guess, if the above hasn't caused everything to explode, the next >>> step is to roll out the docs changes for the rest of the ext/mysql >>> functions (Philip?). Also, do we want to get this into a PhD release; >>> I believe this was mentioned earlier? >> >> Kudos! >> >> We'll see if things explode on docs.php.net in few hours. >> If it works out allright we must rollout a new PhD release and deploy >> it before Friday, otherwise we'll get weird issues when the mirrors >> pick up the new version :) > > Looks good. I also like that it's shown before the description. > > In the future we can think about soft vs hard deprecation but for now > this works great. > > Also, I'll be updating all of ext/mysql before Friday.
A lot of these alternatives include passing specific arguments to functions, which currently looks awkward and silly. Attached is a patch that introduces phd:argN attribute to <function/methodname> and will cause <methodname phd:arg1="PDO::bar" phd:arg2="PDO::baz>PDOStatement::foo</methodname> to be rendered as: <span..><a hre...>PDOStatement::foo(PDO::bar, PDO::baz)</a></span> That is, it will make the phd:argN look like proper arguments to the function. Should we include include this in the coming PhD release before Friday? -Hannes
Index: en/reference/mysql/functions/mysql-fetch-row.xml =================================================================== --- en/reference/mysql/functions/mysql-fetch-row.xml (revision 325983) +++ en/reference/mysql/functions/mysql-fetch-row.xml (working copy) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> -<refentry xml:id="function.mysql-fetch-row" xmlns="http://docbook.org/ns/docbook"> +<refentry xml:id="function.mysql-fetch-row" xmlns="http://docbook.org/ns/docbook" xmlns:phd="http://www.php.net/ns/phd"> <refnamediv> <refname>mysql_fetch_row</refname> <refpurpose>Get a result row as an enumerated array</refpurpose> @@ -11,7 +11,7 @@ &mysql.alternative.note; <simplelist role="alternatives"> <member><function>mysqli_fetch_row</function></member> - <member><methodname>PDOStatement::fetch</methodname> (<constant>PDO::FETCH_NUM</constant>)</member> + <member><methodname phd:arg1="PDO::FETCH_NUM" phd:arg3="$stuff" phd:arg2="$foobar">PDOStatement::fetch</methodname></member> </simplelist> </sidebar> </refsynopsisdiv> @@ -40,7 +40,7 @@ <refsect1 role="returnvalues"> &reftitle.returnvalues; <para> - Returns an numerical array of strings that corresponds to the fetched row, or + Returns an numerical array of strings that corresponds to the fetched row, or &false; if there are no more rows. </para> <para> Index: doc-base/docbook/docbook-xml/docbook.dtd =================================================================== --- doc-base/docbook/docbook-xml/docbook.dtd (revision 325983) +++ doc-base/docbook/docbook-xml/docbook.dtd (working copy) @@ -1052,6 +1052,11 @@ <!ATTLIST methodname xmlns CDATA #FIXED "http://docbook.org/ns/docbook" role CDATA #IMPLIED + phd:arg1 CDATA #IMPLIED + phd:arg2 CDATA #IMPLIED + phd:arg3 CDATA #IMPLIED + phd:arg4 CDATA #IMPLIED + phd:arg4 CDATA #IMPLIED %db.common.attributes; %db.common.linking.attributes; @@ -1902,6 +1907,11 @@ <!ATTLIST function xmlns CDATA #FIXED "http://docbook.org/ns/docbook" role CDATA #IMPLIED + phd:arg1 CDATA #IMPLIED + phd:arg2 CDATA #IMPLIED + phd:arg3 CDATA #IMPLIED + phd:arg4 CDATA #IMPLIED + phd:arg4 CDATA #IMPLIED %db.common.attributes; %db.common.linking.attributes;
diff --git a/phpdotnet/phd/Package/PHP/XHTML.php b/phpdotnet/phd/Package/PHP/XHTML.php index ddd3246..e5a4f95 100644 --- a/phpdotnet/phd/Package/PHP/XHTML.php +++ b/phpdotnet/phd/Package/PHP/XHTML.php @@ -11,6 +11,8 @@ abstract class Package_PHP_XHTML extends Package_Generic_XHTML { 'classname' => 'format_suppressed_tags', 'chapter' => 'format_container_chunk', 'colophon' => 'format_chunk', + 'function' => 'format_function', + 'methodname' => 'format_function', 'legalnotice' => 'format_chunk', 'part' => 'format_container_chunk', 'partintro' => 'format_partintro', @@ -126,6 +128,7 @@ abstract class Package_PHP_XHTML extends Package_Generic_XHTML { protected $dchunk = array( "phpdoc:classref" => null, + "args" => array(), "fieldsynopsis" => array( "modifier" => "public", ), @@ -454,6 +457,19 @@ abstract class Package_PHP_XHTML extends Package_Generic_XHTML { return $this->format_function_text($value, $tag, $display_value); } + public function format_function($open, $tag, $attrs, $props) { + if ($open) { + if (isset($attrs[Reader::XMLNS_PHD])) { + ksort($attrs[Reader::XMLNS_PHD]); + $this->cchunk["args"] = $attrs[Reader::XMLNS_PHD]; + } + // Leading space intional for methodname as phpdoc doesn't have a + // space between <type> and the <methodname> in methodsynopsis + return ' <span class="' . $tag . '">'; + } + return "</span>"; + } + public function format_function_text($value, $tag, $display_value = null) { static $non_functions = array( "echo" => true, "print" => true, @@ -465,7 +481,9 @@ abstract class Package_PHP_XHTML extends Package_Generic_XHTML { if ($display_value === null) { $display_value = $value; if (!isset($non_functions[$value])) { - $display_value .= "()"; + $args = implode(", ", $this->cchunk["args"]); + $this->cchunk["args"] = $this->dchunk["args"]; + $display_value .= "($args)"; } }