diff --git a/docs/README.md b/docs/README.md index 78b1a9de..fdf78ebd 100644 --- a/docs/README.md +++ b/docs/README.md @@ -95,4 +95,4 @@ To update this documentation, run the following command:

-Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
Last modified date: Fri Oct 27 15:10:16 2023 +0300
Page content update date: Fri Oct 27 2023
Made with Bumble Documentation Generator
\ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
Last modified date: Sat Oct 28 11:03:31 2023 +0300
Page content update date: Tue Oct 31 2023
Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/classes/DocGenerator.md b/docs/classes/DocGenerator.md index d0b00cfe..bba7b522 100644 --- a/docs/classes/DocGenerator.md +++ b/docs/classes/DocGenerator.md @@ -2,7 +2,7 @@ BumbleDocGen / DocGenerator

- DocGenerator class: + DocGenerator class:

@@ -34,16 +34,19 @@ final class DocGenerator
  1. - addMissingDocBlocks + addDocBlocks - Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
  2. -
  3. - fillInReadmeMdTemplate -
  4. generate - Generates documentation using configuration
  5. - generateProjectTemplatesStructure + generateReadmeTemplate +
  6. +
  7. + generateTemplatesContent +
  8. +
  9. + initDocsStructure - Generate documentation structure with blank templates using AI tools
  10. parseAndGetRootEntityCollectionsGroup @@ -55,11 +58,11 @@ final class DocGenerator @@ -74,7 +77,7 @@ final class DocGenerator ```php @@ -154,18 +157,50 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo
    ```php -public function addMissingDocBlocks(): void; +public function addDocBlocks(string $aiHandler, string $aiApiKey, string $aiModel, string|null $systemPrompt = null): void; ```
    Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
    -Parameters: not specified +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $aiHandlerstring-
    $aiApiKeystring-
    $aiModelstring-
    $systemPromptstring | null-
    Return value: void @@ -184,8 +219,36 @@ public function addMissingDocBlocks(): void;
  11. \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  12. + + + +
    +
    + + + +```php +public function generate(): void; +``` + +
    Generates documentation using configuration
    + +Parameters: not specified + +Return value: void + + +Throws: + @@ -194,18 +257,50 @@ public function addMissingDocBlocks(): void;
    ```php -public function fillInReadmeMdTemplate(): void; +public function generateReadmeTemplate(string $aiHandler, string $aiApiKey, string $aiModel, string|null $systemPrompt = null): void; ``` -Parameters: not specified +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $aiHandlerstring-
    $aiApiKeystring-
    $aiModelstring-
    $systemPromptstring | null-
    Return value: void @@ -218,9 +313,6 @@ public function fillInReadmeMdTemplate(): void;
  13. \DI\DependencyException
  14. -
  15. - \Tectalic\OpenAi\ClientException
  16. -
  17. \DI\NotFoundException
  18. @@ -234,18 +326,55 @@ public function fillInReadmeMdTemplate(): void;
    ```php -public function generate(): void; +public function generateTemplatesContent(string $aiHandler, string $aiApiKey, string $aiModel, bool $nonInteractive = false, string|null $systemPrompt = null): void; ``` -
    Generates documentation using configuration
    -Parameters: not specified + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $aiHandlerstring-
    $aiApiKeystring-
    $aiModelstring-
    $nonInteractivebool-
    $systemPromptstring | null-
    Return value: void @@ -253,10 +382,19 @@ public function generate(): void; Throws: @@ -265,36 +403,61 @@ public function generate(): void;
      -
    • # - generateProjectTemplatesStructure +
    • # + initDocsStructure | source code
    ```php -public function generateProjectTemplatesStructure(): void; +public function initDocsStructure(string $aiHandler, string $aiApiKey, string $aiModel, bool $nonInteractive = false, string|null $systemPrompt = null): void; ```
    Generate documentation structure with blank templates using AI tools
    -Parameters: not specified +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $aiHandlerstring-
    $aiApiKeystring-
    $aiModelstring-
    $nonInteractivebool-
    $systemPromptstring | null-
    Return value: void Throws:
      -
    • - \Tectalic\OpenAi\ClientException
    • - -
    • - \DI\NotFoundException
    • - -
    • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    • - -
    • - \DI\DependencyException
    • -
    • \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    • @@ -307,7 +470,7 @@ public function generateProjectTemplatesStructure(): void; ```php diff --git a/docs/shared_c.cache b/docs/shared_c.cache index 5289b3f7..02d4449e 100644 --- a/docs/shared_c.cache +++ b/docs/shared_c.cache @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/Configuration.md b/docs/tech/1.configuration/classes/Configuration.md index eb3efb01..d4d73b45 100644 --- a/docs/tech/1.configuration/classes/Configuration.md +++ b/docs/tech/1.configuration/classes/Configuration.md @@ -33,9 +33,15 @@ final class Configuration

      Methods:

        +
      1. + getAIConfig +
      2. getAdditionalConsoleCommands
      3. +
      4. + getAiDataDir +
      5. getCacheDir
      6. @@ -146,6 +152,27 @@ public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParame +
    +
    +
    + + + +```php +public function getAIConfig(): array; +``` + + + +Parameters: not specified + +Return value: array + +

    @@ -153,7 +180,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParame ```php @@ -180,6 +207,27 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad +
    +
    +
    + + + +```php +public function getAiDataDir(): string; +``` + + + +Parameters: not specified + +Return value: string + +

    @@ -187,7 +235,7 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad ```php @@ -215,7 +263,7 @@ public function getCacheDir(): string|null; ```php @@ -236,7 +284,7 @@ public function getDocGenLibDir(): string; ```php @@ -264,7 +312,7 @@ public function getGitClientPath(): string; ```php @@ -298,7 +346,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L ```php @@ -326,7 +374,7 @@ public function getOutputDir(): string; ```php @@ -354,7 +402,7 @@ public function getOutputDirBaseUrl(): string; ```php @@ -388,7 +436,7 @@ public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProc ```php @@ -512,7 +560,7 @@ public function getTemplatesDir(): string; ```php @@ -546,7 +594,7 @@ public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\Custom ```php @@ -580,7 +628,7 @@ public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\Cu ```php @@ -608,7 +656,7 @@ public function getWorkingDir(): string; ```php @@ -636,7 +684,7 @@ public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; ```php diff --git a/docs/tech/1.configuration/classes/PageLinkerPlugin.md b/docs/tech/1.configuration/classes/PageLinkerPlugin.md new file mode 100644 index 00000000..7cb0053c --- /dev/null +++ b/docs/tech/1.configuration/classes/PageLinkerPlugin.md @@ -0,0 +1,216 @@ + + BumbleDocGen / Technical description of the project / Configuration files / PageLinkerPlugin
    + +

    + PageLinkerPlugin class: +

    + + + + + +```php +namespace BumbleDocGen\Core\Plugin\CorePlugin\PageLinker; + +final class PageLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface +``` + +
    Adds URLs to empty links in HTML format; + Links may contain: + 1) Short entity name + 2) Full entity name + 3) Relative link to the entity file from the root directory of the project + 4) Page title ( title ) + 5) Template key ( BreadcrumbsHelper::getTemplateLinkKey() ) + 6) Relative reference to the entity document from the root directory of the documentation
    + + +Examples of using: + +```php +[a]Existent page name[/a] => Existent page name + +``` + +```php +[a x-title="Custom title"]\Namespace\ClassName[/a] => Custom title + +``` + +```php +[a]\Namespace\ClassName[/a] => \Namespace\ClassName + +``` + +```php +[a]Non-existent page name[/a] => Non-existent page name + +``` + + + + + + +

    Initialization methods:

    + +
      +
    1. + __construct +
    2. +
    + +

    Methods:

    + +
      +
    1. + beforeCreatingDocFile +
    2. +
    3. + getSubscribedEvents + - Returns an array of event names this subscriber wants to listen to.
    4. +
    + + + + + + + +

    Method details:

    + +
    + + + +```php +// Implemented in BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker + +public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper $breadcrumbsHelper, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction, \Psr\Log\LoggerInterface $logger); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $breadcrumbsHelper\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper-
    $rootEntityCollectionsGroup\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup-
    $getDocumentedEntityUrlFunction\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl-
    $logger\Psr\Log\LoggerInterface-
    + + + +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker + +public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile $event): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $event\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile-
    + +Return value: void + + +Throws: + + +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker + +public static function getSubscribedEvents(): array; +``` + +
    Returns an array of event names this subscriber wants to listen to.
    + +Parameters: not specified + +Return value: array + + +
    +
    + + \ No newline at end of file diff --git a/docs/tech/1.configuration/readme.md b/docs/tech/1.configuration/readme.md index 1f5fba34..4a62cb26 100644 --- a/docs/tech/1.configuration/readme.md +++ b/docs/tech/1.configuration/readme.md @@ -206,6 +206,8 @@ The inheritance algorithm is as follows: scalar types can be overwritten by each - PageHtmlLinkerPlugin +- PageLinkerPlugin + - LastPageCommitter @@ -222,4 +224,4 @@ The inheritance algorithm is as follows: scalar types can be overwritten by each

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Thu Oct 5 17:42:06 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file diff --git a/docs/tech/2.parser/entity.md b/docs/tech/2.parser/entity.md index fc0f0b76..9ad24f95 100644 --- a/docs/tech/2.parser/entity.md +++ b/docs/tech/2.parser/entity.md @@ -123,4 +123,4 @@ These classes are a convenient wrapper for accessing data in templates:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file diff --git a/docs/tech/2.parser/entityFilterCondition.md b/docs/tech/2.parser/entityFilterCondition.md index 664d7122..72619891 100644 --- a/docs/tech/2.parser/entityFilterCondition.md +++ b/docs/tech/2.parser/entityFilterCondition.md @@ -78,4 +78,4 @@ Filter condition for working with entities PHP language handler:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file diff --git a/docs/tech/2.parser/readme.md b/docs/tech/2.parser/readme.md index 78a4e377..e359c9f0 100644 --- a/docs/tech/2.parser/readme.md +++ b/docs/tech/2.parser/readme.md @@ -41,4 +41,4 @@ In this section, we show how the parser works and what components it consists of

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file diff --git a/docs/tech/2.parser/sourceLocator.md b/docs/tech/2.parser/sourceLocator.md index a180f879..df7da3c3 100644 --- a/docs/tech/2.parser/sourceLocator.md +++ b/docs/tech/2.parser/sourceLocator.md @@ -30,4 +30,4 @@ You can create your own source locators or use any existing ones. All source loc

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:09:56 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/01_templates.md b/docs/tech/3.renderer/01_templates.md index 9fbb4be9..4e9dcb57 100644 --- a/docs/tech/3.renderer/01_templates.md +++ b/docs/tech/3.renderer/01_templates.md @@ -101,4 +101,4 @@ Result after starting the documentation generation process:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Fri Oct 13 18:40:45 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Fri Oct 13 18:40:45 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/02_breadcrumbs.md b/docs/tech/3.renderer/02_breadcrumbs.md index 65540021..b979e42c 100644 --- a/docs/tech/3.renderer/02_breadcrumbs.md +++ b/docs/tech/3.renderer/02_breadcrumbs.md @@ -51,4 +51,4 @@ Here is an example of the result of the `generatePageBreadcrumbs` function:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Fri Oct 13 18:40:45 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/03_documentStructure.md b/docs/tech/3.renderer/03_documentStructure.md index 6401c41e..158325da 100644 --- a/docs/tech/3.renderer/03_documentStructure.md +++ b/docs/tech/3.renderer/03_documentStructure.md @@ -19,4 +19,4 @@ plugins:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Fri Oct 13 18:40:45 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Fri Oct 13 18:40:45 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/04_twigCustomFilters.md b/docs/tech/3.renderer/04_twigCustomFilters.md index e5b789ef..ac2c586a 100644 --- a/docs/tech/3.renderer/04_twigCustomFilters.md +++ b/docs/tech/3.renderer/04_twigCustomFilters.md @@ -263,4 +263,4 @@ Here is a list of filters available by default:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Fri Oct 13 18:40:45 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/05_twigCustomFunctions.md b/docs/tech/3.renderer/05_twigCustomFunctions.md index 5d28192e..482c50d5 100644 --- a/docs/tech/3.renderer/05_twigCustomFunctions.md +++ b/docs/tech/3.renderer/05_twigCustomFunctions.md @@ -385,4 +385,4 @@ Here is a list of functions available by default:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Fri Oct 13 18:40:45 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/readme.md b/docs/tech/3.renderer/readme.md index 011cf62e..37d1604e 100644 --- a/docs/tech/3.renderer/readme.md +++ b/docs/tech/3.renderer/readme.md @@ -60,4 +60,4 @@ This process is presented in the form of a diagram below.

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/templatesDynamicBlocks.md b/docs/tech/3.renderer/templatesDynamicBlocks.md index f1f21d98..2be1acf4 100644 --- a/docs/tech/3.renderer/templatesDynamicBlocks.md +++ b/docs/tech/3.renderer/templatesDynamicBlocks.md @@ -26,4 +26,4 @@ You can use the built-in functions and filters or add your own, so you can imple

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/templatesLinking.md b/docs/tech/3.renderer/templatesLinking.md index 95e092ac..32623d36 100644 --- a/docs/tech/3.renderer/templatesLinking.md +++ b/docs/tech/3.renderer/templatesLinking.md @@ -27,4 +27,4 @@ You can also implement your own functions for relinking if necessary.

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/templatesVariables.md b/docs/tech/3.renderer/templatesVariables.md index f96b5325..18860755 100644 --- a/docs/tech/3.renderer/templatesVariables.md +++ b/docs/tech/3.renderer/templatesVariables.md @@ -11,4 +11,4 @@ There are several variables available in each processed template.

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/PageLinkerPlugin.md b/docs/tech/4.pluginSystem/classes/PageLinkerPlugin.md new file mode 100644 index 00000000..12a27fc4 --- /dev/null +++ b/docs/tech/4.pluginSystem/classes/PageLinkerPlugin.md @@ -0,0 +1,216 @@ + + BumbleDocGen / Technical description of the project / Plugin system / PageLinkerPlugin
    + +

    + PageLinkerPlugin class: +

    + + + + + +```php +namespace BumbleDocGen\Core\Plugin\CorePlugin\PageLinker; + +final class PageLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface +``` + +
    Adds URLs to empty links in HTML format; + Links may contain: + 1) Short entity name + 2) Full entity name + 3) Relative link to the entity file from the root directory of the project + 4) Page title ( title ) + 5) Template key ( BreadcrumbsHelper::getTemplateLinkKey() ) + 6) Relative reference to the entity document from the root directory of the documentation
    + + +Examples of using: + +```php +[a]Existent page name[/a] => Existent page name + +``` + +```php +[a x-title="Custom title"]\Namespace\ClassName[/a] => Custom title + +``` + +```php +[a]\Namespace\ClassName[/a] => \Namespace\ClassName + +``` + +```php +[a]Non-existent page name[/a] => Non-existent page name + +``` + + + + + + +

    Initialization methods:

    + +
      +
    1. + __construct +
    2. +
    + +

    Methods:

    + +
      +
    1. + beforeCreatingDocFile +
    2. +
    3. + getSubscribedEvents + - Returns an array of event names this subscriber wants to listen to.
    4. +
    + + + + + + + +

    Method details:

    + +
    + + + +```php +// Implemented in BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker + +public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper $breadcrumbsHelper, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction, \Psr\Log\LoggerInterface $logger); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $breadcrumbsHelper\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper-
    $rootEntityCollectionsGroup\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup-
    $getDocumentedEntityUrlFunction\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl-
    $logger\Psr\Log\LoggerInterface-
    + + + +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker + +public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile $event): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $event\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile-
    + +Return value: void + + +Throws: + + +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker + +public static function getSubscribedEvents(): array; +``` + +
    Returns an array of event names this subscriber wants to listen to.
    + +Parameters: not specified + +Return value: array + + +
    +
    + + \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/readme.md b/docs/tech/4.pluginSystem/readme.md index 88447734..8ea565d3 100644 --- a/docs/tech/4.pluginSystem/readme.md +++ b/docs/tech/4.pluginSystem/readme.md @@ -54,6 +54,23 @@ Plugins for any programming languages work regardless of which language handler 3) Relative link to the entity file from the root directory of the project 4) Page title ( title ) 5) Template key ( BreadcrumbsHelper::getTemplateLinkKey() ) + 6) Relative reference to the entity document from the root directory of the documentation + + + PageLinkerPlugin + any + + + + Adds URLs to empty links in HTML format; + Links may contain: + 1) Short entity name + 2) Full entity name + 3) Relative link to the entity file from the root directory of the project + 4) Page title ( title ) + 5) Template key ( BreadcrumbsHelper::getTemplateLinkKey() ) 6) Relative reference to the entity document from the root directory of the documentation @@ -206,4 +223,4 @@ plugins:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/classes/GenerateProjectTemplatesStructureCommand.md b/docs/tech/classes/AddDocBlocksCommand.md similarity index 98% rename from docs/tech/classes/GenerateProjectTemplatesStructureCommand.md rename to docs/tech/classes/AddDocBlocksCommand.md index e68b5658..829ffb30 100644 --- a/docs/tech/classes/GenerateProjectTemplatesStructureCommand.md +++ b/docs/tech/classes/AddDocBlocksCommand.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Class map / GenerateProjectTemplatesStructureCommand
    + BumbleDocGen / Technical description of the project / Class map / AddDocBlocksCommand

    - GenerateProjectTemplatesStructureCommand class: + AddDocBlocksCommand class:

    @@ -10,9 +10,9 @@ ```php -namespace BumbleDocGen\Console\Command; +namespace BumbleDocGen\AI\Console; -final class GenerateProjectTemplatesStructureCommand extends \BumbleDocGen\Console\Command\BaseCommand +final class AddDocBlocksCommand extends \BumbleDocGen\Console\Command\BaseCommand ```
    Base class for all commands.
    @@ -134,6 +134,11 @@ final class GenerateProjectTemplatesStructureCommand extends \BumbleDocGen\Conso - Sets the process title of the command.
