SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

DomDisc and the Domino data api
DomDisc and the Domino data apiDomDisc and the Domino data api
DomDisc and the Domino data api
Jens Bruntt
 

La actualidad más candente (20)

Last Month in PHP - February 2017
Last Month in PHP - February 2017Last Month in PHP - February 2017
Last Month in PHP - February 2017
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
 
Fluentd Unified Logging Layer At Fossasia
Fluentd Unified Logging Layer At FossasiaFluentd Unified Logging Layer At Fossasia
Fluentd Unified Logging Layer At Fossasia
 
Vim and Python
Vim and PythonVim and Python
Vim and Python
 
Build Your Own Tools
Build Your Own ToolsBuild Your Own Tools
Build Your Own Tools
 
Challenge: convert policy doc from docbook to sphinx
Challenge: convert policy doc from docbook to sphinxChallenge: convert policy doc from docbook to sphinx
Challenge: convert policy doc from docbook to sphinx
 
A Recovering Java Developer Learns to Go
A Recovering Java Developer Learns to GoA Recovering Java Developer Learns to Go
A Recovering Java Developer Learns to Go
 
The GNOME way - What can we learn from and within the Open Documentation World
The GNOME way - What can we learn from and within the Open Documentation WorldThe GNOME way - What can we learn from and within the Open Documentation World
The GNOME way - What can we learn from and within the Open Documentation World
 
Cors
CorsCors
Cors
 
A bit more of PE
A bit more of PEA bit more of PE
A bit more of PE
 
PostgreSQL and Compressed Documents (pgconf.ru 2018)
PostgreSQL and Compressed Documents (pgconf.ru 2018)PostgreSQL and Compressed Documents (pgconf.ru 2018)
PostgreSQL and Compressed Documents (pgconf.ru 2018)
 
The basics of fluentd
The basics of fluentdThe basics of fluentd
The basics of fluentd
 
Xml dom
Xml domXml dom
Xml dom
 
DomDisc and the Domino data api
DomDisc and the Domino data apiDomDisc and the Domino data api
DomDisc and the Domino data api
 
PHPDoc
PHPDocPHPDoc
PHPDoc
 
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
 
Tips and Tricks for Increased Development Efficiency
Tips and Tricks for Increased Development EfficiencyTips and Tricks for Increased Development Efficiency
Tips and Tricks for Increased Development Efficiency
 
Golang
GolangGolang
Golang
 
GO programming language
GO programming languageGO programming language
GO programming language
 
Cache in Chromium: Disk Cache
Cache in Chromium: Disk CacheCache in Chromium: Disk Cache
Cache in Chromium: Disk Cache
 

Similar a Inside DocBlox

DocBlox: your source matters @ #pfc11
DocBlox: your source matters @ #pfc11DocBlox: your source matters @ #pfc11
DocBlox: your source matters @ #pfc11
Mike van Riel
 
20090629 Using phpDocumentor
20090629 Using phpDocumentor20090629 Using phpDocumentor
20090629 Using phpDocumentor
Rimpei Ogawa
 

Similar a Inside DocBlox (20)

The Beauty and the Beast
The Beauty and the BeastThe Beauty and the Beast
The Beauty and the Beast
 
The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09
 
DocBlox: your source matters @ #pfc11
DocBlox: your source matters @ #pfc11DocBlox: your source matters @ #pfc11
DocBlox: your source matters @ #pfc11
 
20090629 Using phpDocumentor
20090629 Using phpDocumentor20090629 Using phpDocumentor
20090629 Using phpDocumentor
 
Getting Into FLOW3 (DPC12)
Getting Into FLOW3 (DPC12)Getting Into FLOW3 (DPC12)
Getting Into FLOW3 (DPC12)
 
IPCSE12: Getting into FLOW3
IPCSE12: Getting into FLOW3IPCSE12: Getting into FLOW3
IPCSE12: Getting into FLOW3
 
Fluent Development with FLOW3 1.0
Fluent Development with FLOW3 1.0Fluent Development with FLOW3 1.0
Fluent Development with FLOW3 1.0
 
Fluent Development with FLOW3 1.0
Fluent Development with FLOW3 1.0Fluent Development with FLOW3 1.0
Fluent Development with FLOW3 1.0
 
PHP Development Tools
PHP  Development ToolsPHP  Development Tools
PHP Development Tools
 
Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)
 
Php Documentor The Beauty And The Beast
Php Documentor The Beauty And The BeastPhp Documentor The Beauty And The Beast
Php Documentor The Beauty And The Beast
 
Groovy DSLs, from Beginner to Expert - Guillaume Laforge and Paul King - Spri...
Groovy DSLs, from Beginner to Expert - Guillaume Laforge and Paul King - Spri...Groovy DSLs, from Beginner to Expert - Guillaume Laforge and Paul King - Spri...
Groovy DSLs, from Beginner to Expert - Guillaume Laforge and Paul King - Spri...
 
Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with python
 
Automating API Documentation
Automating API DocumentationAutomating API Documentation
Automating API Documentation
 
EuroPython 2013 - Python3 TurboGears Training
EuroPython 2013 - Python3 TurboGears TrainingEuroPython 2013 - Python3 TurboGears Training
EuroPython 2013 - Python3 TurboGears Training
 
Drupal + composer = new love !?
Drupal + composer = new love !?Drupal + composer = new love !?
Drupal + composer = new love !?
 
Drupal Best Practices
Drupal Best PracticesDrupal Best Practices
Drupal Best Practices
 
Balisage - EXPath Packaging
Balisage - EXPath PackagingBalisage - EXPath Packaging
Balisage - EXPath Packaging
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 
Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

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
  • 4.
  • 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