Inside DocBlox

mikevanriel 1,425 views 17 slides May 20, 2011
Slide 1
Slide 1 of 17
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17

About This Presentation

No description available for this slideshow.


Slide Content

DocBlox
Your source matters
In
side!

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*
●@access
●@api
●@author*
●@category*
●@copyright
●@deprecated*
●@example*
●@final*
●@filesource*
●@global*
●@ignore*
●@internal*
●@license
●@link
●@method*
●@name*
●@package
●@param
●@property*
●@return
●@see*
●@since*
● @static*
●@staticvar*
●@subpackage
●@throws / @throw
●@todo
●@tutorial*
●@uses / @usedby*
●@var
●@version*

Project Structure
Parser Transformer Reflection TasksCore
WritersValidators
Tokens
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:[email protected]