+

Traits:

+ +

Constants:

+ +
+
+ + + +```php +public function getAiDataDir(): string; +``` + + + +Parameters: not specified + +Return value: string + +

@@ -187,7 +235,7 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad ```php @@ -215,7 +263,7 @@ public function getCacheDir(): string|null; ```php @@ -236,7 +284,7 @@ public function getDocGenLibDir(): string; ```php @@ -264,7 +312,7 @@ public function getGitClientPath(): string; ```php @@ -298,7 +346,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L ```php @@ -326,7 +374,7 @@ public function getOutputDir(): string; ```php @@ -354,7 +402,7 @@ public function getOutputDirBaseUrl(): string; ```php @@ -388,7 +436,7 @@ public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProc ```php @@ -512,7 +560,7 @@ public function getTemplatesDir(): string; ```php @@ -546,7 +594,7 @@ public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\Custom ```php @@ -580,7 +628,7 @@ public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\Cu ```php @@ -608,7 +656,7 @@ public function getWorkingDir(): string; ```php @@ -636,7 +684,7 @@ public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; ```php diff --git a/docs/tech/classes/MissingDocBlocksGenerator.md b/docs/tech/classes/DocBlocksGenerator.md similarity index 84% rename from docs/tech/classes/MissingDocBlocksGenerator.md rename to docs/tech/classes/DocBlocksGenerator.md index d209f02f..1eeda3fe 100644 --- a/docs/tech/classes/MissingDocBlocksGenerator.md +++ b/docs/tech/classes/DocBlocksGenerator.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Class map / MissingDocBlocksGenerator
+ BumbleDocGen / Technical description of the project / Class map / DocBlocksGenerator

- MissingDocBlocksGenerator class: + DocBlocksGenerator class:

@@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\AI\Generators; -final class MissingDocBlocksGenerator +final class DocBlocksGenerator ``` @@ -46,11 +46,11 @@ final class MissingDocBlocksGenerator @@ -65,7 +65,7 @@ final class MissingDocBlocksGenerator ```php @@ -107,11 +107,11 @@ public function __construct(\BumbleDocGen\AI\ProviderInterface $aiHandler, \Bumb ```php -public function generateDocBlocksForMethodsWithoutIt(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $rootEntity, int $mode = self::MODE_READ_ONLY_SIGNATURES): array; +public function generateDocBlocksForMethodsWithoutIt(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $rootEntity, string|null $systemPrompt = null, int $mode = self::MODE_READ_ONLY_SIGNATURES): array; ``` @@ -131,6 +131,11 @@ public function generateDocBlocksForMethodsWithoutIt(\BumbleDocGen\Core\Parser\E $rootEntity \BumbleDocGen\Core\Parser\Entity\RootEntityInterface - + + + $systemPrompt + string | null + - $mode @@ -166,7 +171,7 @@ public function generateDocBlocksForMethodsWithoutIt(\BumbleDocGen\Core\Parser\E ```php diff --git a/docs/tech/classes/DocGenerator.md b/docs/tech/classes/DocGenerator.md index e341c957..d93f2764 100644 --- a/docs/tech/classes/DocGenerator.md +++ b/docs/tech/classes/DocGenerator.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Class map / DocGenerator

