On 17 November 2010 02:52, Justin Martin <frozenf...@php.net> wrote: > frozenfire Wed, 17 Nov 2010 02:52:49 +0000 > > Revision: http://svn.php.net/viewvc?view=revision&revision=305431 > > Log: > Very preliminary mod of docgen.php which uses the PHP-GTK sources to bypass > lack of Reflection data.
Is there any reason why these gtk-related changes cannot happen on trunk? > > Changed paths: > U phpdoc/doc-base/branches/gtk-docgen/scripts/docgen/docgen.php > > Modified: phpdoc/doc-base/branches/gtk-docgen/scripts/docgen/docgen.php > =================================================================== > --- phpdoc/doc-base/branches/gtk-docgen/scripts/docgen/docgen.php > 2010-11-17 02:50:01 UTC (rev 305430) > +++ phpdoc/doc-base/branches/gtk-docgen/scripts/docgen/docgen.php > 2010-11-17 02:52:49 UTC (rev 305431) > @@ -70,6 +70,7 @@ > -c,--class -- class name > -e,--extension -- extension name > -f,--function -- function name > + -g,--gtk -- specify the PHP-GTK source directory > -h,--help -- show this help > -i,--include -- includes a PHP file > (shortcut for: php -dauto_prepend_file=streams.php docgen.php) > @@ -832,8 +833,35 @@ > > write_doc($extension, DOC_EXTENSION); > > - foreach ($extension->getClasses() as $class) { > - gen_docs($class->name, DOC_CLASS); > + if($OPTION['gtk']) { > + $classes = array(); > + $dirsep = DIRECTORY_SEPARATOR; > + $data = array_merge( > + > file("{$OPTION['gtk']}{$dirsep}ext{$dirsep}gtk+{$dirsep}atk.defs"), > + > file("{$OPTION['gtk']}{$dirsep}ext{$dirsep}gtk+{$dirsep}gdk.defs"), > + > file("{$OPTION['gtk']}{$dirsep}ext{$dirsep}gtk+{$dirsep}gtk.defs"), > + > file("{$OPTION['gtk']}{$dirsep}ext{$dirsep}extra{$dirsep}gtkextra.defs"), > + > file("{$OPTION['gtk']}{$dirsep}ext{$dirsep}html{$dirsep}html.defs"), > + > file("{$OPTION['gtk']}{$dirsep}ext{$dirsep}libglade{$dirsep}libglade.defs"), > + > file("{$OPTION['gtk']}{$dirsep}ext{$dirsep}libsexy{$dirsep}sexy.defs"), > + > file("{$OPTION['gtk']}{$dirsep}ext{$dirsep}mozembed{$dirsep}mozembed.defs"), > + > file("{$OPTION['gtk']}{$dirsep}ext{$dirsep}sourceview{$dirsep}sourceview.defs") > + ); > + foreach ($data as $line) { > + preg_match("/(?:of-object > \")(\w*)(?:\")/", $line, $matches); > + if($matches) $classes[] = > $matches[1]; > + } > + $classes = array_unique($classes); > + > + foreach ($classes as $classtmp) { > + if(!class_exists($classtmp)) continue; > + $class = new > ReflectionClass($classtmp); > + gen_docs($class->name, DOC_CLASS); > + } > + } else { > + foreach ($extension->getClasses() as $class) { > + gen_docs($class->name, DOC_CLASS); > + } > } > > foreach ($extension->getFunctions() as $function) { > @@ -1005,6 +1033,7 @@ > $OPTION['method'] = NULL; > $OPTION['class'] = NULL; > $OPTION['function'] = NULL; > +$OPTION['gtk'] = NULL; > $OPTION['output'] = getcwd() . '/output'; > $OPTION['verbose'] = true; > $OPTION['quiet'] = false; > @@ -1033,6 +1062,7 @@ > 'class:' => 'c:', /* classname */ > 'extension:' => 'e:', /* extension */ > 'function:' => 'f:', /* function */ > + 'gtk:' => 'g:', /* gtk */ > 'method:' => 'm:' /* method */ > ); > > @@ -1065,6 +1095,10 @@ > case 'function': > $OPTION['function'] = $value; > break; > + case 'g': > + case 'gtk': > + $OPTION['gtk'] = $value; > + break; > case 'm': > case 'method': > if (!array_key_exists('c', $options) && > !array_key_exists('class', $options)) { > > > -- > PHP Documentation Commits Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php >