DocBloxe!
      id
                ns
Your source matters
               I
Mike van Riel
             @mvriel
   Lead Developer of DocBlox
  Senior Developer for Unet B.V.
   Active with PHP since 2002
What is DocBlox?
●   Documentation Generation Application (DGA) for PHP
●   Inspired by phpDocumentor and JavaDoc
●   Generates documentation from your source code
●   Uses the comments in your source code
Installation
Installation via PEAR

 $   pear   channel-discover pear.docblox-project.org
 $   pear   channel-discover pear.zfcampus.org
 $   pear   channel-discover pear.michelf.com
 $   pear   install docblox/DocBlox-beta
Project Goals
●   Generate great documentation!
●   Low memory footprint
●   High-speed processing
●   Support for PHP 5.3 features
●   Compatibility with phpDocumentor tags and syntax
●   Extensibility
●   Forward compatibility
Status
●   Memory:       Processing ZF only uses approx. 50MB
●   Speed:        Processing ZF takes 7 to 9 minutes
                  (instead of 80 - 100)
●   PHP 5.3:      Full support for all new features
●   Extensibility: 3 Level API
                   Easy theming
                   Plans for behavioural / tag plugins
Docblocks
/**
  * This is a short description.
  *
  * This is a long description, which
  * may span multiple lines and contain
  * {@inline} tags.
  *
  * @param string $a This is the first variable.
  * @param int    $b This is the second variable.
  * @param array $c This is the third variable.
  *
  * @return void
  */
function MyFunction($a, $b, array $c)
{
}
Supported elements
●   Files
●   Namespaces
●   Includes
●   Classes
●   Functions, methods and closures
●   Properties
●   Constants, both global and class
●   Docblocks for all of the above
Supported TAGS
●   @abstract*      ●   @ignore*     ●   @since*
●   @access         ●   @internal*   ●   @static*
●   @api            ●   @license     ●   @staticvar*
●   @author*        ●   @link        ●   @subpackage
●   @category*      ●   @method*
                                     ●   @throws / @throw
●   @copyright      ●   @name*
                                     ●   @todo
●   @deprecated*    ●   @package
                                     ●   @tutorial*
●   @example*       ●   @param
●   @final*         ●   @property*
                                     ●   @uses / @usedby*
●   @filesource*    ●   @return      ●   @var
●   @global*        ●   @see*        ●   @version*
Project Structure
Core    Parser      Transformer    Reflection   Tasks   Tokens



       Validators     Writers     Behaviours
CODE!
              Let's browse the code.

$ git clone http://github.com/mvriel/docblox
Tasks
$ docblox list




$ docblox project:list




$ docblox <namespace>:<name> -h
Creating BRANDING
$ docblox theme:list




$ docblox theme:generate -t <PATH> -n <NAME>
BRANDING tips
●   Re-use the default theme XSL templates as much as
    possible. They add functionality onto your branding.
●   When invoking branding from outside the DocBlox
    application folder; it will be moved to
    data/themes/cache first.
●   Mind the relative paths between server side and client
    side; they probably differ.
CODE!
              Let's browse the code.

$ git clone http://github.com/mvriel/docblox
Thank you
IRC:       Freenode/#docblox
Github:    https://github.com/mvriel/docblox
Website:   www.docblox-project.org
Twitter:   @docblox
           @mvriel
E-mail:    mike.vanriel@naenius.com

Inside DocBlox

  • 1.
    DocBloxe! id ns Your source matters I
  • 2.
    Mike van Riel @mvriel Lead Developer of DocBlox Senior Developer for Unet B.V. Active with PHP since 2002
  • 3.
    What is DocBlox? ● Documentation Generation Application (DGA) for PHP ● Inspired by phpDocumentor and JavaDoc ● Generates documentation from your source code ● Uses the comments in your source code
  • 5.
    Installation Installation via PEAR $ pear channel-discover pear.docblox-project.org $ pear channel-discover pear.zfcampus.org $ pear channel-discover pear.michelf.com $ pear install docblox/DocBlox-beta
  • 6.
    Project Goals ● Generate great documentation! ● Low memory footprint ● High-speed processing ● Support for PHP 5.3 features ● Compatibility with phpDocumentor tags and syntax ● Extensibility ● Forward compatibility
  • 7.
    Status ● Memory: Processing ZF only uses approx. 50MB ● Speed: Processing ZF takes 7 to 9 minutes (instead of 80 - 100) ● PHP 5.3: Full support for all new features ● Extensibility: 3 Level API Easy theming Plans for behavioural / tag plugins
  • 8.
    Docblocks /** *This is a short description. * * This is a long description, which * may span multiple lines and contain * {@inline} tags. * * @param string $a This is the first variable. * @param int $b This is the second variable. * @param array $c This is the third variable. * * @return void */ function MyFunction($a, $b, array $c) { }
  • 9.
    Supported elements ● Files ● Namespaces ● Includes ● Classes ● Functions, methods and closures ● Properties ● Constants, both global and class ● Docblocks for all of the above
  • 10.
    Supported TAGS ● @abstract* ● @ignore* ● @since* ● @access ● @internal* ● @static* ● @api ● @license ● @staticvar* ● @author* ● @link ● @subpackage ● @category* ● @method* ● @throws / @throw ● @copyright ● @name* ● @todo ● @deprecated* ● @package ● @tutorial* ● @example* ● @param ● @final* ● @property* ● @uses / @usedby* ● @filesource* ● @return ● @var ● @global* ● @see* ● @version*
  • 11.
    Project Structure Core Parser Transformer Reflection Tasks Tokens Validators Writers Behaviours
  • 12.
    CODE! Let's browse the code. $ git clone http://github.com/mvriel/docblox
  • 13.
    Tasks $ docblox list $docblox project:list $ docblox <namespace>:<name> -h
  • 14.
    Creating BRANDING $ docbloxtheme:list $ docblox theme:generate -t <PATH> -n <NAME>
  • 15.
    BRANDING tips ● Re-use the default theme XSL templates as much as possible. They add functionality onto your branding. ● When invoking branding from outside the DocBlox application folder; it will be moved to data/themes/cache first. ● Mind the relative paths between server side and client side; they probably differ.
  • 16.
    CODE! Let's browse the code. $ git clone http://github.com/mvriel/docblox
  • 17.
    Thank you IRC: Freenode/#docblox Github: https://github.com/mvriel/docblox Website: www.docblox-project.org Twitter: @docblox @mvriel E-mail: mike.vanriel@naenius.com