Giter VIP home page Giter VIP logo

shahidnajam / docblox Goto Github PK

View Code? Open in Web Editor NEW

This project forked from phpdocumentor/phpdocumentor

1.0 2.0 0.0 15.75 MB

PHP 5.3 compatible API Documentation generator aimed at larger projects and Continuous Integration; please follow @DocBlox on twitter for the latest updates. *Please note*: that not all issues here are bugs; we keep track of our work using the new issue system of Github.

Home Page: http://docblox-project.org

License: MIT License

docblox's Introduction

README

What is DocBlox?

DocBlox is a documentation generator, just like phpDocumentor. Though the big difference is that it was written with certain goals in mind:

  • Performance
  • Low memory usage
  • PHP 5.3 compatible
  • Integrates nicely with Continuous integration environments (incremental parsing)

The reason I am building this application is actually because the company which I work for currently has a project which cannot be parsed by phpDocumentor (due to memory constraints) and I wanted to generate API docs.

I could write quite bit more about this project but will stick to this text for the moment.

Please keep in mind: this is pre-release software. It has been tested against Zend Framework, Symfony, Agavi, Solar Framework and even larger projects but it does not yet contain the full feature set of phpDocumentor.

Requirements

DocBlox requires the following:

How to use DocBlox?

NOTE: DocBlox must be installed in a path without spaces in order to generate HTML files. The libraries that DocBlox uses to transform XSL files do not reliably support spaces in the path.

The easy way

The easiest way to run docblox is by running the following command:

php {INSTALLATION_FOLDER}/bin/docblox.php

This will automatically execute the project:run task which kickstarts the parsing and transformation process.

The more flexible but still easy way

Under the hood DocBlox takes a two step approach to generating documentation:

  1. parse the source files and create a XML file (structure.xml) containing all metadata
  2. transform the XML file to human readable output (currently only static HTML is supported)

Parsing

The parsing is accomplished by executing the task project:parse using the docblox.php executable in the bin directory. This file takes several arguments (see {INSTALLATION_FOLDER}/bin/docblox.php project:parse -h for a full list) and with it you can select which files or directories to parse and which to ignore.

Example:

php {INSTALLATION FOLDER}/bin/docblox project:parse -d /home/me/project

The example above parses the /home/me/project directory for any file suffixed with .php and write a structure.xml file to the data/output directory.

By executing this command you construct the building block for the transformation process, the meta data store a.k.a. structure.xml.

Please note: if an existing structure.xml is found on the target location it will attempt to check every target file if it has changed. If not, it will not re-parse and thus it will reuse the existing definition. Speeding up the process.

Transformation

The transformation process is responsible for creating human-readable output from the generated XML file.

You can start the transformation process by running

php {INSTALLATION FOLDER}/bin/transform.php

By default it will look in the output subfolder (unless executed from the DocBlox root folder) of your current working directory for the structure.xml file. During the transformation the structure.xml file will be interpreted and (static) XHTML files will be created in the same folder, additionally a search index and class diagram will be generated.

That is all, now you have the API documentation of your project. If you want to see which options are available for transformation, see ./bin/docblox.php project:transform -h for a full list.

Documentation

For more detailed information you can check our online documentation at http://www.docblox-project.org/documentation

Known issues

  1. Search does not work / is not available when accessing the documentation locally from Google Chrome. Google Chrome blocks access to local files (and thus the search index) using Javascript when working with local files (file://); it is not possible for us to fix this.
  2. Remembering which navigation items are open does not work when accessing the documentation locally from Google Chrome. The code responsible for remembering which items are open uses cookies to track the state. Unfortunately Google Chrome disables the use of cookies when working with local files (file://); it is not possible for us to fix this.

Contact

To come in contact is actually dead simple and can be done in a variety of ways.

Twitter: @DocBlox

IRC: Freenode, #docblox

docblox's People

Contributors

avalanche123 avatar benmatselby avatar mvriel avatar weierophinney avatar zoranzaric avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.