ahmetbarut/laravel-attributes-documentor

There is no license information available for the latest version (v1.0.1) of this package.

v1.0.1 2022-11-14 06:19 UTC

This package is auto-updated.

Last update: 2024-04-14 09:16:06 UTC


README

It provides you the api for the document using the attributes.

Example

<?php

namespace Tests;

use AhmetBarut\Documentor\Attributes\Document;

#[Document(description: 'TestClass')]
class TestClass
{
    #[Document(description: 'testProperty')]
    public $testProperty;

    #[Document(description: "testMethod")]
    public function testMethod()
    {
        return;
    }
}
[
    "class" => array:1 [
      0 => "TestClass"
    ]
    "methods" => array:1 [
      "testMethod" => array:1 [
        0 => "testMethod"
      ]
    ]
    "properties" => array:1 [
      "testProperty" => array:1 [
        0 => "testProperty"
      ]
    ]
]

Test

composer test

Installation

You can install the package via composer:

composer require ahmetbarut/laravel-attributes-documentor

Usage

use AhmetBarut\Documentor\FindAttributeDescription;

$documentor = new FindAttributeDescription([
  ...paths
]);

$documentor->find();

$documentor
// only class
->getClassAttributeDescription()

// only methods
->getMethodsDescription()

// only properties
->getPropertiesDescription()
// filter null values
->filter()

Write To Markdown

use AhmetBarut\Documentor\FindAttributeDescription;
use AhmetBarut\Documentor\Templates\Markdown;

$documentor = new FindAttributeDescription([
  ...paths
]);

$documentor->find();

$data = $documentor->getClassAttributeDescription()->getMethodsDescription()->getPropertiesDescription()->filter();

$markdown = new Markdown();

// default path is docs
$markdown->write($data);

Usage Command

By default the command will search for base_path('docs') directory and put the filename as docs.md.

To change the directory; You can change the directory like --directory=/path/to/dir. To change the file name; --output-file=filename

php artisan documentor:generate