Inside DocBlox

Mike van Riel
Mike van RielSenior PHP Developer at Unet B.V.
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
Inside DocBlox
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
1 of 17

More Related Content

What's hot(20)

Introduction to go langIntroduction to go lang
Introduction to go lang
Amal Mohan N544 views
Vim and PythonVim and Python
Vim and Python
majmcdonald2.4K views
Build Your Own ToolsBuild Your Own Tools
Build Your Own Tools
Shugo Maeda474 views
CorsCors
Cors
s4parke542 views
A bit more of PEA bit more of PE
A bit more of PE
Ange Albertini5.9K views
The basics of fluentdThe basics of fluentd
The basics of fluentd
Treasure Data, Inc.29.1K views
Xml domXml dom
Xml dom
sana mateen1K views
DomDisc and the Domino data apiDomDisc and the Domino data api
DomDisc and the Domino data api
Jens Bruntt1.5K views
PHPDocPHPDoc
PHPDoc
pjfiers1K views
GolangGolang
Golang
Felipe Mamud11.3K views
GO programming languageGO programming language
GO programming language
tung vu2.1K views
Cache in Chromium: Disk CacheCache in Chromium: Disk Cache
Cache in Chromium: Disk Cache
Chang W. Doh3.1K views

Similar to Inside DocBlox(20)

The Beauty and the BeastThe Beauty and the Beast
The Beauty and the Beast
Bastian Feder3.2K views
The Beauty And The Beast Php N W09The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09
Bastian Feder4.5K views
DocBlox: your source matters @ #pfc11DocBlox: your source matters @ #pfc11
DocBlox: your source matters @ #pfc11
Mike van Riel1.4K views
20090629 Using phpDocumentor20090629 Using phpDocumentor
20090629 Using phpDocumentor
Rimpei Ogawa586 views
Getting Into FLOW3 (DPC12)Getting Into FLOW3 (DPC12)
Getting Into FLOW3 (DPC12)
Robert Lemke2.1K views
IPCSE12: Getting into FLOW3IPCSE12: Getting into FLOW3
IPCSE12: Getting into FLOW3
Robert Lemke1.8K views
Fluent Development with FLOW3 1.0Fluent Development with FLOW3 1.0
Fluent Development with FLOW3 1.0
Robert Lemke3.1K views
Fluent Development with FLOW3 1.0Fluent Development with FLOW3 1.0
Fluent Development with FLOW3 1.0
Robert Lemke1.9K views
PHP  Development ToolsPHP  Development Tools
PHP Development Tools
Antony Abramchenko341 views
Getting Into FLOW3 (TYPO312CA)Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)
Robert Lemke1.6K views
Php Documentor The Beauty And The BeastPhp Documentor The Beauty And The Beast
Php Documentor The Beauty And The Beast
Bastian Feder4.7K views
Open source projects with pythonOpen source projects with python
Open source projects with python
roskakori1.6K views
Automating API DocumentationAutomating API Documentation
Automating API Documentation
Selvakumar T S1.5K views
EuroPython 2013 - Python3 TurboGears TrainingEuroPython 2013 - Python3 TurboGears Training
EuroPython 2013 - Python3 TurboGears Training
Alessandro Molina2.1K views
Drupal Best PracticesDrupal Best Practices
Drupal Best Practices
Mukesh Agarwal781 views
Balisage - EXPath PackagingBalisage - EXPath Packaging
Balisage - EXPath Packaging
Florent Georges493 views
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
Philip Norton1K views

Recently uploaded(20)

Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet48 views
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
Eleanor McHugh34 views
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)
CSUC - Consorci de Serveis Universitaris de Catalunya51 views
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
Prity Khastgir IPR Strategic India Patent Attorney Amplify Innovation23 views
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web Developers
Maximiliano Firtman152 views
Green Leaf Consulting: Capabilities DeckGreen Leaf Consulting: Capabilities Deck
Green Leaf Consulting: Capabilities Deck
GreenLeafConsulting170 views

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 $ docblox theme: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