dev-master
9999999-devThis generates a documentation based on class doc-block which able to handle XML and REST api's
The Requires
by Daison Carino
Wallogit.com
2017 © Pedro Peláez
This generates a documentation based on class doc-block which able to handle XML and REST api's
In your class, you are required to add annotations such as, (*1)
@sleekdoc_init to tell generator to initialize the class provided.
The @sleekdoc_namespace to have a unified documentation.
The @sleekdoc_category to separate class functions., (*2)
Create an index.php file to your public folder and copy this., (*3)
<?php
$root = dirname(__DIR__);
require $root.'/autoload.php';
$generator = new Daison\SleekDoc\Generator([
'MyClass\Should\Be\Here' => [
'functionHere',
'anotherFunctionHere',
],
]);
$generator->addData('title', 'This is my title');
$generator->addData('default_base_uri', [
'json' => 'http://json-api.app',
'xml' => 'http://xml-api.app',
]);
$blade = $generator->make(
$root.'/resources/views',
$root.'/storage/cache'
);
echo $blade->render();
The code above should show you the entire generated documentations., (*4)
Now to finish it up, you should point your web server to use that index.php instead., (*5)
We're using blade template engine (A Laravel template engine) to be our relying View., (*6)
Basing it in our configuration, we configured the views directory inside $root.'/resources/views', (*7)
So in your blade template, you could access a variable $data, containing this kind of array value, (*8)
array(3) {
["title"]=>
string(10) "Sample API"
["default_base_uri"]=>
array(2) {
["json"]=>
string(23) "http://json-api.app"
["xml"]=>
string(23) "http://xml-api.app"
}
["api"]=>
array(2) {
["JSON"]=>
array(1) {
["/booking"]=>
array(5) {
["sleekdoc_init"]=>
bool(true)
["sleekdoc_category"]=>
string(4) "JSON"
["sleekdoc_namespace"]=>
string(8) "/booking"
["description"]=>
string(85) "This handles the entire booking process, from creation until
the cancellation process"
["functions"]=>
array(3) {
[0]=>
array(8) {
["sleekdoc_init"]=>
bool(true)
["method"]=>
string(3) "GET"
["route"]=>
string(8) "/booking"
["description"]=>
string(42) "This is the description of /booking prefix"
["headers"]=>
object(stdClass)#8 (1) {
["authorization"]=>
object(stdClass)#9 (2) {
["label"]=>
...
}
}
}
}
}
["XML"]=>
array(1) {
["Booking"]=>
array(5) {
["sleekdoc_init"]=>
bool(true)
["sleekdoc_category"]=>
string(3) "XML"
["sleekdoc_namespace"]=>
string(7) "Booking"
["description"]=>
string(16) "Description Here"
["functions"]=>
array(1) {
[0]=>
array(4) {
["sleekdoc_init"]=>
bool(true)
["name"]=>
string(7) "Details"
["description"]=>
string(12) "This is shit"
["raw_xml"]=>
string(498) "..."
}
}
}
}
}
}
For realtime value, after $generator->make(...) try to die-and-dump the data dd($generator->getData()), (*9)
This generates a documentation based on class doc-block which able to handle XML and REST api's