- DocGenerator class: + DocGenerator class:

@@ -34,16 +34,19 @@ final class DocGenerator
  1. - addMissingDocBlocks + addDocBlocks - Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
  2. -
  3. - fillInReadmeMdTemplate -
  4. generate - Generates documentation using configuration
  5. - generateProjectTemplatesStructure + generateReadmeTemplate +
  6. +
  7. + generateTemplatesContent +
  8. +
  9. + initDocsStructure - Generate documentation structure with blank templates using AI tools
  10. parseAndGetRootEntityCollectionsGroup @@ -55,11 +58,11 @@ final class DocGenerator @@ -74,7 +77,7 @@ final class DocGenerator ```php @@ -154,18 +157,50 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo
    ```php -public function addMissingDocBlocks(): void; +public function addDocBlocks(string $aiHandler, string $aiApiKey, string $aiModel, string|null $systemPrompt = null): void; ```
    Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
    -Parameters: not specified +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $aiHandlerstring-
    $aiApiKeystring-
    $aiModelstring-
    $systemPromptstring | null-
    Return value: void @@ -184,8 +219,36 @@ public function addMissingDocBlocks(): void;
  11. \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  12. + + +
+
+
+ + + +```php +public function generate(): void; +``` + +
Generates documentation using configuration
+ +Parameters: not specified + +Return value: void + + +Throws: + @@ -194,18 +257,50 @@ public function addMissingDocBlocks(): void;
```php -public function fillInReadmeMdTemplate(): void; +public function generateReadmeTemplate(string $aiHandler, string $aiApiKey, string $aiModel, string|null $systemPrompt = null): void; ``` -Parameters: not specified +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
$aiHandlerstring-
$aiApiKeystring-
$aiModelstring-
$systemPromptstring | null-
Return value: void @@ -218,9 +313,6 @@ public function fillInReadmeMdTemplate(): void;
  • \DI\DependencyException
  • -
  • - \Tectalic\OpenAi\ClientException
  • -
  • \DI\NotFoundException
  • @@ -234,18 +326,55 @@ public function fillInReadmeMdTemplate(): void;
    ```php -public function generate(): void; +public function generateTemplatesContent(string $aiHandler, string $aiApiKey, string $aiModel, bool $nonInteractive = false, string|null $systemPrompt = null): void; ``` -
    Generates documentation using configuration
    -Parameters: not specified + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $aiHandlerstring-
    $aiApiKeystring-
    $aiModelstring-
    $nonInteractivebool-
    $systemPromptstring | null-
    Return value: void @@ -253,10 +382,19 @@ public function generate(): void; Throws: @@ -265,36 +403,61 @@ public function generate(): void;
      -
    • # - generateProjectTemplatesStructure +
    • # + initDocsStructure | source code
    ```php -public function generateProjectTemplatesStructure(): void; +public function initDocsStructure(string $aiHandler, string $aiApiKey, string $aiModel, bool $nonInteractive = false, string|null $systemPrompt = null): void; ```
    Generate documentation structure with blank templates using AI tools
    -Parameters: not specified +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $aiHandlerstring-
    $aiApiKeystring-
    $aiModelstring-
    $nonInteractivebool-
    $systemPromptstring | null-
    Return value: void Throws:
      -
    • - \Tectalic\OpenAi\ClientException
    • - -
    • - \DI\NotFoundException
    • - -
    • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    • - -
    • - \DI\DependencyException
    • -
    • \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    • @@ -307,7 +470,7 @@ public function generateProjectTemplatesStructure(): void; ```php diff --git a/docs/tech/classes/FillInReadmeMdTemplateCommand.md b/docs/tech/classes/GenerateReadMeTemplateCommand.md similarity index 98% rename from docs/tech/classes/FillInReadmeMdTemplateCommand.md rename to docs/tech/classes/GenerateReadMeTemplateCommand.md index 0a39b3e8..c890e3ff 100644 --- a/docs/tech/classes/FillInReadmeMdTemplateCommand.md +++ b/docs/tech/classes/GenerateReadMeTemplateCommand.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Class map / FillInReadmeMdTemplateCommand
      + BumbleDocGen / Technical description of the project / Class map / GenerateReadMeTemplateCommand

      - FillInReadmeMdTemplateCommand class: + GenerateReadMeTemplateCommand class:

      @@ -10,9 +10,9 @@ ```php -namespace BumbleDocGen\Console\Command; +namespace BumbleDocGen\AI\Console; -final class FillInReadmeMdTemplateCommand extends \BumbleDocGen\Console\Command\BaseCommand +final class GenerateReadMeTemplateCommand extends \BumbleDocGen\Console\Command\BaseCommand ```
      Base class for all commands.
      @@ -134,6 +134,11 @@ final class FillInReadmeMdTemplateCommand extends \BumbleDocGen\Console\Command\ - Sets the process title of the command. +

      Traits:

      + +

      Constants:

        @@ -145,6 +150,10 @@ final class FillInReadmeMdTemplateCommand extends \BumbleDocGen\Console\Command\ href="#qinvalid"># INVALID | source code +
      • # + NAME | source + code
      • # SUCCESS | source diff --git a/docs/tech/classes/GenerateTemplatesContentCommand.md b/docs/tech/classes/GenerateTemplatesContentCommand.md new file mode 100644 index 00000000..64c4cdef --- /dev/null +++ b/docs/tech/classes/GenerateTemplatesContentCommand.md @@ -0,0 +1,1393 @@ + + BumbleDocGen / Technical description of the project / Class map / GenerateTemplatesContentCommand
        + +

        + GenerateTemplatesContentCommand class: +

        + + + + + +```php +namespace BumbleDocGen\AI\Console; + +final class GenerateTemplatesContentCommand extends \BumbleDocGen\Console\Command\BaseCommand +``` + +
        Base class for all commands.
        + + + + + + +

        Initialization methods:

        + +
          +
        1. + __construct +
        2. +
        + +

        Methods:

        + +
          +
        1. + addArgument + - Adds an argument.
        2. +
        3. + addOption + - Adds an option.
        4. +
        5. + addUsage + - Add a command usage example, it'll be prefixed with the command name.
        6. +
        7. + complete + - Adds suggestions to $suggestions for the current completion input (e.g. option or argument).
        8. +
        9. + getAliases + - Returns the aliases for the command.
        10. +
        11. + getApplication + - Gets the application instance for this command.
        12. +
        13. + getDefaultDescription +
        14. +
        15. + getDefaultName +
        16. +
        17. + getDefinition + - Gets the InputDefinition attached to this Command.
        18. +
        19. + getDescription + - Returns the description for the command.
        20. +
        21. + getHelp + - Returns the help for the command.
        22. +
        23. + getHelper + - Gets a helper instance by name.
        24. +
        25. + getHelperSet + - Gets the helper set.
        26. +
        27. + getName + - Returns the command name.
        28. +
        29. + getNativeDefinition + - Gets the InputDefinition to be used to create representations of this Command.
        30. +
        31. + getProcessedHelp + - Returns the processed help for the command replacing the %command.name% and %command.full_name% patterns with the real values dynamically.
        32. +
        33. + getSynopsis + - Returns the synopsis for the command.
        34. +
        35. + getUsages + - Returns alternative usages of the command.
        36. +
        37. + ignoreValidationErrors + - Ignores validation errors.
        38. +
        39. + isEnabled + - Checks whether the command is enabled or not in the current environment.
        40. +
        41. + isHidden +
        42. +
        43. + mergeApplicationDefinition + - Merges the application definition with the command definition.
        44. +
        45. + run + - Runs the command.
        46. +
        47. + setAliases + - Sets the aliases for the command.
        48. +
        49. + setApplication +
        50. +
        51. + setCode + - Sets the code to execute when running this command.
        52. +
        53. + setDefinition + - Sets an array of argument and option instances.
        54. +
        55. + setDescription + - Sets the description for the command.
        56. +
        57. + setHelp + - Sets the help for the command.
        58. +
        59. + setHelperSet +
        60. +
        61. + setHidden +
        62. +
        63. + setName + - Sets the name of the command.
        64. +
        65. + setProcessTitle + - Sets the process title of the command.
        66. +
        + +

        Traits:

        + + + +

        Constants:

        + + + + + + +

        Method details:

        + +
        + + + +```php +// Implemented in BumbleDocGen\Console\Command\BaseCommand + +public function __construct(string $name = null); +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $namestringThe name of the command; passing null means it must be set in configure()
        + + + +Throws: + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function addArgument(string $name, int $mode = null, string $description = '', mixed $default = null): static; +``` + +
        Adds an argument.
        + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $namestring-
        $modeintThe argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL
        $descriptionstring-
        $defaultmixedThe default value (for InputArgument::OPTIONAL mode only)
        + +Return value: static + + +Throws: + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function addOption(string $name, string|array $shortcut = null, int $mode = null, string $description = '', mixed $default = null): static; +``` + +
        Adds an option.
        + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $namestring-
        $shortcutstring | arrayThe shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
        $modeintThe option mode: One of the InputOption::VALUE_* constants
        $descriptionstring-
        $defaultmixedThe default value (must be null for InputOption::VALUE_NONE)
        + +Return value: static + + +Throws: + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function addUsage(string $usage): static; +``` + +
        Add a command usage example, it'll be prefixed with the command name.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $usagestring-
        + +Return value: static + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function complete(\Symfony\Component\Console\Completion\CompletionInput $input, \Symfony\Component\Console\Completion\CompletionSuggestions $suggestions): void; +``` + +
        Adds suggestions to $suggestions for the current completion input (e.g. option or argument).
        + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $input\Symfony\Component\Console\Completion\CompletionInput-
        $suggestions\Symfony\Component\Console\Completion\CompletionSuggestions-
        + +Return value: void + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getAliases(): array; +``` + +
        Returns the aliases for the command.
        + +Parameters: not specified + +Return value: array + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getApplication(): \Symfony\Component\Console\Application|null; +``` + +
        Gets the application instance for this command.
        + +Parameters: not specified + +Return value: \Symfony\Component\Console\Application | null + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public static function getDefaultDescription(): string|null; +``` + + + +Parameters: not specified + +Return value: string | null + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public static function getDefaultName(): string|null; +``` + + + +Parameters: not specified + +Return value: string | null + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getDefinition(): \Symfony\Component\Console\Input\InputDefinition; +``` + +
        Gets the InputDefinition attached to this Command.
        + +Parameters: not specified + +Return value: \Symfony\Component\Console\Input\InputDefinition + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getDescription(): string; +``` + +
        Returns the description for the command.
        + +Parameters: not specified + +Return value: string + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getHelp(): string; +``` + +
        Returns the help for the command.
        + +Parameters: not specified + +Return value: string + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getHelper(string $name): mixed; +``` + +
        Gets a helper instance by name.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $namestring-
        + +Return value: mixed + + +Throws: + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getHelperSet(): \Symfony\Component\Console\Helper\HelperSet|null; +``` + +
        Gets the helper set.
        + +Parameters: not specified + +Return value: \Symfony\Component\Console\Helper\HelperSet | null + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getName(): string|null; +``` + +
        Returns the command name.
        + +Parameters: not specified + +Return value: string | null + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getNativeDefinition(): \Symfony\Component\Console\Input\InputDefinition; +``` + +
        Gets the InputDefinition to be used to create representations of this Command.
        + +Parameters: not specified + +Return value: \Symfony\Component\Console\Input\InputDefinition + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getProcessedHelp(): string; +``` + +
        Returns the processed help for the command replacing the %command.name% and +%command.full_name% patterns with the real values dynamically.
        + +Parameters: not specified + +Return value: string + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getSynopsis(bool $short = false): string; +``` + +
        Returns the synopsis for the command.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $shortboolWhether to show the short version of the synopsis (with options folded) or not
        + +Return value: string + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function getUsages(): array; +``` + +
        Returns alternative usages of the command.
        + +Parameters: not specified + +Return value: array + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function ignoreValidationErrors(): mixed; +``` + +
        Ignores validation errors.
        + +Parameters: not specified + +Return value: mixed + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function isEnabled(): bool; +``` + +
        Checks whether the command is enabled or not in the current environment.
        + +Parameters: not specified + +Return value: bool + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function isHidden(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
        +
        +
        + +
          +
        • # + mergeApplicationDefinition + :warning: Is internal | source code
        • +
        + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function mergeApplicationDefinition(bool $mergeArgs = true): mixed; +``` + +
        Merges the application definition with the command definition.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $mergeArgsboolWhether to merge or not the Application definition arguments to Command definition arguments
        + +Return value: mixed + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function run(\Symfony\Component\Console\Input\InputInterface $input, \Symfony\Component\Console\Output\OutputInterface $output): int; +``` + +
        Runs the command.
        + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $input\Symfony\Component\Console\Input\InputInterface-
        $output\Symfony\Component\Console\Output\OutputInterface-
        + +Return value: int + + +Throws: + + + +See: + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function setAliases(iterable $aliases): static; +``` + +
        Sets the aliases for the command.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $aliasesiterableAn array of aliases for the command
        + +Return value: static + + +Throws: + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function setApplication(\Symfony\Component\Console\Application $application = null): mixed; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $application\Symfony\Component\Console\Application-
        + +Return value: mixed + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function setCode(callable $code): static; +``` + +
        Sets the code to execute when running this command.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $codecallableA callable(InputInterface $input, OutputInterface $output)
        + +Return value: static + + +Throws: + + + +See: + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function setDefinition(array|\Symfony\Component\Console\Input\InputDefinition $definition): static; +``` + +
        Sets an array of argument and option instances.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $definitionarray | \Symfony\Component\Console\Input\InputDefinition-
        + +Return value: static + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function setDescription(string $description): static; +``` + +
        Sets the description for the command.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $descriptionstring-
        + +Return value: static + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function setHelp(string $help): static; +``` + +
        Sets the help for the command.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $helpstring-
        + +Return value: static + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function setHelperSet(\Symfony\Component\Console\Helper\HelperSet $helperSet): mixed; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $helperSet\Symfony\Component\Console\Helper\HelperSet-
        + +Return value: mixed + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function setHidden(bool $hidden = true): static; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $hiddenboolWhether or not the command should be hidden from the list of commands
        + +Return value: static + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function setName(string $name): static; +``` + +
        Sets the name of the command.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $namestring-
        + +Return value: static + + +Throws: + + +
        +
        +
        + + + +```php +// Implemented in Symfony\Component\Console\Command\Command + +public function setProcessTitle(string $title): static; +``` + +
        Sets the process title of the command.
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $titlestring-
        + +Return value: static + + +
        +
        + + \ No newline at end of file diff --git a/docs/tech/classes/AddMissingDocBlocksCommand.md b/docs/tech/classes/InitDocsStructureCommand.md similarity index 98% rename from docs/tech/classes/AddMissingDocBlocksCommand.md rename to docs/tech/classes/InitDocsStructureCommand.md index b77d8002..d5929e21 100644 --- a/docs/tech/classes/AddMissingDocBlocksCommand.md +++ b/docs/tech/classes/InitDocsStructureCommand.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Class map / AddMissingDocBlocksCommand
        + BumbleDocGen / Technical description of the project / Class map / InitDocsStructureCommand

        - AddMissingDocBlocksCommand class: + InitDocsStructureCommand class:

        @@ -10,9 +10,9 @@ ```php -namespace BumbleDocGen\Console\Command; +namespace BumbleDocGen\AI\Console; -final class AddMissingDocBlocksCommand extends \BumbleDocGen\Console\Command\BaseCommand +final class InitDocsStructureCommand extends \BumbleDocGen\Console\Command\BaseCommand ```
        Base class for all commands.
        @@ -134,6 +134,11 @@ final class AddMissingDocBlocksCommand extends \BumbleDocGen\Console\Command\Bas - Sets the process title of the command.
      • +

        Traits:

        + +

        Constants:

        ```php -public static function create(): \BumbleDocGen\AI\ProviderInterface; +public static function create(string $handler, string $apiKey, string $model): \BumbleDocGen\AI\ProviderInterface; ``` -Parameters: not specified +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $handlerstring-
        $apiKeystring-
        $modelstring-
        Return value: \BumbleDocGen\AI\ProviderInterface diff --git a/docs/tech/classes/ProviderInterface.md b/docs/tech/classes/ProviderInterface.md index c9b779dc..003f029a 100644 --- a/docs/tech/classes/ProviderInterface.md +++ b/docs/tech/classes/ProviderInterface.md @@ -27,22 +27,16 @@ interface ProviderInterface
        1. - generateMissingPHPDocBlocs + formatDataPrompt
        2. - generateReadMeFileContent -
        3. -
        4. - generateTemplateContent -
        5. -
        6. - generateTemplateStructure + getName
        7. - getName + getSystemPrompt
        8. - sendPrompt + sendPrompts
        @@ -57,13 +51,13 @@ interface ProviderInterface
        ```php -public function generateMissingPHPDocBlocs(string $prompt): string; +public function formatDataPrompt(string $title, string $content): string; ``` @@ -80,46 +74,13 @@ public function generateMissingPHPDocBlocs(string $prompt): string; - $prompt + $title string - - - - -Return value: string - - -
        -
        -
        - - - -```php -public function generateReadMeFileContent(array $prompts): string; -``` - - - -Parameters: - - - - - - - - - - - - + + @@ -133,35 +94,18 @@ public function generateReadMeFileContent(array $prompts): string;
        ```php -public function generateTemplateContent(array $prompts): string; +public function getName(): string; ``` -Parameters: - -
        NameTypeDescription
        $promptsarray$contentstring -
        - - - - - - - - - - - - - - -
        NameTypeDescription
        $promptsarray-
        +Parameters: not specified Return value: string @@ -171,13 +115,13 @@ public function generateTemplateContent(array $prompts): string;
        ```php -public function generateTemplateStructure(array $namespacesList, string|null $additionalPrompt): string; +public function getSystemPrompt(string $fileName): string; ``` @@ -194,13 +138,8 @@ public function generateTemplateStructure(array $namespacesList, string|null $ad - $namespacesList - array - - - - - $additionalPrompt - string | null + $fileName + string - @@ -214,34 +153,13 @@ public function generateTemplateStructure(array $namespacesList, string|null $ad
        - -```php -public function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - ```php -public function sendPrompt(array $prompts, string $system): string; +public function sendPrompts(array $prompts, string $system): string; ``` diff --git a/docs/tech/classes/Provider_2.md b/docs/tech/classes/Provider_2.md deleted file mode 100644 index e803828f..00000000 --- a/docs/tech/classes/Provider_2.md +++ /dev/null @@ -1,338 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / Provider
        - -

        - Provider class: -

        - - - - - -```php -namespace BumbleDocGen\AI\Providers\Ollama; - -final class Provider implements \BumbleDocGen\AI\ProviderInterface -``` - - - - - - - - -

        Initialization methods:

        - -
          -
        1. - __construct -
        2. -
        - -

        Methods:

        - -
          -
        1. - generateMissingPHPDocBlocs -
        2. -
        3. - generateReadMeFileContent -
        4. -
        5. - generateTemplateContent -
        6. -
        7. - generateTemplateStructure -
        8. -
        9. - getName -
        10. -
        11. - sendPrompt -
        12. -
        - -

        Traits:

        - - - - -

        Properties:

        - -
          -
        1. - extractFirstJsonObject
        2. -
        - - - -

        Property details:

        - - -* # - $extractFirstJsonObject - **|** source code -```php -public bool $extractFirstJsonObject; - -``` - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
        -
        -
        - - - -```php -public function generateMissingPHPDocBlocs(string $prompt): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $promptstring-
        - -Return value: string - - -
        -
        -
        - - - -```php -public function generateReadMeFileContent(array $prompts): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $promptsarray-
        - -Return value: string - - -
        -
        -
        - - - -```php -public function generateTemplateContent(array $prompts): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $promptsarray-
        - -Return value: string - - -
        -
        -
        - - - -```php -public function generateTemplateStructure(array $namespacesList, string|null $additionalPrompt): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $namespacesListarray-
        $additionalPromptstring | null-
        - -Return value: string - - -
        -
        -
        - - - -```php -public function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - - -```php -public function sendPrompt(array $prompts, string $system): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $promptsarray-
        $systemstring-
        - -Return value: string - - - -See: - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/Provider_3.md b/docs/tech/classes/Provider_3.md deleted file mode 100644 index 5a18549a..00000000 --- a/docs/tech/classes/Provider_3.md +++ /dev/null @@ -1,323 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / Provider
        - -

        - Provider class: -

        - - - - - -```php -namespace BumbleDocGen\AI\Providers\OpenAI; - -final class Provider implements \BumbleDocGen\AI\ProviderInterface -``` - - - - - - - - -

        Initialization methods:

        - -
          -
        1. - __construct -
        2. -
        - -

        Methods:

        - -
          -
        1. - generateMissingPHPDocBlocs -
        2. -
        3. - generateReadMeFileContent -
        4. -
        5. - generateTemplateContent -
        6. -
        7. - generateTemplateStructure -
        8. -
        9. - getName -
        10. -
        11. - sendPrompt -
        12. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(mixed $bearerToken); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $bearerTokenmixed-
        - - - -
        -
        -
        - - - -```php -public function generateMissingPHPDocBlocs(string $prompt): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $promptstring-
        - -Return value: string - - -
        -
        -
        - - - -```php -public function generateReadMeFileContent(array $prompts): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $promptsarray-
        - -Return value: string - - -
        -
        -
        - - - -```php -public function generateTemplateContent(array $prompts): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $promptsarray-
        - -Return value: string - - -
        -
        -
        - - - -```php -public function generateTemplateStructure(array $namespacesList, string|null $additionalPrompt): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $namespacesListarray-
        $additionalPromptstring | null-
        - -Return value: string - - -
        -
        -
        - - - -```php -public function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - - -```php -public function sendPrompt(array $prompts, string $system): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $promptsarray-
        $systemstring-
        - -Return value: string - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/ReadmeTemplateGenerator.md b/docs/tech/classes/ReadmeTemplateGenerator.md index 59a1599a..2490d548 100644 --- a/docs/tech/classes/ReadmeTemplateGenerator.md +++ b/docs/tech/classes/ReadmeTemplateGenerator.md @@ -92,7 +92,7 @@ public function __construct(\BumbleDocGen\AI\ProviderInterface $aiHandler);
      ```php -public function generateReadmeFileContent(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, array $entryPoints = [], string|null $composerJsonFile = null, string|null $additionalPrompt = null): string; +public function generateReadmeFileContent(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, array $entryPoints = [], string|null $composerJsonFile = null, string|null $additionalPrompt = null, string|null $systemPrompt = null): string; ``` @@ -127,6 +127,11 @@ public function generateReadmeFileContent(\BumbleDocGen\Core\Parser\Entity\RootE $additionalPrompt string | null - + + + $systemPrompt + string | null + - diff --git a/docs/tech/classes/JsonExtractorTrait.md b/docs/tech/classes/SharedCommandLogicTrait.md similarity index 70% rename from docs/tech/classes/JsonExtractorTrait.md rename to docs/tech/classes/SharedCommandLogicTrait.md index f83fad87..de7e9de7 100644 --- a/docs/tech/classes/JsonExtractorTrait.md +++ b/docs/tech/classes/SharedCommandLogicTrait.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Class map / JsonExtractorTrait
      + BumbleDocGen / Technical description of the project / Class map / SharedCommandLogicTrait

      - JsonExtractorTrait class: + SharedCommandLogicTrait class:

      @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\AI\Traits; -trait JsonExtractorTrait +trait SharedCommandLogicTrait ``` diff --git a/docs/tech/classes/TemplateGenerator.md b/docs/tech/classes/TemplateContentGenerator.md similarity index 71% rename from docs/tech/classes/TemplateGenerator.md rename to docs/tech/classes/TemplateContentGenerator.md index afc925c8..4a6ae029 100644 --- a/docs/tech/classes/TemplateGenerator.md +++ b/docs/tech/classes/TemplateContentGenerator.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Class map / TemplateGenerator
      + BumbleDocGen / Technical description of the project / Class map / TemplateContentGenerator

      - TemplateGenerator class: + TemplateContentGenerator class:

      @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\AI\Generators; -final class TemplateGenerator +final class TemplateContentGenerator ``` @@ -36,9 +36,6 @@ final class TemplateGenerator
    • generate
    • -
    • - getFileSubPathFromPath -
    • @@ -54,7 +51,7 @@ final class TemplateGenerator ```php @@ -91,11 +88,11 @@ public function __construct(\BumbleDocGen\AI\ProviderInterface $aiHandler); ```php -public function generate(string $filePath, string $fileContent, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection|null $entitiesCollection, string|null $additionalPrompt = null): string|null; +public function generate(string $filePath, string $fileName, array $fileNamespaces, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection|null $entitiesCollection, string|null $additionalPrompt = null, string|null $systemPrompt = null): string|null; ``` @@ -117,9 +114,14 @@ public function generate(string $filePath, string $fileContent, \BumbleDocGen\La - - $fileContent + $fileName string - + + + $fileNamespaces + array + - $entitiesCollection @@ -130,6 +132,11 @@ public function generate(string $filePath, string $fileContent, \BumbleDocGen\La $additionalPrompt string | null - + + + $systemPrompt + string | null + - @@ -153,44 +160,6 @@ public function generate(string $filePath, string $fileContent, \BumbleDocGen\La
    -
    -
    -
    - - - -```php -public function getFileSubPathFromPath(string $path): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $pathstring-
    - -Return value: mixed - -

    diff --git a/docs/tech/classes/TemplatesStructureGenerator.md b/docs/tech/classes/TemplateStructureGenerator.md similarity index 74% rename from docs/tech/classes/TemplatesStructureGenerator.md rename to docs/tech/classes/TemplateStructureGenerator.md index fc4bdc14..8809dfeb 100644 --- a/docs/tech/classes/TemplatesStructureGenerator.md +++ b/docs/tech/classes/TemplateStructureGenerator.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Class map / TemplatesStructureGenerator
    + BumbleDocGen / Technical description of the project / Class map / TemplateStructureGenerator

    - TemplatesStructureGenerator class: + TemplateStructureGenerator class:

    @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\AI\Generators; -final class TemplatesStructureGenerator +final class TemplateStructureGenerator ``` @@ -51,11 +51,11 @@ final class TemplatesStructureGenerator ```php -public function __construct(\BumbleDocGen\AI\ProviderInterface $aiHandler); +public function __construct(\BumbleDocGen\AI\ProviderInterface $aiHandler, string $aiConfigDirectory); ``` @@ -75,6 +75,11 @@ public function __construct(\BumbleDocGen\AI\ProviderInterface $aiHandler); $aiHandler \BumbleDocGen\AI\ProviderInterface - + + + $aiConfigDirectory + string + - @@ -88,11 +93,11 @@ public function __construct(\BumbleDocGen\AI\ProviderInterface $aiHandler); ```php -public function generateStructureByEntityCollection(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, string|null $additionalPrompt = null): array; +public function generateStructureByEntityCollection(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, string|null $additionalPrompt = null, string|null $systemPrompt = null): array; ``` @@ -117,6 +122,11 @@ public function generateStructureByEntityCollection(\BumbleDocGen\Core\Parser\En $additionalPrompt string | null - + + + $systemPrompt + string | null + - @@ -132,6 +142,9 @@ public function generateStructureByEntityCollection(\BumbleDocGen\Core\Parser\En
  • \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • +
  • + \JsonException
  • +
    diff --git a/docs/tech/map.md b/docs/tech/map.md index 8ec103fb..0f139ff2 100644 --- a/docs/tech/map.md +++ b/docs/tech/map.md @@ -4,30 +4,28 @@ Directory layout ( only documented files shown ):
    └──src/
     │  ├──AI/
    +│  │  ├──Console/
    +│  │  │  ├── AddDocBlocksCommand.php Base class for all commands.
    +│  │  │  ├── GenerateReadMeTemplateCommand.php Base class for all commands.
    +│  │  │  ├── GenerateTemplatesContentCommand.php Base class for all commands.
    +│  │  │  └── InitDocsStructureCommand.php Base class for all commands.
     │  │  ├──Generators/
    -│  │  │  ├── MissingDocBlocksGenerator.php 
    +│  │  │  ├── DocBlocksGenerator.php 
     │  │  │  ├── ReadmeTemplateGenerator.php 
    -│  │  │  ├── TemplateGenerator.php 
    -│  │  │  └── TemplatesStructureGenerator.php 
    +│  │  │  ├── TemplateContentGenerator.php 
    +│  │  │  └── TemplateStructureGenerator.php 
     │  │  ├──Providers/
    -│  │  │  ├──HuggingFace/
    -│  │  │  │  └── Provider.php 
    -│  │  │  ├──Ollama/
    -│  │  │  │  └── Provider.php 
     │  │  │  └──OpenAI/
    -│  │  │  │  └── Provider.php 
    +│  │  │  │  └── Provider.php 
     │  │  ├──Traits/
    -│  │  │  └── JsonExtractorTrait.php 
    +│  │  │  └── SharedCommandLogicTrait.php 
     │  │  ├── ProviderFactory.php 
     │  │  └── ProviderInterface.php 
     │  ├──Console/
     │  │  ├──Command/
    -│  │  │  ├── AddMissingDocBlocksCommand.php Base class for all commands.
     │  │  │  ├── AdditionalCommandCollection.php 
     │  │  │  ├── BaseCommand.php Base class for all commands.
    -│  │  │  ├── FillInReadmeMdTemplateCommand.php Base class for all commands.
    -│  │  │  ├── GenerateCommand.php Base class for all commands.
    -│  │  │  └── GenerateProjectTemplatesStructureCommand.php Base class for all commands.
    +│  │  │  └── GenerateCommand.php Base class for all commands.
     │  │  ├──ProgressBar/
     │  │  │  ├── ProgressBarFactory.php 
     │  │  │  └── StylizedProgressBar.php 
    @@ -108,6 +106,7 @@ Directory layout ( only documented files shown ):
     │  │  │  │  └──PageLinker/
     │  │  │  │  │  ├── BasePageLinker.php 
     │  │  │  │  │  ├── PageHtmlLinkerPlugin.php Adds URLs to empty links in HTML format; Links may contain: 1) Short entity name 2) Full entity n...
    +│  │  │  │  │  ├── PageLinkerPlugin.php Adds URLs to empty links in HTML format; Links may contain: 1) Short entity name 2) Full entity n...
     │  │  │  │  │  └── PageRstLinkerPlugin.php Adds URLs to empty links in rst format; Links may contain: 1) Short entity name 2) Full entity na...
     │  │  │  ├──Event/
     │  │  │  │  ├──Parser/
    @@ -263,4 +262,4 @@ Directory layout ( only documented files shown ):
     
     

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file diff --git a/docs/tech/readme.md b/docs/tech/readme.md index 9d83be95..f4cb803d 100644 --- a/docs/tech/readme.md +++ b/docs/tech/readme.md @@ -44,4 +44,4 @@ After that, the process of parsing the project code according to the configurati

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Thu Oct 5 17:42:06 2023 +0300
    Page content update date: Fri Oct 27 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Thu Oct 5 17:42:06 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file