diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 7b7789ae..40d0be42 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -4,7 +4,7 @@ on: push: branches: [ "master"] pull_request: - branches: [ "1.x.x" ] + branches: [ "1.x.x", "2.x.x" ] permissions: contents: read @@ -18,7 +18,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 8.0 + php-version: 8.1 - name: Validate composer.json and composer.lock run: composer validate --strict diff --git a/CHANGELOG.md b/CHANGELOG.md index 881774b7..e77775df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,52 @@ # Changelog -# [1.6.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.6.0) +## [2.0.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.6.0) +### Features +- Adds the ability to generate HTML documentation + live mode for previewing changes. +- Templates now use Frontmatter instead of variables + +### Breaking Changes +- ⚠️ Minimum PHP version is now 8.1 +- ⚠️ Changes when working with templates: + - Variable `phpClassEntityCollection` renamed to `phpEntities` + - Instead of variables in the template with title and previous page, the Front Matter block is used +- ⚠️ PHP ReflectionAPI has been completely changed. See information about the current version here: [ReflectionAPI](https://github.com/bumble-tech/bumble-doc-gen/tree/master/docs/tech/2.parser/reflectionApi) +- The BetterReflection library and classes that depend on it in the code have been removed: + - `\BumbleDocGen\Core\Cache\SourceLocatorCacheItemPool` + - `\BumbleDocGen\Core\Plugin\Event\Parser\OnLoadSourceLocatorsCollection` + - `\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException` + - `\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper` + - `\BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\AsyncSourceLocator` + - `\BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\CustomSourceLocatorInterface` + - `\BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\Internal\CachedSourceLocator` + - `\BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\Internal\SystemAsyncSourceLocator` +- Class `\BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser` renamed to `\BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper` +- Doc block parsing has been removed: + - `\Roave\BetterReflection\Reflection\ReflectionMethod::getDocBlockReturnTypes()` + - `\Roave\BetterReflection\Reflection\ReflectionFunction::getDocBlockReturnTypes()` + - `\Roave\BetterReflection\Reflection\ReflectionParameter::getDocBlockTypes()` + - `\Roave\BetterReflection\Reflection\ReflectionParameter::getDocBlockTypeStrings()` + - `\Roave\BetterReflection\Reflection\ReflectionProperty::getDocBlockTypes()` + - `\Roave\BetterReflection\Reflection\ReflectionProperty::getDocBlockTypeStrings()` +- Method `\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity::hasAnnotationKey()` has been removed. +- Method `\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity::getExtends()` has been removed. +- Method `\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity::getInterfacesString()` has been removed. +- Now documentation for built classes does not load automatically +- Removed the `async_source_loading_enabled` configuration option (Method `\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings::asyncSourceLoadingEnabled()`) +- Class `\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\AfterLoadingClassEntityCollection` has been removed. Use `\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\AfterLoadingPhpEntitiesCollection` instead. +- Class `\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad` has been removed. Use `\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded` +- Method `\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings::getComposerInstalledFile()` renamed to `\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings::getComposerVendorDir()` + +## [1.6.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.6.0) - Updating composer scripts [#66](https://github.com/bumble-tech/bumble-doc-gen/pull/66) - Configuration console command [#54](https://github.com/bumble-tech/bumble-doc-gen/pull/54) -# [1.5.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.5.0) +## [1.5.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.5.0) - Caching system refactoring [#62](https://github.com/bumble-tech/bumble-doc-gen/pull/62) - Ai refactor [#61](https://github.com/bumble-tech/bumble-doc-gen/pull/61) - Optimization of the caching and error handling [#63](https://github.com/bumble-tech/bumble-doc-gen/pull/63) - Fixing generation problems [#64](https://github.com/bumble-tech/bumble-doc-gen/pull/64) -# [1.4.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.4.0) +## [1.4.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.4.0) - Fixed config errors [#52](https://github.com/bumble-tech/bumble-doc-gen/pull/52) - Fixed method type getter bug [#53](https://github.com/bumble-tech/bumble-doc-gen/pull/53) - Changed errors output [#55](https://github.com/bumble-tech/bumble-doc-gen/pull/55) @@ -18,14 +55,14 @@ - Changed default plugins list [#57](https://github.com/bumble-tech/bumble-doc-gen/pull/57) - Fixed link finder errors [#59](https://github.com/bumble-tech/bumble-doc-gen/pull/59) -# [1.3.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.3.0) +## [1.3.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.3.0) - Add Unit Tests for BumbleDocGen\Core\Configuration\ValueTransformer [#45](https://github.com/bumble-tech/bumble-doc-gen/pull/45) - Add Unit Tests for ValueResolver Namespace [#47](https://github.com/bumble-tech/bumble-doc-gen/pull/47) - Adding entity doc generation modes [#46](https://github.com/bumble-tech/bumble-doc-gen/pull/46) - Adding new filter condition [#50](https://github.com/bumble-tech/bumble-doc-gen/pull/50) - Removing empty doc dirs [#49](https://github.com/bumble-tech/bumble-doc-gen/pull/49) -# [1.2.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.2.0) +## [1.2.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.2.0) - Fixing contributing rules [#9](https://github.com/bumble-tech/bumble-doc-gen/pull/9) - Adds issue templates for Bug reports & feature requests [#13](https://github.com/bumble-tech/bumble-doc-gen/pull/13) - Adds Code of Conduct & PR template [#15](https://github.com/bumble-tech/bumble-doc-gen/pull/15) @@ -39,10 +76,10 @@ - Removing ocramius proxy manager [#37](https://github.com/bumble-tech/bumble-doc-gen/pull/37) - Use shared cache option [#38](https://github.com/bumble-tech/bumble-doc-gen/pull/38) -# [1.1.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.1.0) +## [1.1.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.1.0) - Implementation of the ability to add custom commands to a standard console application [#4](https://github.com/bumble-tech/bumble-doc-gen/pull/4) - Fixing console app bugs [#5](https://github.com/bumble-tech/bumble-doc-gen/pull/5) - Adding new console commands [#6](https://github.com/bumble-tech/bumble-doc-gen/pull/6) -# [1.0.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.0.0) +## [1.0.0](https://github.com/bumble-tech/bumble-doc-gen/releases/tag/v1.0.0) - First public version of documentation generator. diff --git a/SECURITY.md b/SECURITY.md index dc3abb25..06fe4ce3 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,28 +1,37 @@ # Security Policy -Your security is of utmost importance to us. This document outlines our commitment to ensuring that our software remains secure, how we handle vulnerabilities, and what you can do if you find one. +Your security is of utmost importance to us. This document outlines our commitment to ensuring that our software remains +secure, how we handle vulnerabilities, and what you can do if you find one. ## Supported Versions -Security updates will be applied to certain versions of our software. Please refer to the table below to understand which versions are currently supported for security patches. +Security updates will be applied to certain versions of our software. Please refer to the table below to understand +which versions are currently supported for security patches. | Version | Supported | Notes | |---------|--------------------|----------------------------------------| -| 1.6.x | :white_check_mark: | Current version, fully supported. | -| 1.5.x | :x: | Not supported, please upgrade to 1.6.x | -| 1.4.x | :x: | Not supported, please upgrade to 1.6.x | -| 1.3.x | :x: | Not supported, please upgrade to 1.6.x | -| 1.2.x | :x: | Not supported, please upgrade to 1.6.x | -| 1.1.x | :x: | Not supported, please upgrade to 1.6.x | -| 1.0.x | :x: | Not supported, please upgrade to 1.6.x | +| 2.0.x | :white_check_mark: | Current version, fully supported. | +| 1.6.x | :x: | Not supported, please upgrade to 2.0.x | +| 1.5.x | :x: | Not supported, please upgrade to 2.0.x | +| 1.4.x | :x: | Not supported, please upgrade to 2.0.x | +| 1.3.x | :x: | Not supported, please upgrade to 2.0.x | +| 1.2.x | :x: | Not supported, please upgrade to 2.0.x | +| 1.1.x | :x: | Not supported, please upgrade to 2.0.x | +| 1.0.x | :x: | Not supported, please upgrade to 2.0.x | ## Reporting a Vulnerability -We appreciate the effort of security researchers and the general public in helping us maintain the security of our software. Here’s how you can report a vulnerability: +We appreciate the effort of security researchers and the general public in helping us maintain the security of our +software. Here’s how you can report a vulnerability: -1. **Creating an Issue**: Visit our GitHub repository and [create an issue](https://github.com/bumble-tech/bumble-doc-gen/issues) detailing the vulnerability. Please label the issue as "security" for quicker identification. -2. **Details Matter**: When reporting, please provide as much detail as possible. This includes steps to reproduce, potential impact, and any other information that might help us understand the severity and nature of the vulnerability. -3. **Stay Responsible**: Avoid disclosing public details about the vulnerability until we've had a chance to address it. This ensures that our users remain protected. +1. **Creating an Issue**: Visit our GitHub repository + and [create an issue](https://github.com/bumble-tech/bumble-doc-gen/issues) detailing the vulnerability. Please label + the issue as "security" for quicker identification. +2. **Details Matter**: When reporting, please provide as much detail as possible. This includes steps to reproduce, + potential impact, and any other information that might help us understand the severity and nature of the + vulnerability. +3. **Stay Responsible**: Avoid disclosing public details about the vulnerability until we've had a chance to address it. + This ensures that our users remain protected. ## Our Commitment @@ -31,7 +40,8 @@ Upon receiving a security vulnerability report: 1. We will confirm the receipt of the report and begin an initial assessment. 2. We will work to verify the vulnerability and ascertain its potential impact. 3. If required, we will release patches for the affected versions. -4. We will recognize your efforts in our changelog and other public communications, unless you prefer to remain anonymous. +4. We will recognize your efforts in our changelog and other public communications, unless you prefer to remain + anonymous. ## Further Recommendations @@ -43,4 +53,5 @@ We recommend all users to: --- -Your security is a collaborative effort, and we are grateful for your trust and participation in keeping our library safe and reliable. +Your security is a collaborative effort, and we are grateful for your trust and participation in keeping our library +safe and reliable. diff --git a/UPGRADE.md b/UPGRADE.md new file mode 100644 index 00000000..e6a60304 --- /dev/null +++ b/UPGRADE.md @@ -0,0 +1,35 @@ +# Upgrade Documentation + +This document serves as a reference for updating your current version of the BumbleDocGen library regarding deprecation or backward compatibility issues. + +## Upgrading from BumbleDocGen 1.6.0 to 2.0.0 + +* Updating the minimum PHP version to 8.1 +* Changes when working with templates: variable `phpClassEntityCollection` renamed to `phpEntities` +* Now, instead of variables in the template with title and previous page, the Front Matter block is used +* The BetterReflection library and classes that depend on it in the code have been removed: + * `\BumbleDocGen\Core\Cache\SourceLocatorCacheItemPool` + * `\BumbleDocGen\Core\Plugin\Event\Parser\OnLoadSourceLocatorsCollection` + * `\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException` + * `\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper` + * `\BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\AsyncSourceLocator` + * `\BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\CustomSourceLocatorInterface` + * `\BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\Internal\CachedSourceLocator` + * `\BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\Internal\SystemAsyncSourceLocator` +* Class `\BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser` renamed to `\BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper` +* Doc block parsing has been removed: + * `\Roave\BetterReflection\Reflection\ReflectionMethod::getDocBlockReturnTypes()` + * `\Roave\BetterReflection\Reflection\ReflectionFunction::getDocBlockReturnTypes()` + * `\Roave\BetterReflection\Reflection\ReflectionParameter::getDocBlockTypes()` + * `\Roave\BetterReflection\Reflection\ReflectionParameter::getDocBlockTypeStrings()` + * `\Roave\BetterReflection\Reflection\ReflectionProperty::getDocBlockTypes()` + * `\Roave\BetterReflection\Reflection\ReflectionProperty::getDocBlockTypeStrings()` +* Method `\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity::hasAnnotationKey()` has been removed. +* Method `\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity::getExtends()` has been removed. +* Method `\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity::getInterfacesString()` has been removed. +* Now documentation for built classes does not load automatically +* Removed the `async_source_loading_enabled` configuration option (Method `\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings::asyncSourceLoadingEnabled()`) +* Class `\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\AfterLoadingClassEntityCollection` has been removed. Use `\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\AfterLoadingPhpEntitiesCollection` +* Class `\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad` has been removed. Use `\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded` +* ⚠️**PHP ReflectionAPI has been completely changed. See information about the current version here:** [ReflectionAPI](https://github.com/bumble-tech/bumble-doc-gen/tree/master/docs/tech/2.parser/reflectionApi) +* Method `\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings::getComposerInstalledFile()` renamed to `\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings::getComposerVendorDir()` diff --git a/bumble_doc_gen.yaml b/bumble_doc_gen.yaml index 9ab32fc8..3aba2e7b 100644 --- a/bumble_doc_gen.yaml +++ b/bumble_doc_gen.yaml @@ -8,7 +8,6 @@ language_handlers: class: \BumbleDocGen\LanguageHandler\Php\PhpHandler settings: file_source_base_url: 'https://github.com/bumble-tech/bumble-doc-gen/blob/master' - async_source_loading_enabled: true source_locators: - class: \BumbleDocGen\Core\Parser\SourceLocator\RecursiveDirectoriesSourceLocator arguments: @@ -21,6 +20,7 @@ twig_functions: - class: \SelfDocConfig\Twig\CustomFunction\FindEntitiesClassesByCollectionClassName - class: \SelfDocConfig\Twig\CustomFunction\PrintClassCollectionAsGroupedTable - class: \SelfDocConfig\Twig\CustomFunction\GetConfigParametersDescription + - class: \SelfDocConfig\Twig\CustomFunction\GetConsoleCommands plugins: - class: \SelfDocConfig\Plugin\TwigFilterClassParser\TwigFilterClassParserPlugin - class: \SelfDocConfig\Plugin\TwigFunctionClassParser\TwigFunctionClassParserPlugin diff --git a/composer.json b/composer.json index ce86badd..3f33a01e 100644 --- a/composer.json +++ b/composer.json @@ -15,18 +15,17 @@ "issues": "https://github.com/bumble-tech/bumble-doc-gen/issues" }, "require": { - "php": "^8.0.0", + "php": "^8.1.0", "ext-zlib": "*", "ext-mbstring": "*", "symfony/console": "^6.0", "symfony/finder": "^6.0", "twig/twig": "^3.3", - "roave/better-reflection": "^5.5", "nikic/php-parser": "^4.13", "phpdocumentor/reflection-docblock": "^5.3", "doctrine/annotations": "^1.13", "nette/php-generator": "^4.0", - "monolog/monolog": "^2.5", + "monolog/monolog": "^3.0", "bramus/monolog-colored-line-formatter": "^3.0", "symfony/cache": "^6.0", "symfony/event-dispatcher": "^6.0", @@ -34,7 +33,8 @@ "symfony/yaml": "^6.0", "hassankhan/config": "^3.1", "guzzlehttp/guzzle": "^7.8", - "symfony/filesystem": "^6.0" + "symfony/filesystem": "^6.0", + "daux/daux.io": "^0.22.1" }, "require-dev": { "roave/security-advisories": "dev-latest", @@ -68,7 +68,7 @@ ], "scripts": { "test": "vendor/bin/phpunit", - "phpcs": "vendor/bin/phpcs --standard=psr12 src demo tests --warning-severity=0 --error-severity=1", - "phpcbf": "vendor/bin/phpcbf --standard=psr12 src demo tests" + "phpcs": "vendor/bin/phpcs --standard=psr12 src demo tests selfdoc --warning-severity=0 --error-severity=1", + "phpcbf": "vendor/bin/phpcbf --standard=psr12 src demo tests selfdoc" } } diff --git a/composer.lock b/composer.lock index 3bac40c4..5c883332 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "86a6a7f6923c44c4dc1e5190ec5a3510", + "content-hash": "ef9784477bf206a6afda54b8574034b0", "packages": [ { "name": "bramus/ansi-php", @@ -52,25 +52,25 @@ }, { "name": "bramus/monolog-colored-line-formatter", - "version": "3.0.6", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/bramus/monolog-colored-line-formatter.git", - "reference": "708891d34cb431d9ed56da91a53ecc2d8afdc24e" + "reference": "1ce52a13d5accdc425fb912f9b96c84f6be2ea72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bramus/monolog-colored-line-formatter/zipball/708891d34cb431d9ed56da91a53ecc2d8afdc24e", - "reference": "708891d34cb431d9ed56da91a53ecc2d8afdc24e", + "url": "https://api.github.com/repos/bramus/monolog-colored-line-formatter/zipball/1ce52a13d5accdc425fb912f9b96c84f6be2ea72", + "reference": "1ce52a13d5accdc425fb912f9b96c84f6be2ea72", "shasum": "" }, "require": { "bramus/ansi-php": "^3.0.3", - "php": "^7.2|^8.0" + "monolog/monolog": "~3.0", + "php": "^8.1" }, "require-dev": { - "monolog/monolog": "~2.0", - "phpunit/phpunit": "~7.0|^9.4" + "phpunit/phpunit": "~9.6" }, "type": "library", "autoload": { @@ -92,9 +92,166 @@ "description": "Colored Line Formatter for Monolog", "support": { "issues": "https://github.com/bramus/monolog-colored-line-formatter/issues", - "source": "https://github.com/bramus/monolog-colored-line-formatter/tree/3.0.6" + "source": "https://github.com/bramus/monolog-colored-line-formatter/tree/3.1.2" + }, + "funding": [ + { + "url": "https://github.com/bramus", + "type": "github" + } + ], + "time": "2023-08-18T13:44:29+00:00" + }, + { + "name": "daux/daux.io", + "version": "0.22.1", + "source": { + "type": "git", + "url": "https://github.com/dauxio/daux.io.git", + "reference": "d8ec7aaca64f7ab4ae53843b1eb21bdaa55b35b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dauxio/daux.io/zipball/d8ec7aaca64f7ab4ae53843b1eb21bdaa55b35b9", + "reference": "d8ec7aaca64f7ab4ae53843b1eb21bdaa55b35b9", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/guzzle": "~6.0 || ~7.0", + "league/commonmark": "^2.2.0", + "league/plates": "~3.1", + "php": ">=8.1", + "scrivo/highlight.php": "^9.15", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/polyfill-intl-icu": "^1.10", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "replace": { + "justinwalsh/daux.io": "*" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5" + }, + "suggest": { + "ext-intl": "Allows to translate the modified at date" + }, + "bin": [ + "bin/daux" + ], + "type": "project", + "autoload": { + "psr-4": { + "Todaymade\\Daux\\": "libs/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stéphane Goetz", + "homepage": "http://onigoetz.ch/" + }, + { + "name": "Justin Walsh", + "homepage": "http://todaymade.com/" + } + ], + "description": "Documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly", + "homepage": "https://dauxio.github.io/", + "keywords": [ + "docs", + "documentation", + "markdown", + "md" + ], + "support": { + "issues": "https://github.com/dauxio/daux.io/issues", + "source": "https://github.com/dauxio/daux.io/tree/0.22.1" + }, + "time": "2023-09-24T17:06:59+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "f41715465d65213d644d3141a6a93081be5d3549" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" }, - "time": "2021-12-05T09:10:49+00:00" + "time": "2022-10-27T11:44:00+00:00" }, { "name": "doctrine/annotations", @@ -299,16 +456,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9" + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1110f66a6530a40fe7aea0378fe608ee2b2248f9", - "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", "shasum": "" }, "require": { @@ -323,11 +480,11 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -405,7 +562,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.0" + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" }, "funding": [ { @@ -421,28 +578,28 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:20:53+00:00" + "time": "2023-12-03T20:35:24+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "111166291a0f8130081195ac4556a5587d7f1b5d" + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d", - "reference": "111166291a0f8130081195ac4556a5587d7f1b5d", + "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "type": "library", "extra": { @@ -488,7 +645,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.1" + "source": "https://github.com/guzzle/promises/tree/2.0.2" }, "funding": [ { @@ -504,20 +661,20 @@ "type": "tidelift" } ], - "time": "2023-08-03T15:11:55+00:00" + "time": "2023-12-03T20:19:20+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.1", + "version": "2.6.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727" + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/be45764272e8873c72dbe3d2edcfdfcc3bc9f727", - "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", "shasum": "" }, "require": { @@ -531,9 +688,9 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -604,7 +761,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.1" + "source": "https://github.com/guzzle/psr7/tree/2.6.2" }, "funding": [ { @@ -620,7 +777,7 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:13:57+00:00" + "time": "2023-12-03T20:05:35+00:00" }, { "name": "hassankhan/config", @@ -685,85 +842,284 @@ "time": "2022-12-20T19:48:37+00:00" }, { - "name": "jetbrains/phpstorm-stubs", - "version": "v2022.2", + "name": "laravel/serializable-closure", + "version": "v1.3.3", "source": { "type": "git", - "url": "https://github.com/JetBrains/phpstorm-stubs.git", - "reference": "01006d9854679672fc8b85c6d5063ea6f25226ac" + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/01006d9854679672fc8b85c6d5063ea6f25226ac", - "reference": "01006d9854679672fc8b85c6d5063ea6f25226ac", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", "shasum": "" }, + "require": { + "php": "^7.3|^8.0" + }, "require-dev": { - "friendsofphp/php-cs-fixer": "@stable", - "nikic/php-parser": "@stable", - "php": "^8.0", - "phpdocumentor/reflection-docblock": "@stable", - "phpunit/phpunit": "@stable" + "nesbot/carbon": "^2.61", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "autoload": { - "files": [ - "PhpStormStubsMap.php" - ] + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } ], - "description": "PHP runtime & extensions header files for PhpStorm", - "homepage": "https://www.jetbrains.com/phpstorm", + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", "keywords": [ - "autocomplete", - "code", - "inference", - "inspection", - "jetbrains", - "phpstorm", - "stubs", - "type" + "closure", + "laravel", + "serializable" ], "support": { - "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2022.2" + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" }, - "time": "2022-07-25T13:18:36+00:00" + "time": "2023-11-08T14:08:06+00:00" }, { - "name": "laravel/serializable-closure", - "version": "v1.3.1", + "name": "league/commonmark", + "version": "2.4.1", "source": { "type": "git", - "url": "https://github.com/laravel/serializable-closure.git", - "reference": "e5a3057a5591e1cfe8183034b0203921abe2c902" + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/e5a3057a5591e1cfe8183034b0203921abe2c902", - "reference": "e5a3057a5591e1cfe8183034b0203921abe2c902", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/3669d6d5f7a47a93c08ddff335e6d945481a1dd5", + "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "ext-mbstring": "*", + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "nesbot/carbon": "^2.61", - "pestphp/pest": "^1.21.3", + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.0", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", "phpstan/phpstan": "^1.8.2", - "symfony/var-dumper": "^5.4.11" + "phpunit/phpunit": "^9.5.21", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0 || ^5.0.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "2.5-dev" } }, "autoload": { "psr-4": { - "Laravel\\SerializableClosure\\": "src/" + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "support": { + "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/commonmark", + "type": "tidelift" + } + ], + "time": "2023-08-30T16:55:00+00:00" + }, + { + "name": "league/config", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2022-12-11T20:36:23+00:00" + }, + { + "name": "league/plates", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/plates.git", + "reference": "a6a3238e46c6e19af7318fdc36bfbe49b0620231" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/plates/zipball/a6a3238e46c6e19af7318fdc36bfbe49b0620231", + "reference": "a6a3238e46c6e19af7318fdc36bfbe49b0620231", + "shasum": "" + }, + "require": { + "php": "^7.0|^8.0" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Plates\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -772,64 +1128,68 @@ ], "authors": [ { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" + "name": "Jonathan Reinink", + "email": "jonathan@reinink.ca", + "role": "Developer" }, { - "name": "Nuno Maduro", - "email": "nuno@laravel.com" + "name": "RJ Garcia", + "email": "ragboyjr@icloud.com", + "role": "Developer" } ], - "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "description": "Plates, the native PHP template system that's fast, easy to use and easy to extend.", + "homepage": "https://platesphp.com", "keywords": [ - "closure", - "laravel", - "serializable" + "league", + "package", + "templates", + "templating", + "views" ], "support": { - "issues": "https://github.com/laravel/serializable-closure/issues", - "source": "https://github.com/laravel/serializable-closure" + "issues": "https://github.com/thephpleague/plates/issues", + "source": "https://github.com/thephpleague/plates/tree/v3.5.0" }, - "time": "2023-07-14T13:56:28+00:00" + "time": "2023-01-16T20:25:45+00:00" }, { "name": "monolog/monolog", - "version": "2.9.1", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1" + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1", - "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", "shasum": "" }, "require": { - "php": ">=7.2", - "psr/log": "^1.0.1 || ^2.0 || ^3.0" + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" }, "provide": { - "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + "psr/log-implementation": "3.0.0" }, "require-dev": { - "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "aws/aws-sdk-php": "^3.0", "doctrine/couchdb": "~1.0@dev", "elasticsearch/elasticsearch": "^7 || ^8", "ext-json": "*", - "graylog2/gelf-php": "^1.4.2 || ^2@dev", - "guzzlehttp/guzzle": "^7.4", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", "guzzlehttp/psr7": "^2.2", "mongodb/mongodb": "^1.8", "php-amqplib/php-amqplib": "~2.4 || ^3", - "phpspec/prophecy": "^1.15", - "phpstan/phpstan": "^0.12.91", - "phpunit/phpunit": "^8.5.14", - "predis/predis": "^1.1 || ^2.0", - "rollbar/rollbar": "^1.3 || ^2 || ^3", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "^10.1", + "predis/predis": "^1.1 || ^2", "ruflin/elastica": "^7", - "swiftmailer/swiftmailer": "^5.3|^6.0", "symfony/mailer": "^5.4 || ^6", "symfony/mime": "^5.4 || ^6" }, @@ -852,7 +1212,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -880,7 +1240,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.9.1" + "source": "https://github.com/Seldaek/monolog/tree/3.5.0" }, "funding": [ { @@ -892,20 +1252,20 @@ "type": "tidelift" } ], - "time": "2023-02-06T13:44:46+00:00" + "time": "2023-10-27T15:32:31+00:00" }, { "name": "nette/php-generator", - "version": "v4.1.0", + "version": "v4.1.2", "source": { "type": "git", "url": "https://github.com/nette/php-generator.git", - "reference": "8b728c622c49b196513c0f95508f2f66342d1e8f" + "reference": "abc0e79b2d02d4b8aba5933765b90df3f610c143" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/8b728c622c49b196513c0f95508f2f66342d1e8f", - "reference": "8b728c622c49b196513c0f95508f2f66342d1e8f", + "url": "https://api.github.com/repos/nette/php-generator/zipball/abc0e79b2d02d4b8aba5933765b90df3f610c143", + "reference": "abc0e79b2d02d4b8aba5933765b90df3f610c143", "shasum": "" }, "require": { @@ -959,26 +1319,88 @@ ], "support": { "issues": "https://github.com/nette/php-generator/issues", - "source": "https://github.com/nette/php-generator/tree/v4.1.0" + "source": "https://github.com/nette/php-generator/tree/v4.1.2" }, - "time": "2023-09-26T12:28:52+00:00" + "time": "2023-10-29T22:57:32+00:00" }, { - "name": "nette/utils", - "version": "v4.0.2", + "name": "nette/schema", + "version": "v1.2.5", "source": { "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "cead6637226456b35e1175cc53797dd585d85545" + "url": "https://github.com/nette/schema.git", + "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/cead6637226456b35e1175cc53797dd585d85545", - "reference": "cead6637226456b35e1175cc53797dd585d85545", + "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a", + "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a", "shasum": "" }, "require": { - "php": ">=8.0 <8.4" + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": "7.1 - 8.3" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.2.5" + }, + "time": "2023-10-05T20:37:59+00:00" + }, + { + "name": "nette/utils", + "version": "v4.0.3", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015", + "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015", + "shasum": "" + }, + "require": { + "php": ">=8.0 <8.4" }, "conflict": { "nette/finder": "<3", @@ -1045,22 +1467,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.2" + "source": "https://github.com/nette/utils/tree/v4.0.3" }, - "time": "2023-09-19T11:58:07+00:00" + "time": "2023-10-29T21:02:13+00:00" }, { "name": "nikic/php-parser", - "version": "v4.17.1", + "version": "v4.18.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", "shasum": "" }, "require": { @@ -1101,9 +1523,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" }, - "time": "2023-08-13T19:53:39+00:00" + "time": "2023-12-10T21:03:43+00:00" }, { "name": "php-di/invoker", @@ -1162,16 +1584,16 @@ }, { "name": "php-di/php-di", - "version": "7.0.5", + "version": "7.0.6", "source": { "type": "git", "url": "https://github.com/PHP-DI/PHP-DI.git", - "reference": "9ea40a5a6970bf1ca5cbe148bc16cbad6ca3db6c" + "reference": "8097948a89f6ec782839b3e958432f427cac37fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/9ea40a5a6970bf1ca5cbe148bc16cbad6ca3db6c", - "reference": "9ea40a5a6970bf1ca5cbe148bc16cbad6ca3db6c", + "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/8097948a89f6ec782839b3e958432f427cac37fd", + "reference": "8097948a89f6ec782839b3e958432f427cac37fd", "shasum": "" }, "require": { @@ -1219,7 +1641,7 @@ ], "support": { "issues": "https://github.com/PHP-DI/PHP-DI/issues", - "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.5" + "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.6" }, "funding": [ { @@ -1231,7 +1653,7 @@ "type": "tidelift" } ], - "time": "2023-08-10T14:57:56+00:00" + "time": "2023-11-02T10:04:50+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -1403,16 +1825,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.24.2", + "version": "1.25.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "bcad8d995980440892759db0c32acae7c8e79442" + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442", - "reference": "bcad8d995980440892759db0c32acae7c8e79442", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240", + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240", "shasum": "" }, "require": { @@ -1444,9 +1866,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0" }, - "time": "2023-09-26T12:28:12+00:00" + "time": "2024-01-04T17:06:16+00:00" }, { "name": "psr/cache", @@ -1855,140 +2277,104 @@ "time": "2019-03-08T08:55:37+00:00" }, { - "name": "roave/better-reflection", - "version": "5.11.1", + "name": "scrivo/highlight.php", + "version": "v9.18.1.10", "source": { "type": "git", - "url": "https://github.com/Roave/BetterReflection.git", - "reference": "84cdf580747c3d55238be28d5681e24e7d11e065" + "url": "https://github.com/scrivo/highlight.php.git", + "reference": "850f4b44697a2552e892ffe71490ba2733c2fc6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/BetterReflection/zipball/84cdf580747c3d55238be28d5681e24e7d11e065", - "reference": "84cdf580747c3d55238be28d5681e24e7d11e065", + "url": "https://api.github.com/repos/scrivo/highlight.php/zipball/850f4b44697a2552e892ffe71490ba2733c2fc6e", + "reference": "850f4b44697a2552e892ffe71490ba2733c2fc6e", "shasum": "" }, "require": { "ext-json": "*", - "jetbrains/phpstorm-stubs": "2022.2", - "nikic/php-parser": "^4.15.1", - "php": "~8.0.12 || ~8.1.0 || ~8.2.0", - "roave/signature": "^1.6" - }, - "conflict": { - "thecodingmachine/safe": "<1.1.3" + "php": ">=5.4" }, "require-dev": { - "doctrine/coding-standard": "^10.0.0", - "phpstan/phpstan": "^1.8.5", - "phpstan/phpstan-phpunit": "^1.1.1", - "phpunit/phpunit": "^9.5.24", - "roave/infection-static-analysis-plugin": "^1.23.0", - "vimeo/psalm": "^4.27" + "phpunit/phpunit": "^4.8|^5.7", + "sabberworm/php-css-parser": "^8.3", + "symfony/finder": "^2.8|^3.4|^5.4", + "symfony/var-dumper": "^2.8|^3.4|^5.4" }, "suggest": { - "composer/composer": "Required to use the ComposerSourceLocator" + "ext-mbstring": "Allows highlighting code with unicode characters and supports language with unicode keywords" }, "type": "library", "autoload": { - "psr-4": { - "Roave\\BetterReflection\\": "src" + "files": [ + "HighlightUtilities/functions.php" + ], + "psr-0": { + "Highlight\\": "", + "HighlightUtilities\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "James Titcumb", - "email": "james@asgrim.com", - "homepage": "https://github.com/asgrim" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" + "name": "Geert Bergman", + "homepage": "http://www.scrivo.org/", + "role": "Project Author" }, { - "name": "Gary Hockin", - "email": "gary@roave.com", - "homepage": "https://github.com/geeh" + "name": "Vladimir Jimenez", + "homepage": "https://allejo.io", + "role": "Maintainer" }, { - "name": "Jaroslav Hanslík", - "email": "kukulich@kukulich.cz", - "homepage": "https://github.com/kukulich" + "name": "Martin Folkers", + "homepage": "https://twobrain.io", + "role": "Contributor" } ], - "description": "Better Reflection - an improved code reflection API", + "description": "Server side syntax highlighter that supports 185 languages. It's a PHP port of highlight.js", + "keywords": [ + "code", + "highlight", + "highlight.js", + "highlight.php", + "syntax" + ], "support": { - "issues": "https://github.com/Roave/BetterReflection/issues", - "source": "https://github.com/Roave/BetterReflection/tree/5.11.1" - }, - "time": "2022-09-29T16:28:39+00:00" - }, - { - "name": "roave/signature", - "version": "1.7.0", - "source": { - "type": "git", - "url": "https://github.com/Roave/Signature.git", - "reference": "2ab4eadcb9f9d449f673a97b67797403b35eca94" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Roave/Signature/zipball/2ab4eadcb9f9d449f673a97b67797403b35eca94", - "reference": "2ab4eadcb9f9d449f673a97b67797403b35eca94", - "shasum": "" + "issues": "https://github.com/scrivo/highlight.php/issues", + "source": "https://github.com/scrivo/highlight.php" }, - "require": { - "php": "8.0.*|8.1.*|8.2.*" - }, - "require-dev": { - "doctrine/coding-standard": "^10.0.0", - "infection/infection": "^0.26.15", - "phpunit/phpunit": "^9.5.25", - "vimeo/psalm": "^4.28.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Roave\\Signature\\": "src" + "funding": [ + { + "url": "https://github.com/allejo", + "type": "github" } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" ], - "description": "Sign and verify stuff", - "support": { - "issues": "https://github.com/Roave/Signature/issues", - "source": "https://github.com/Roave/Signature/tree/1.7.0" - }, - "time": "2022-10-10T08:44:53+00:00" + "time": "2022-12-17T21:53:22+00:00" }, { "name": "symfony/cache", - "version": "v6.0.19", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "81ca309f056e836480928b20280ec52ce8369bb3" + "reference": "14a75869bbb41cb35bc5d9d322473928c6f3f978" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/81ca309f056e836480928b20280ec52ce8369bb3", - "reference": "81ca309f056e836480928b20280ec52ce8369bb3", + "url": "https://api.github.com/repos/symfony/cache/zipball/14a75869bbb41cb35bc5d9d322473928c6f3f978", + "reference": "14a75869bbb41cb35bc5d9d322473928c6f3f978", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "psr/cache": "^2.0|^3.0", "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^1.1.7|^2|^3", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/var-exporter": "^5.4|^6.0" + "symfony/cache-contracts": "^2.5|^3", + "symfony/service-contracts": "^2.5|^3", + "symfony/var-exporter": "^6.3.6|^7.0" }, "conflict": { "doctrine/dbal": "<2.13.1", @@ -2003,21 +2389,24 @@ }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/dbal": "^2.13.1|^3.0", - "predis/predis": "^1.1", + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", "psr/simple-cache": "^1.0|^2.0|^3.0", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/messenger": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/filesystem": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Cache\\": "" }, + "classmap": [ + "Traits/ValueWrapper.php" + ], "exclude-from-classmap": [ "/Tests/" ] @@ -2043,7 +2432,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.0.19" + "source": "https://github.com/symfony/cache/tree/v6.4.2" }, "funding": [ { @@ -2059,33 +2448,30 @@ "type": "tidelift" } ], - "time": "2023-01-20T17:44:14+00:00" + "time": "2023-12-29T15:34:34+00:00" }, { "name": "symfony/cache-contracts", - "version": "v3.0.2", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "1c0a181c9ee221afe4fa55b2d13fc63c5ae14348" + "reference": "1d74b127da04ffa87aa940abe15446fa89653778" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/1c0a181c9ee221afe4fa55b2d13fc63c5ae14348", - "reference": "1c0a181c9ee221afe4fa55b2d13fc63c5ae14348", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/1d74b127da04ffa87aa940abe15446fa89653778", + "reference": "1d74b127da04ffa87aa940abe15446fa89653778", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "psr/cache": "^3.0" }, - "suggest": { - "symfony/cache-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2122,7 +2508,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.0.2" + "source": "https://github.com/symfony/cache-contracts/tree/v3.4.0" }, "funding": [ { @@ -2138,27 +2524,28 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2023-09-25T12:52:38+00:00" }, { "name": "symfony/console", - "version": "v6.0.19", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed" + "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed", - "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed", + "url": "https://api.github.com/repos/symfony/console/zipball/0254811a143e6bc6c8deea08b589a7e68a37f625", + "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.4|^6.0" + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" }, "conflict": { "symfony/dependency-injection": "<5.4", @@ -2172,18 +2559,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -2212,12 +2597,12 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.19" + "source": "https://github.com/symfony/console/tree/v6.4.2" }, "funding": [ { @@ -2233,29 +2618,29 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:36:10+00:00" + "time": "2023-12-10T16:15:48+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.0.2", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2284,7 +2669,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" }, "funding": [ { @@ -2300,28 +2685,29 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.0.19", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a" + "reference": "e95216850555cd55e71b857eb9d6c2674124603a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a", - "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e95216850555cd55e71b857eb9d6c2674124603a", + "reference": "e95216850555cd55e71b857eb9d6c2674124603a", "shasum": "" }, "require": { - "php": ">=8.0.2", - "symfony/event-dispatcher-contracts": "^2|^3" + "php": ">=8.1", + "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4" + "symfony/dependency-injection": "<5.4", + "symfony/service-contracts": "<2.5" }, "provide": { "psr/event-dispatcher-implementation": "1.0", @@ -2329,17 +2715,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^5.4|^6.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -2367,7 +2749,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.19" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.2" }, "funding": [ { @@ -2383,33 +2765,30 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:36:10+00:00" + "time": "2023-12-27T22:16:42+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.0.2", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "7bc61cc2db649b4637d331240c5346dcc7708051" + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051", - "reference": "7bc61cc2db649b4637d331240c5346dcc7708051", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "psr/event-dispatcher": "^1" }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2446,7 +2825,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" }, "funding": [ { @@ -2462,24 +2841,24 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/filesystem", - "version": "v6.0.19", + "version": "v6.4.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214" + "reference": "952a8cb588c3bc6ce76f6023000fb932f16a6e59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/3d49eec03fda1f0fc19b7349fbbe55ebc1004214", - "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/952a8cb588c3bc6ce76f6023000fb932f16a6e59", + "reference": "952a8cb588c3bc6ce76f6023000fb932f16a6e59", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, @@ -2509,7 +2888,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.0.19" + "source": "https://github.com/symfony/filesystem/tree/v6.4.0" }, "funding": [ { @@ -2525,24 +2904,27 @@ "type": "tidelift" } ], - "time": "2023-01-20T17:44:14+00:00" + "time": "2023-07-26T17:27:13+00:00" }, { "name": "symfony/finder", - "version": "v6.0.19", + "version": "v6.4.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11" + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/5cc9cac6586fc0c28cd173780ca696e419fefa11", - "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11", + "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce", + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce", "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0|^7.0" }, "type": "library", "autoload": { @@ -2567,10 +2949,592 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Finds files and directories via an intuitive fluent interface", + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-31T17:30:12+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.4.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/172d807f9ef3fc3fbed8377cc57c20d389269271", + "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "symfony/cache": "<6.3" + }, + "require-dev": { + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.3|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/rate-limiter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v6.4.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-12-27T22:16:42+00:00" + }, + { + "name": "symfony/mime", + "version": "v6.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/ca4f58b2ef4baa8f6cecbeca2573f88cd577d205", + "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<5.4", + "symfony/serializer": "<6.3.2" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.3.2|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v6.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-17T11:49:05+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "875e90aeea2777b6f135677f618529449334a612" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "e46b4da57951a16053cd751f63f4a24292788157" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e46b4da57951a16053cd751f63f4a24292788157", + "reference": "e46b4da57951a16053cd751f63f4a24292788157", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance and support of other locales than \"en\"" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's ICU-related data and classes", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "icu", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-03-21T17:27:24+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:30:37+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/finder/tree/v6.0.19" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -2586,30 +3550,30 @@ "type": "tidelift" } ], - "time": "2023-01-20T17:44:14+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { - "name": "symfony/polyfill-ctype", + "name": "symfony/polyfill-mbstring", "version": "v1.28.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { "php": ">=7.1" }, "provide": { - "ext-ctype": "*" + "ext-mbstring": "*" }, "suggest": { - "ext-ctype": "For best performance" + "ext-mbstring": "For best performance" }, "type": "library", "extra": { @@ -2626,7 +3590,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" + "Symfony\\Polyfill\\Mbstring\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2635,24 +3599,25 @@ ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for ctype functions", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "ctype", + "mbstring", "polyfill", - "portable" + "portable", + "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -2668,28 +3633,25 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2023-07-28T09:04:16+00:00" }, { - "name": "symfony/polyfill-intl-grapheme", + "name": "symfony/polyfill-php72", "version": "v1.28.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179", + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179", "shasum": "" }, "require": { "php": ">=7.1" }, - "suggest": { - "ext-intl": "For best performance" - }, "type": "library", "extra": { "branch-alias": { @@ -2705,7 +3667,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + "Symfony\\Polyfill\\Php72\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2722,18 +3684,16 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's grapheme_* functions", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "grapheme", - "intl", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0" }, "funding": [ { @@ -2752,25 +3712,22 @@ "time": "2023-01-26T09:26:14+00:00" }, { - "name": "symfony/polyfill-intl-normalizer", + "name": "symfony/polyfill-php80", "version": "v1.28.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { "php": ">=7.1" }, - "suggest": { - "ext-intl": "For best performance" - }, "type": "library", "extra": { "branch-alias": { @@ -2786,7 +3743,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + "Symfony\\Polyfill\\Php80\\": "" }, "classmap": [ "Resources/stubs" @@ -2797,6 +3754,10 @@ "MIT" ], "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -2806,18 +3767,16 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "intl", - "normalizer", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -2836,27 +3795,22 @@ "time": "2023-01-26T09:26:14+00:00" }, { - "name": "symfony/polyfill-mbstring", + "name": "symfony/polyfill-php83", "version": "v1.28.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", + "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" + "php": ">=7.1", + "symfony/polyfill-php80": "^1.14" }, "type": "library", "extra": { @@ -2873,8 +3827,11 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2890,17 +3847,16 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" }, "funding": [ { @@ -2916,36 +3872,94 @@ "type": "tidelift" } ], - "time": "2023-07-28T09:04:16+00:00" + "time": "2023-08-16T06:22:46+00:00" + }, + { + "name": "symfony/process", + "version": "v6.4.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/c4b1ef0bc80533d87a2e969806172f1c2a980241", + "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.4.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-12-22T16:42:54+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.0.2", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66" + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66", - "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", "shasum": "" }, "require": { - "php": ">=8.0.2", - "psr/container": "^2.0" + "php": ">=8.1", + "psr/container": "^1.1|^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2955,7 +3969,10 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Service\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2982,7 +3999,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.0.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" }, "funding": [ { @@ -2998,37 +4015,38 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:58+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/string", - "version": "v6.0.19", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a" + "reference": "7cb80bc10bfcdf6b5492741c0b9357dac66940bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a", - "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a", + "url": "https://api.github.com/repos/symfony/string/zipball/7cb80bc10bfcdf6b5492741c0b9357dac66940bc", + "reference": "7cb80bc10bfcdf6b5492741c0b9357dac66940bc", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": "<2.0" + "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/translation-contracts": "^2.0|^3.0", - "symfony/var-exporter": "^5.4|^6.0" + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -3067,7 +4085,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.19" + "source": "https://github.com/symfony/string/tree/v6.4.2" }, "funding": [ { @@ -3083,27 +4101,28 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:36:10+00:00" + "time": "2023-12-10T16:15:48+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.0.19", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "df56f53818c2d5d9f683f4ad2e365ba73a3b69d2" + "reference": "5fe9a0021b8d35e67d914716ec8de50716a68e7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df56f53818c2d5d9f683f4ad2e365ba73a3b69d2", - "reference": "df56f53818c2d5d9f683f4ad2e365ba73a3b69d2", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/5fe9a0021b8d35e67d914716ec8de50716a68e7e", + "reference": "5fe9a0021b8d35e67d914716ec8de50716a68e7e", "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" }, "require-dev": { - "symfony/var-dumper": "^5.4|^6.0" + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -3136,10 +4155,12 @@ "export", "hydrate", "instantiate", + "lazy-loading", + "proxy", "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.0.19" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.2" }, "funding": [ { @@ -3155,34 +4176,32 @@ "type": "tidelift" } ], - "time": "2023-01-13T08:34:10+00:00" + "time": "2023-12-27T08:18:35+00:00" }, { "name": "symfony/yaml", - "version": "v6.0.19", + "version": "v6.4.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "deec3a812a0305a50db8ae689b183f43d915c884" + "reference": "4f9237a1bb42455d609e6687d2613dde5b41a587" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/deec3a812a0305a50db8ae689b183f43d915c884", - "reference": "deec3a812a0305a50db8ae689b183f43d915c884", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4f9237a1bb42455d609e6687d2613dde5b41a587", + "reference": "4f9237a1bb42455d609e6687d2613dde5b41a587", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8" }, "conflict": { "symfony/console": "<5.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "symfony/console": "^5.4|^6.0|^7.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -3213,7 +4232,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.0.19" + "source": "https://github.com/symfony/yaml/tree/v6.4.0" }, "funding": [ { @@ -3229,30 +4248,31 @@ "type": "tidelift" } ], - "time": "2023-01-11T11:50:03+00:00" + "time": "2023-11-06T11:00:25+00:00" }, { "name": "twig/twig", - "version": "v3.7.1", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554" + "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/a0ce373a0ca3bf6c64b9e3e2124aca502ba39554", - "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", + "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3" + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php80": "^1.22" }, "require-dev": { "psr/container": "^1.0|^2.0", - "symfony/phpunit-bridge": "^5.4.9|^6.3" + "symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0" }, "type": "library", "autoload": { @@ -3288,7 +4308,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.7.1" + "source": "https://github.com/twigphp/Twig/tree/v3.8.0" }, "funding": [ { @@ -3300,7 +4320,7 @@ "type": "tidelift" } ], - "time": "2023-08-28T11:09:02+00:00" + "time": "2023-11-21T18:54:41+00:00" }, { "name": "webmozart/assert", @@ -3364,29 +4384,30 @@ "packages-dev": [ { "name": "captainhook/captainhook", - "version": "5.17.3", + "version": "5.19.2", "source": { "type": "git", "url": "https://github.com/captainhookphp/captainhook.git", - "reference": "cac493cfacf14f3a2d16b4ebff9a3bc9adb4c68d" + "reference": "604bfc55fa40d6fe8c0275ca707ee80920b3b3f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/captainhookphp/captainhook/zipball/cac493cfacf14f3a2d16b4ebff9a3bc9adb4c68d", - "reference": "cac493cfacf14f3a2d16b4ebff9a3bc9adb4c68d", + "url": "https://api.github.com/repos/captainhookphp/captainhook/zipball/604bfc55fa40d6fe8c0275ca707ee80920b3b3f1", + "reference": "604bfc55fa40d6fe8c0275ca707ee80920b3b3f1", "shasum": "" }, "require": { + "captainhook/secrets": "^0.9.4", "ext-json": "*", "ext-spl": "*", "ext-xml": "*", - "php": ">=7.4", + "php": ">=8.0", "sebastianfeldmann/camino": "^0.9.2", "sebastianfeldmann/cli": "^3.3", "sebastianfeldmann/git": "^3.9", - "symfony/console": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0", - "symfony/filesystem": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0", - "symfony/process": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + "symfony/console": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0", + "symfony/filesystem": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0", + "symfony/process": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" }, "replace": { "sebastianfeldmann/captainhook": "*" @@ -3423,7 +4444,7 @@ } ], "description": "PHP git hook manager", - "homepage": "https://github.com/captainhookphp/captainhook", + "homepage": "http://php.captainhook.info/", "keywords": [ "commit-msg", "git", @@ -3435,7 +4456,7 @@ ], "support": { "issues": "https://github.com/captainhookphp/captainhook/issues", - "source": "https://github.com/captainhookphp/captainhook/tree/5.17.3" + "source": "https://github.com/captainhookphp/captainhook/tree/5.19.2" }, "funding": [ { @@ -3443,7 +4464,7 @@ "type": "github" } ], - "time": "2023-10-04T11:51:41+00:00" + "time": "2023-12-18T14:06:12+00:00" }, { "name": "captainhook/plugin-composer", @@ -3500,6 +4521,62 @@ }, "time": "2022-01-28T04:35:22+00:00" }, + { + "name": "captainhook/secrets", + "version": "0.9.5", + "source": { + "type": "git", + "url": "https://github.com/captainhookphp/secrets.git", + "reference": "8aa90d5b9b7892abd11b9da2fc172a7b32b90cbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/captainhookphp/secrets/zipball/8aa90d5b9b7892abd11b9da2fc172a7b32b90cbe", + "reference": "8aa90d5b9b7892abd11b9da2fc172a7b32b90cbe", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "CaptainHook\\Secrets\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sebastian Feldmann", + "email": "sf@sebastian-feldmann.info" + } + ], + "description": "Utility classes to detect secrets", + "keywords": [ + "commit-msg", + "keys", + "passwords", + "post-merge", + "prepare-commit-msg", + "secrets", + "tokens" + ], + "support": { + "issues": "https://github.com/captainhookphp/secrets/issues", + "source": "https://github.com/captainhookphp/secrets/tree/0.9.5" + }, + "funding": [ + { + "url": "https://github.com/sponsors/sebastianfeldmann", + "type": "github" + } + ], + "time": "2023-11-30T18:10:18+00:00" + }, { "name": "dg/bypass-finals", "version": "v1.5.1", @@ -3555,30 +4632,30 @@ }, { "name": "doctrine/instantiator", - "version": "1.5.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^11", + "doctrine/coding-standard": "^11", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.30 || ^5.4" + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^5.4" }, "type": "library", "autoload": { @@ -3605,7 +4682,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" }, "funding": [ { @@ -3621,7 +4698,7 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:15:36+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "myclabs/deep-copy", @@ -3795,23 +4872,23 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.29", + "version": "9.2.30", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" + "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089", + "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -3861,7 +4938,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.30" }, "funding": [ { @@ -3869,7 +4946,7 @@ "type": "github" } ], - "time": "2023-09-19T04:57:46+00:00" + "time": "2023-12-22T06:47:57+00:00" }, { "name": "phpunit/php-file-iterator", @@ -4114,16 +5191,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.13", + "version": "9.6.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" + "reference": "05017b80304e0eb3f31d90194a563fd53a6021f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/05017b80304e0eb3f31d90194a563fd53a6021f1", + "reference": "05017b80304e0eb3f31d90194a563fd53a6021f1", "shasum": "" }, "require": { @@ -4197,7 +5274,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.15" }, "funding": [ { @@ -4213,7 +5290,7 @@ "type": "tidelift" } ], - "time": "2023-09-19T05:39:22+00:00" + "time": "2023-12-01T16:55:19+00:00" }, { "name": "roave/security-advisories", @@ -4221,20 +5298,21 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "66dba7265a37e4081f443ed8211d507cd3cce5ef" + "reference": "c8682d0318353f7979a429981e902463e4879cf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/66dba7265a37e4081f443ed8211d507cd3cce5ef", - "reference": "66dba7265a37e4081f443ed8211d507cd3cce5ef", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/c8682d0318353f7979a429981e902463e4879cf0", + "reference": "c8682d0318353f7979a429981e902463e4879cf0", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "admidio/admidio": "<4.2.11", + "admidio/admidio": "<4.2.13", "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "aheinze/cockpit": "<2.2", "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5", + "airesvsg/acf-to-rest-api": "<=3.1", "akaunting/akaunting": "<2.1.13", "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53", "alextselegidis/easyappointments": "<1.5", @@ -4257,22 +5335,23 @@ "athlon1600/php-proxy": "<=5.1", "athlon1600/php-proxy-app": "<=3", "austintoddj/canvas": "<=3.4.2", - "automad/automad": "<1.8", + "automad/automad": "<=1.10.9", "awesome-support/awesome-support": "<=6.0.7", - "aws/aws-sdk-php": ">=3,<3.2.1", + "aws/aws-sdk-php": "<3.288.1", "azuracast/azuracast": "<0.18.3", "backdrop/backdrop": "<1.24.2", "backpack/crud": "<3.4.9", + "bacula-web/bacula-web": "<8.0.0.0-RC2-dev", "badaso/core": "<2.7", "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", "barryvdh/laravel-translation-manager": "<0.6.2", "barzahlen/barzahlen-php": "<2.0.1", - "baserproject/basercms": "<4.7.5", + "baserproject/basercms": "<4.8", "bassjobsen/bootstrap-3-typeahead": ">4.0.2", "bigfork/silverstripe-form-capture": ">=3,<3.1.1", - "billz/raspap-webgui": "<=2.9.2", + "billz/raspap-webgui": "<2.9.5", "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", @@ -4298,14 +5377,15 @@ "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "chriskacerguis/codeigniter-restserver": "<=2.7.1", "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3", + "ckeditor/ckeditor": "<4.17", "cockpit-hq/cockpit": "<=2.6.3", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<3.1.9", - "codeigniter4/framework": "<4.3.5", - "codeigniter4/shield": "<1.0.0.0-beta4", + "codeigniter4/framework": "<=4.4.2", + "codeigniter4/shield": "<1.0.0.0-beta8", "codiad/codiad": "<=2.8.4", "composer/composer": "<1.10.27|>=2,<2.2.22|>=2.3,<2.6.4", - "concrete5/concrete5": "<=9.2.1", + "concrete5/concrete5": "<9.2.3", "concrete5/core": "<8.5.8|>=9,<9.1", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/contao": ">=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4", @@ -4313,8 +5393,9 @@ "contao/core-bundle": "<4.9.42|>=4.10,<4.13.28|>=5,<5.1.10", "contao/listing-bundle": ">=4,<4.4.8", "contao/managed-edition": "<=1.5", + "corveda/phpsandbox": "<1.3.5", "cosenary/instagram": "<=2.3", - "craftcms/cms": "<=4.4.14", + "craftcms/cms": "<=4.5.10", "croogo/croogo": "<4", "cuyz/valinor": "<0.12", "czproject/git-php": "<4.0.3", @@ -4327,30 +5408,34 @@ "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3", "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", "desperado/xml-bundle": "<=0.1.7", - "directmailteam/direct-mail": "<5.2.4", - "doctrine/annotations": ">=1,<1.2.7", - "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", - "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1", + "directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2", + "doctrine/annotations": "<1.2.7", + "doctrine/cache": "<1.3.2|>=1.4,<1.4.2", + "doctrine/common": "<2.4.3|>=2.5,<2.5.1", "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4", "doctrine/doctrine-bundle": "<1.5.2", "doctrine/doctrine-module": "<=0.7.1", - "doctrine/mongodb-odm": ">=1,<1.0.2", - "doctrine/mongodb-odm-bundle": ">=2,<3.0.1", + "doctrine/mongodb-odm": "<1.0.2", + "doctrine/mongodb-odm-bundle": "<3.0.1", "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<18", - "dompdf/dompdf": "<2.0.2|==2.0.2", - "drupal/core": "<9.4.14|>=9.5,<9.5.8|>=10,<10.0.8", + "dolibarr/dolibarr": "<18.0.2", + "dompdf/dompdf": "<2.0.4", + "doublethreedigital/guest-entries": "<3.1.2", + "drupal/core": "<9.5.11|>=10,<10.0.11|>=10.1,<10.1.4", "drupal/drupal": ">=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "duncanmcclean/guest-entries": "<3.1.2", "dweeves/magmi": "<=0.7.24", "ecodev/newsletter": "<=4", "ectouch/ectouch": "<=2.7.2", "elefant/cms": "<2.0.7", "elgg/elgg": "<3.3.24|>=4,<4.0.5", + "elijaa/phpmemcacheadmin": "<=1.3", "encore/laravel-admin": "<=1.8.19", "endroid/qr-code-bundle": "<3.4.2", "enshrined/svg-sanitize": "<0.15", "erusev/parsedown": "<1.7.2", "ether/logs": "<3.0.4", + "evolutioncms/evolution": "<=3.2.3", "exceedone/exment": "<4.4.3|>=5,<5.0.3", "exceedone/laravel-admin": "<2.2.3|==3", "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev", @@ -4361,12 +5446,13 @@ "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26", "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", - "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.26", + "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.34", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev", + "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.30", - "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.03.5.1", + "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.31", + "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.06,<=2019.03.5.1", "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15", "ezyang/htmlpurifier": "<4.1.1", @@ -4379,14 +5465,16 @@ "firebase/php-jwt": "<6", "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2", "fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6", - "flarum/core": "<1.8", - "flarum/framework": "<1.8", + "flarum/core": "<1.8.5", + "flarum/framework": "<1.8.5", "flarum/mentions": "<1.6.3", "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15", "flarum/tags": "<=0.1.0.0-beta13", + "floriangaerber/magnesium": "<0.3.1", "fluidtypo3/vhs": "<5.1.1", "fof/byobu": ">=0.3.0.0-beta2,<1.1.7", "fof/upload": "<1.2.3", + "foodcoopshop/foodcoopshop": ">=3.2,<3.6.1", "fooman/tcpdf": "<6.2.22", "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", @@ -4398,7 +5486,7 @@ "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.1", - "froxlor/froxlor": "<2.1", + "froxlor/froxlor": "<=2.1.1", "fuel/core": "<1.8.1", "funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3", "gaoming13/wechat-php-sdk": "<=1.10.2", @@ -4408,7 +5496,7 @@ "getkirby/kirby": "<=2.5.12", "getkirby/panel": "<2.5.14", "getkirby/starterkit": "<=3.7.0.2", - "gilacms/gila": "<=1.11.4", + "gilacms/gila": "<=1.15.4", "gleez/cms": "<=1.2|==2", "globalpayments/php-sdk": "<2", "gogentooss/samlbase": "<1.2.7", @@ -4416,7 +5504,7 @@ "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<2.2.1", "gregwar/rst": "<1.0.3", - "grumpydictator/firefly-iii": "<6", + "grumpydictator/firefly-iii": "<6.1.1", "gugoan/economizzer": "<=0.9.0.0-beta1", "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5", "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5", @@ -4431,9 +5519,10 @@ "httpsoft/http-message": "<1.0.12", "hyn/multi-tenant": ">=5.6,<5.7.2", "ibexa/admin-ui": ">=4.2,<4.2.3", - "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3", + "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.4", "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", "ibexa/post-install": "<=1.0.4", + "ibexa/solr": ">=4.5,<4.5.4", "ibexa/user": ">=4,<4.4.3", "icecoder/icecoder": "<=8.1", "idno/known": "<=1.3.1", @@ -4443,7 +5532,7 @@ "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", "impresscms/impresscms": "<=1.4.5", - "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.2", + "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.3", "in2code/ipandlanguageredirect": "<5.1.2", "in2code/lux": "<17.6.1|>=18,<24.0.2", "innologi/typo3-appointments": "<2.0.6", @@ -4470,7 +5559,7 @@ "kelvinmo/simplexrd": "<3.1.1", "kevinpapst/kimai2": "<1.16.7", "khodakhah/nodcms": "<=3", - "kimai/kimai": "<1.1", + "kimai/kimai": "<=2.1", "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", "klaviyo/magento2-extension": ">=1,<3", "knplabs/knp-snappy": "<=1.4.2", @@ -4504,18 +5593,23 @@ "magento/magento1ee": ">=1,<1.14.4.3-dev", "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2.0-patch2", "maikuolan/phpmussel": ">=1,<1.6", - "mantisbt/mantisbt": "<=2.25.5", + "mainwp/mainwp": "<=4.4.3.3", + "mantisbt/mantisbt": "<=2.25.7", "marcwillmann/turn": "<0.3.3", "matyhtf/framework": "<3.0.6", "mautic/core": "<4.3", "mediawiki/core": ">=1.27,<1.27.6|>=1.29,<1.29.3|>=1.30,<1.30.2|>=1.31,<1.31.9|>=1.32,<1.32.6|>=1.32.99,<1.33.3|>=1.33.99,<1.34.3|>=1.34.99,<1.35", "mediawiki/matomo": "<2.4.3", + "mediawiki/semantic-media-wiki": "<4.0.2", "melisplatform/melis-asset-manager": "<5.0.1", "melisplatform/melis-cms": "<5.0.1", "melisplatform/melis-front": "<5.0.1", "mezzio/mezzio-swoole": "<3.7|>=4,<4.3", "mgallegos/laravel-jqgrid": "<=1.3", - "microweber/microweber": "<=1.3.4", + "microsoft/microsoft-graph": ">=1.16,<1.109.1|>=2.0.0.0-RC1-dev,<2.0.1", + "microsoft/microsoft-graph-beta": "<2.0.1", + "microsoft/microsoft-graph-core": "<2.0.2", + "microweber/microweber": "<=2.0.4", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", "mobiledetect/mobiledetectlib": "<2.8.32", @@ -4523,9 +5617,13 @@ "mojo42/jirafeau": "<4.4", "mongodb/mongodb": ">=1,<1.9.2", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<4.2.0.0-RC2-dev|==4.2", + "moodle/moodle": "<4.3.0.0-RC2-dev", + "mos/cimage": "<0.7.19", "movim/moxl": ">=0.8,<=0.10", "mpdf/mpdf": "<=7.1.7", + "munkireport/comment": "<4.1", + "munkireport/managedinstalls": "<2.6", + "munkireport/munkireport": ">=2.5.3,<5.6.3", "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", "neoan3-apps/template": "<1.1.1", @@ -4539,6 +5637,7 @@ "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nilsteampassnet/teampass": "<3.0.10", + "nonfiction/nterchange": "<4.1.1", "notrinos/notrinos-erp": "<=0.7", "noumo/easyii": "<=0.9", "nukeviet/nukeviet": "<4.5.02", @@ -4549,18 +5648,22 @@ "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1", "october/october": "<=3.4.4", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.0.66", + "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.5.2", + "omeka/omeka-s": "<4.0.3", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", "open-web-analytics/open-web-analytics": "<1.7.4", "opencart/opencart": "<=3.0.3.7|>=4,<4.0.2.3-dev", "openid/php-openid": "<2.3", - "openmage/magento-lts": "<=19.5|>=20,<=20.1", + "openmage/magento-lts": "<20.2", "opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2", "orchid/platform": ">=9,<9.4.4|>=14.0.0.0-alpha4,<14.5", - "oro/commerce": ">=4.1,<5.0.6", + "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1", + "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1", "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7", - "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<4.2.8", + "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1", + "oro/customer-portal": ">=4.2,<=4.2.8|>=5,<5.0.11|>=5.1,<5.1.1", + "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<5.0.8", "oxid-esales/oxideshop-ce": "<4.5", "packbackbooks/lti-1-3-php-library": "<5", "padraic/humbug_get_contents": "<1.1.2", @@ -4575,6 +5678,7 @@ "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", + "phenx/php-svg-lib": "<0.5.1", "php-mod/curl": "<2.3.2", "phpbb/phpbb": "<3.2.10|>=3.3,<3.3.1", "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", @@ -4584,29 +5688,32 @@ "phpmyfaq/phpmyfaq": "<=3.1.7", "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", - "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.19", + "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.34", "phpservermon/phpservermon": "<3.6", - "phpsysinfo/phpsysinfo": "<3.2.5", + "phpsysinfo/phpsysinfo": "<3.4.3", "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", "phpxmlrpc/phpxmlrpc": "<4.9.2", "pi/pi": "<=2.5", - "pimcore/admin-ui-classic-bundle": "<1.1.2", + "pimcore/admin-ui-classic-bundle": "<1.2.2", "pimcore/customer-management-framework-bundle": "<3.4.2", "pimcore/data-hub": "<1.2.4", "pimcore/demo": "<10.3", "pimcore/perspective-editor": "<1.5.1", - "pimcore/pimcore": "<10.6.8", + "pimcore/pimcore": "<11.1.1", "pixelfed/pixelfed": "<=0.11.4", + "plotly/plotly.js": "<2.25.2", "pocketmine/bedrock-protocol": "<8.0.2", "pocketmine/pocketmine-mp": "<=4.23|>=5,<5.3.1", + "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", + "prestashop/blockreassurance": "<=5.1.3", "prestashop/blockwishlist": ">=2,<2.1.1", "prestashop/contactform": ">=1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": "<8.1.2", + "prestashop/prestashop": "<8.1.3", "prestashop/productcomments": "<5.0.2", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", @@ -4618,6 +5725,7 @@ "pterodactyl/panel": "<1.7", "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2", "ptrofimov/beanstalk_console": "<1.7.14", + "pubnub/pubnub": "<6.1", "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6.0-beta", "pyrocms/pyrocms": "<=3.9.1", @@ -4629,6 +5737,8 @@ "react/http": ">=0.7,<1.9", "really-simple-plugins/complianz-gdpr": "<6.4.2", "remdex/livehelperchat": "<3.99", + "reportico-web/reportico": "<=7.1.21", + "rhukster/dom-sanitizer": "<1.0.7", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", "roots/soil": "<4.1", @@ -4656,7 +5766,7 @@ "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", "silverstripe/framework": "<4.13.14|>=5,<5.0.13", - "silverstripe/graphql": "<3.5.2|>=4.0.0.0-alpha1,<4.0.0.0-alpha2|>=4.1.1,<4.1.2|>=4.2.2,<4.2.3", + "silverstripe/graphql": "<3.8.2|>=4,<4.1.3|>=4.2,<4.2.5|>=4.3,<4.3.4|>=5,<5.0.3", "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1", "silverstripe/recipe-cms": ">=4.5,<4.5.3", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", @@ -4667,11 +5777,12 @@ "silverstripe/userforms": "<3", "silverstripe/versioned-admin": ">=1,<1.11.1", "simple-updates/phpwhois": "<=1", - "simplesamlphp/saml2": "<1.15.4|>=2,<2.3.8|>=3,<3.1.4", + "simplesamlphp/saml2": "<1.15.4|>=2,<2.3.8|>=3,<3.1.4|==5.0.0.0-alpha12", "simplesamlphp/simplesamlphp": "<1.18.6", "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", "simplesamlphp/simplesamlphp-module-openid": "<1", "simplesamlphp/simplesamlphp-module-openidprovider": "<0.9", + "simplesamlphp/xml-security": "==1.6.11", "simplito/elliptic-php": "<1.0.6", "sitegeist/fluid-components": "<3.5", "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3", @@ -4679,7 +5790,7 @@ "slim/slim": "<2.6", "slub/slub-events": "<3.0.3", "smarty/smarty": "<3.1.48|>=4,<4.3.1", - "snipe/snipe-it": "<=6.2.1", + "snipe/snipe-it": "<=6.2.2", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", "spatie/browsershot": "<3.57.4", @@ -4688,7 +5799,7 @@ "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", "ssddanbrown/bookstack": "<22.02.3", - "statamic/cms": "<4.10", + "statamic/cms": "<4.36", "stormpath/sdk": "<9.9.99", "studio-42/elfinder": "<2.1.62", "subhh/libconnect": "<7.0.8|>=8,<8.1", @@ -4697,6 +5808,7 @@ "sumocoders/framework-user-bundle": "<1.4", "swag/paypal": "<5.4.4", "swiftmailer/swiftmailer": ">=4,<5.4.5", + "swiftyedit/swiftyedit": "<1.2", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", "sylius/grid-bundle": "<1.10.1", @@ -4728,17 +5840,21 @@ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", - "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2|>=5.4,<5.4.31|>=6,<6.3.8", "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": "<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", + "symfony/symfony": "<4.4.51|>=5,<5.4.31|>=6,<6.3.8", "symfony/translation": ">=2,<2.0.17", + "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8", "symfony/ux-autocomplete": "<2.11.2", "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", + "symfony/webhook": ">=6.3,<6.3.8", "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", + "symphonycms/symphony-2": "<2.6.4", "t3/dce": "<0.11.5|>=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", + "t3s/content-consent": "<1.0.3|>=2,<2.0.2", "tastyigniter/tastyigniter": "<3.3", "tcg/voyager": "<=1.4", "tecnickcom/tcpdf": "<6.2.22", @@ -4747,9 +5863,9 @@ "thelia/thelia": ">=2.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", "thinkcmf/thinkcmf": "<=5.1.7", - "thorsten/phpmyfaq": "<3.2.0.0-beta2", + "thorsten/phpmyfaq": "<3.2.2", "tikiwiki/tiki-manager": "<=17.1", - "tinymce/tinymce": "<5.10.7|>=6,<6.3.1", + "tinymce/tinymce": "<5.10.9|>=6,<6.7.3", "tinymighty/wiki-seo": "<1.2.2", "titon/framework": "<9.9.99", "tobiasbg/tablepress": "<=2.0.0.0-RC1", @@ -4763,24 +5879,25 @@ "twig/twig": "<1.44.7|>=2,<2.15.3|>=3,<3.4.3", "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", "typo3/cms-backend": ">=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", - "typo3/cms-core": "<8.7.51|>=9,<9.5.42|>=10,<10.4.39|>=11,<11.5.30|>=12,<12.4.4", + "typo3/cms-core": "<8.7.55|>=9,<9.5.44|>=10,<10.4.41|>=11,<11.5.33|>=12,<12.4.8", "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1", "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/cms-install": ">=12.2,<12.4.8", "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30", "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", - "typo3/html-sanitizer": ">=1,<1.5.1|>=2,<2.1.2", + "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3", "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10", "ua-parser/uap-php": "<3.8", "uasoft-indonesia/badaso": "<=2.9.7", - "unisharp/laravel-filemanager": "<=2.5.1", + "unisharp/laravel-filemanager": "<2.6.4", "userfrosting/userfrosting": ">=0.3.1,<4.6.3", "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "uvdesk/community-skeleton": "<=1.1.1", "vanilla/safecurl": "<0.9.2", - "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", + "verot/class.upload.php": "<=2.1.6", "vova07/yii2-fileapi-widget": "<0.1.9", "vrana/adminer": "<4.8.1", "waldhacker/hcaptcha": "<2.1.2", @@ -4796,6 +5913,8 @@ "wikibase/wikibase": "<=1.39.3", "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", + "winter/wn-backend-module": "<1.2.4", + "winter/wn-system-module": "<1.2.4", "wintercms/winter": "<1.2.3", "woocommerce/woocommerce": "<6.6", "wp-cli/wp-cli": "<2.5", @@ -4809,8 +5928,9 @@ "yetiforce/yetiforce-crm": "<=6.4", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", - "yiisoft/yii": "<1.1.27", + "yiisoft/yii": "<1.1.29", "yiisoft/yii2": "<2.0.38", + "yiisoft/yii2-authclient": "<2.2.15", "yiisoft/yii2-bootstrap": "<2.0.4", "yiisoft/yii2-dev": "<2.0.43", "yiisoft/yii2-elasticsearch": "<2.0.5", @@ -4822,7 +5942,7 @@ "yourls/yourls": "<=1.8.2", "zencart/zencart": "<=1.5.7.0-beta", "zendesk/zendesk_api_client_php": "<2.2.11", - "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", + "zendframework/zend-cache": "<2.4.8|>=2.5,<2.5.3", "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", @@ -4854,9 +5974,9 @@ "zenstruck/collection": "<0.2.1", "zetacomponents/mail": "<1.8.2", "zf-commons/zfc-user": "<1.2.2", - "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", + "zfcampus/zf-apigility-doctrine": "<1.0.3", "zfr/zfr-oauth2-server-module": "<0.1.2", - "zoujingli/thinkadmin": "<6.0.22" + "zoujingli/thinkadmin": "<=6.1.53" }, "default-branch": true, "type": "metapackage", @@ -4894,7 +6014,7 @@ "type": "tidelift" } ], - "time": "2023-10-09T22:04:13+00:00" + "time": "2024-01-05T21:04:02+00:00" }, { "name": "sebastian/cli-parser", @@ -5139,20 +6259,20 @@ }, { "name": "sebastian/complexity", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -5184,7 +6304,7 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" }, "funding": [ { @@ -5192,7 +6312,7 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2023-12-22T06:19:30+00:00" }, { "name": "sebastian/diff", @@ -5466,20 +6586,20 @@ }, { "name": "sebastian/lines-of-code", - "version": "1.0.3", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -5511,7 +6631,7 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" }, "funding": [ { @@ -5519,7 +6639,7 @@ "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2023-12-22T06:20:34+00:00" }, { "name": "sebastian/object-enumerator", @@ -5976,16 +7096,16 @@ }, { "name": "sebastianfeldmann/git", - "version": "3.9.2", + "version": "3.9.3", "source": { "type": "git", "url": "https://github.com/sebastianfeldmann/git.git", - "reference": "11c85123216b32985f8f0b8547a52390d87d544e" + "reference": "eb2ca84a2b45a461f0bf5d4fd400df805649e83a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianfeldmann/git/zipball/11c85123216b32985f8f0b8547a52390d87d544e", - "reference": "11c85123216b32985f8f0b8547a52390d87d544e", + "url": "https://api.github.com/repos/sebastianfeldmann/git/zipball/eb2ca84a2b45a461f0bf5d4fd400df805649e83a", + "reference": "eb2ca84a2b45a461f0bf5d4fd400df805649e83a", "shasum": "" }, "require": { @@ -6025,7 +7145,7 @@ ], "support": { "issues": "https://github.com/sebastianfeldmann/git/issues", - "source": "https://github.com/sebastianfeldmann/git/tree/3.9.2" + "source": "https://github.com/sebastianfeldmann/git/tree/3.9.3" }, "funding": [ { @@ -6033,20 +7153,20 @@ "type": "github" } ], - "time": "2023-10-04T10:59:08+00:00" + "time": "2023-10-13T09:10:48+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.7.2", + "version": "3.8.0", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "5805f7a4e4958dbb5e944ef1e6edae0a303765e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", - "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/5805f7a4e4958dbb5e944ef1e6edae0a303765e7", + "reference": "5805f7a4e4958dbb5e944ef1e6edae0a303765e7", "shasum": "" }, "require": { @@ -6056,7 +7176,7 @@ "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/phpcs", @@ -6075,96 +7195,58 @@ "authors": [ { "name": "Greg Sherwood", - "role": "lead" + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" } ], "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", "keywords": [ "phpcs", "standards", "static analysis" ], "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" - }, - "time": "2023-02-22T23:07:41+00:00" - }, - { - "name": "symfony/process", - "version": "v6.0.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "2114fd60f26a296cc403a7939ab91478475a33d4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/2114fd60f26a296cc403a7939ab91478475a33d4", - "reference": "2114fd60f26a296cc403a7939ab91478475a33d4", - "shasum": "" - }, - "require": { - "php": ">=8.0.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v6.0.19" + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" + "url": "https://github.com/PHPCSStandards", + "type": "github" }, { - "url": "https://github.com/fabpot", + "url": "https://github.com/jrfnl", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" } ], - "time": "2023-01-01T08:36:10+00:00" + "time": "2023-12-08T12:32:31+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", "shasum": "" }, "require": { @@ -6193,7 +7275,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + "source": "https://github.com/theseer/tokenizer/tree/1.2.2" }, "funding": [ { @@ -6201,7 +7283,7 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2023-11-20T00:12:19+00:00" } ], "aliases": [], @@ -6212,10 +7294,10 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^8.0.0", + "php": "^8.1.0", "ext-zlib": "*", "ext-mbstring": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/demo/demo1/demo-config.yaml b/demo/demo1/demo-config.yaml index d7bc976c..c9e06eed 100644 --- a/demo/demo1/demo-config.yaml +++ b/demo/demo1/demo-config.yaml @@ -1,7 +1,7 @@ -project_root: '%WORKING_DIR%/vendor/doctrine' +project_root: '%WORKING_DIR%' templates_dir: '%WORKING_DIR%/demo/demo1/templates' -cache_dir: '%WORKING_DIR%/demo/demo1/__cache' output_dir: "%WORKING_DIR%/demo/demo1/docs" +cache_dir: '%WORKING_DIR%/demo/demo1/__cache' output_dir_base_url: "/demo/demo1/docs" check_file_in_git_before_creating_doc: false language_handlers: @@ -9,9 +9,10 @@ language_handlers: class: \BumbleDocGen\LanguageHandler\Php\PhpHandler settings: file_source_base_url: '#' - async_source_loading_enabled: true source_locators: - class: \BumbleDocGen\Core\Parser\SourceLocator\RecursiveDirectoriesSourceLocator arguments: directories: - - "%project_root%" \ No newline at end of file + - "%project_root%/src" + - "%project_root%/demo/demo1/docs" + - "%project_root%/vendor/doctrine" diff --git a/demo/demo1/templates/classMap/index.md.twig b/demo/demo1/templates/classMap/index.md.twig index aefc1de6..c44ae3d1 100644 --- a/demo/demo1/templates/classMap/index.md.twig +++ b/demo/demo1/templates/classMap/index.md.twig @@ -1,10 +1,12 @@ -{% set title = 'Class map' %} +--- +title: Class map +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Class map epample" | textToHeading('H1') }} -{{ "{{ drawClassMap( phpClassEntityCollection ) }}" | textToCodeBlock('twig') }} +{{ "{{ drawClassMap( phpEntities ) }}" | textToCodeBlock('twig') }} **The result of the function execution:** -{{ drawClassMap( phpClassEntityCollection ) }} +{{ drawClassMap( phpEntities ) }} diff --git a/demo/demo1/templates/readme.md.twig b/demo/demo1/templates/readme.md.twig index 48d2e82e..95e4e70c 100644 --- a/demo/demo1/templates/readme.md.twig +++ b/demo/demo1/templates/readme.md.twig @@ -1,5 +1,6 @@ -{% set title = 'Demo 1' %} - +--- +title: Demo 1 +--- {{ "Demo 1" | textToHeading('H1') }} {{ drawDocumentationMenu() }} diff --git a/demo/demo1/templates/sectionWithSubsections/classListExample/index.md.twig b/demo/demo1/templates/sectionWithSubsections/classListExample/index.md.twig index b5be60c4..5aa0c947 100644 --- a/demo/demo1/templates/sectionWithSubsections/classListExample/index.md.twig +++ b/demo/demo1/templates/sectionWithSubsections/classListExample/index.md.twig @@ -1,10 +1,12 @@ -{% set title = 'Class list example' %} +--- +title: Class list example +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Class list" | textToHeading('H1') }} **List of classes filtered by the directory where they are located.** -{{ "{{ printEntityCollectionAsList( phpClassEntityCollection.filterByPaths(['/annotations']) ) }}" | textToCodeBlock('twig') }} +{{ "{{ printEntityCollectionAsList( phpEntities.filterByPaths(['/annotations']) ) }}" | textToCodeBlock('twig') }} -{{ printEntityCollectionAsList( phpClassEntityCollection.filterByPaths(['/annotations']) ) }} +{{ printEntityCollectionAsList( phpEntities.filterByPaths(['/annotations']) ) }} diff --git a/demo/demo1/templates/sectionWithSubsections/index.md.twig b/demo/demo1/templates/sectionWithSubsections/index.md.twig index 991ffa89..3df87f7a 100644 --- a/demo/demo1/templates/sectionWithSubsections/index.md.twig +++ b/demo/demo1/templates/sectionWithSubsections/index.md.twig @@ -1,4 +1,6 @@ -{% set title = 'Section with subsections' %} +--- +title: Section with subsections +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Section with subsections example" | textToHeading('H1') }} diff --git a/demo/demo1/templates/sectionWithSubsections/pageLinkingExample/index.md.twig b/demo/demo1/templates/sectionWithSubsections/pageLinkingExample/index.md.twig index 3f8d09a4..543908a4 100644 --- a/demo/demo1/templates/sectionWithSubsections/pageLinkingExample/index.md.twig +++ b/demo/demo1/templates/sectionWithSubsections/pageLinkingExample/index.md.twig @@ -1,4 +1,6 @@ -{% set title = 'Page linking example' %} +--- +title: Page linking example +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Page linking example" | textToHeading('H1') }} diff --git a/demo/demo2-add-missing-doc-blocks/demo-config.yaml b/demo/demo2-add-missing-doc-blocks/demo-config.yaml index 228705e0..77f76674 100644 --- a/demo/demo2-add-missing-doc-blocks/demo-config.yaml +++ b/demo/demo2-add-missing-doc-blocks/demo-config.yaml @@ -4,8 +4,6 @@ templates_dir: '%WORKING_DIR%/demo/demo2-add-missing-doc-blocks/templates' language_handlers: php: class: \BumbleDocGen\LanguageHandler\Php\PhpHandler - settings: - async_source_loading_enabled: true source_locators: - class: \BumbleDocGen\Core\Parser\SourceLocator\RecursiveDirectoriesSourceLocator arguments: diff --git a/demo/demo3-generating-readme-file/demo-config.yaml b/demo/demo3-generating-readme-file/demo-config.yaml index bca8adfc..c5556723 100644 --- a/demo/demo3-generating-readme-file/demo-config.yaml +++ b/demo/demo3-generating-readme-file/demo-config.yaml @@ -4,8 +4,6 @@ templates_dir: '%WORKING_DIR%/demo/demo3-generating-readme-file/templates' language_handlers: php: class: \BumbleDocGen\LanguageHandler\Php\PhpHandler - settings: - async_source_loading_enabled: true source_locators: - class: \BumbleDocGen\Core\Parser\SourceLocator\RecursiveDirectoriesSourceLocator arguments: diff --git a/demo/demo4-config-array/demoScript.php b/demo/demo4-config-array/demoScript.php index 701a7c17..5409140e 100644 --- a/demo/demo4-config-array/demoScript.php +++ b/demo/demo4-config-array/demoScript.php @@ -18,9 +18,6 @@ 'language_handlers' => [ 'php' => [ 'class' => \BumbleDocGen\LanguageHandler\Php\PhpHandler::class, - 'settings' => [ - 'async_source_loading_enabled' => true, - ], ] ], 'source_locators' => [ diff --git a/demo/demo4-config-array/templates/README.md.twig b/demo/demo4-config-array/templates/README.md.twig index f370c324..db1b72e3 100644 --- a/demo/demo4-config-array/templates/README.md.twig +++ b/demo/demo4-config-array/templates/README.md.twig @@ -1,8 +1,9 @@ -{% set title = 'Demo 5' %} - +--- +title: Demo 5 +--- {{ "Demo 5" | textToHeading('H1') }} -{{ printEntityCollectionAsList( phpClassEntityCollection.filterByPaths(['/annotations']) ) }} +{{ printEntityCollectionAsList( phpEntities.filterByPaths(['/annotations']) ) }} To update this documentation, run the following command: diff --git a/demo/demo6-reflection-api/demoScript.php b/demo/demo6-reflection-api/demoScript.php new file mode 100644 index 00000000..6c4dd144 --- /dev/null +++ b/demo/demo6-reflection-api/demoScript.php @@ -0,0 +1,94 @@ +#!/usr/bin/env php +createRootEntitiesCollection($reflectionApiConfig); + + // Initially, the data in the collection is not loaded + assert(0 === count(iterator_to_array($entitiesCollection))); + + // The get method will not return the entity because the collection is still empty + $filename = $entitiesCollection->get(ProjectParser::class)?->getAbsoluteFileName(); + assert(is_null($filename)); + + // But there is a special method that can load an entity according to psr4/psr0 from the project’s composer configuration file + $filename = $entitiesCollection->getLoadedOrCreateNew(ProjectParser::class)?->getAbsoluteFileName(); + assert(!is_null($filename)); + + $sourceLocators = SourceLocatorsCollection::create( + new RecursiveDirectoriesSourceLocator([dirname(__DIR__, 2) . '/src']), + new DirectoriesSourceLocator([__DIR__]) + ); + + // We can populate the collection with data + $entitiesCollection->loadEntities( + $sourceLocators, // Source locators are needed so that we can determine all the files that will be traversed to fill the collection with data + new FileTextContainsCondition('class ProjectParser') // We can define special filters according to which entities will be loaded + ); + + // According to the specified resource locators and filters, only 1 entity was found + assert(1 === count(iterator_to_array($entitiesCollection))); + + // Now this entity is found using the get method + $filename = $entitiesCollection->get(ProjectParser::class)?->getAbsoluteFileName(); + assert(!is_null($filename)); + + // Load all entities without any filtering + $entitiesCollection->loadEntities($sourceLocators); + + // There are now more than just 1 entity + assert(1 < count(iterator_to_array($entitiesCollection))); + + /** ================================================= **/ + + $entitiesToDisplayExample = $entitiesCollection + ->filterByInterfaces([ + \BumbleDocGen\Core\Parser\Entity\EntityInterface::class + ]) + ->filterByPaths([ + '/src/LanguageHandler/Php/Parser/Entity/SubEntity/Property', + '/src/LanguageHandler/Php/Parser/Entity/SubEntity/Method' + ]) + ->getOnlyInstantiable() + ->toArray(); + + $apiConfigEntity = $entitiesCollection->findEntity('ReflectionApiConfig.php'); + if ($apiConfigEntity) { + $entitiesToDisplayExample[] = $apiConfigEntity; + } + + $trueCondition = $entitiesCollection->findEntity('TrueCondition'); + if ($trueCondition) { + $entitiesToDisplayExample[] = $trueCondition; + } + + foreach ($entitiesToDisplayExample as $entity) { + echo "================================================\n\n"; + echo "Class: {$entity->getName()}\n"; + $parentClassName = $entity->getParentClass()?->getName() ?: '-'; + echo "Parent class: {$parentClassName}\n"; + echo "File name: {$entity->getAbsoluteFileName()}\n"; + echo "Methods count: " . count($entity->getMethods()) . "\n"; + echo "Methods: " . implode(' | ', array_map(fn(MethodEntityInterface $method): string=>$method->getName(), $entity->getMethods())) . "\n"; + echo "Properties count: " . count($entity->getProperties()) . "\n"; + echo "Constants count: " . count($entity->getConstants()) . "\n\n"; + } +} catch (Exception | \Psr\Cache\InvalidArgumentException $e) { + die($e->getMessage()); +} diff --git a/docs/README.md b/docs/README.md index 99ec2743..df55c273 100644 --- a/docs/README.md +++ b/docs/README.md @@ -19,10 +19,10 @@ Add the BumbleDocGen to the `composer.json` file of your project using the follo

Core Features

-- 🔍 Parsing: - BumbleDocGen scans your project by parsing PHP files, extracting comments, and providing detailed models of your code. +- 🔍 Parsing: + BumbleDocGen analyzes your code and provides a convenient Reflection API. -- ✍️ Rendering: +- ✍️ Rendering: BumbleDocGen generates markdown content using templates and fills them with data obtained from parsing your code. - 🧠 AI tools for documentation generation: @@ -36,16 +36,17 @@ BumbleDocGen's interface consists of mainly two classes: DocGenerator provides main operations for generating the documents. - - `addMissingDocBlocks()`: This method creates missing docBlocks in your code. - - `fillInReadmeMdTemplate()`: This method prepares the `README.md` file using a predefined template. - - `generate()`: This method produces all necessary documentation. - - `generateProjectTemplatesStructure()`: This method creates a structure for project templates. - - `parseAndGetRootEntityCollectionsGroup()`: This method parses your project's files and collects information for the documentation. + - [addDocBlocks()](/docs/classes/DocGenerator.md#madddocblocks): Generate missing docBlocks with LLM for project class methods that are available for documentation + - [generate()](/docs/classes/DocGenerator.md#mgenerate): Generates documentation using configuration + - [generateReadmeTemplate()](/docs/classes/DocGenerator.md#mgeneratereadmetemplate): Creates a `README.md` template filled with basic information using LLM + - [serve()](/docs/classes/DocGenerator.md#mserve): Serve documentation - DocGeneratorFactory provides a method for creating `DocGenerator` instance. - - `create(configurationFiles: string)`: This method creates a `DocGenerator` instance using provided configuration files. - - `setCustomConfigurationParameters(customConfigurationParameters: array)`: This method sets custom configuration parameters for the `DocGenerator` creation. + - [create()](/docs/classes/DocGeneratorFactory.md#mcreate): Creates a documentation generator instance using configuration files + - [createByConfigArray()](/docs/classes/DocGeneratorFactory.md#mcreatebyconfigarray): Creates a documentation generator instance using an array containing the configuration + - [createConfiguration()](/docs/classes/DocGeneratorFactory.md#mcreateconfiguration): Creating a project configuration instance + - [createRootEntitiesCollection()](/docs/classes/DocGeneratorFactory.md#mcreaterootentitiescollection): Creating a collection of entities (see `ReflectionAPI`)

Examples of usage

@@ -95,4 +96,4 @@ To update this documentation, run the following command:

-Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
Last modified date: Sat Oct 28 11:03:31 2023 +0300
Page content update date: Mon Nov 06 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 Dec 23 23:00:37 2023 +0300
Page content update date: Mon Jan 15 2024
Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/assets/error_example.png b/docs/assets/error_example.png new file mode 100644 index 00000000..c070254f Binary files /dev/null and b/docs/assets/error_example.png differ diff --git a/docs/classes/DocGenerator.md b/docs/classes/DocGenerator.md index f52e4fcb..fed1ae00 100644 --- a/docs/classes/DocGenerator.md +++ b/docs/classes/DocGenerator.md @@ -1,8 +1,7 @@ - BumbleDocGen / DocGenerator

- DocGenerator class: + DocGenerator class:

@@ -35,16 +34,31 @@ final class DocGenerator
  1. addDocBlocks - - Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
  2. + - Generate missing docBlocks with LLM for project class methods that are available for documentation +
  3. + addPlugin +
  4. generate - Generates documentation using configuration
  5. generateReadmeTemplate + - Creates a `README.md` template filled with basic information using LLM
  6. +
  7. + getConfiguration +
  8. +
  9. + getConfigurationKey +
  10. +
  11. + getConfigurationKeys
  12. parseAndGetRootEntityCollectionsGroup
  13. +
  14. + serve + - Serve documentation
@@ -52,11 +66,11 @@ final class DocGenerator @@ -71,11 +85,11 @@ final class DocGenerator ```php -public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfony\Component\Console\Style\OutputStyle $io, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\Core\Parser\ProjectParser $parser, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Renderer\Renderer $renderer, \BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler $generationErrorsHandler, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \Monolog\Logger $logger); +public function __construct(\Symfony\Component\Console\Style\OutputStyle $io, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\Core\Parser\ProjectParser $parser, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Renderer\Renderer $renderer, \BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler $generationErrorsHandler, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \BumbleDocGen\Console\ProgressBar\ProgressBarFactory $progressBarFactory, \DI\Container $diContainer, \BumbleDocGen\Core\Cache\SharedCompressedDocumentFileCache $sharedCompressedDocumentFileCache, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Monolog\Logger $logger); ``` @@ -91,11 +105,6 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo - - $fs - \Symfony\Component\Filesystem\Filesystem - - - $io \Symfony\Component\Console\Style\OutputStyle @@ -135,6 +144,26 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo $rootEntityCollectionsGroup \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup - + + + $progressBarFactory + \BumbleDocGen\Console\ProgressBar\ProgressBarFactory + - + + + $diContainer + \DI\Container + - + + + $sharedCompressedDocumentFileCache + \BumbleDocGen\Core\Cache\SharedCompressedDocumentFileCache + - + + + $localObjectCache + \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache + - $logger @@ -146,6 +175,19 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo +Throws: + +
@@ -153,14 +195,14 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo ```php public function addDocBlocks(\BumbleDocGen\AI\ProviderInterface $aiProvider): void; ``` -
Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
+
Generate missing docBlocks with LLM for project class methods that are available for documentation
Parameters: @@ -193,11 +235,62 @@ public function addDocBlocks(\BumbleDocGen\AI\ProviderInterface $aiProvider): vo \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException + +
  • + \JsonException
  • + + + +
    +
    +
    + + + +```php +public function addPlugin(\BumbleDocGen\Core\Plugin\PluginInterface|string $plugin): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $plugin\BumbleDocGen\Core\Plugin\PluginInterface | string-
    + +Return value: void + + +Throws: +
    @@ -207,7 +300,7 @@ public function addDocBlocks(\BumbleDocGen\AI\ProviderInterface $aiProvider): vo ```php @@ -238,14 +331,14 @@ public function generate(): void; ```php public function generateReadmeTemplate(\BumbleDocGen\AI\ProviderInterface $aiProvider): void; ``` - +
    Creates a `README.md` template filled with basic information using LLM
    Parameters: @@ -272,8 +365,111 @@ public function generateReadmeTemplate(\BumbleDocGen\AI\ProviderInterface $aiPro Throws: + + +
    +
    + + + +```php +public function getConfiguration(): \BumbleDocGen\Core\Configuration\Configuration; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Configuration\Configuration + + +
    +
    +
    + + + +```php +public function getConfigurationKey(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + + +Throws: + + +
    +
    +
    + + + +```php +public function getConfigurationKeys(): void; +``` + + + +Parameters: not specified + +Return value: void + + +Throws: +

    +
    + + + +```php +public function serve(callable|null $afterPreparation = null, callable|null $afterDocChanged = null, int $timeout = 1000000): void; +``` + +
    Serve documentation
    + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $afterPreparationcallable | null-
    $afterDocChangedcallable | null-
    $timeoutint-
    + +Return value: void - \ No newline at end of file + +Throws: + + +
    +
    diff --git a/docs/classes/DocGeneratorFactory.md b/docs/classes/DocGeneratorFactory.md index f6249e31..884db17b 100644 --- a/docs/classes/DocGeneratorFactory.md +++ b/docs/classes/DocGeneratorFactory.md @@ -1,8 +1,7 @@ - BumbleDocGen / DocGeneratorFactory

    - DocGeneratorFactory class: + DocGeneratorFactory class:

    @@ -35,13 +34,16 @@ final class DocGeneratorFactory
    1. create -
    2. + - Creates a documentation generator instance using configuration files
    3. createByConfigArray -
    4. + - Creates a documentation generator instance using an array containing the configuration
    5. createConfiguration -
    6. + - Creating a project configuration instance +
    7. + createRootEntitiesCollection + - Creating a collection of entities (see `ReflectionAPI`)
    8. setCustomConfigurationParameters
    9. @@ -63,7 +65,7 @@ final class DocGeneratorFactory ```php @@ -100,14 +102,14 @@ public function __construct(string $diConfig = __DIR__ . '/di-config.php'); ```php public function create(string|null ...$configurationFiles): \BumbleDocGen\DocGenerator; ``` - +
      Creates a documentation generator instance using configuration files
      Parameters: @@ -151,14 +153,14 @@ public function create(string|null ...$configurationFiles): \BumbleDocGen\DocGen ```php public function createByConfigArray(array $config): \BumbleDocGen\DocGenerator; ``` - +
      Creates a documentation generator instance using an array containing the configuration
      Parameters: @@ -202,14 +204,14 @@ public function createByConfigArray(array $config): \BumbleDocGen\DocGenerator; ```php public function createConfiguration(string ...$configurationFiles): \BumbleDocGen\Core\Configuration\Configuration; ``` - +
      Creating a project configuration instance
      Parameters: @@ -233,6 +235,57 @@ public function createConfiguration(string ...$configurationFiles): \BumbleDocGe Return value: \BumbleDocGen\Core\Configuration\Configuration +Throws: + + + +
      +
      + + + +```php +public function createRootEntitiesCollection(\BumbleDocGen\Core\Configuration\ReflectionApiConfig $reflectionApiConfig): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection; +``` + +
      Creating a collection of entities (see `ReflectionAPI`)
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $reflectionApiConfig\BumbleDocGen\Core\Configuration\ReflectionApiConfig-
      + +Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection + + Throws:

      - - \ No newline at end of file diff --git a/docs/classes/InvalidConfigurationParameterException.md b/docs/classes/InvalidConfigurationParameterException.md index abadd7bb..2a957a0a 100644 --- a/docs/classes/InvalidConfigurationParameterException.md +++ b/docs/classes/InvalidConfigurationParameterException.md @@ -1,4 +1,3 @@ - BumbleDocGen / InvalidConfigurationParameterException

      @@ -12,380 +11,21 @@ ```php namespace BumbleDocGen\Core\Configuration\Exception; -final class InvalidConfigurationParameterException extends \Exception implements \Throwable, \Stringable +final class InvalidConfigurationParameterException extends \Exception ``` -
      Exception is the base class for -all Exceptions.
      -See: - -

      Initialization methods:

      -
        -
      1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
      2. -
      -

      Methods:

      -
        -
      1. - __toString - - String representation of the exception
      2. -
      3. - __wakeup -
      4. -
      5. - getCode - - Gets the Exception code
      6. -
      7. - getFile - - Gets the file in which the exception occurred
      8. -
      9. - getLine - - Gets the line in which the exception occurred
      10. -
      11. - getMessage - - Gets the Exception message
      12. -
      13. - getPrevious - - Returns previous Exception
      14. -
      15. - getTrace - - Gets the stack trace
      16. -
      17. - getTraceAsString - - Gets the stack trace as a string
      18. -
      - - -

      Method details:

      - -
      - - - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
      Construct the exception. Note: The message is NOT binary safe.
      - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $messagestring[optional] The Exception message to throw.
      $codeint[optional] The Exception code.
      $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
      - - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
      String representation of the exception
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
      Gets the Exception code
      - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
      Gets the file in which the exception occurred
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
      Gets the line in which the exception occurred
      - -Parameters: not specified - -Return value: int - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
      Gets the Exception message
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
      Returns previous Exception
      - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
      Gets the stack trace
      - -Parameters: not specified - -Return value: array - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
      Gets the stack trace as a string
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      - - \ No newline at end of file diff --git a/docs/classes/ReflectionException.md b/docs/classes/ReflectionException.md deleted file mode 100644 index 48c2d87a..00000000 --- a/docs/classes/ReflectionException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / ReflectionException
      - -

      - ReflectionException class: -

      - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception; - -final class ReflectionException extends \Exception implements \Throwable, \Stringable -``` - -
      Exception is the base class for -all Exceptions.
      - -See: - - - - - - - -

      Initialization methods:

      - -
        -
      1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
      2. -
      - -

      Methods:

      - -
        -
      1. - __toString - - String representation of the exception
      2. -
      3. - __wakeup -
      4. -
      5. - getCode - - Gets the Exception code
      6. -
      7. - getFile - - Gets the file in which the exception occurred
      8. -
      9. - getLine - - Gets the line in which the exception occurred
      10. -
      11. - getMessage - - Gets the Exception message
      12. -
      13. - getPrevious - - Returns previous Exception
      14. -
      15. - getTrace - - Gets the stack trace
      16. -
      17. - getTraceAsString - - Gets the stack trace as a string
      18. -
      - - - - - - - -

      Method details:

      - -
      - - - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
      Construct the exception. Note: The message is NOT binary safe.
      - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $messagestring[optional] The Exception message to throw.
      $codeint[optional] The Exception code.
      $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
      - - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
      String representation of the exception
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
      Gets the Exception code
      - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
      Gets the file in which the exception occurred
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
      Gets the line in which the exception occurred
      - -Parameters: not specified - -Return value: int - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
      Gets the Exception message
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
      Returns previous Exception
      - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
      Gets the stack trace
      - -Parameters: not specified - -Return value: array - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
      Gets the stack trace as a string
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      - - \ No newline at end of file diff --git a/docs/shared_c.cache b/docs/shared_c.cache index de3e3629..bb842d99 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/readme.md b/docs/tech/01_configuration.md similarity index 74% rename from docs/tech/1.configuration/readme.md rename to docs/tech/01_configuration.md index d9796223..26daec63 100644 --- a/docs/tech/1.configuration/readme.md +++ b/docs/tech/01_configuration.md @@ -1,4 +1,4 @@ - BumbleDocGen / Technical description of the project / Configuration files
      + BumbleDocGen / Technical description of the project / Configuration

      Configuration

      @@ -7,7 +7,7 @@ They can be in different formats: yaml, demo-5) -During the instance creation process, configuration data is loaded into Configuration class, and the code works directly with it. +During the instance creation process, configuration data is loaded into Configuration class, and the code works directly with it.

      Configuration file example

      @@ -24,7 +24,6 @@ Let's look at an example of a real configuration in more detail: class: \BumbleDocGen\LanguageHandler\Php\PhpHandler settings: file_source_base_url: 'https://github.com/bumble-tech/bumble-doc-gen/blob/master' - async_source_loading_enabled: true source_locators: - class: \BumbleDocGen\Core\Parser\SourceLocator\RecursiveDirectoriesSourceLocator arguments: @@ -37,6 +36,7 @@ Let's look at an example of a real configuration in more detail: - class: \SelfDocConfig\Twig\CustomFunction\FindEntitiesClassesByCollectionClassName - class: \SelfDocConfig\Twig\CustomFunction\PrintClassCollectionAsGroupedTable - class: \SelfDocConfig\Twig\CustomFunction\GetConfigParametersDescription + - class: \SelfDocConfig\Twig\CustomFunction\GetConsoleCommands plugins: - class: \SelfDocConfig\Plugin\TwigFilterClassParser\TwigFilterClassParserPlugin - class: \SelfDocConfig\Plugin\TwigFunctionClassParser\TwigFunctionClassParserPlugin @@ -56,6 +56,9 @@ In this example, we see the real configuration of the self-documentation of this // Multiple files $docGenerator = (new DocGeneratorFactory())->create('config.yaml', 'config2.yaml', 'config3.xml'); + // Passing configuration as an array + $docGenerator = (new DocGeneratorFactory())->createByConfigArray($configArray); + ``` @@ -119,6 +122,12 @@ The inheritance algorithm is as follows: scalar types can be overwritten by each 'git' Path to git client + + render_with_front_matter + bool + false + Do not remove the front matter block from templates when creating documents + check_file_in_git_before_creating_doc bool @@ -128,7 +137,7 @@ The inheritance algorithm is as follows: scalar types can be overwritten by each page_link_processor PageLinkProcessorInterface - BasePageLinkProcessor + BasePageLinkProcessor Link handler class on documentation pages @@ -154,21 +163,21 @@ The inheritance algorithm is as follows: scalar types can be overwritten by each array<CustomFunctionInterface> -- DrawDocumentationMenu +- DrawDocumentationMenu -- DrawDocumentedEntityLink +- DrawDocumentedEntityLink -- GeneratePageBreadcrumbs +- GeneratePageBreadcrumbs -- GetDocumentedEntityUrl +- GetDocumentedEntityUrl -- LoadPluginsContent +- LoadPluginsContent -- PrintEntityCollectionAsList +- PrintEntityCollectionAsList -- GetDocumentationPageUrl +- GetDocumentationPageUrl -- FileGetContents +- FileGetContents Functions that can be used in document templates @@ -178,23 +187,25 @@ The inheritance algorithm is as follows: scalar types can be overwritten by each array<CustomFilterInterface> -- AddIndentFromLeft +- AddIndentFromLeft + +- FixStrSize -- FixStrSize +- PrepareSourceLink -- PrepareSourceLink +- Quotemeta -- Quotemeta +- RemoveLineBrakes -- RemoveLineBrakes +- StrTypeToUrl -- StrTypeToUrl +- TextToCodeBlock -- TextToCodeBlock +- TextToHeading -- TextToHeading +- PregMatch -- PregMatch +- Implode Filters that can be used in document templates @@ -204,9 +215,9 @@ The inheritance algorithm is as follows: scalar types can be overwritten by each array<PluginInterface>|null -- PageHtmlLinkerPlugin +- PageHtmlLinkerPlugin -- PageLinkerPlugin +- PageLinkerPlugin List of plugins @@ -222,4 +233,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: Sat Oct 28 11:03:31 2023 +0300
      Page content update date: Mon Nov 06 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 Jan 12 18:53:16 2024 +0300
      Page content update date: Mon Jan 15 2024
      Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/classes/ConstantEntityCollection.md b/docs/tech/02_parser/classes/ClassConstantEntitiesCollection.md similarity index 65% rename from docs/tech/classes/ConstantEntityCollection.md rename to docs/tech/02_parser/classes/ClassConstantEntitiesCollection.md index 46430bb9..a0ce2089 100644 --- a/docs/tech/classes/ConstantEntityCollection.md +++ b/docs/tech/02_parser/classes/ClassConstantEntitiesCollection.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / ConstantEntityCollection
      + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / ClassConstantEntitiesCollection

      - ConstantEntityCollection class: + ClassConstantEntitiesCollection class:

      @@ -10,9 +9,9 @@ ```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant; -final class ConstantEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable +final class ClassConstantEntitiesCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate ``` @@ -41,19 +40,19 @@ final class ConstantEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Ba
    10. getIterator - - Retrieve an external iterator
    11. +
    12. has -
    13. + - Check if an entity has been added to the collection
    14. isEmpty -
    15. + - Check if the collection is empty or not
    16. loadConstantEntities
    17. remove -
    18. + - Remove an entity from a collection
    19. unsafeGet
    20. @@ -72,11 +71,11 @@ final class ConstantEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Ba ```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory); +public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory); ``` @@ -94,7 +93,7 @@ public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Clas $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -119,11 +118,11 @@ public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Clas ```php -public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity $constantEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntityCollection; +public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity $constantEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection; ``` @@ -141,7 +140,7 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEnti $constantEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity - @@ -152,7 +151,7 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEnti -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection @@ -162,11 +161,11 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEnti ```php -public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity|null; +public function get(string $objectName): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; ``` @@ -190,7 +189,7 @@ public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parse -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity @@ -209,26 +208,13 @@ public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parse public function getIterator(): \Generator; ``` -
      Retrieve an external iterator
      + Parameters: not specified Return value: \Generator -Throws: - - - -See: -
      @@ -236,7 +222,7 @@ public function getIterator(): \Generator; ```php @@ -245,7 +231,7 @@ public function getIterator(): \Generator; public function has(string $objectName): bool; ``` - +
      Check if an entity has been added to the collection
      Parameters: @@ -276,7 +262,7 @@ public function has(string $objectName): bool; ```php @@ -285,7 +271,7 @@ public function has(string $objectName): bool; public function isEmpty(): bool; ``` - +
      Check if the collection is empty or not
      Parameters: not specified @@ -299,7 +285,7 @@ public function isEmpty(): bool; ```php @@ -322,10 +308,7 @@ public function loadConstantEntities(): void; \DI\DependencyException
    21. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    22. - -
    23. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    24. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -336,7 +319,7 @@ public function loadConstantEntities(): void; ```php @@ -345,7 +328,7 @@ public function loadConstantEntities(): void; public function remove(string $objectName): void; ``` - +
      Remove an entity from a collection
      Parameters: @@ -376,11 +359,11 @@ public function remove(string $objectName): void; ```php -public function unsafeGet(string $constantName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity|null; +public function unsafeGet(string $constantName): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; ``` @@ -404,7 +387,7 @@ public function unsafeGet(string $constantName): \BumbleDocGen\LanguageHandler\P -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity Throws: @@ -412,18 +395,13 @@ public function unsafeGet(string $constantName): \BumbleDocGen\LanguageHandler\P
    25. \DI\NotFoundException
    26. -
    27. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    28. -
    29. \DI\DependencyException
    30. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    31. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException

      - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/ConstantEntity.md b/docs/tech/02_parser/classes/ClassConstantEntity.md similarity index 54% rename from docs/tech/2.parser/classes/ConstantEntity.md rename to docs/tech/02_parser/classes/ClassConstantEntity.md index 4c4312f3..9d7979b8 100644 --- a/docs/tech/2.parser/classes/ConstantEntity.md +++ b/docs/tech/02_parser/classes/ClassConstantEntity.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / ConstantEntity
      + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / ClassConstantEntity

      - ConstantEntity class: + ClassConstantEntity class:

      @@ -10,9 +9,9 @@ ```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant; -class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface +class ClassConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface ```
      Class constant entity
      @@ -33,12 +32,12 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas

      Methods:

        -
      1. - entityCacheIsOutdated -
      2. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      3. +
      4. + getAst + - Get AST for this entity
      5. getCacheKey
      6. @@ -46,107 +45,119 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas getCachedEntityDependencies
      7. - getDescription + getCurrentRootEntity
      8. +
      9. + getDescription + - Get entity description
      10. getDescriptionLinks - Get parsed links from description and doc blocks `see` and `link`
      11. getDocBlock -
      12. + - Get DocBlock for current entity
      13. getDocComment - Get the doc comment of an entity
      14. getDocCommentEntity -
      15. + - Link to an entity where docBlock is implemented for this entity +
      16. + getDocCommentLine + - Get the code line number where the docBlock of the current entity begins
      17. getDocNote -
      18. + - Get the note annotation value
      19. getEndLine -
      20. + - Get the line number of the end of a constant's code in a file
      21. getExamples - Get parsed examples from `examples` doc block
      22. -
      23. - getFileName -
      24. getFileSourceLink
      25. getFirstExample - - Get first example from @examples doc block
      26. + - Get first example from `examples` doc block
      27. getImplementingClass -
      28. + - Get the class like entity in which the current entity was implemented
      29. getImplementingClassName
      30. -
      31. - getImplementingReflectionClass -
      32. getName -
      33. + - Constant name
      34. getNamespaceName -
      35. + - Get the name of the namespace where the current class is implemented
      36. getObjectId - Get entity unique ID
      37. - getPhpHandlerSettings -
      38. + getRelativeFileName + - File name relative to project_root configuration parameter
      39. getRootEntity -
      40. + - Get the class like entity where this constant was obtained
      41. getRootEntityCollection - - Get parent collection of entities
      42. + - Get the collection of root entities to which this entity belongs
      43. getShortName -
      44. + - Constant short name
      45. getStartLine -
      46. + - Get the line number of the beginning of the constant code in a file
      47. getThrows - Get parsed throws from `throws` doc block
      48. - hasDescriptionLinks + getThrowsDocBlockLinks
      49. +
      50. + getValue + - Get the compiled value of a constant
      51. +
      52. + hasDescriptionLinks + - Checking if an entity has links in its description
      53. hasExamples -
      54. + - Checking if an entity has `example` docBlock
      55. hasThrows -
      56. + - Checking if an entity has `throws` docBlock +
      57. + isApi + - Checking if an entity has `api` docBlock
      58. isDeprecated -
      59. + - Checking if an entity has `deprecated` docBlock +
      60. + isEntityCacheOutdated + - Checking if the entity cache is out of date
      61. isEntityDataCacheOutdated
      62. isEntityFileCanBeLoad -
      63. + - Checking if entity data can be retrieved
      64. isInternal -
      65. + - Checking if an entity has `internal` docBlock
      66. isPrivate -
      67. + - Check if a constant is a private constant
      68. isProtected -
      69. + - Check if a constant is a protected constant
      70. isPublic -
      71. + - Check if a constant is a public constant
      72. reloadEntityDependenciesCache -
      73. + - Update entity dependency cache
      74. removeEntityValueFromCache
      75. @@ -156,6 +167,25 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
      +

      Constants:

      + @@ -168,11 +198,11 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $constantName, string $declaringClassName, string $implementingClassName); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $constantName, string $implementingClassName); ``` @@ -195,7 +225,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -217,11 +247,6 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $constantName string - - - - $declaringClassName - string - - $implementingClassName @@ -238,31 +263,28 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf
      ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function entityCacheIsOutdated(): bool; +public function getAbsoluteFileName(): null|string; ``` - +
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      Parameters: not specified -Return value: bool +Return value: null | string Throws: @@ -271,28 +293,26 @@ public function entityCacheIsOutdated(): bool;
      ```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getAbsoluteFileName(): string|null; +public function getAst(): \PhpParser\Node\Stmt\ClassConst; ``` -
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      +
      Get AST for this entity
      Parameters: not specified -Return value: string | null +Return value: \PhpParser\Node\Stmt\ClassConst Throws: @@ -303,7 +323,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -326,7 +346,7 @@ public function getCacheKey(): string; ```php @@ -347,8 +367,34 @@ public function getCachedEntityDependencies(): array;
    32. \Psr\Cache\InvalidArgumentException
    33. +
    34. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    35. + +
      +
      +
      + +
        +
      • # + getCurrentRootEntity + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +

      @@ -356,14 +402,16 @@ public function getCachedEntityDependencies(): array; ```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + public function getDescription(): string; ``` - +
      Get entity description
      Parameters: not specified @@ -373,10 +421,7 @@ public function getDescription(): string; Throws: @@ -387,7 +432,7 @@ public function getDescription(): string; ```php @@ -406,7 +451,7 @@ public function getDescriptionLinks(): array; Throws:
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocCommentLine(): null|int; +``` +
      Get the code line number where the docBlock of the current entity begins
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity +Return value: null | int +Throws: + +

      @@ -505,7 +576,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -514,13 +585,20 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ public function getDocNote(): string; ``` - +
      Get the note annotation value
      Parameters: not specified Return value: string +Throws: + +

      @@ -528,14 +606,14 @@ public function getDocNote(): string; ```php public function getEndLine(): int; ``` - +
      Get the line number of the end of a constant's code in a file
      Parameters: not specified @@ -545,10 +623,7 @@ public function getEndLine(): int; Throws: @@ -559,7 +634,7 @@ public function getEndLine(): int; ```php @@ -575,34 +650,10 @@ public function getExamples(): array; Return value: array -
      -
      -
      - - - -```php -public function getFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - Throws: @@ -613,13 +664,13 @@ public function getFileName(): string|null; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -643,13 +694,13 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string Throws: @@ -660,7 +711,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -669,13 +720,20 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getFirstExample(): string; ``` -
      Get first example from @examples doc block
      +
      Get first example from `examples` doc block
      Parameters: not specified Return value: string +Throws: + +

      @@ -683,18 +741,18 @@ public function getFirstExample(): string; ```php -public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
      Get the class like entity in which the current entity was implemented
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
      @@ -704,7 +762,7 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php @@ -718,37 +776,6 @@ public function getImplementingClassName(): string; Return value: string -
      -
      -
      - - - -```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: not specified - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: - -

      @@ -756,14 +783,14 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php public function getName(): string; ``` - +
      Constant name
      Parameters: not specified @@ -777,30 +804,20 @@ public function getName(): string; ```php public function getNamespaceName(): string; ``` - +
      Get the name of the namespace where the current class is implemented
      Parameters: not specified Return value: string -Throws: - -

      @@ -808,7 +825,7 @@ public function getNamespaceName(): string; ```php @@ -829,22 +846,30 @@ public function getObjectId(): string;
      ```php -public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; -``` +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity +public function getRelativeFileName(): null|string; +``` +
      File name relative to project_root configuration parameter
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings +Return value: null | string + +See: +

      @@ -852,18 +877,18 @@ public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHa ```php -public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
      Get the class like entity where this constant was obtained
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
      @@ -873,18 +898,18 @@ public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity ```php -public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` -
      Get parent collection of entities
      +
      Get the collection of root entities to which this entity belongs
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection
      @@ -894,20 +919,26 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php public function getShortName(): string; ``` - +
      Constant short name
      Parameters: not specified Return value: string + +See: +
      @@ -915,14 +946,14 @@ public function getShortName(): string; ```php public function getStartLine(): int; ``` - +
      Get the line number of the beginning of the constant code in a file
      Parameters: not specified @@ -932,10 +963,7 @@ public function getStartLine(): int; Throws: @@ -946,7 +974,7 @@ public function getStartLine(): int; ```php @@ -965,10 +993,68 @@ public function getThrows(): array; Throws: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +public function getValue(): string|array|int|bool|null|float; +``` + +
      Get the compiled value of a constant
      + +Parameters: not specified + +Return value: string | array | int | bool | null | float + + +Throws: + @@ -979,7 +1065,7 @@ public function getThrows(): array; ```php @@ -988,7 +1074,7 @@ public function getThrows(): array; public function hasDescriptionLinks(): bool; ``` - +
      Checking if an entity has links in its description
      Parameters: not specified @@ -1009,7 +1095,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1018,13 +1104,20 @@ public function hasDescriptionLinks(): bool; public function hasExamples(): bool; ``` - +
      Checking if an entity has `example` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -1032,7 +1125,7 @@ public function hasExamples(): bool; ```php @@ -1041,13 +1134,50 @@ public function hasExamples(): bool; public function hasThrows(): bool; ``` +
      Checking if an entity has `throws` docBlock
      + +Parameters: not specified + +Return value: bool +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` + +
      Checking if an entity has `api` docBlock
      + Parameters: not specified Return value: bool +Throws: + +

      @@ -1055,7 +1185,7 @@ public function hasThrows(): bool; ```php @@ -1064,7 +1194,37 @@ public function hasThrows(): bool; public function isDeprecated(): bool; ``` +
      Checking if an entity has `deprecated` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` + +
      Checking if the entity cache is out of date
      Parameters: not specified @@ -1078,7 +1238,7 @@ public function isDeprecated(): bool; ```php @@ -1108,7 +1268,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1117,7 +1277,7 @@ public function isEntityDataCacheOutdated(): bool; public function isEntityFileCanBeLoad(): bool; ``` - +
      Checking if entity data can be retrieved
      Parameters: not specified @@ -1127,10 +1287,7 @@ public function isEntityFileCanBeLoad(): bool; Throws: @@ -1141,7 +1298,7 @@ public function isEntityFileCanBeLoad(): bool; ```php @@ -1150,13 +1307,20 @@ public function isEntityFileCanBeLoad(): bool; public function isInternal(): bool; ``` - +
      Checking if an entity has `internal` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -1164,14 +1328,14 @@ public function isInternal(): bool; ```php public function isPrivate(): bool; ``` - +
      Check if a constant is a private constant
      Parameters: not specified @@ -1181,10 +1345,7 @@ public function isPrivate(): bool; Throws: @@ -1195,14 +1356,14 @@ public function isPrivate(): bool; ```php public function isProtected(): bool; ``` - +
      Check if a constant is a protected constant
      Parameters: not specified @@ -1212,10 +1373,7 @@ public function isProtected(): bool; Throws: @@ -1226,14 +1384,14 @@ public function isProtected(): bool; ```php public function isPublic(): bool; ``` - +
      Check if a constant is a public constant
      Parameters: not specified @@ -1243,10 +1401,7 @@ public function isPublic(): bool; Throws: @@ -1257,7 +1412,7 @@ public function isPublic(): bool; ```php @@ -1266,20 +1421,13 @@ public function isPublic(): bool; public function reloadEntityDependenciesCache(): array; ``` - +
      Update entity dependency cache
      Parameters: not specified Return value: array -Throws: - -

      @@ -1287,7 +1435,7 @@ public function reloadEntityDependenciesCache(): array; ```php @@ -1327,7 +1475,7 @@ public function removeEntityValueFromCache(string $key): void; ```php @@ -1352,5 +1500,3 @@ public function removeNotUsedEntityDataCache(): void;

      - - \ No newline at end of file diff --git a/docs/tech/classes/ConstantEntity.md b/docs/tech/02_parser/classes/ClassConstantEntity_2.md similarity index 54% rename from docs/tech/classes/ConstantEntity.md rename to docs/tech/02_parser/classes/ClassConstantEntity_2.md index 8367da3e..bbc713c9 100644 --- a/docs/tech/classes/ConstantEntity.md +++ b/docs/tech/02_parser/classes/ClassConstantEntity_2.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / ConstantEntity
      + BumbleDocGen / Technical description of the project / Parser / ClassConstantEntity

      - ConstantEntity class: + ClassConstantEntity class:

      @@ -10,9 +9,9 @@ ```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant; -class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface +class ClassConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface ```
      Class constant entity
      @@ -33,12 +32,12 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas

      Methods:

        -
      1. - entityCacheIsOutdated -
      2. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      3. +
      4. + getAst + - Get AST for this entity
      5. getCacheKey
      6. @@ -46,107 +45,119 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas getCachedEntityDependencies
      7. - getDescription + getCurrentRootEntity
      8. +
      9. + getDescription + - Get entity description
      10. getDescriptionLinks - Get parsed links from description and doc blocks `see` and `link`
      11. getDocBlock -
      12. + - Get DocBlock for current entity
      13. getDocComment - Get the doc comment of an entity
      14. getDocCommentEntity -
      15. + - Link to an entity where docBlock is implemented for this entity +
      16. + getDocCommentLine + - Get the code line number where the docBlock of the current entity begins
      17. getDocNote -
      18. + - Get the note annotation value
      19. getEndLine -
      20. + - Get the line number of the end of a constant's code in a file
      21. getExamples - Get parsed examples from `examples` doc block
      22. -
      23. - getFileName -
      24. getFileSourceLink
      25. getFirstExample - - Get first example from @examples doc block
      26. + - Get first example from `examples` doc block
      27. getImplementingClass -
      28. + - Get the class like entity in which the current entity was implemented
      29. getImplementingClassName
      30. -
      31. - getImplementingReflectionClass -
      32. getName -
      33. + - Constant name
      34. getNamespaceName -
      35. + - Get the name of the namespace where the current class is implemented
      36. getObjectId - Get entity unique ID
      37. - getPhpHandlerSettings -
      38. + getRelativeFileName + - File name relative to project_root configuration parameter
      39. getRootEntity -
      40. + - Get the class like entity where this constant was obtained
      41. getRootEntityCollection - - Get parent collection of entities
      42. + - Get the collection of root entities to which this entity belongs
      43. getShortName -
      44. + - Constant short name
      45. getStartLine -
      46. + - Get the line number of the beginning of the constant code in a file
      47. getThrows - Get parsed throws from `throws` doc block
      48. - hasDescriptionLinks + getThrowsDocBlockLinks
      49. +
      50. + getValue + - Get the compiled value of a constant
      51. +
      52. + hasDescriptionLinks + - Checking if an entity has links in its description
      53. hasExamples -
      54. + - Checking if an entity has `example` docBlock
      55. hasThrows -
      56. + - Checking if an entity has `throws` docBlock +
      57. + isApi + - Checking if an entity has `api` docBlock
      58. isDeprecated -
      59. + - Checking if an entity has `deprecated` docBlock +
      60. + isEntityCacheOutdated + - Checking if the entity cache is out of date
      61. isEntityDataCacheOutdated
      62. isEntityFileCanBeLoad -
      63. + - Checking if entity data can be retrieved
      64. isInternal -
      65. + - Checking if an entity has `internal` docBlock
      66. isPrivate -
      67. + - Check if a constant is a private constant
      68. isProtected -
      69. + - Check if a constant is a protected constant
      70. isPublic -
      71. + - Check if a constant is a public constant
      72. reloadEntityDependenciesCache -
      73. + - Update entity dependency cache
      74. removeEntityValueFromCache
      75. @@ -156,6 +167,25 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
      +

      Constants:

      + @@ -168,11 +198,11 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $constantName, string $declaringClassName, string $implementingClassName); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $constantName, string $implementingClassName); ``` @@ -195,7 +225,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -217,11 +247,6 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $constantName string - - - - $declaringClassName - string - - $implementingClassName @@ -238,31 +263,28 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf
      ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function entityCacheIsOutdated(): bool; +public function getAbsoluteFileName(): null|string; ``` - +
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      Parameters: not specified -Return value: bool +Return value: null | string Throws: @@ -271,28 +293,26 @@ public function entityCacheIsOutdated(): bool;
      ```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getAbsoluteFileName(): string|null; +public function getAst(): \PhpParser\Node\Stmt\ClassConst; ``` -
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      +
      Get AST for this entity
      Parameters: not specified -Return value: string | null +Return value: \PhpParser\Node\Stmt\ClassConst Throws: @@ -303,7 +323,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -326,7 +346,7 @@ public function getCacheKey(): string; ```php @@ -347,8 +367,34 @@ public function getCachedEntityDependencies(): array;
    36. \Psr\Cache\InvalidArgumentException
    37. +
    38. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    39. + +
      +
      +
      + +
        +
      • # + getCurrentRootEntity + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +

      @@ -356,14 +402,16 @@ public function getCachedEntityDependencies(): array; ```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + public function getDescription(): string; ``` - +
      Get entity description
      Parameters: not specified @@ -373,10 +421,7 @@ public function getDescription(): string; Throws: @@ -387,7 +432,7 @@ public function getDescription(): string; ```php @@ -406,7 +451,7 @@ public function getDescriptionLinks(): array; Throws:
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocCommentLine(): null|int; +``` +
      Get the code line number where the docBlock of the current entity begins
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity +Return value: null | int +Throws: + +

      @@ -505,7 +576,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -514,13 +585,20 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ public function getDocNote(): string; ``` - +
      Get the note annotation value
      Parameters: not specified Return value: string +Throws: + +

      @@ -528,14 +606,14 @@ public function getDocNote(): string; ```php public function getEndLine(): int; ``` - +
      Get the line number of the end of a constant's code in a file
      Parameters: not specified @@ -545,10 +623,7 @@ public function getEndLine(): int; Throws: @@ -559,7 +634,7 @@ public function getEndLine(): int; ```php @@ -575,34 +650,10 @@ public function getExamples(): array; Return value: array -
      -
      -
      - - - -```php -public function getFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - Throws: @@ -613,13 +664,13 @@ public function getFileName(): string|null; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -643,13 +694,13 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string Throws: @@ -660,7 +711,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -669,13 +720,20 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getFirstExample(): string; ``` -
      Get first example from @examples doc block
      +
      Get first example from `examples` doc block
      Parameters: not specified Return value: string +Throws: + +

      @@ -683,18 +741,18 @@ public function getFirstExample(): string; ```php -public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
      Get the class like entity in which the current entity was implemented
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
      @@ -704,7 +762,7 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php @@ -718,37 +776,6 @@ public function getImplementingClassName(): string; Return value: string -
      -
      -
      - - - -```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: not specified - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: - -

      @@ -756,14 +783,14 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php public function getName(): string; ``` - +
      Constant name
      Parameters: not specified @@ -777,30 +804,20 @@ public function getName(): string; ```php public function getNamespaceName(): string; ``` - +
      Get the name of the namespace where the current class is implemented
      Parameters: not specified Return value: string -Throws: - -

      @@ -808,7 +825,7 @@ public function getNamespaceName(): string; ```php @@ -829,22 +846,30 @@ public function getObjectId(): string;
      ```php -public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; -``` +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity +public function getRelativeFileName(): null|string; +``` +
      File name relative to project_root configuration parameter
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings +Return value: null | string + +See: +

      @@ -852,18 +877,18 @@ public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHa ```php -public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
      Get the class like entity where this constant was obtained
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
      @@ -873,18 +898,18 @@ public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity ```php -public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` -
      Get parent collection of entities
      +
      Get the collection of root entities to which this entity belongs
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection
      @@ -894,20 +919,26 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php public function getShortName(): string; ``` - +
      Constant short name
      Parameters: not specified Return value: string + +See: +
      @@ -915,14 +946,14 @@ public function getShortName(): string; ```php public function getStartLine(): int; ``` - +
      Get the line number of the beginning of the constant code in a file
      Parameters: not specified @@ -932,10 +963,7 @@ public function getStartLine(): int; Throws: @@ -946,7 +974,7 @@ public function getStartLine(): int; ```php @@ -965,10 +993,68 @@ public function getThrows(): array; Throws: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +public function getValue(): string|array|int|bool|null|float; +``` + +
      Get the compiled value of a constant
      + +Parameters: not specified + +Return value: string | array | int | bool | null | float + + +Throws: + @@ -979,7 +1065,7 @@ public function getThrows(): array; ```php @@ -988,7 +1074,7 @@ public function getThrows(): array; public function hasDescriptionLinks(): bool; ``` - +
      Checking if an entity has links in its description
      Parameters: not specified @@ -1009,7 +1095,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1018,13 +1104,20 @@ public function hasDescriptionLinks(): bool; public function hasExamples(): bool; ``` - +
      Checking if an entity has `example` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -1032,7 +1125,7 @@ public function hasExamples(): bool; ```php @@ -1041,13 +1134,50 @@ public function hasExamples(): bool; public function hasThrows(): bool; ``` +
      Checking if an entity has `throws` docBlock
      + +Parameters: not specified + +Return value: bool +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` + +
      Checking if an entity has `api` docBlock
      + Parameters: not specified Return value: bool +Throws: + +

      @@ -1055,7 +1185,7 @@ public function hasThrows(): bool; ```php @@ -1064,7 +1194,37 @@ public function hasThrows(): bool; public function isDeprecated(): bool; ``` +
      Checking if an entity has `deprecated` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` + +
      Checking if the entity cache is out of date
      Parameters: not specified @@ -1078,7 +1238,7 @@ public function isDeprecated(): bool; ```php @@ -1108,7 +1268,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1117,7 +1277,7 @@ public function isEntityDataCacheOutdated(): bool; public function isEntityFileCanBeLoad(): bool; ``` - +
      Checking if entity data can be retrieved
      Parameters: not specified @@ -1127,10 +1287,7 @@ public function isEntityFileCanBeLoad(): bool; Throws: @@ -1141,7 +1298,7 @@ public function isEntityFileCanBeLoad(): bool; ```php @@ -1150,13 +1307,20 @@ public function isEntityFileCanBeLoad(): bool; public function isInternal(): bool; ``` - +
      Checking if an entity has `internal` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -1164,14 +1328,14 @@ public function isInternal(): bool; ```php public function isPrivate(): bool; ``` - +
      Check if a constant is a private constant
      Parameters: not specified @@ -1181,10 +1345,7 @@ public function isPrivate(): bool; Throws: @@ -1195,14 +1356,14 @@ public function isPrivate(): bool; ```php public function isProtected(): bool; ``` - +
      Check if a constant is a protected constant
      Parameters: not specified @@ -1212,10 +1373,7 @@ public function isProtected(): bool; Throws: @@ -1226,14 +1384,14 @@ public function isProtected(): bool; ```php public function isPublic(): bool; ``` - +
      Check if a constant is a public constant
      Parameters: not specified @@ -1243,10 +1401,7 @@ public function isPublic(): bool; Throws: @@ -1257,7 +1412,7 @@ public function isPublic(): bool; ```php @@ -1266,20 +1421,13 @@ public function isPublic(): bool; public function reloadEntityDependenciesCache(): array; ``` - +
      Update entity dependency cache
      Parameters: not specified Return value: array -Throws: - -

      @@ -1287,7 +1435,7 @@ public function reloadEntityDependenciesCache(): array; ```php @@ -1327,7 +1475,7 @@ public function removeEntityValueFromCache(string $key): void; ```php @@ -1352,5 +1500,3 @@ public function removeNotUsedEntityDataCache(): void;

      - - \ No newline at end of file diff --git a/docs/tech/02_parser/classes/ClassEntity.md b/docs/tech/02_parser/classes/ClassEntity.md new file mode 100644 index 00000000..ce12ff6b --- /dev/null +++ b/docs/tech/02_parser/classes/ClassEntity.md @@ -0,0 +1,3463 @@ + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / ClassEntity
      + +

      + ClassEntity class: +

      + + + + + +```php +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; + +class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity implements \BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface +``` + +
      PHP Class
      + +See: + + + + + + + +

      Initialization methods:

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

      Methods:

      + +
        +
      1. + addPluginData + - Add information to aт entity object
      2. +
      3. + cursorToDocAttributeLinkFragment +
      4. +
      5. + getAbsoluteFileName + - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      6. +
      7. + getAst + - Get AST for this entity
      8. +
      9. + getCacheKey +
      10. +
      11. + getCachedEntityDependencies +
      12. +
      13. + getConstant + - Get the method entity by its name
      14. +
      15. + getConstantEntitiesCollection + - Get a collection of constant entities
      16. +
      17. + getConstantValue + - Get the compiled value of a constant
      18. +
      19. + getConstants + - Get all constants that are available according to the configuration as an array
      20. +
      21. + getConstantsData + - Get a list of all constants and classes where they are implemented
      22. +
      23. + getConstantsValues + - Get class constant compiled values according to filters
      24. +
      25. + getCurrentRootEntity +
      26. +
      27. + getDescription + - Get entity description
      28. +
      29. + getDescriptionLinks + - Get parsed links from description and doc blocks `see` and `link`
      30. +
      31. + getDocBlock + - Get DocBlock for current entity
      32. +
      33. + getDocComment + - Get the doc comment of an entity
      34. +
      35. + getDocCommentEntity + - Link to an entity where docBlock is implemented for this entity
      36. +
      37. + getDocCommentLine + - Get the code line number where the docBlock of the current entity begins
      38. +
      39. + getDocNote + - Get the note annotation value
      40. +
      41. + getDocRender +
      42. +
      43. + getEndLine + - Get the line number of the end of a class code in a file
      44. +
      45. + getEntityDependencies +
      46. +
      47. + getExamples + - Get parsed examples from `examples` doc block
      48. +
      49. + getFileContent +
      50. +
      51. + getFileSourceLink +
      52. +
      53. + getFirstExample + - Get first example from `examples` doc block
      54. +
      55. + getImplementingClass + - Get the class like entity in which the current entity was implemented
      56. +
      57. + getInterfaceNames + - Get a list of class interface names
      58. +
      59. + getInterfacesEntities + - Get a list of interface entities that the current class implements
      60. +
      61. + getMethod + - Get the method entity by its name
      62. +
      63. + getMethodEntitiesCollection + - Get a collection of method entities
      64. +
      65. + getMethods + - Get all methods that are available according to the configuration as an array
      66. +
      67. + getMethodsData + - Get a list of all methods and classes where they are implemented
      68. +
      69. + getModifiersString + - Get entity modifiers as a string
      70. +
      71. + getName + - Full name of the entity
      72. +
      73. + getNamespaceName + - Get the entity namespace name
      74. +
      75. + getObjectId + - Get entity unique ID
      76. +
      77. + getParentClass + - Get the entity of the parent class if it exists
      78. +
      79. + getParentClassEntities + - Get a list of parent class entities
      80. +
      81. + getParentClassName + - Get the name of the parent class entity if it exists
      82. +
      83. + getParentClassNames + - Get a list of entity names of parent classes
      84. +
      85. + getPluginData + - Get additional information added using the plugin
      86. +
      87. + getProperties + - Get all properties that are available according to the configuration as an array
      88. +
      89. + getPropertiesData + - Get a list of all properties and classes where they are implemented
      90. +
      91. + getProperty + - Get the property entity by its name
      92. +
      93. + getPropertyDefaultValue + - Get the compiled value of a property
      94. +
      95. + getPropertyEntitiesCollection + - Get a collection of property entities
      96. +
      97. + getRelativeFileName + - File name relative to project_root configuration parameter
      98. +
      99. + getRootEntityCollection + - Get the collection of root entities to which this entity belongs
      100. +
      101. + getShortName + - Short name of the entity
      102. +
      103. + getStartLine + - Get the line number of the start of a class code in a file
      104. +
      105. + getThrows + - Get parsed throws from `throws` doc block
      106. +
      107. + getThrowsDocBlockLinks +
      108. +
      109. + getTraits + - Get a list of trait entities of the current class
      110. +
      111. + getTraitsNames + - Get a list of class traits names
      112. +
      113. + hasConstant + - Check if a constant exists in a class
      114. +
      115. + hasDescriptionLinks + - Checking if an entity has links in its description
      116. +
      117. + hasExamples + - Checking if an entity has `example` docBlock
      118. +
      119. + hasMethod + - Check if a method exists in a class
      120. +
      121. + hasParentClass + - Check if a certain parent class exists in a chain of parent classes
      122. +
      123. + hasProperty + - Check if a property exists in a class
      124. +
      125. + hasThrows + - Checking if an entity has `throws` docBlock
      126. +
      127. + hasTraits + - Check if the class contains traits
      128. +
      129. + implementsInterface + - Check if a class implements an interface
      130. +
      131. + isAbstract + - Check that an entity is abstract
      132. +
      133. + isApi + - Checking if an entity has `api` docBlock
      134. +
      135. + isAttribute + - Check if a class is an attribute
      136. +
      137. + isClass + - Check if an entity is a Class
      138. +
      139. + isClassLoad +
      140. +
      141. + isDeprecated + - Checking if an entity has `deprecated` docBlock
      142. +
      143. + isDocumentCreationAllowed +
      144. +
      145. + isEntityCacheOutdated + - Checking if the entity cache is out of date
      146. +
      147. + isEntityDataCacheOutdated +
      148. +
      149. + isEntityDataCanBeLoaded +
      150. +
      151. + isEntityFileCanBeLoad + - Checking if entity data can be retrieved
      152. +
      153. + isEntityNameValid + - Check if the name is a valid name for ClassLikeEntity
      154. +
      155. + isEnum + - Check if an entity is an Enum
      156. +
      157. + isExternalLibraryEntity + - Check if a given entity is an entity from a third party library (connected via composer)
      158. +
      159. + isInGit + - Checking if class file is in git repository
      160. +
      161. + isInstantiable + - Check that an entity is instantiable
      162. +
      163. + isInterface + - Check if an entity is an Interface
      164. +
      165. + isInternal + - Checking if an entity has `internal` docBlock
      166. +
      167. + isSubclassOf + - Whether the given class is a subclass of the specified class
      168. +
      169. + isTrait + - Check if an entity is a Trait
      170. +
      171. + normalizeClassName + - Bring the class name to the standard format used in the system
      172. +
      173. + reloadEntityDependenciesCache + - Update entity dependency cache
      174. +
      175. + removeEntityValueFromCache +
      176. +
      177. + removeNotUsedEntityDataCache +
      178. +
      179. + setCustomAst +
      180. +
      + + + + + + + +

      Method details:

      + +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection $entitiesCollection, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper $composerHelper, \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper $phpParserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $className, string|null $relativeFileName); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $configuration\BumbleDocGen\Core\Configuration\Configuration-
      $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
      $entitiesCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection-
      $parserHelper\BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper-
      $composerHelper\BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper-
      $phpParserHelper\BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper-
      $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
      $logger\Psr\Log\LoggerInterface-
      $classNamestring-
      $relativeFileNamestring | null-
      + + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function addPluginData(string $pluginKey, mixed $data): void; +``` + +
      Add information to aт entity object
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $pluginKeystring-
      $datamixed-
      + +Return value: void + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $cursorstring-
      $isForDocumentbool-
      + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getAbsoluteFileName(): null|string; +``` + +
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      + +Parameters: not specified + +Return value: null | string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getAst(): \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_; +``` + +
      Get AST for this entity
      + +Parameters: not specified + +Return value: \PhpParser\Node\Stmt\Class_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function getCacheKey(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCachedEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstant(string $constantName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; +``` + +
      Get the method entity by its name
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $constantNamestringThe name of the constant whose entity you want to get
      $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
      + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection; +``` + +
      Get a collection of constant entities
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantValue(string $constantName): string|array|int|bool|null|float; +``` + +
      Get the compiled value of a constant
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $constantNamestringThe name of the constant for which you need to get the value
      + +Return value: string | array | int | bool | null | float + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstants(): array; +``` + +
      Get all constants that are available according to the configuration as an array
      + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get a list of all constants and classes where they are implemented
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for constants from the current class
      $flagsintGet data only for constants corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantsValues(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get class constant compiled values according to filters
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet values only for constants from the current class
      $flagsintGet values only for constants corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDescription(): string; +``` + +
      Get entity description
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDescriptionLinks(): array; +``` + +
      Get parsed links from description and doc blocks `see` and `link`
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; +``` + +
      Get DocBlock for current entity
      + +Parameters: not specified + +Return value: \phpDocumentor\Reflection\DocBlock + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocComment(): string; +``` + +
      Get the doc comment of an entity
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
      Link to an entity where docBlock is implemented for this entity
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocCommentLine(): null|int; +``` + +
      Get the code line number where the docBlock of the current entity begins
      + +Parameters: not specified + +Return value: null | int + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocNote(): string; +``` + +
      Get the note annotation value
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getEndLine(): int; +``` + +
      Get the line number of the end of a class code in a file
      + +Parameters: not specified + +Return value: int + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getExamples(): array; +``` + +
      Get parsed examples from `examples` doc block
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getFileContent(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getFileSourceLink(bool $withLine = true): null|string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $withLinebool-
      + +Return value: null | string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getFirstExample(): string; +``` + +
      Get first example from `examples` doc block
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
      Get the class like entity in which the current entity was implemented
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getInterfaceNames(): array; +``` + +
      Get a list of class interface names
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getInterfacesEntities(): array; +``` + +
      Get a list of interface entities that the current class implements
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethod(string $methodName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; +``` + +
      Get the method entity by its name
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $methodNamestringThe name of the method whose entity you want to get
      $unsafeboolCheck all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter())
      + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethodEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection; +``` + +
      Get a collection of method entities
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethods(): array; +``` + +
      Get all methods that are available according to the configuration as an array
      + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethodsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get a list of all methods and classes where they are implemented
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for methods from the current class
      $flagsintGet data only for methods corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +public function getModifiersString(): string; +``` + +
      Get entity modifiers as a string
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getName(): string; +``` + +
      Full name of the entity
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getNamespaceName(): string; +``` + +
      Get the entity namespace name
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getObjectId(): string; +``` + +
      Get entity unique ID
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +public function getParentClass(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
      Get the entity of the parent class if it exists
      + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassEntities(): array; +``` + +
      Get a list of parent class entities
      + +Parameters: not specified + +Return value: array + + +
      +
      +
      + + + +```php +public function getParentClassName(): null|string; +``` + +
      Get the name of the parent class entity if it exists
      + +Parameters: not specified + +Return value: null | string + + +
      +
      +
      + + + +```php +public function getParentClassNames(): array; +``` + +
      Get a list of entity names of parent classes
      + +Parameters: not specified + +Return value: array + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPluginData(string $pluginKey): mixed; +``` + +
      Get additional information added using the plugin
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $pluginKeystring-
      + +Return value: mixed + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getProperties(): array; +``` + +
      Get all properties that are available according to the configuration as an array
      + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertiesData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get a list of all properties and classes where they are implemented
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for properties from the current class
      $flagsintGet data only for properties corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getProperty(string $propertyName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; +``` + +
      Get the property entity by its name
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $propertyNamestringThe name of the property whose entity you want to get
      $unsafeboolCheck all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter())
      + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertyDefaultValue(string $propertyName): string|array|int|bool|null|float; +``` + +
      Get the compiled value of a property
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $propertyNamestringThe name of the property for which you need to get the value
      + +Return value: string | array | int | bool | null | float + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertyEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection; +``` + +
      Get a collection of property entities
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getRelativeFileName(): null|string; +``` + +
      File name relative to project_root configuration parameter
      + +Parameters: not specified + +Return value: null | string + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +``` + +
      Get the collection of root entities to which this entity belongs
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getShortName(): string; +``` + +
      Short name of the entity
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getStartLine(): int; +``` + +
      Get the line number of the start of a class code in a file
      + +Parameters: not specified + +Return value: int + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrows(): array; +``` + +
      Get parsed throws from `throws` doc block
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getTraits(): array; +``` + +
      Get a list of trait entities of the current class
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getTraitsNames(): array; +``` + +
      Get a list of class traits names
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasConstant(string $constantName, bool $unsafe = false): bool; +``` + +
      Check if a constant exists in a class
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $constantNamestringThe name of the class whose entity you want to check
      $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasDescriptionLinks(): bool; +``` + +
      Checking if an entity has links in its description
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasExamples(): bool; +``` + +
      Checking if an entity has `example` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasMethod(string $methodName, bool $unsafe = false): bool; +``` + +
      Check if a method exists in a class
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $methodNamestringThe name of the method whose entity you want to check
      $unsafeboolCheck all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter())
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasParentClass(string $parentClassName): bool; +``` + +
      Check if a certain parent class exists in a chain of parent classes
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $parentClassNamestringSearched parent class
      + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasProperty(string $propertyName, bool $unsafe = false): bool; +``` + +
      Check if a property exists in a class
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $propertyNamestringThe name of the property whose entity you want to check
      $unsafeboolCheck all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter())
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasThrows(): bool; +``` + +
      Checking if an entity has `throws` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasTraits(): bool; +``` + +
      Check if the class contains traits
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function implementsInterface(string $interfaceName): bool; +``` + +
      Check if a class implements an interface
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $interfaceNamestringName of the required interface in the interface chain
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +public function isAbstract(): bool; +``` + +
      Check that an entity is abstract
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` + +
      Checking if an entity has `api` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +public function isAttribute(): bool; +``` + +
      Check if a class is an attribute
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +public function isClass(): bool; +``` + +
      Check if an entity is a Class
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isClassLoad(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isDeprecated(): bool; +``` + +
      Checking if an entity has `deprecated` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isDocumentCreationAllowed(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` + +
      Checking if the entity cache is out of date
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function isEntityDataCacheOutdated(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isEntityDataCanBeLoaded(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityFileCanBeLoad(): bool; +``` + +
      Checking if entity data can be retrieved
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public static function isEntityNameValid(string $entityName): bool; +``` + +
      Check if the name is a valid name for ClassLikeEntity
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $entityNamestring-
      + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isEnum(): bool; +``` + +
      Check if an entity is an Enum
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isExternalLibraryEntity(): bool; +``` + +
      Check if a given entity is an entity from a third party library (connected via composer)
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInGit(): bool; +``` + +
      Checking if class file is in git repository
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +public function isInstantiable(): bool; +``` + +
      Check that an entity is instantiable
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInterface(): bool; +``` + +
      Check if an entity is an Interface
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isInternal(): bool; +``` + +
      Checking if an entity has `internal` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isSubclassOf(string $className): bool; +``` + +
      Whether the given class is a subclass of the specified class
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $classNamestring-
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isTrait(): bool; +``` + +
      Check if an entity is a Trait
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public static function normalizeClassName(string $name): string; +``` + +
      Bring the class name to the standard format used in the system
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $namestring-
      + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function reloadEntityDependenciesCache(): array; +``` + +
      Update entity dependency cache
      + +Parameters: not specified + +Return value: array + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $keystring-
      + +Return value: void + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeNotUsedEntityDataCache(): void; +``` + + + +Parameters: not specified + +Return value: void + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function setCustomAst(\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Class_|null $customAst): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $customAst\PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Class_ | null-
      + +Return value: void + + +
      +
      diff --git a/docs/tech/2.parser/classes/ClassEntity.md b/docs/tech/02_parser/classes/ClassLikeEntity.md similarity index 50% rename from docs/tech/2.parser/classes/ClassEntity.md rename to docs/tech/02_parser/classes/ClassLikeEntity.md index 72861a06..569f46b7 100644 --- a/docs/tech/2.parser/classes/ClassEntity.md +++ b/docs/tech/02_parser/classes/ClassLikeEntity.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / ClassEntity
      + BumbleDocGen / Technical description of the project / Parser / ClassLikeEntity

      - ClassEntity class: + ClassLikeEntity class:

      @@ -12,10 +11,10 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; -class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface +abstract class ClassLikeEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface ``` -
      Class entity
      + @@ -34,248 +33,263 @@ class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEn
      1. - cursorToDocAttributeLinkFragment -
      2. -
      3. - documentCreationAllowed -
      4. -
      5. - entityCacheIsOutdated -
      6. + addPluginData + - Add information to aт entity object
      7. - entityDataCanBeLoaded + cursorToDocAttributeLinkFragment
      8. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      9. +
      10. + getAst + - Get AST for this entity
      11. getCacheKey
      12. getCachedEntityDependencies
      13. -
      14. - getCasesNames -
      15. getConstant -
      16. + - Get the method entity by its name
      17. - getConstantEntity -
      18. + getConstantEntitiesCollection + - Get a collection of constant entities
      19. - getConstantEntityCollection -
      20. + getConstantValue + - Get the compiled value of a constant
      21. getConstants -
      22. + - Get all constants that are available according to the configuration as an array
      23. getConstantsData + - Get a list of all constants and classes where they are implemented
      24. +
      25. + getConstantsValues + - Get class constant compiled values according to filters
      26. +
      27. + getCurrentRootEntity
      28. getDescription -
      29. + - Get entity description
      30. getDescriptionLinks - Get parsed links from description and doc blocks `see` and `link`
      31. getDocBlock -
      32. + - Get DocBlock for current entity
      33. getDocComment - Get the doc comment of an entity
      34. getDocCommentEntity -
      35. + - Link to an entity where docBlock is implemented for this entity +
      36. + getDocCommentLine + - Get the code line number where the docBlock of the current entity begins
      37. getDocNote -
      38. + - Get the note annotation value
      39. getDocRender
      40. getEndLine -
      41. + - Get the line number of the end of a class code in a file
      42. getEntityDependencies
      43. getExamples - Get parsed examples from `examples` doc block
      44. -
      45. - getExtends -
      46. getFileContent
      47. -
      48. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
      49. getFileSourceLink
      50. getFirstExample - - Get first example from @examples doc block
      51. -
      52. - getFullFileName -
      53. + - Get first example from `examples` doc block
      54. - getImplementingReflectionClass -
      55. + getImplementingClass + - Get the class like entity in which the current entity was implemented
      56. getInterfaceNames -
      57. + - Get a list of class interface names
      58. getInterfacesEntities -
      59. + - Get a list of interface entities that the current class implements
      60. - getInterfacesString -
      61. + getMethod + - Get the method entity by its name
      62. - getMethodEntity -
      63. + getMethodEntitiesCollection + - Get a collection of method entities
      64. - getMethodEntityCollection -
      65. + getMethods + - Get all methods that are available according to the configuration as an array
      66. getMethodsData -
      67. + - Get a list of all methods and classes where they are implemented
      68. getModifiersString -
      69. + - Get entity modifiers as a string
      70. getName -
      71. + - Full name of the entity
      72. getNamespaceName -
      73. + - Get the entity namespace name
      74. getObjectId - Get entity unique ID
      75. getParentClass -
      76. + - Get the entity of the parent class if it exists +
      77. + getParentClassEntities + - Get a list of parent class entities
      78. getParentClassName -
      79. + - Get the name of the parent class entity if it exists
      80. getParentClassNames -
      81. -
      82. - getPhpHandlerSettings -
      83. + - Get a list of entity names of parent classes
      84. getPluginData -
      85. + - Get additional information added using the plugin +
      86. + getProperties + - Get all properties that are available according to the configuration as an array
      87. getPropertiesData -
      88. + - Get a list of all properties and classes where they are implemented
      89. - getPropertyEntity -
      90. + getProperty + - Get the property entity by its name
      91. - getPropertyEntityCollection -
      92. + getPropertyDefaultValue + - Get the compiled value of a property
      93. - getReflector -
      94. + getPropertyEntitiesCollection + - Get a collection of property entities
      95. getRelativeFileName -
      96. + - File name relative to project_root configuration parameter
      97. getRootEntityCollection - - Get parent collection of entities
      98. + - Get the collection of root entities to which this entity belongs
      99. getShortName -
      100. + - Short name of the entity
      101. getStartLine -
      102. + - Get the line number of the start of a class code in a file
      103. getThrows - Get parsed throws from `throws` doc block
      104. - getTraitsNames + getThrowsDocBlockLinks
      105. - hasAnnotationKey -
      106. + getTraits + - Get a list of trait entities of the current class +
      107. + getTraitsNames + - Get a list of class traits names
      108. hasConstant -
      109. + - Check if a constant exists in a class
      110. hasDescriptionLinks -
      111. + - Checking if an entity has links in its description
      112. hasExamples -
      113. + - Checking if an entity has `example` docBlock
      114. hasMethod -
      115. + - Check if a method exists in a class
      116. hasParentClass -
      117. + - Check if a certain parent class exists in a chain of parent classes
      118. hasProperty -
      119. + - Check if a property exists in a class
      120. hasThrows -
      121. + - Checking if an entity has `throws` docBlock
      122. hasTraits -
      123. + - Check if the class contains traits
      124. implementsInterface -
      125. + - Check if a class implements an interface
      126. isAbstract -
      127. + - Check that an entity is abstract +
      128. + isApi + - Checking if an entity has `api` docBlock
      129. +
      130. + isClass + - Check if an entity is a Class
      131. isClassLoad
      132. isDeprecated + - Checking if an entity has `deprecated` docBlock
      133. +
      134. + isDocumentCreationAllowed
      135. +
      136. + isEntityCacheOutdated + - Checking if the entity cache is out of date
      137. isEntityDataCacheOutdated
      138. - isEntityFileCanBeLoad + isEntityDataCanBeLoaded
      139. +
      140. + isEntityFileCanBeLoad + - Checking if entity data can be retrieved
      141. isEntityNameValid - - Check if entity name is valid
      142. + - Check if the name is a valid name for ClassLikeEntity
      143. isEnum -
      144. + - Check if an entity is an Enum
      145. isExternalLibraryEntity - - The entity is loaded from a third party library and should not be treated the same as a standard one
      146. + - Check if a given entity is an entity from a third party library (connected via composer)
      147. isInGit - Checking if class file is in git repository
      148. isInstantiable -
      149. + - Check that an entity is instantiable
      150. isInterface -
      151. + - Check if an entity is an Interface
      152. isInternal -
      153. + - Checking if an entity has `internal` docBlock
      154. isSubclassOf -
      155. + - Whether the given class is a subclass of the specified class
      156. isTrait -
      157. + - Check if an entity is a Trait
      158. - loadPluginData -
      159. + normalizeClassName + - Bring the class name to the standard format used in the system
      160. reloadEntityDependenciesCache -
      161. + - Update entity dependency cache
      162. removeEntityValueFromCache
      163. @@ -283,7 +297,7 @@ class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEn removeNotUsedEntityDataCache
      164. - setReflectionClass + setCustomAst
      @@ -300,11 +314,11 @@ class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEn ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper $reflector, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser $composerParser, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $className, string|null $relativeFileName); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection $entitiesCollection, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper $composerHelper, \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper $phpParserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $className, string|null $relativeFileName); ``` @@ -331,23 +345,23 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf - - $reflector - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper + $entitiesCollection + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection - - $classEntityCollection - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection + $parserHelper + \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper - - $parserHelper - \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper + $composerHelper + \BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper - - $composerParser - \BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser + $phpParserHelper + \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper - @@ -380,16 +394,16 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf
      ```php -public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string; +public function addPluginData(string $pluginKey, mixed $data): void; ``` - +
      Add information to aт entity object
      Parameters: @@ -403,98 +417,74 @@ public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocu - $cursor + $pluginKey string - - $isForDocument - bool + $data + mixed - -Return value: string - - -Throws: -

      ```php -public function documentCreationAllowed(): bool; +public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string; ``` -Parameters: not specified +Parameters: -Return value: bool + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $cursorstring-
      $isForDocumentbool-
      + +Return value: string Throws: - -
      -
      -
      - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - + \DI\DependencyException -Throws: - @@ -503,32 +493,28 @@ public function entityCacheIsOutdated(): bool;
      ```php -public function entityDataCanBeLoaded(): bool; -``` +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity +public function getAbsoluteFileName(): null|string; +``` +
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      Parameters: not specified -Return value: bool +Return value: null | string Throws: @@ -537,28 +523,26 @@ public function entityDataCanBeLoaded(): bool;
      ```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getAbsoluteFileName(): string|null; +public function getAst(): \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_; ``` -
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      +
      Get AST for this entity
      Parameters: not specified -Return value: string | null +Return value: \PhpParser\Node\Stmt\Class_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ Throws: @@ -569,7 +553,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -592,7 +576,7 @@ public function getCacheKey(): string; ```php @@ -613,6 +597,9 @@ public function getCachedEntityDependencies(): array;
    40. \Psr\Cache\InvalidArgumentException
    41. +
    42. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    43. +
      @@ -620,29 +607,54 @@ public function getCachedEntityDependencies(): array;
      ```php -public function getCasesNames(): array; +public function getConstant(string $constantName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; ``` +
      Get the method entity by its name
      +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $constantNamestringThe name of the constant whose entity you want to get
      $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
      -Return value: array +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity Throws: @@ -651,64 +663,56 @@ public function getCasesNames(): array;
      ```php -public function getConstant(string $name): string|array|int|bool|null|float; +public function getConstantEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection; ``` +
      Get a collection of constant entities
      +Parameters: not specified -Parameters: - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $namestring-
      - -Return value: string | array | int | bool | null | float +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection Throws: + +See: +

      ```php -public function getConstantEntity(string $constantName, bool $unsafe = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity|null; +public function getConstantValue(string $constantName): string|array|int|bool|null|float; ``` - +
      Get the compiled value of a constant
      Parameters: @@ -724,32 +728,27 @@ public function getConstantEntity(string $constantName, bool $unsafe = true): \B $constantName string - - - - - $unsafe - bool - - + The name of the constant for which you need to get the value -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity | null +Return value: string | array | int | bool | null | float Throws: @@ -758,55 +757,82 @@ public function getConstantEntity(string $constantName, bool $unsafe = true): \B
      ```php -public function getConstantEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntityCollection; +public function getConstants(): array; ``` - +
      Get all constants that are available according to the configuration as an array
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntityCollection +Return value: array Throws: + +See: +

      ```php -public function getConstants(): array; +public function getConstantsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; ``` +
      Get a list of all constants and classes where they are implemented
      +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for constants from the current class
      $flagsintGet data only for constants corresponding to the visibility modifiers passed in this value
      Return value: array @@ -814,10 +840,7 @@ public function getConstants(): array; Throws: @@ -826,18 +849,40 @@ public function getConstants(): array;
      ```php -public function getConstantsData(): array; +public function getConstantsValues(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; ``` +
      Get class constant compiled values according to filters
      +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet values only for constants from the current class
      $flagsintGet values only for constants corresponding to the visibility modifiers passed in this value
      Return value: array @@ -845,13 +890,42 @@ public function getConstantsData(): array; Throws: + +
      +
      +
      +
        +
      • # + getCurrentRootEntity + :warning: Is internal | source code
      +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +

      @@ -859,14 +933,16 @@ public function getConstantsData(): array; ```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + public function getDescription(): string; ``` - +
      Get entity description
      Parameters: not specified @@ -876,16 +952,7 @@ public function getDescription(): string; Throws: @@ -896,7 +963,7 @@ public function getDescription(): string; ```php @@ -915,7 +982,7 @@ public function getDescriptionLinks(): array; Throws:
      +
      +
      + -
    44. - \DI\DependencyException
    45. +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -
    46. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    47. +public function getDocCommentLine(): null|int; +``` + +
      Get the code line number where the docBlock of the current entity begins
      + +Parameters: not specified +Return value: null | int + + +Throws: + @@ -1036,7 +1107,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -1045,13 +1116,20 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ public function getDocNote(): string; ``` - +
      Get the note annotation value
      Parameters: not specified Return value: string +Throws: + +

      @@ -1059,7 +1137,7 @@ public function getDocNote(): string; ```php @@ -1076,7 +1154,7 @@ public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\En Throws:
      -
      -
      - - - -```php -public function getExtends(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - Throws: @@ -1196,7 +1247,7 @@ public function getExtends(): string|null; ```php @@ -1213,31 +1264,10 @@ public function getFileContent(): string; Throws: -
      -
      -
      - - - -```php -public function getFileName(): string|null; -``` - -
      Returns the relative path to a file if it can be retrieved and if the file is in the project directory
      - -Parameters: not specified - -Return value: string | null - -

      @@ -1245,13 +1275,13 @@ public function getFileName(): string|null; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -1275,13 +1305,13 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string Throws: @@ -1292,7 +1322,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -1301,41 +1331,17 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getFirstExample(): string; ``` -
      Get first example from @examples doc block
      +
      Get first example from `examples` doc block
      Parameters: not specified Return value: string -
      -
      -
      - - - -```php -public function getFullFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - Throws: @@ -1344,31 +1350,21 @@ public function getFullFileName(): string|null;
      ```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
      Get the class like entity in which the current entity was implemented
      Parameters: not specified -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: -

      @@ -1377,14 +1373,14 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php public function getInterfaceNames(): array; ``` - +
      Get a list of class interface names
      Parameters: not specified @@ -1394,10 +1390,7 @@ public function getInterfaceNames(): array; Throws: @@ -1408,14 +1401,14 @@ public function getInterfaceNames(): array; ```php public function getInterfacesEntities(): array; ``` - +
      Get a list of interface entities that the current class implements
      Parameters: not specified @@ -1425,41 +1418,7 @@ public function getInterfacesEntities(): array; Throws: - -
      -
      -
      - - - -```php -public function getInterfacesString(): string; -``` - - - -Parameters: not specified - -Return value: string - - -Throws: - @@ -1468,16 +1427,16 @@ public function getInterfacesString(): string;
      ```php -public function getMethodEntity(string $methodName, bool $unsafe = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity|null; +public function getMethod(string $methodName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; ``` - +
      Get the method entity by its name
      Parameters: @@ -1493,32 +1452,29 @@ public function getMethodEntity(string $methodName, bool $unsafe = true): \Bumbl $methodName string - - + The name of the method whose entity you want to get $unsafe bool - - + Check all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter()) -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity Throws: @@ -1527,20 +1483,20 @@ public function getMethodEntity(string $methodName, bool $unsafe = true): \Bumbl
      ```php -public function getMethodEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection; +public function getMethodEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection; ``` - +
      Get a collection of method entities
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection Throws: @@ -1549,31 +1505,34 @@ public function getMethodEntityCollection(): \BumbleDocGen\LanguageHandler\Php\P \DI\DependencyException
    48. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    49. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    50. \DI\NotFoundException
    51. -
    52. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    53. - + +See: +

      ```php -public function getMethodsData(): array; +public function getMethods(): array; ``` - +
      Get all methods that are available according to the configuration as an array
      Parameters: not specified @@ -1583,44 +1542,95 @@ public function getMethodsData(): array; Throws: + +See: +

      ```php -public function getModifiersString(): string; +public function getMethodsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; ``` +
      Get a list of all methods and classes where they are implemented
      +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for methods from the current class
      $flagsintGet data only for methods corresponding to the visibility modifiers passed in this value
      -Return value: string +Return value: array Throws: + +
      +
      +
      + +```php +public function getModifiersString(): string; +``` + +
      Get entity modifiers as a string
      + +Parameters: not specified + +Return value: string + +

      @@ -1628,14 +1638,14 @@ public function getModifiersString(): string; ```php public function getName(): string; ``` - +
      Full name of the entity
      Parameters: not specified @@ -1649,30 +1659,20 @@ public function getName(): string; ```php public function getNamespaceName(): string; ``` - +
      Get the entity namespace name
      Parameters: not specified Return value: string -Throws: - -

      @@ -1680,7 +1680,7 @@ public function getNamespaceName(): string; ```php @@ -1701,111 +1701,81 @@ public function getObjectId(): string; ```php -public function getParentClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|null; +public function getParentClass(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
      Get the entity of the parent class if it exists
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | null - - -Throws: -

      ```php -public function getParentClassName(): string|null; +public function getParentClassEntities(): array; ``` - +
      Get a list of parent class entities
      Parameters: not specified -Return value: string | null - - -Throws: -

      ```php -public function getParentClassNames(): array; +public function getParentClassName(): null|string; ``` - +
      Get the name of the parent class entity if it exists
      Parameters: not specified -Return value: array +Return value: null | string -Throws: - -

      ```php -public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; +public function getParentClassNames(): array; ``` - +
      Get a list of entity names of parent classes
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings +Return value: array
      @@ -1815,14 +1785,14 @@ public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHa ```php -public function getPluginData(string $pluginKey): array|null; +public function getPluginData(string $pluginKey): mixed; ``` - +
      Get additional information added using the plugin
      Parameters: @@ -1843,7 +1813,7 @@ public function getPluginData(string $pluginKey): array|null; -Return value: array | null +Return value: mixed
      @@ -1851,16 +1821,16 @@ public function getPluginData(string $pluginKey): array|null;
      ```php -public function getPropertiesData(): array; +public function getProperties(): array; ``` - +
      Get all properties that are available according to the configuration as an array
      Parameters: not specified @@ -1870,28 +1840,89 @@ public function getPropertiesData(): array; Throws: + +See: +

      ```php -public function getPropertyEntity(string $propertyName, bool $unsafe = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity|null; +public function getPropertiesData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; ``` +
      Get a list of all properties and classes where they are implemented
      +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for properties from the current class
      $flagsintGet data only for properties corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +public function getProperty(string $propertyName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; +``` + +
      Get the property entity by its name
      Parameters: @@ -1907,32 +1938,29 @@ public function getPropertyEntity(string $propertyName, bool $unsafe = true): \B $propertyName string - - + The name of the property whose entity you want to get $unsafe bool - - + Check all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter()) -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity Throws: @@ -1941,35 +1969,52 @@ public function getPropertyEntity(string $propertyName, bool $unsafe = true): \B
      ```php -public function getPropertyEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntityCollection; +public function getPropertyDefaultValue(string $propertyName): string|array|int|bool|null|float; ``` +
      Get the compiled value of a property
      +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + +
      NameTypeDescription
      $propertyNamestringThe name of the property for which you need to get the value
      -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntityCollection +Return value: string | array | int | bool | null | float Throws: @@ -1978,22 +2023,41 @@ public function getPropertyEntityCollection(): \BumbleDocGen\LanguageHandler\Php
      ```php -public function getReflector(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper; +public function getPropertyEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection; ``` - +
      Get a collection of property entities
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection + + +Throws: + + + +See: +

      @@ -2001,47 +2065,26 @@ public function getReflector(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ ```php -public function getRelativeFileName(bool $loadIfEmpty = true): string|null; +public function getRelativeFileName(): null|string; ``` +
      File name relative to project_root configuration parameter
      +Parameters: not specified -Parameters: +Return value: null | string - - - - - - - - - - - - - - - -
      NameTypeDescription
      $loadIfEmptybool-
      -Return value: string | null - -Throws: +See: -

      @@ -2049,18 +2092,18 @@ public function getRelativeFileName(bool $loadIfEmpty = true): string|null; ```php -public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` -
      Get parent collection of entities
      +
      Get the collection of root entities to which this entity belongs
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection
      @@ -2070,14 +2113,14 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php public function getShortName(): string; ``` - +
      Short name of the entity
      Parameters: not specified @@ -2091,14 +2134,14 @@ public function getShortName(): string; ```php public function getStartLine(): int; ``` - +
      Get the line number of the start of a class code in a file
      Parameters: not specified @@ -2108,10 +2151,7 @@ public function getStartLine(): int; Throws: @@ -2122,7 +2162,7 @@ public function getStartLine(): int; ```php @@ -2141,10 +2181,7 @@ public function getThrows(): array; Throws: @@ -2153,13 +2190,15 @@ public function getThrows(): array;
      ```php -public function getTraitsNames(): array; +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; ``` @@ -2172,10 +2211,7 @@ public function getTraitsNames(): array; Throws: @@ -2184,38 +2220,56 @@ public function getTraitsNames(): array;
      ```php -public function hasAnnotationKey(string $annotationKey): bool; +public function getTraits(): array; ``` +
      Get a list of trait entities of the current class
      +Parameters: not specified -Parameters: +Return value: array - - - - - - - - - - - - - - - -
      NameTypeDescription
      $annotationKeystring-
      -Return value: bool +Throws: + + +
      +
      +
      + + + +```php +public function getTraitsNames(): array; +``` + +
      Get a list of class traits names
      + +Parameters: not specified + +Return value: array + +Throws: +

      @@ -2224,14 +2278,14 @@ public function hasAnnotationKey(string $annotationKey): bool; ```php -public function hasConstant(string $constant): bool; +public function hasConstant(string $constantName, bool $unsafe = false): bool; ``` - +
      Check if a constant exists in a class
      Parameters: @@ -2245,9 +2299,14 @@ public function hasConstant(string $constant): bool; - $constant + $constantName string - - + The name of the class whose entity you want to check + + + $unsafe + bool + Check all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter()) @@ -2258,10 +2317,13 @@ public function hasConstant(string $constant): bool; Throws: @@ -2272,7 +2334,7 @@ public function hasConstant(string $constant): bool; ```php @@ -2281,7 +2343,7 @@ public function hasConstant(string $constant): bool; public function hasDescriptionLinks(): bool; ``` - +
      Checking if an entity has links in its description
      Parameters: not specified @@ -2302,7 +2364,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -2311,13 +2373,20 @@ public function hasDescriptionLinks(): bool; public function hasExamples(): bool; ``` - +
      Checking if an entity has `example` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -2325,14 +2394,14 @@ public function hasExamples(): bool; ```php -public function hasMethod(string $method): bool; +public function hasMethod(string $methodName, bool $unsafe = false): bool; ``` - +
      Check if a method exists in a class
      Parameters: @@ -2346,9 +2415,14 @@ public function hasMethod(string $method): bool; - $method + $methodName string - - + The name of the method whose entity you want to check + + + $unsafe + bool + Check all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter()) @@ -2359,10 +2433,13 @@ public function hasMethod(string $method): bool; Throws: @@ -2373,14 +2450,14 @@ public function hasMethod(string $method): bool; ```php public function hasParentClass(string $parentClassName): bool; ``` - +
      Check if a certain parent class exists in a chain of parent classes
      Parameters: @@ -2396,7 +2473,7 @@ public function hasParentClass(string $parentClassName): bool; $parentClassName string - - + Searched parent class @@ -2404,16 +2481,6 @@ public function hasParentClass(string $parentClassName): bool; Return value: bool -Throws: - -

      @@ -2421,14 +2488,14 @@ public function hasParentClass(string $parentClassName): bool; ```php -public function hasProperty(string $property): bool; +public function hasProperty(string $propertyName, bool $unsafe = false): bool; ``` - +
      Check if a property exists in a class
      Parameters: @@ -2442,9 +2509,14 @@ public function hasProperty(string $property): bool; - $property + $propertyName string - - + The name of the property whose entity you want to check + + + $unsafe + bool + Check all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter()) @@ -2455,10 +2527,13 @@ public function hasProperty(string $property): bool; Throws: @@ -2469,7 +2544,7 @@ public function hasProperty(string $property): bool; ```php @@ -2478,13 +2553,20 @@ public function hasProperty(string $property): bool; public function hasThrows(): bool; ``` - +
      Checking if an entity has `throws` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -2492,14 +2574,14 @@ public function hasThrows(): bool; ```php public function hasTraits(): bool; ``` - +
      Check if the class contains traits
      Parameters: not specified @@ -2509,10 +2591,7 @@ public function hasTraits(): bool; Throws: @@ -2523,14 +2602,14 @@ public function hasTraits(): bool; ```php public function implementsInterface(string $interfaceName): bool; ``` - +
      Check if a class implements an interface
      Parameters: @@ -2546,7 +2625,7 @@ public function implementsInterface(string $interfaceName): bool; $interfaceName string - - + Name of the required interface in the interface chain @@ -2557,10 +2636,7 @@ public function implementsInterface(string $interfaceName): bool; Throws: @@ -2571,14 +2647,37 @@ public function implementsInterface(string $interfaceName): bool; ```php public function isAbstract(): bool; ``` +
      Check that an entity is abstract
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` +
      Checking if an entity has `api` docBlock
      Parameters: not specified @@ -2588,13 +2687,31 @@ public function isAbstract(): bool; Throws: + +
      +
      +
      + +```php +public function isClass(): bool; +``` + +
      Check if an entity is a Class
      + +Parameters: not specified + +Return value: bool + +

      @@ -2602,7 +2719,7 @@ public function isAbstract(): bool; ```php @@ -2623,7 +2740,7 @@ public function isClassLoad(): bool; ```php @@ -2632,7 +2749,65 @@ public function isClassLoad(): bool; public function isDeprecated(): bool; ``` +
      Checking if an entity has `deprecated` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + +
        +
      • # + isDocumentCreationAllowed + :warning: Is internal | source code
      • +
      + +```php +public function isDocumentCreationAllowed(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + +
        +
      • # + isEntityCacheOutdated + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` +
      Checking if the entity cache is out of date
      Parameters: not specified @@ -2646,7 +2821,7 @@ public function isDeprecated(): bool; ```php @@ -2673,10 +2848,38 @@ public function isEntityDataCacheOutdated(): bool;
      + + +```php +public function isEntityDataCanBeLoaded(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + ```php @@ -2685,7 +2888,7 @@ public function isEntityDataCacheOutdated(): bool; public function isEntityFileCanBeLoad(): bool; ``` - +
      Checking if entity data can be retrieved
      Parameters: not specified @@ -2695,10 +2898,7 @@ public function isEntityFileCanBeLoad(): bool; Throws: @@ -2709,14 +2909,14 @@ public function isEntityFileCanBeLoad(): bool; ```php public static function isEntityNameValid(string $entityName): bool; ``` -
      Check if entity name is valid
      +
      Check if the name is a valid name for ClassLikeEntity
      Parameters: @@ -2747,30 +2947,20 @@ public static function isEntityNameValid(string $entityName): bool; ```php public function isEnum(): bool; ``` - +
      Check if an entity is an Enum
      Parameters: not specified Return value: bool -Throws: - -

      @@ -2778,14 +2968,14 @@ public function isEnum(): bool; ```php public function isExternalLibraryEntity(): bool; ``` -
      The entity is loaded from a third party library and should not be treated the same as a standard one
      +
      Check if a given entity is an entity from a third party library (connected via composer)
      Parameters: not specified @@ -2799,7 +2989,7 @@ public function isExternalLibraryEntity(): bool; ```php @@ -2813,16 +3003,6 @@ public function isInGit(): bool; Return value: bool -Throws: - -

      @@ -2830,30 +3010,20 @@ public function isInGit(): bool; ```php public function isInstantiable(): bool; ``` - +
      Check that an entity is instantiable
      Parameters: not specified Return value: bool -Throws: - -

      @@ -2861,30 +3031,20 @@ public function isInstantiable(): bool; ```php public function isInterface(): bool; ``` - +
      Check if an entity is an Interface
      Parameters: not specified Return value: bool -Throws: - -

      @@ -2892,7 +3052,7 @@ public function isInterface(): bool; ```php @@ -2901,13 +3061,20 @@ public function isInterface(): bool; public function isInternal(): bool; ``` - +
      Checking if an entity has `internal` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -2915,14 +3082,14 @@ public function isInternal(): bool; ```php public function isSubclassOf(string $className): bool; ``` - +
      Whether the given class is a subclass of the specified class
      Parameters: @@ -2949,10 +3116,7 @@ public function isSubclassOf(string $className): bool; Throws: @@ -2963,45 +3127,35 @@ public function isSubclassOf(string $className): bool; ```php public function isTrait(): bool; ``` - +
      Check if an entity is a Trait
      Parameters: not specified Return value: bool -Throws: - -

      ```php -public function loadPluginData(string $pluginKey, array $data): void; +public static function normalizeClassName(string $name): string; ``` - +
      Bring the class name to the standard format used in the system
      Parameters: @@ -3015,19 +3169,14 @@ public function loadPluginData(string $pluginKey, array $data): void; - $pluginKey + $name string - - - - $data - array - - -Return value: void +Return value: string
      @@ -3037,7 +3186,7 @@ public function loadPluginData(string $pluginKey, array $data): void; ```php @@ -3046,20 +3195,13 @@ public function loadPluginData(string $pluginKey, array $data): void; public function reloadEntityDependenciesCache(): array; ``` - +
      Update entity dependency cache
      Parameters: not specified Return value: array -Throws: - -

      @@ -3067,7 +3209,7 @@ public function reloadEntityDependenciesCache(): array; ```php @@ -3107,7 +3249,7 @@ public function removeEntityValueFromCache(string $key): void; ```php @@ -3135,13 +3277,13 @@ public function removeNotUsedEntityDataCache(): void;
      ```php -public function setReflectionClass(\Roave\BetterReflection\Reflection\ReflectionClass $reflectionClass): void; +public function setCustomAst(\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Class_|null $customAst): void; ``` @@ -3158,8 +3300,8 @@ public function setReflectionClass(\Roave\BetterReflection\Reflection\Reflection - $reflectionClass - \Roave\BetterReflection\Reflection\ReflectionClass + $customAst + \PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Class_ | null - @@ -3170,5 +3312,3 @@ public function setReflectionClass(\Roave\BetterReflection\Reflection\Reflection

      - - \ No newline at end of file diff --git a/docs/tech/classes/ConditionGroup.md b/docs/tech/02_parser/classes/ConditionGroup.md similarity index 93% rename from docs/tech/classes/ConditionGroup.md rename to docs/tech/02_parser/classes/ConditionGroup.md index 66a2f162..b21aab22 100644 --- a/docs/tech/classes/ConditionGroup.md +++ b/docs/tech/02_parser/classes/ConditionGroup.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / ConditionGroup
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / ConditionGroup

      ConditionGroup class: @@ -127,5 +126,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf


      - - \ No newline at end of file diff --git a/docs/tech/classes/ConditionInterface.md b/docs/tech/02_parser/classes/ConditionInterface.md similarity index 88% rename from docs/tech/classes/ConditionInterface.md rename to docs/tech/02_parser/classes/ConditionInterface.md index ba539ee4..7990b2ad 100644 --- a/docs/tech/classes/ConditionInterface.md +++ b/docs/tech/02_parser/classes/ConditionInterface.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / ConditionInterface
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / ConditionInterface

      ConditionInterface class: @@ -77,5 +76,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf


      - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/Configuration.md b/docs/tech/02_parser/classes/Configuration.md similarity index 77% rename from docs/tech/1.configuration/classes/Configuration.md rename to docs/tech/02_parser/classes/Configuration.md index d62e9a5d..ec4f2530 100644 --- a/docs/tech/1.configuration/classes/Configuration.md +++ b/docs/tech/02_parser/classes/Configuration.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / Configuration
      + BumbleDocGen / Technical description of the project / Parser / Configuration

      Configuration class: @@ -87,6 +86,9 @@ final class Configuration
    54. isCheckFileInGitBeforeCreatingDocEnabled
    55. +
    56. + renderWithFrontMatter +
    57. useSharedCache
    58. @@ -159,7 +161,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParame ```php @@ -182,7 +184,7 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad \DI\NotFoundException
    59. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    60. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -193,24 +195,24 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad ```php -public function getCacheDir(): string|null; +public function getCacheDir(): null|string; ``` Parameters: not specified -Return value: string | null +Return value: null | string Throws: @@ -242,7 +244,7 @@ public function getConfigurationVersion(): string; ```php @@ -263,7 +265,7 @@ public function getDocGenLibDir(): string; ```php @@ -280,7 +282,7 @@ public function getGitClientPath(): string; Throws: @@ -291,11 +293,11 @@ public function getGitClientPath(): string; ```php -public function getIfExists(mixed $key): string|null; +public function getIfExists(mixed $key): null|string; ``` @@ -319,13 +321,13 @@ public function getIfExists(mixed $key): string|null; -Return value: string | null +Return value: null | string Throws: @@ -336,7 +338,7 @@ public function getIfExists(mixed $key): string|null; ```php @@ -359,7 +361,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L \DI\NotFoundException
    61. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    62. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -370,7 +372,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L ```php @@ -387,7 +389,7 @@ public function getOutputDir(): string; Throws: @@ -398,7 +400,7 @@ public function getOutputDir(): string; ```php @@ -415,7 +417,7 @@ public function getOutputDirBaseUrl(): string; Throws: @@ -426,7 +428,7 @@ public function getOutputDirBaseUrl(): string; ```php @@ -446,7 +448,7 @@ public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProc \DI\DependencyException
    63. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    64. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    65. \DI\NotFoundException
    66. @@ -460,7 +462,7 @@ public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProc ```php @@ -480,7 +482,7 @@ public function getPlugins(): \BumbleDocGen\Core\Plugin\PluginsCollection; \DI\DependencyException
    67. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    68. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    69. \DI\NotFoundException
    70. @@ -511,7 +513,7 @@ public function getProjectRoot(): string; Throws: @@ -542,7 +544,7 @@ public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\Sou \DI\DependencyException
    71. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    72. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    73. \DI\NotFoundException
    74. @@ -573,7 +575,7 @@ public function getTemplatesDir(): string; Throws: @@ -584,7 +586,7 @@ public function getTemplatesDir(): string; ```php @@ -607,7 +609,7 @@ public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\Custom \DI\NotFoundException
    75. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    76. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -618,7 +620,7 @@ public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\Custom ```php @@ -638,7 +640,7 @@ public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\Cu \DI\DependencyException
    77. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    78. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    79. \DI\NotFoundException
    80. @@ -652,7 +654,7 @@ public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\Cu ```php @@ -680,7 +682,7 @@ public function getWorkingDir(): string; ```php @@ -697,7 +699,35 @@ public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; Throws: + +

      +
      +
      + + + +```php +public function renderWithFrontMatter(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + @@ -708,7 +738,7 @@ public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; ```php @@ -725,11 +755,9 @@ public function useSharedCache(): bool; Throws:

      - - \ No newline at end of file diff --git a/docs/tech/classes/DirectoriesSourceLocator.md b/docs/tech/02_parser/classes/DirectoriesSourceLocator.md similarity index 92% rename from docs/tech/classes/DirectoriesSourceLocator.md rename to docs/tech/02_parser/classes/DirectoriesSourceLocator.md index 7c906adc..d72ad4e5 100644 --- a/docs/tech/classes/DirectoriesSourceLocator.md +++ b/docs/tech/02_parser/classes/DirectoriesSourceLocator.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / DirectoriesSourceLocator
      + BumbleDocGen / Technical description of the project / Parser / Source locators / DirectoriesSourceLocator

      DirectoriesSourceLocator class: @@ -106,5 +105,3 @@ public function getFinder(): \Symfony\Component\Finder\Finder;


      - - \ No newline at end of file diff --git a/docs/tech/classes/DynamicMethodEntity.md b/docs/tech/02_parser/classes/DynamicMethodEntity.md similarity index 57% rename from docs/tech/classes/DynamicMethodEntity.md rename to docs/tech/02_parser/classes/DynamicMethodEntity.md index 4e60369a..2cba8ff7 100644 --- a/docs/tech/classes/DynamicMethodEntity.md +++ b/docs/tech/02_parser/classes/DynamicMethodEntity.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / DynamicMethodEntity
      + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / DynamicMethodEntity

      - DynamicMethodEntity class: + DynamicMethodEntity class:

      @@ -10,9 +9,9 @@ ```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method; -class DynamicMethodEntity implements \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface +class DynamicMethodEntity implements \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface ```
      Method obtained by parsing the "method" annotation
      @@ -33,93 +32,96 @@ class DynamicMethodEntity implements \BumbleDocGen\LanguageHandler\Php\Parser\En

      Methods:

        -
      1. - entityCacheIsOutdated -
      2. getAbsoluteFileName -
      3. + - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      4. getBodyCode -
      5. + - Get the code for this method
      6. getCallMethod -
      7. + - Get the entity of the magic method that will be called instead of the current virtual one
      8. getDescription -
      9. + - Get a description of this method
      10. getEndLine -
      11. -
      12. - getFileName -
      13. + - Get the line number of the end of a method's code in a file
      14. getFirstReturnValue -
      15. + - Get the compiled first return value of a method (if possible)
      16. getImplementingClass -
      17. + - Get the ClassLike entity in which this method was implemented
      18. getImplementingClassName -
      19. -
      20. - getImplementingReflectionClass -
      21. + - Get the name of the class in which this method is implemented
      22. getModifiersString -
      23. + - Get a text representation of method modifiers
      24. getName -
      25. + - Full name of the entity
      26. getNamespaceName -
      27. + - Namespace of the class that contains this method
      28. getObjectId -
      29. + - Entity object ID
      30. getParameters -
      31. + - Get a list of method parameters
      32. getParametersString -
      33. + - Get a list of method parameters as a string +
      34. + getRelativeFileName + - File name relative to project_root configuration parameter
      35. getReturnType -
      36. + - Get the return type of method
      37. getRootEntity -
      38. + - Get the class like entity where this method was obtained
      39. getRootEntityCollection - Get parent collection of entities
      40. getShortName -
      41. + - Short name of the entity +
      42. + getSignature + - Get the method signature as a string
      43. getStartColumn -
      44. + - Get the column number of the beginning of the method code in a file
      45. getStartLine -
      46. + - Get the line number of the beginning of the method code in a file
      47. isDynamic + - Check if a method is a dynamic method, that is, implementable using __call or __callStatic
      48. +
      49. + isEntityCacheOutdated
      50. +
      51. + isImplementedInParentClass + - Check if this method is implemented in the parent class
      52. isInitialization -
      53. + - Check if a method is an initialization method
      54. isPrivate -
      55. + - Check if a method is a private method
      56. isProtected -
      57. + - Check if a method is a protected method
      58. isPublic -
      59. + - Check if a method is a public method
      60. isStatic -
      61. + - Check if this method is static
      @@ -135,11 +137,11 @@ class DynamicMethodEntity implements \BumbleDocGen\LanguageHandler\Php\Parser\En ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \phpDocumentor\Reflection\DocBlock\Tags\Method $annotationMethod); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, \phpDocumentor\Reflection\DocBlock\Tags\Method $annotationMethod); ``` @@ -167,7 +169,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -180,27 +182,6 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf -
      -
      -
      - - - -```php -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - -

      @@ -208,27 +189,20 @@ public function entityCacheIsOutdated(): bool; ```php -public function getAbsoluteFileName(): string|null; +public function getAbsoluteFileName(): null|string; ``` - +
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      Parameters: not specified -Return value: string | null +Return value: null | string -Throws: - -

      @@ -236,14 +210,14 @@ public function getAbsoluteFileName(): string|null; ```php public function getBodyCode(): string; ``` - +
      Get the code for this method
      Parameters: not specified @@ -257,18 +231,18 @@ public function getBodyCode(): string; ```php -public function getCallMethod(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; +public function getCallMethod(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; ``` - +
      Get the entity of the magic method that will be called instead of the current virtual one
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity Throws: @@ -285,14 +259,14 @@ public function getCallMethod(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity ```php public function getDescription(): string; ``` - +
      Get a description of this method
      Parameters: not specified @@ -306,58 +280,20 @@ public function getDescription(): string; ```php public function getEndLine(): int; ``` - +
      Get the line number of the end of a method's code in a file
      Parameters: not specified Return value: int -Throws: - - -
      -
      -
      - - - -```php -public function getFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - -Throws: - -

      @@ -365,14 +301,14 @@ public function getFileName(): string|null; ```php public function getFirstReturnValue(): mixed; ``` - +
      Get the compiled first return value of a method (if possible)
      Parameters: not specified @@ -386,18 +322,18 @@ public function getFirstReturnValue(): mixed; ```php -public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
      Get the ClassLike entity in which this method was implemented
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
      @@ -407,55 +343,20 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php public function getImplementingClassName(): string; ``` - +
      Get the name of the class in which this method is implemented
      Parameters: not specified Return value: string -Throws: - - -
      -
      -
      - - - -```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: not specified - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: - -

      @@ -463,14 +364,14 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php public function getModifiersString(): string; ``` - +
      Get a text representation of method modifiers
      Parameters: not specified @@ -484,14 +385,14 @@ public function getModifiersString(): string; ```php public function getName(): string; ``` - +
      Full name of the entity
      Parameters: not specified @@ -505,30 +406,20 @@ public function getName(): string; ```php public function getNamespaceName(): string; ``` - +
      Namespace of the class that contains this method
      Parameters: not specified Return value: string -Throws: - -

      @@ -536,14 +427,14 @@ public function getNamespaceName(): string; ```php public function getObjectId(): string; ``` - +
      Entity object ID
      Parameters: not specified @@ -557,14 +448,14 @@ public function getObjectId(): string; ```php public function getParameters(): array; ``` - +
      Get a list of method parameters
      Parameters: not specified @@ -578,14 +469,14 @@ public function getParameters(): array; ```php public function getParametersString(): string; ``` - +
      Get a list of method parameters as a string
      Parameters: not specified @@ -597,32 +488,49 @@ public function getParametersString(): string;
      ```php -public function getReturnType(): string; +public function getRelativeFileName(): null|string; ``` - +
      File name relative to project_root configuration parameter
      Parameters: not specified -Return value: string +Return value: null | string -Throws: -
      +
      +
      + +```php +public function getReturnType(): string; +``` + +
      Get the return type of method
      + +Parameters: not specified + +Return value: string + +

      @@ -630,18 +538,18 @@ public function getReturnType(): string; ```php -public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
      Get the class like entity where this method was obtained
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
      @@ -651,7 +559,7 @@ public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity ```php @@ -672,14 +580,35 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root ```php public function getShortName(): string; ``` +
      Short name of the entity
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +public function getSignature(): string; +``` +
      Get the method signature as a string
      Parameters: not specified @@ -693,27 +622,20 @@ public function getShortName(): string; ```php public function getStartColumn(): int; ``` - +
      Get the column number of the beginning of the method code in a file
      Parameters: not specified Return value: int -Throws: - -

      @@ -721,27 +643,20 @@ public function getStartColumn(): int; ```php public function getStartLine(): int; ``` - +
      Get the line number of the beginning of the method code in a file
      Parameters: not specified Return value: int -Throws: - -

      @@ -749,14 +664,14 @@ public function getStartLine(): int; ```php public function isDynamic(): bool; ``` - +
      Check if a method is a dynamic method, that is, implementable using __call or __callStatic
      Parameters: not specified @@ -768,13 +683,13 @@ public function isDynamic(): bool;
      ```php -public function isInitialization(): bool; +public function isEntityCacheOutdated(): bool; ``` @@ -787,16 +702,55 @@ public function isInitialization(): bool; Throws: +
      +
      +
      + + +```php +public function isImplementedInParentClass(): bool; +``` + +
      Check if this method is implemented in the parent class
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +public function isInitialization(): bool; +``` + +
      Check if a method is an initialization method
      + +Parameters: not specified + +Return value: bool + +

      @@ -804,14 +758,14 @@ public function isInitialization(): bool; ```php public function isPrivate(): bool; ``` - +
      Check if a method is a private method
      Parameters: not specified @@ -825,14 +779,14 @@ public function isPrivate(): bool; ```php public function isProtected(): bool; ``` - +
      Check if a method is a protected method
      Parameters: not specified @@ -846,14 +800,14 @@ public function isProtected(): bool; ```php public function isPublic(): bool; ``` - +
      Check if a method is a public method
      Parameters: not specified @@ -867,14 +821,14 @@ public function isPublic(): bool; ```php public function isStatic(): bool; ``` - +
      Check if this method is static
      Parameters: not specified @@ -883,5 +837,3 @@ public function isStatic(): bool;

      - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/EntityInterface.md b/docs/tech/02_parser/classes/EntityInterface.md similarity index 66% rename from docs/tech/2.parser/classes/EntityInterface.md rename to docs/tech/02_parser/classes/EntityInterface.md index cd202273..6d185a4e 100644 --- a/docs/tech/2.parser/classes/EntityInterface.md +++ b/docs/tech/02_parser/classes/EntityInterface.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / EntityInterface
      + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / EntityInterface

      - EntityInterface class: + EntityInterface class:

      @@ -26,26 +25,26 @@ interface EntityInterface

      Methods:

        -
      1. - entityCacheIsOutdated -
      2. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      3. -
      4. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
      5. getName -
      6. + - Full name of the entity
      7. getObjectId -
      8. + - Entity object ID +
      9. + getRelativeFileName + - File name relative to project_root configuration parameter
      10. getRootEntityCollection - Get parent collection of entities
      11. getShortName + - Short name of the entity
      12. +
      13. + isEntityCacheOutdated
      @@ -60,20 +59,20 @@ interface EntityInterface
      ```php -public function entityCacheIsOutdated(): bool; +public function getAbsoluteFileName(): null|string; ``` - +
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      Parameters: not specified -Return value: bool +Return value: null | string
      @@ -81,20 +80,20 @@ public function entityCacheIsOutdated(): bool;
      ```php -public function getAbsoluteFileName(): string|null; +public function getName(): string; ``` -
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      +
      Full name of the entity
      Parameters: not specified -Return value: string | null +Return value: string
      @@ -102,20 +101,20 @@ public function getAbsoluteFileName(): string|null;
      ```php -public function getFileName(): string|null; +public function getObjectId(): string; ``` -
      Returns the relative path to a file if it can be retrieved and if the file is in the project directory
      +
      Entity object ID
      Parameters: not specified -Return value: string | null +Return value: string
      @@ -123,41 +122,47 @@ public function getFileName(): string|null;
      ```php -public function getName(): string; +public function getRelativeFileName(): null|string; ``` - +
      File name relative to project_root configuration parameter
      Parameters: not specified -Return value: string +Return value: null | string + +See: +

      ```php -public function getObjectId(): string; +public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection; ``` - +
      Get parent collection of entities
      Parameters: not specified -Return value: string +Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection
      @@ -165,20 +170,20 @@ public function getObjectId(): string;
      ```php -public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection; +public function getShortName(): string; ``` -
      Get parent collection of entities
      +
      Short name of the entity
      Parameters: not specified -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection +Return value: string
      @@ -186,23 +191,21 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root
      ```php -public function getShortName(): string; +public function isEntityCacheOutdated(): bool; ``` Parameters: not specified -Return value: string +Return value: bool

      - - \ No newline at end of file diff --git a/docs/tech/02_parser/classes/EnumEntity.md b/docs/tech/02_parser/classes/EnumEntity.md new file mode 100644 index 00000000..71ae969a --- /dev/null +++ b/docs/tech/02_parser/classes/EnumEntity.md @@ -0,0 +1,3559 @@ + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / EnumEntity
      + +

      + EnumEntity class: +

      + + + + + +```php +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; + +class EnumEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity implements \BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface +``` + +
      Enumeration
      + +See: + + + + + + + +

      Initialization methods:

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

      Methods:

      + +
        +
      1. + addPluginData + - Add information to aт entity object
      2. +
      3. + cursorToDocAttributeLinkFragment +
      4. +
      5. + getAbsoluteFileName + - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      6. +
      7. + getAst + - Get AST for this entity
      8. +
      9. + getCacheKey +
      10. +
      11. + getCachedEntityDependencies +
      12. +
      13. + getCasesNames + - Get enum cases names
      14. +
      15. + getConstant + - Get the method entity by its name
      16. +
      17. + getConstantEntitiesCollection + - Get a collection of constant entities
      18. +
      19. + getConstantValue + - Get the compiled value of a constant
      20. +
      21. + getConstants + - Get all constants that are available according to the configuration as an array
      22. +
      23. + getConstantsData + - Get a list of all constants and classes where they are implemented
      24. +
      25. + getConstantsValues + - Get class constant compiled values according to filters
      26. +
      27. + getCurrentRootEntity +
      28. +
      29. + getDescription + - Get entity description
      30. +
      31. + getDescriptionLinks + - Get parsed links from description and doc blocks `see` and `link`
      32. +
      33. + getDocBlock + - Get DocBlock for current entity
      34. +
      35. + getDocComment + - Get the doc comment of an entity
      36. +
      37. + getDocCommentEntity + - Link to an entity where docBlock is implemented for this entity
      38. +
      39. + getDocCommentLine + - Get the code line number where the docBlock of the current entity begins
      40. +
      41. + getDocNote + - Get the note annotation value
      42. +
      43. + getDocRender +
      44. +
      45. + getEndLine + - Get the line number of the end of a class code in a file
      46. +
      47. + getEntityDependencies +
      48. +
      49. + getEnumCaseValue + - Get enum case value
      50. +
      51. + getEnumCases + - Get enum cases values
      52. +
      53. + getExamples + - Get parsed examples from `examples` doc block
      54. +
      55. + getFileContent +
      56. +
      57. + getFileSourceLink +
      58. +
      59. + getFirstExample + - Get first example from `examples` doc block
      60. +
      61. + getImplementingClass + - Get the class like entity in which the current entity was implemented
      62. +
      63. + getInterfaceNames + - Get a list of class interface names
      64. +
      65. + getInterfacesEntities + - Get a list of interface entities that the current class implements
      66. +
      67. + getMethod + - Get the method entity by its name
      68. +
      69. + getMethodEntitiesCollection + - Get a collection of method entities
      70. +
      71. + getMethods + - Get all methods that are available according to the configuration as an array
      72. +
      73. + getMethodsData + - Get a list of all methods and classes where they are implemented
      74. +
      75. + getModifiersString + - Get entity modifiers as a string
      76. +
      77. + getName + - Full name of the entity
      78. +
      79. + getNamespaceName + - Get the entity namespace name
      80. +
      81. + getObjectId + - Get entity unique ID
      82. +
      83. + getParentClass + - Get the entity of the parent class if it exists
      84. +
      85. + getParentClassEntities + - Get a list of parent class entities
      86. +
      87. + getParentClassName + - Get the name of the parent class entity if it exists
      88. +
      89. + getParentClassNames + - Get a list of entity names of parent classes
      90. +
      91. + getPluginData + - Get additional information added using the plugin
      92. +
      93. + getProperties + - Get all properties that are available according to the configuration as an array
      94. +
      95. + getPropertiesData + - Get a list of all properties and classes where they are implemented
      96. +
      97. + getProperty + - Get the property entity by its name
      98. +
      99. + getPropertyDefaultValue + - Get the compiled value of a property
      100. +
      101. + getPropertyEntitiesCollection + - Get a collection of property entities
      102. +
      103. + getRelativeFileName + - File name relative to project_root configuration parameter
      104. +
      105. + getRootEntityCollection + - Get the collection of root entities to which this entity belongs
      106. +
      107. + getShortName + - Short name of the entity
      108. +
      109. + getStartLine + - Get the line number of the start of a class code in a file
      110. +
      111. + getThrows + - Get parsed throws from `throws` doc block
      112. +
      113. + getThrowsDocBlockLinks +
      114. +
      115. + getTraits + - Get a list of trait entities of the current class
      116. +
      117. + getTraitsNames + - Get a list of class traits names
      118. +
      119. + hasConstant + - Check if a constant exists in a class
      120. +
      121. + hasDescriptionLinks + - Checking if an entity has links in its description
      122. +
      123. + hasExamples + - Checking if an entity has `example` docBlock
      124. +
      125. + hasMethod + - Check if a method exists in a class
      126. +
      127. + hasParentClass + - Check if a certain parent class exists in a chain of parent classes
      128. +
      129. + hasProperty + - Check if a property exists in a class
      130. +
      131. + hasThrows + - Checking if an entity has `throws` docBlock
      132. +
      133. + hasTraits + - Check if the class contains traits
      134. +
      135. + implementsInterface + - Check if a class implements an interface
      136. +
      137. + isAbstract + - Check that an entity is abstract
      138. +
      139. + isApi + - Checking if an entity has `api` docBlock
      140. +
      141. + isClass + - Check if an entity is a Class
      142. +
      143. + isClassLoad +
      144. +
      145. + isDeprecated + - Checking if an entity has `deprecated` docBlock
      146. +
      147. + isDocumentCreationAllowed +
      148. +
      149. + isEntityCacheOutdated + - Checking if the entity cache is out of date
      150. +
      151. + isEntityDataCacheOutdated +
      152. +
      153. + isEntityDataCanBeLoaded +
      154. +
      155. + isEntityFileCanBeLoad + - Checking if entity data can be retrieved
      156. +
      157. + isEntityNameValid + - Check if the name is a valid name for ClassLikeEntity
      158. +
      159. + isEnum + - Check if an entity is an Enum
      160. +
      161. + isExternalLibraryEntity + - Check if a given entity is an entity from a third party library (connected via composer)
      162. +
      163. + isInGit + - Checking if class file is in git repository
      164. +
      165. + isInstantiable + - Check that an entity is instantiable
      166. +
      167. + isInterface + - Check if an entity is an Interface
      168. +
      169. + isInternal + - Checking if an entity has `internal` docBlock
      170. +
      171. + isSubclassOf + - Whether the given class is a subclass of the specified class
      172. +
      173. + isTrait + - Check if an entity is a Trait
      174. +
      175. + normalizeClassName + - Bring the class name to the standard format used in the system
      176. +
      177. + reloadEntityDependenciesCache + - Update entity dependency cache
      178. +
      179. + removeEntityValueFromCache +
      180. +
      181. + removeNotUsedEntityDataCache +
      182. +
      183. + setCustomAst +
      184. +
      + + + + + + + +

      Method details:

      + +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection $entitiesCollection, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper $composerHelper, \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper $phpParserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $className, string|null $relativeFileName); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $configuration\BumbleDocGen\Core\Configuration\Configuration-
      $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
      $entitiesCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection-
      $parserHelper\BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper-
      $composerHelper\BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper-
      $phpParserHelper\BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper-
      $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
      $logger\Psr\Log\LoggerInterface-
      $classNamestring-
      $relativeFileNamestring | null-
      + + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function addPluginData(string $pluginKey, mixed $data): void; +``` + +
      Add information to aт entity object
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $pluginKeystring-
      $datamixed-
      + +Return value: void + + +
      +
      +
      + +
        +
      • # + cursorToDocAttributeLinkFragment + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $cursorstring-
      $isForDocumentbool-
      + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getAbsoluteFileName(): null|string; +``` + +
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      + +Parameters: not specified + +Return value: null | string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getAst(): \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_; +``` + +
      Get AST for this entity
      + +Parameters: not specified + +Return value: \PhpParser\Node\Stmt\Class_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function getCacheKey(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
      +
      +
      + +
        +
      • # + getCachedEntityDependencies + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCachedEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +public function getCasesNames(): array; +``` + +
      Get enum cases names
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstant(string $constantName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; +``` + +
      Get the method entity by its name
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $constantNamestringThe name of the constant whose entity you want to get
      $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
      + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection; +``` + +
      Get a collection of constant entities
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantValue(string $constantName): string|array|int|bool|null|float; +``` + +
      Get the compiled value of a constant
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $constantNamestringThe name of the constant for which you need to get the value
      + +Return value: string | array | int | bool | null | float + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstants(): array; +``` + +
      Get all constants that are available according to the configuration as an array
      + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
      +
      +
      + +
        +
      • # + getConstantsData + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get a list of all constants and classes where they are implemented
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for constants from the current class
      $flagsintGet data only for constants corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantsValues(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get class constant compiled values according to filters
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet values only for constants from the current class
      $flagsintGet values only for constants corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + +
        +
      • # + getCurrentRootEntity + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDescription(): string; +``` + +
      Get entity description
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDescriptionLinks(): array; +``` + +
      Get parsed links from description and doc blocks `see` and `link`
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; +``` + +
      Get DocBlock for current entity
      + +Parameters: not specified + +Return value: \phpDocumentor\Reflection\DocBlock + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocComment(): string; +``` + +
      Get the doc comment of an entity
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + +
        +
      • # + getDocCommentEntity + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
      Link to an entity where docBlock is implemented for this entity
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocCommentLine(): null|int; +``` + +
      Get the code line number where the docBlock of the current entity begins
      + +Parameters: not specified + +Return value: null | int + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocNote(): string; +``` + +
      Get the note annotation value
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getEndLine(): int; +``` + +
      Get the line number of the end of a class code in a file
      + +Parameters: not specified + +Return value: int + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +
      +
      +
      + + + +```php +public function getEnumCaseValue(string $name): mixed; +``` + +
      Get enum case value
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $namestring-
      + +Return value: mixed + + +Throws: + + +
      +
      +
      + + + +```php +public function getEnumCases(): array; +``` + +
      Get enum cases values
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getExamples(): array; +``` + +
      Get parsed examples from `examples` doc block
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getFileContent(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + +
        +
      • # + getFileSourceLink + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getFileSourceLink(bool $withLine = true): null|string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $withLinebool-
      + +Return value: null | string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getFirstExample(): string; +``` + +
      Get first example from `examples` doc block
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
      Get the class like entity in which the current entity was implemented
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +public function getInterfaceNames(): array; +``` + +
      Get a list of class interface names
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getInterfacesEntities(): array; +``` + +
      Get a list of interface entities that the current class implements
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethod(string $methodName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; +``` + +
      Get the method entity by its name
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $methodNamestringThe name of the method whose entity you want to get
      $unsafeboolCheck all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter())
      + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethodEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection; +``` + +
      Get a collection of method entities
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethods(): array; +``` + +
      Get all methods that are available according to the configuration as an array
      + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
      +
      +
      + +
        +
      • # + getMethodsData + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethodsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get a list of all methods and classes where they are implemented
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for methods from the current class
      $flagsintGet data only for methods corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +public function getModifiersString(): string; +``` + +
      Get entity modifiers as a string
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getName(): string; +``` + +
      Full name of the entity
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getNamespaceName(): string; +``` + +
      Get the entity namespace name
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getObjectId(): string; +``` + +
      Get entity unique ID
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClass(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
      Get the entity of the parent class if it exists
      + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassEntities(): array; +``` + +
      Get a list of parent class entities
      + +Parameters: not specified + +Return value: array + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassName(): null|string; +``` + +
      Get the name of the parent class entity if it exists
      + +Parameters: not specified + +Return value: null | string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassNames(): array; +``` + +
      Get a list of entity names of parent classes
      + +Parameters: not specified + +Return value: array + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPluginData(string $pluginKey): mixed; +``` + +
      Get additional information added using the plugin
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $pluginKeystring-
      + +Return value: mixed + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getProperties(): array; +``` + +
      Get all properties that are available according to the configuration as an array
      + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
      +
      +
      + +
        +
      • # + getPropertiesData + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertiesData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get a list of all properties and classes where they are implemented
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for properties from the current class
      $flagsintGet data only for properties corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getProperty(string $propertyName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; +``` + +
      Get the property entity by its name
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $propertyNamestringThe name of the property whose entity you want to get
      $unsafeboolCheck all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter())
      + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertyDefaultValue(string $propertyName): string|array|int|bool|null|float; +``` + +
      Get the compiled value of a property
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $propertyNamestringThe name of the property for which you need to get the value
      + +Return value: string | array | int | bool | null | float + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertyEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection; +``` + +
      Get a collection of property entities
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getRelativeFileName(): null|string; +``` + +
      File name relative to project_root configuration parameter
      + +Parameters: not specified + +Return value: null | string + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +``` + +
      Get the collection of root entities to which this entity belongs
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getShortName(): string; +``` + +
      Short name of the entity
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getStartLine(): int; +``` + +
      Get the line number of the start of a class code in a file
      + +Parameters: not specified + +Return value: int + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrows(): array; +``` + +
      Get parsed throws from `throws` doc block
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getTraits(): array; +``` + +
      Get a list of trait entities of the current class
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getTraitsNames(): array; +``` + +
      Get a list of class traits names
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasConstant(string $constantName, bool $unsafe = false): bool; +``` + +
      Check if a constant exists in a class
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $constantNamestringThe name of the class whose entity you want to check
      $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasDescriptionLinks(): bool; +``` + +
      Checking if an entity has links in its description
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasExamples(): bool; +``` + +
      Checking if an entity has `example` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasMethod(string $methodName, bool $unsafe = false): bool; +``` + +
      Check if a method exists in a class
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $methodNamestringThe name of the method whose entity you want to check
      $unsafeboolCheck all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter())
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasParentClass(string $parentClassName): bool; +``` + +
      Check if a certain parent class exists in a chain of parent classes
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $parentClassNamestringSearched parent class
      + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasProperty(string $propertyName, bool $unsafe = false): bool; +``` + +
      Check if a property exists in a class
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $propertyNamestringThe name of the property whose entity you want to check
      $unsafeboolCheck all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter())
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasThrows(): bool; +``` + +
      Checking if an entity has `throws` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasTraits(): bool; +``` + +
      Check if the class contains traits
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function implementsInterface(string $interfaceName): bool; +``` + +
      Check if a class implements an interface
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $interfaceNamestringName of the required interface in the interface chain
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isAbstract(): bool; +``` + +
      Check that an entity is abstract
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` + +
      Checking if an entity has `api` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isClass(): bool; +``` + +
      Check if an entity is a Class
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isClassLoad(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isDeprecated(): bool; +``` + +
      Checking if an entity has `deprecated` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + +
        +
      • # + isDocumentCreationAllowed + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isDocumentCreationAllowed(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + +
        +
      • # + isEntityCacheOutdated + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` + +
      Checking if the entity cache is out of date
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + +
        +
      • # + isEntityDataCacheOutdated + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function isEntityDataCacheOutdated(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isEntityDataCanBeLoaded(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityFileCanBeLoad(): bool; +``` + +
      Checking if entity data can be retrieved
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public static function isEntityNameValid(string $entityName): bool; +``` + +
      Check if the name is a valid name for ClassLikeEntity
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $entityNamestring-
      + +Return value: bool + + +
      +
      +
      + + + +```php +public function isEnum(): bool; +``` + +
      Check if an entity is an Enum
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + +
        +
      • # + isExternalLibraryEntity + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isExternalLibraryEntity(): bool; +``` + +
      Check if a given entity is an entity from a third party library (connected via composer)
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInGit(): bool; +``` + +
      Checking if class file is in git repository
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInstantiable(): bool; +``` + +
      Check that an entity is instantiable
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInterface(): bool; +``` + +
      Check if an entity is an Interface
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isInternal(): bool; +``` + +
      Checking if an entity has `internal` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isSubclassOf(string $className): bool; +``` + +
      Whether the given class is a subclass of the specified class
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $classNamestring-
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isTrait(): bool; +``` + +
      Check if an entity is a Trait
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public static function normalizeClassName(string $name): string; +``` + +
      Bring the class name to the standard format used in the system
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $namestring-
      + +Return value: string + + +
      +
      +
      + +
        +
      • # + reloadEntityDependenciesCache + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function reloadEntityDependenciesCache(): array; +``` + +
      Update entity dependency cache
      + +Parameters: not specified + +Return value: array + + +
      +
      +
      + +
        +
      • # + removeEntityValueFromCache + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $keystring-
      + +Return value: void + + +
      +
      +
      + +
        +
      • # + removeNotUsedEntityDataCache + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeNotUsedEntityDataCache(): void; +``` + + + +Parameters: not specified + +Return value: void + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function setCustomAst(\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Class_|null $customAst): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $customAst\PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Class_ | null-
      + +Return value: void + + +
      +
      diff --git a/docs/tech/classes/FalseCondition.md b/docs/tech/02_parser/classes/FalseCondition.md similarity index 89% rename from docs/tech/classes/FalseCondition.md rename to docs/tech/02_parser/classes/FalseCondition.md index 1fa9736f..feaa26e7 100644 --- a/docs/tech/classes/FalseCondition.md +++ b/docs/tech/02_parser/classes/FalseCondition.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / FalseCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / FalseCondition

      FalseCondition class: @@ -77,5 +76,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf


      - - \ No newline at end of file diff --git a/docs/tech/classes/FileIteratorSourceLocator.md b/docs/tech/02_parser/classes/FileIteratorSourceLocator.md similarity index 92% rename from docs/tech/classes/FileIteratorSourceLocator.md rename to docs/tech/02_parser/classes/FileIteratorSourceLocator.md index 8b238cd0..27d9441c 100644 --- a/docs/tech/classes/FileIteratorSourceLocator.md +++ b/docs/tech/02_parser/classes/FileIteratorSourceLocator.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / FileIteratorSourceLocator
      + BumbleDocGen / Technical description of the project / Parser / Source locators / FileIteratorSourceLocator

      FileIteratorSourceLocator class: @@ -106,5 +105,3 @@ public function getFinder(): \Symfony\Component\Finder\Finder;


      - - \ No newline at end of file diff --git a/docs/tech/classes/FileTextContainsCondition.md b/docs/tech/02_parser/classes/FileTextContainsCondition.md similarity index 92% rename from docs/tech/classes/FileTextContainsCondition.md rename to docs/tech/02_parser/classes/FileTextContainsCondition.md index 5e078b87..3dd496f7 100644 --- a/docs/tech/classes/FileTextContainsCondition.md +++ b/docs/tech/02_parser/classes/FileTextContainsCondition.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / FileTextContainsCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / FileTextContainsCondition

      FileTextContainsCondition class: @@ -121,5 +120,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf


      - - \ No newline at end of file diff --git a/docs/tech/02_parser/classes/InterfaceEntity.md b/docs/tech/02_parser/classes/InterfaceEntity.md new file mode 100644 index 00000000..2e61e64a --- /dev/null +++ b/docs/tech/02_parser/classes/InterfaceEntity.md @@ -0,0 +1,3438 @@ + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / InterfaceEntity
      + +

      + InterfaceEntity class: +

      + + + + + +```php +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; + +class InterfaceEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity implements \BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface +``` + +
      Object interface
      + +See: + + + + + + + +

      Initialization methods:

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

      Methods:

      + +
        +
      1. + addPluginData + - Add information to aт entity object
      2. +
      3. + cursorToDocAttributeLinkFragment +
      4. +
      5. + getAbsoluteFileName + - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      6. +
      7. + getAst + - Get AST for this entity
      8. +
      9. + getCacheKey +
      10. +
      11. + getCachedEntityDependencies +
      12. +
      13. + getConstant + - Get the method entity by its name
      14. +
      15. + getConstantEntitiesCollection + - Get a collection of constant entities
      16. +
      17. + getConstantValue + - Get the compiled value of a constant
      18. +
      19. + getConstants + - Get all constants that are available according to the configuration as an array
      20. +
      21. + getConstantsData + - Get a list of all constants and classes where they are implemented
      22. +
      23. + getConstantsValues + - Get class constant compiled values according to filters
      24. +
      25. + getCurrentRootEntity +
      26. +
      27. + getDescription + - Get entity description
      28. +
      29. + getDescriptionLinks + - Get parsed links from description and doc blocks `see` and `link`
      30. +
      31. + getDocBlock + - Get DocBlock for current entity
      32. +
      33. + getDocComment + - Get the doc comment of an entity
      34. +
      35. + getDocCommentEntity + - Link to an entity where docBlock is implemented for this entity
      36. +
      37. + getDocCommentLine + - Get the code line number where the docBlock of the current entity begins
      38. +
      39. + getDocNote + - Get the note annotation value
      40. +
      41. + getDocRender +
      42. +
      43. + getEndLine + - Get the line number of the end of a class code in a file
      44. +
      45. + getEntityDependencies +
      46. +
      47. + getExamples + - Get parsed examples from `examples` doc block
      48. +
      49. + getFileContent +
      50. +
      51. + getFileSourceLink +
      52. +
      53. + getFirstExample + - Get first example from `examples` doc block
      54. +
      55. + getImplementingClass + - Get the class like entity in which the current entity was implemented
      56. +
      57. + getInterfaceNames + - Get a list of class interface names
      58. +
      59. + getInterfacesEntities + - Get a list of interface entities that the current class implements
      60. +
      61. + getMethod + - Get the method entity by its name
      62. +
      63. + getMethodEntitiesCollection + - Get a collection of method entities
      64. +
      65. + getMethods + - Get all methods that are available according to the configuration as an array
      66. +
      67. + getMethodsData + - Get a list of all methods and classes where they are implemented
      68. +
      69. + getModifiersString + - Get entity modifiers as a string
      70. +
      71. + getName + - Full name of the entity
      72. +
      73. + getNamespaceName + - Get the entity namespace name
      74. +
      75. + getObjectId + - Get entity unique ID
      76. +
      77. + getParentClass + - Get the entity of the parent class if it exists
      78. +
      79. + getParentClassEntities + - Get a list of parent class entities
      80. +
      81. + getParentClassName + - Get the name of the parent class entity if it exists
      82. +
      83. + getParentClassNames + - Get a list of entity names of parent classes
      84. +
      85. + getPluginData + - Get additional information added using the plugin
      86. +
      87. + getProperties + - Get all properties that are available according to the configuration as an array
      88. +
      89. + getPropertiesData + - Get a list of all properties and classes where they are implemented
      90. +
      91. + getProperty + - Get the property entity by its name
      92. +
      93. + getPropertyDefaultValue + - Get the compiled value of a property
      94. +
      95. + getPropertyEntitiesCollection + - Get a collection of property entities
      96. +
      97. + getRelativeFileName + - File name relative to project_root configuration parameter
      98. +
      99. + getRootEntityCollection + - Get the collection of root entities to which this entity belongs
      100. +
      101. + getShortName + - Short name of the entity
      102. +
      103. + getStartLine + - Get the line number of the start of a class code in a file
      104. +
      105. + getThrows + - Get parsed throws from `throws` doc block
      106. +
      107. + getThrowsDocBlockLinks +
      108. +
      109. + getTraits + - Get a list of trait entities of the current class
      110. +
      111. + getTraitsNames + - Get a list of class traits names
      112. +
      113. + hasConstant + - Check if a constant exists in a class
      114. +
      115. + hasDescriptionLinks + - Checking if an entity has links in its description
      116. +
      117. + hasExamples + - Checking if an entity has `example` docBlock
      118. +
      119. + hasMethod + - Check if a method exists in a class
      120. +
      121. + hasParentClass + - Check if a certain parent class exists in a chain of parent classes
      122. +
      123. + hasProperty + - Check if a property exists in a class
      124. +
      125. + hasThrows + - Checking if an entity has `throws` docBlock
      126. +
      127. + hasTraits + - Check if the class contains traits
      128. +
      129. + implementsInterface + - Check if a class implements an interface
      130. +
      131. + isAbstract + - Check that an entity is abstract
      132. +
      133. + isApi + - Checking if an entity has `api` docBlock
      134. +
      135. + isClass + - Check if an entity is a Class
      136. +
      137. + isClassLoad +
      138. +
      139. + isDeprecated + - Checking if an entity has `deprecated` docBlock
      140. +
      141. + isDocumentCreationAllowed +
      142. +
      143. + isEntityCacheOutdated + - Checking if the entity cache is out of date
      144. +
      145. + isEntityDataCacheOutdated +
      146. +
      147. + isEntityDataCanBeLoaded +
      148. +
      149. + isEntityFileCanBeLoad + - Checking if entity data can be retrieved
      150. +
      151. + isEntityNameValid + - Check if the name is a valid name for ClassLikeEntity
      152. +
      153. + isEnum + - Check if an entity is an Enum
      154. +
      155. + isExternalLibraryEntity + - Check if a given entity is an entity from a third party library (connected via composer)
      156. +
      157. + isInGit + - Checking if class file is in git repository
      158. +
      159. + isInstantiable + - Check that an entity is instantiable
      160. +
      161. + isInterface + - Check if an entity is an Interface
      162. +
      163. + isInternal + - Checking if an entity has `internal` docBlock
      164. +
      165. + isSubclassOf + - Whether the given class is a subclass of the specified class
      166. +
      167. + isTrait + - Check if an entity is a Trait
      168. +
      169. + normalizeClassName + - Bring the class name to the standard format used in the system
      170. +
      171. + reloadEntityDependenciesCache + - Update entity dependency cache
      172. +
      173. + removeEntityValueFromCache +
      174. +
      175. + removeNotUsedEntityDataCache +
      176. +
      177. + setCustomAst +
      178. +
      + + + + + + + +

      Method details:

      + +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection $entitiesCollection, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper $composerHelper, \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper $phpParserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $className, string|null $relativeFileName); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $configuration\BumbleDocGen\Core\Configuration\Configuration-
      $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
      $entitiesCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection-
      $parserHelper\BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper-
      $composerHelper\BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper-
      $phpParserHelper\BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper-
      $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
      $logger\Psr\Log\LoggerInterface-
      $classNamestring-
      $relativeFileNamestring | null-
      + + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function addPluginData(string $pluginKey, mixed $data): void; +``` + +
      Add information to aт entity object
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $pluginKeystring-
      $datamixed-
      + +Return value: void + + +
      +
      +
      + +
        +
      • # + cursorToDocAttributeLinkFragment + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $cursorstring-
      $isForDocumentbool-
      + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getAbsoluteFileName(): null|string; +``` + +
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      + +Parameters: not specified + +Return value: null | string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getAst(): \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_; +``` + +
      Get AST for this entity
      + +Parameters: not specified + +Return value: \PhpParser\Node\Stmt\Class_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function getCacheKey(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
      +
      +
      + +
        +
      • # + getCachedEntityDependencies + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCachedEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstant(string $constantName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; +``` + +
      Get the method entity by its name
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $constantNamestringThe name of the constant whose entity you want to get
      $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
      + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection; +``` + +
      Get a collection of constant entities
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantValue(string $constantName): string|array|int|bool|null|float; +``` + +
      Get the compiled value of a constant
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $constantNamestringThe name of the constant for which you need to get the value
      + +Return value: string | array | int | bool | null | float + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstants(): array; +``` + +
      Get all constants that are available according to the configuration as an array
      + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
      +
      +
      + +
        +
      • # + getConstantsData + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get a list of all constants and classes where they are implemented
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for constants from the current class
      $flagsintGet data only for constants corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantsValues(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get class constant compiled values according to filters
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet values only for constants from the current class
      $flagsintGet values only for constants corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + +
        +
      • # + getCurrentRootEntity + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDescription(): string; +``` + +
      Get entity description
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDescriptionLinks(): array; +``` + +
      Get parsed links from description and doc blocks `see` and `link`
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; +``` + +
      Get DocBlock for current entity
      + +Parameters: not specified + +Return value: \phpDocumentor\Reflection\DocBlock + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocComment(): string; +``` + +
      Get the doc comment of an entity
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + +
        +
      • # + getDocCommentEntity + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
      Link to an entity where docBlock is implemented for this entity
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocCommentLine(): null|int; +``` + +
      Get the code line number where the docBlock of the current entity begins
      + +Parameters: not specified + +Return value: null | int + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocNote(): string; +``` + +
      Get the note annotation value
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getEndLine(): int; +``` + +
      Get the line number of the end of a class code in a file
      + +Parameters: not specified + +Return value: int + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getExamples(): array; +``` + +
      Get parsed examples from `examples` doc block
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getFileContent(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + +
        +
      • # + getFileSourceLink + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getFileSourceLink(bool $withLine = true): null|string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $withLinebool-
      + +Return value: null | string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getFirstExample(): string; +``` + +
      Get first example from `examples` doc block
      + +Parameters: not specified + +Return value: string + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
      Get the class like entity in which the current entity was implemented
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getInterfaceNames(): array; +``` + +
      Get a list of class interface names
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getInterfacesEntities(): array; +``` + +
      Get a list of interface entities that the current class implements
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethod(string $methodName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; +``` + +
      Get the method entity by its name
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $methodNamestringThe name of the method whose entity you want to get
      $unsafeboolCheck all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter())
      + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethodEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection; +``` + +
      Get a collection of method entities
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethods(): array; +``` + +
      Get all methods that are available according to the configuration as an array
      + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
      +
      +
      + +
        +
      • # + getMethodsData + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethodsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get a list of all methods and classes where they are implemented
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for methods from the current class
      $flagsintGet data only for methods corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +public function getModifiersString(): string; +``` + +
      Get entity modifiers as a string
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getName(): string; +``` + +
      Full name of the entity
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getNamespaceName(): string; +``` + +
      Get the entity namespace name
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getObjectId(): string; +``` + +
      Get entity unique ID
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClass(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
      Get the entity of the parent class if it exists
      + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassEntities(): array; +``` + +
      Get a list of parent class entities
      + +Parameters: not specified + +Return value: array + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassName(): null|string; +``` + +
      Get the name of the parent class entity if it exists
      + +Parameters: not specified + +Return value: null | string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassNames(): array; +``` + +
      Get a list of entity names of parent classes
      + +Parameters: not specified + +Return value: array + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPluginData(string $pluginKey): mixed; +``` + +
      Get additional information added using the plugin
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $pluginKeystring-
      + +Return value: mixed + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getProperties(): array; +``` + +
      Get all properties that are available according to the configuration as an array
      + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
      +
      +
      + +
        +
      • # + getPropertiesData + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertiesData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
      Get a list of all properties and classes where they are implemented
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $onlyFromCurrentClassAndTraitsboolGet data only for properties from the current class
      $flagsintGet data only for properties corresponding to the visibility modifiers passed in this value
      + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getProperty(string $propertyName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; +``` + +
      Get the property entity by its name
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $propertyNamestringThe name of the property whose entity you want to get
      $unsafeboolCheck all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter())
      + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertyDefaultValue(string $propertyName): string|array|int|bool|null|float; +``` + +
      Get the compiled value of a property
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $propertyNamestringThe name of the property for which you need to get the value
      + +Return value: string | array | int | bool | null | float + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertyEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection; +``` + +
      Get a collection of property entities
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection + + +Throws: + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getRelativeFileName(): null|string; +``` + +
      File name relative to project_root configuration parameter
      + +Parameters: not specified + +Return value: null | string + + + +See: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +``` + +
      Get the collection of root entities to which this entity belongs
      + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getShortName(): string; +``` + +
      Short name of the entity
      + +Parameters: not specified + +Return value: string + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getStartLine(): int; +``` + +
      Get the line number of the start of a class code in a file
      + +Parameters: not specified + +Return value: int + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrows(): array; +``` + +
      Get parsed throws from `throws` doc block
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getTraits(): array; +``` + +
      Get a list of trait entities of the current class
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +public function getTraitsNames(): array; +``` + +
      Get a list of class traits names
      + +Parameters: not specified + +Return value: array + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasConstant(string $constantName, bool $unsafe = false): bool; +``` + +
      Check if a constant exists in a class
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $constantNamestringThe name of the class whose entity you want to check
      $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasDescriptionLinks(): bool; +``` + +
      Checking if an entity has links in its description
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasExamples(): bool; +``` + +
      Checking if an entity has `example` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasMethod(string $methodName, bool $unsafe = false): bool; +``` + +
      Check if a method exists in a class
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $methodNamestringThe name of the method whose entity you want to check
      $unsafeboolCheck all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter())
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasParentClass(string $parentClassName): bool; +``` + +
      Check if a certain parent class exists in a chain of parent classes
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $parentClassNamestringSearched parent class
      + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasProperty(string $propertyName, bool $unsafe = false): bool; +``` + +
      Check if a property exists in a class
      + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $propertyNamestringThe name of the property whose entity you want to check
      $unsafeboolCheck all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter())
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasThrows(): bool; +``` + +
      Checking if an entity has `throws` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasTraits(): bool; +``` + +
      Check if the class contains traits
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function implementsInterface(string $interfaceName): bool; +``` + +
      Check if a class implements an interface
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $interfaceNamestringName of the required interface in the interface chain
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +public function isAbstract(): bool; +``` + +
      Check that an entity is abstract
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` + +
      Checking if an entity has `api` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isClass(): bool; +``` + +
      Check if an entity is a Class
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isClassLoad(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isDeprecated(): bool; +``` + +
      Checking if an entity has `deprecated` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + +
        +
      • # + isDocumentCreationAllowed + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isDocumentCreationAllowed(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + +
        +
      • # + isEntityCacheOutdated + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` + +
      Checking if the entity cache is out of date
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + +
        +
      • # + isEntityDataCacheOutdated + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function isEntityDataCacheOutdated(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isEntityDataCanBeLoaded(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityFileCanBeLoad(): bool; +``` + +
      Checking if entity data can be retrieved
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public static function isEntityNameValid(string $entityName): bool; +``` + +
      Check if the name is a valid name for ClassLikeEntity
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $entityNamestring-
      + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isEnum(): bool; +``` + +
      Check if an entity is an Enum
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + +
        +
      • # + isExternalLibraryEntity + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isExternalLibraryEntity(): bool; +``` + +
      Check if a given entity is an entity from a third party library (connected via composer)
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInGit(): bool; +``` + +
      Checking if class file is in git repository
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInstantiable(): bool; +``` + +
      Check that an entity is instantiable
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +public function isInterface(): bool; +``` + +
      Check if an entity is an Interface
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isInternal(): bool; +``` + +
      Checking if an entity has `internal` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isSubclassOf(string $className): bool; +``` + +
      Whether the given class is a subclass of the specified class
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $classNamestring-
      + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isTrait(): bool; +``` + +
      Check if an entity is a Trait
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public static function normalizeClassName(string $name): string; +``` + +
      Bring the class name to the standard format used in the system
      + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $namestring-
      + +Return value: string + + +
      +
      +
      + +
        +
      • # + reloadEntityDependenciesCache + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function reloadEntityDependenciesCache(): array; +``` + +
      Update entity dependency cache
      + +Parameters: not specified + +Return value: array + + +
      +
      +
      + +
        +
      • # + removeEntityValueFromCache + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $keystring-
      + +Return value: void + + +
      +
      +
      + +
        +
      • # + removeNotUsedEntityDataCache + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeNotUsedEntityDataCache(): void; +``` + + + +Parameters: not specified + +Return value: void + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function setCustomAst(\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Class_|null $customAst): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $customAst\PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Class_ | null-
      + +Return value: void + + +
      +
      diff --git a/docs/tech/02_parser/classes/InvalidConfigurationParameterException.md b/docs/tech/02_parser/classes/InvalidConfigurationParameterException.md new file mode 100644 index 00000000..57e5652d --- /dev/null +++ b/docs/tech/02_parser/classes/InvalidConfigurationParameterException.md @@ -0,0 +1,31 @@ + BumbleDocGen / Technical description of the project / Parser / InvalidConfigurationParameterException
      + +

      + InvalidConfigurationParameterException class: +

      + + + + + +```php +namespace BumbleDocGen\Core\Configuration\Exception; + +final class InvalidConfigurationParameterException extends \Exception +``` + + + + + + + + + + + + + + + + diff --git a/docs/tech/classes/IsPrivateCondition.md b/docs/tech/02_parser/classes/IsPrivateCondition.md similarity index 92% rename from docs/tech/classes/IsPrivateCondition.md rename to docs/tech/02_parser/classes/IsPrivateCondition.md index 17fbeb8b..46e5ef0f 100644 --- a/docs/tech/classes/IsPrivateCondition.md +++ b/docs/tech/02_parser/classes/IsPrivateCondition.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / IsPrivateCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPrivateCondition

      IsPrivateCondition class: @@ -104,5 +103,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf


      - - \ No newline at end of file diff --git a/docs/tech/classes/IsPrivateCondition_2.md b/docs/tech/02_parser/classes/IsPrivateCondition_2.md similarity index 91% rename from docs/tech/classes/IsPrivateCondition_2.md rename to docs/tech/02_parser/classes/IsPrivateCondition_2.md index 75775954..301bd358 100644 --- a/docs/tech/classes/IsPrivateCondition_2.md +++ b/docs/tech/02_parser/classes/IsPrivateCondition_2.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / IsPrivateCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPrivateCondition

      IsPrivateCondition class: @@ -104,5 +103,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
      - - \ No newline at end of file diff --git a/docs/tech/classes/IsPrivateCondition_3.md b/docs/tech/02_parser/classes/IsPrivateCondition_3.md similarity index 91% rename from docs/tech/classes/IsPrivateCondition_3.md rename to docs/tech/02_parser/classes/IsPrivateCondition_3.md index 547239ce..22861f3d 100644 --- a/docs/tech/classes/IsPrivateCondition_3.md +++ b/docs/tech/02_parser/classes/IsPrivateCondition_3.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / IsPrivateCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPrivateCondition

      IsPrivateCondition class: @@ -104,5 +103,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
      - - \ No newline at end of file diff --git a/docs/tech/classes/IsProtectedCondition.md b/docs/tech/02_parser/classes/IsProtectedCondition.md similarity index 92% rename from docs/tech/classes/IsProtectedCondition.md rename to docs/tech/02_parser/classes/IsProtectedCondition.md index 3db9db7f..d8db64d7 100644 --- a/docs/tech/classes/IsProtectedCondition.md +++ b/docs/tech/02_parser/classes/IsProtectedCondition.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / IsProtectedCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsProtectedCondition

      IsProtectedCondition class: @@ -104,5 +103,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
      - - \ No newline at end of file diff --git a/docs/tech/classes/IsProtectedCondition_2.md b/docs/tech/02_parser/classes/IsProtectedCondition_2.md similarity index 91% rename from docs/tech/classes/IsProtectedCondition_2.md rename to docs/tech/02_parser/classes/IsProtectedCondition_2.md index 20a94fa8..315db5e9 100644 --- a/docs/tech/classes/IsProtectedCondition_2.md +++ b/docs/tech/02_parser/classes/IsProtectedCondition_2.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / IsProtectedCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsProtectedCondition

      IsProtectedCondition class: @@ -104,5 +103,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
      - - \ No newline at end of file diff --git a/docs/tech/classes/IsProtectedCondition_3.md b/docs/tech/02_parser/classes/IsProtectedCondition_3.md similarity index 91% rename from docs/tech/classes/IsProtectedCondition_3.md rename to docs/tech/02_parser/classes/IsProtectedCondition_3.md index ea42d901..78bda0ec 100644 --- a/docs/tech/classes/IsProtectedCondition_3.md +++ b/docs/tech/02_parser/classes/IsProtectedCondition_3.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / IsProtectedCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsProtectedCondition

      IsProtectedCondition class: @@ -104,5 +103,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
      - - \ No newline at end of file diff --git a/docs/tech/classes/IsPublicCondition.md b/docs/tech/02_parser/classes/IsPublicCondition.md similarity index 92% rename from docs/tech/classes/IsPublicCondition.md rename to docs/tech/02_parser/classes/IsPublicCondition.md index 0b7fbf37..e93c169f 100644 --- a/docs/tech/classes/IsPublicCondition.md +++ b/docs/tech/02_parser/classes/IsPublicCondition.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / IsPublicCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPublicCondition

      IsPublicCondition class: @@ -104,5 +103,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
      - - \ No newline at end of file diff --git a/docs/tech/classes/IsPublicCondition_2.md b/docs/tech/02_parser/classes/IsPublicCondition_2.md similarity index 91% rename from docs/tech/classes/IsPublicCondition_2.md rename to docs/tech/02_parser/classes/IsPublicCondition_2.md index 6dc81293..3333cc43 100644 --- a/docs/tech/classes/IsPublicCondition_2.md +++ b/docs/tech/02_parser/classes/IsPublicCondition_2.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / IsPublicCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPublicCondition

      IsPublicCondition class: @@ -104,5 +103,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
      - - \ No newline at end of file diff --git a/docs/tech/classes/IsPublicCondition_3.md b/docs/tech/02_parser/classes/IsPublicCondition_3.md similarity index 92% rename from docs/tech/classes/IsPublicCondition_3.md rename to docs/tech/02_parser/classes/IsPublicCondition_3.md index 9fce763d..cd3693ef 100644 --- a/docs/tech/classes/IsPublicCondition_3.md +++ b/docs/tech/02_parser/classes/IsPublicCondition_3.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / IsPublicCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPublicCondition

      IsPublicCondition class: @@ -104,5 +103,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
      - - \ No newline at end of file diff --git a/docs/tech/classes/LocatedInCondition.md b/docs/tech/02_parser/classes/LocatedInCondition.md similarity index 89% rename from docs/tech/classes/LocatedInCondition.md rename to docs/tech/02_parser/classes/LocatedInCondition.md index bc896755..0d42026c 100644 --- a/docs/tech/classes/LocatedInCondition.md +++ b/docs/tech/02_parser/classes/LocatedInCondition.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / LocatedInCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / LocatedInCondition

      LocatedInCondition class: @@ -132,11 +131,9 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf Throws:
      - - \ No newline at end of file diff --git a/docs/tech/classes/LocatedNotInCondition.md b/docs/tech/02_parser/classes/LocatedNotInCondition.md similarity index 89% rename from docs/tech/classes/LocatedNotInCondition.md rename to docs/tech/02_parser/classes/LocatedNotInCondition.md index 0c4b849e..31d91c10 100644 --- a/docs/tech/classes/LocatedNotInCondition.md +++ b/docs/tech/02_parser/classes/LocatedNotInCondition.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / LocatedNotInCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / LocatedNotInCondition

      LocatedNotInCondition class: @@ -132,11 +131,9 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf Throws:
      - - \ No newline at end of file diff --git a/docs/tech/classes/MethodEntityCollection.md b/docs/tech/02_parser/classes/MethodEntitiesCollection.md similarity index 57% rename from docs/tech/classes/MethodEntityCollection.md rename to docs/tech/02_parser/classes/MethodEntitiesCollection.md index 429e6c6b..dd2a9b0e 100644 --- a/docs/tech/classes/MethodEntityCollection.md +++ b/docs/tech/02_parser/classes/MethodEntitiesCollection.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / MethodEntityCollection
      + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / MethodEntitiesCollection

      - MethodEntityCollection class: + MethodEntitiesCollection class:

      @@ -10,12 +9,12 @@ ```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method; -final class MethodEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable +final class MethodEntitiesCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate ``` - +
      Collection of PHP class method entities
      @@ -35,34 +34,34 @@ final class MethodEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Base
      1. add -
      2. + - Add an entity to a collection
      3. get -
      4. + - Get the loaded method entity if it exists
      5. getAllExceptInitializations -
      6. + - Get a copy of the collection containing only those methods that are not initialization methods
      7. getInitializations -
      8. + - Get a copy of the collection containing only those methods that are initialization methods
      9. getIterator - - Retrieve an external iterator
      10. +
      11. has -
      12. + - Check if an entity has been added to the collection
      13. isEmpty -
      14. + - Check if the collection is empty or not
      15. loadMethodEntities -
      16. + - Load method entities into the collection according to the project configuration
      17. remove -
      18. + - Remove an entity from a collection
      19. unsafeGet -
      20. + - Get the method entity if it exists. If the method exists but has not been loaded into the collection, a new entity object will be created
      @@ -78,11 +77,11 @@ final class MethodEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Base ```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \Psr\Log\LoggerInterface $logger); +public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \Psr\Log\LoggerInterface $logger); ``` @@ -100,7 +99,7 @@ public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Clas $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -130,14 +129,14 @@ public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Clas ```php -public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityInterface $methodEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection; +public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntityInterface $methodEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection; ``` - +
      Add an entity to a collection
      Parameters: @@ -152,18 +151,18 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity $methodEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityInterface - - + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntityInterface + Entity to be added to the collection $reload bool - - + Replace an entity with a new one if one has already been loaded previously -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection @@ -173,14 +172,14 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity ```php -public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity|null; +public function get(string $objectName): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; ``` - +
      Get the loaded method entity if it exists
      Parameters: @@ -196,12 +195,12 @@ public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parse $objectName string - - + Method entity name -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity @@ -211,18 +210,18 @@ public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parse ```php -public function getAllExceptInitializations(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection; +public function getAllExceptInitializations(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection; ``` - +
      Get a copy of the collection containing only those methods that are not initialization methods
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection @@ -232,18 +231,18 @@ public function getAllExceptInitializations(): \BumbleDocGen\LanguageHandler\Php ```php -public function getInitializations(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection; +public function getInitializations(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection; ``` - +
      Get a copy of the collection containing only those methods that are initialization methods
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection @@ -262,26 +261,13 @@ public function getInitializations(): \BumbleDocGen\LanguageHandler\Php\Parser\E public function getIterator(): \Generator; ``` -
      Retrieve an external iterator
      + Parameters: not specified Return value: \Generator -Throws: - - - -See: -
      @@ -289,7 +275,7 @@ public function getIterator(): \Generator; ```php @@ -298,7 +284,7 @@ public function getIterator(): \Generator; public function has(string $objectName): bool; ``` - +
      Check if an entity has been added to the collection
      Parameters: @@ -329,7 +315,7 @@ public function has(string $objectName): bool; ```php @@ -338,7 +324,7 @@ public function has(string $objectName): bool; public function isEmpty(): bool; ``` - +
      Check if the collection is empty or not
      Parameters: not specified @@ -352,14 +338,14 @@ public function isEmpty(): bool; ```php public function loadMethodEntities(): void; ``` - +
      Load method entities into the collection according to the project configuration
      Parameters: not specified @@ -368,9 +354,6 @@ public function loadMethodEntities(): void; Throws: + +See: +

      @@ -389,7 +378,7 @@ public function loadMethodEntities(): void; ```php @@ -398,7 +387,7 @@ public function loadMethodEntities(): void; public function remove(string $objectName): void; ``` - +
      Remove an entity from a collection
      Parameters: @@ -429,14 +418,14 @@ public function remove(string $objectName): void; ```php -public function unsafeGet(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity|null; +public function unsafeGet(string $objectName): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; ``` - +
      Get the method entity if it exists. If the method exists but has not been loaded into the collection, a new entity object will be created
      Parameters: @@ -452,12 +441,12 @@ public function unsafeGet(string $objectName): \BumbleDocGen\LanguageHandler\Php $objectName string - - + Method entity name -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity Throws: @@ -465,18 +454,13 @@ public function unsafeGet(string $objectName): \BumbleDocGen\LanguageHandler\Php
    81. \DI\NotFoundException
    82. -
    83. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    84. -
    85. \DI\DependencyException
    86. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    87. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException

      - - \ No newline at end of file diff --git a/docs/tech/classes/MethodEntity.md b/docs/tech/02_parser/classes/MethodEntity.md similarity index 56% rename from docs/tech/classes/MethodEntity.md rename to docs/tech/02_parser/classes/MethodEntity.md index fbb57e47..abc48f0e 100644 --- a/docs/tech/classes/MethodEntity.md +++ b/docs/tech/02_parser/classes/MethodEntity.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / MethodEntity
      + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / MethodEntity

      - MethodEntity class: + MethodEntity class:

      @@ -10,9 +9,9 @@ ```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method; -class MethodEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface +class MethodEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface ```
      Class method entity
      @@ -33,15 +32,15 @@ class MethodEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseE

      Methods:

        -
      1. - entityCacheIsOutdated -
      2. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      3. +
      4. + getAst + - Get AST for this entity
      5. getBodyCode -
      6. + - Get the code for this method
      7. getCacheKey
      8. @@ -49,158 +48,155 @@ class MethodEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseE getCachedEntityDependencies
      9. - getDescription + getCurrentRootEntity
      10. +
      11. + getDescription + - Get entity description
      12. getDescriptionLinks - Get parsed links from description and doc blocks `see` and `link`
      13. getDocBlock -
      14. + - Get DocBlock for current entity
      15. getDocComment - Get the doc comment of an entity
      16. getDocCommentEntity -
      17. + - Link to an entity where docBlock is implemented for this entity
      18. getDocCommentLine
      19. -
      20. - getDocCommentLineRecursive -
      21. -
      22. - getDocCommentRecursive -
      23. getDocNote -
      24. + - Get the note annotation value
      25. getEndLine -
      26. + - Get the line number of the end of a method's code in a file
      27. getExamples - Get parsed examples from `examples` doc block
      28. -
      29. - getFileName -
      30. getFileSourceLink
      31. getFirstExample - - Get first example from @examples doc block
      32. + - Get first example from `examples` doc block
      33. getFirstReturnValue -
      34. + - Get the compiled first return value of a method (if possible)
      35. getImplementingClass -
      36. + - Get the class like entity in which the current entity was implemented
      37. getImplementingClassName -
      38. -
      39. - getImplementingReflectionClass -
      40. + - Get the name of the class in which this method is implemented
      41. getModifiersString -
      42. + - Get a text representation of method modifiers
      43. getName -
      44. + - Full name of the entity
      45. getNamespaceName -
      46. + - Namespace of the class that contains this method
      47. getObjectId - Get entity unique ID
      48. getParameters -
      49. + - Get a list of method parameters
      50. getParametersString -
      51. + - Get a list of method parameters as a string
      52. - getPhpHandlerSettings -
      53. + getParentMethod + - Get the parent method for this method
      54. - getPrototype -
      55. + getRelativeFileName + - File name relative to project_root configuration parameter
      56. getReturnType -
      57. + - Get the return type of method
      58. getRootEntity
      59. getRootEntityCollection - - Get parent collection of entities
      60. + - Get the collection of root entities to which this entity belongs
      61. getShortName -
      62. + - Short name of the entity
      63. getSignature -
      64. + - Get the method signature as a string
      65. getStartColumn -
      66. + - Get the column number of the beginning of the method code in a file
      67. getStartLine -
      68. + - Get the line number of the beginning of the entity code in a file
      69. getThrows - Get parsed throws from `throws` doc block
      70. - hasDescriptionLinks + getThrowsDocBlockLinks
      71. +
      72. + hasDescriptionLinks + - Checking if an entity has links in its description
      73. hasExamples -
      74. + - Checking if an entity has `example` docBlock
      75. hasThrows -
      76. + - Checking if an entity has `throws` docBlock +
      77. + isApi + - Checking if an entity has `api` docBlock
      78. isConstructor -
      79. + - Checking that a method is a constructor
      80. isDeprecated -
      81. + - Checking if an entity has `deprecated` docBlock
      82. isDynamic -
      83. + - Check if a method is a dynamic method, that is, implementable using __call or __callStatic +
      84. + isEntityCacheOutdated + - Checking if the entity cache is out of date
      85. isEntityDataCacheOutdated
      86. isEntityFileCanBeLoad -
      87. + - Checking if entity data can be retrieved
      88. isImplementedInParentClass -
      89. + - Check if this method is implemented in the parent class
      90. isInitialization -
      91. + - Check if a method is an initialization method
      92. isInternal -
      93. + - Checking if an entity has `internal` docBlock
      94. isPrivate -
      95. + - Check if a method is a private method
      96. isProtected -
      97. + - Check if a method is a protected method
      98. isPublic -
      99. + - Check if a method is a public method
      100. isStatic -
      101. -
      102. - parseAnnotationParams -
      103. + - Check if this method is static
      104. reloadEntityDependenciesCache -
      105. + - Update entity dependency cache
      106. removeEntityValueFromCache
      107. @@ -210,6 +206,25 @@ class MethodEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseE
      +

      Constants:

      + @@ -222,11 +237,11 @@ class MethodEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseE ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, \PhpParser\PrettyPrinter\Standard $astPrinter, string $methodName, string $declaringClassName, string $implementingClassName); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \PhpParser\PrettyPrinter\Standard $astPrinter, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $methodName, string $implementingClassName); ``` @@ -249,13 +264,18 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - $parserHelper \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper - + + + $astPrinter + \PhpParser\PrettyPrinter\Standard + - $localObjectCache @@ -266,21 +286,11 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $logger \Psr\Log\LoggerInterface - - - - $astPrinter - \PhpParser\PrettyPrinter\Standard - - $methodName string - - - - $declaringClassName - string - - $implementingClassName @@ -297,31 +307,28 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf
      ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function entityCacheIsOutdated(): bool; +public function getAbsoluteFileName(): null|string; ``` - +
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      Parameters: not specified -Return value: bool +Return value: null | string Throws: @@ -330,28 +337,26 @@ public function entityCacheIsOutdated(): bool;
      ```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getAbsoluteFileName(): string|null; +public function getAst(): \PhpParser\Node\Stmt\ClassMethod; ``` -
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      +
      Get AST for this entity
      Parameters: not specified -Return value: string | null +Return value: \PhpParser\Node\Stmt\ClassMethod Throws: @@ -362,30 +367,20 @@ public function getAbsoluteFileName(): string|null; ```php public function getBodyCode(): string; ``` - +
      Get the code for this method
      Parameters: not specified Return value: string -Throws: - -

      @@ -393,7 +388,7 @@ public function getBodyCode(): string; ```php @@ -416,7 +411,7 @@ public function getCacheKey(): string; ```php @@ -437,8 +432,34 @@ public function getCachedEntityDependencies(): array;
    88. \Psr\Cache\InvalidArgumentException
    89. +
    90. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    91. + +
      +
      +
      + +
        +
      • # + getCurrentRootEntity + :warning: Is internal | source code
      • +
      + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +

      @@ -446,14 +467,16 @@ public function getCachedEntityDependencies(): array; ```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + public function getDescription(): string; ``` - +
      Get entity description
      Parameters: not specified @@ -463,16 +486,7 @@ public function getDescription(): string; Throws: @@ -483,7 +497,7 @@ public function getDescription(): string; ```php @@ -502,7 +516,7 @@ public function getDescriptionLinks(): array; Throws:

      @@ -638,27 +611,24 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php -public function getDocCommentLine(): int|null; +public function getDocCommentLine(): null|int; ``` Parameters: not specified -Return value: int | null +Return value: null | int Throws: @@ -667,53 +637,18 @@ public function getDocCommentLine(): int|null;
      ```php -public function getDocCommentLineRecursive(): int|null; -``` - - - -Parameters: not specified - -Return value: int | null - - -Throws: - - -
      -
      -
      - - +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -```php -public function getDocCommentRecursive(): string; +public function getDocNote(): string; ``` - +
      Get the note annotation value
      Parameters: not specified @@ -723,42 +658,10 @@ public function getDocCommentRecursive(): string; Throws: -
      -
      -
      - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getDocNote(): string; -``` - - - -Parameters: not specified - -Return value: string - -

      @@ -766,30 +669,20 @@ public function getDocNote(): string; ```php public function getEndLine(): int; ``` - +
      Get the line number of the end of a method's code in a file
      Parameters: not specified Return value: int -Throws: - -

      @@ -797,7 +690,7 @@ public function getEndLine(): int; ```php @@ -813,34 +706,10 @@ public function getExamples(): array; Return value: array -
      -
      -
      - - - -```php -public function getFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - Throws: @@ -851,13 +720,13 @@ public function getFileName(): string|null; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -881,13 +750,13 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string Throws: @@ -898,7 +767,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -907,13 +776,20 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getFirstExample(): string; ``` -
      Get first example from @examples doc block
      +
      Get first example from `examples` doc block
      Parameters: not specified Return value: string +Throws: + +

      @@ -921,30 +797,20 @@ public function getFirstExample(): string; ```php public function getFirstReturnValue(): mixed; ``` - +
      Get the compiled first return value of a method (if possible)
      Parameters: not specified Return value: mixed -Throws: - -

      @@ -952,18 +818,18 @@ public function getFirstReturnValue(): mixed; ```php -public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
      Get the class like entity in which the current entity was implemented
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
      @@ -973,51 +839,20 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php public function getImplementingClassName(): string; ``` - +
      Get the name of the class in which this method is implemented
      Parameters: not specified Return value: string -
      -
      -
      - - - -```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: not specified - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: - -

      @@ -1025,30 +860,20 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php public function getModifiersString(): string; ``` - +
      Get a text representation of method modifiers
      Parameters: not specified Return value: string -Throws: - -

      @@ -1056,14 +881,14 @@ public function getModifiersString(): string; ```php public function getName(): string; ``` - +
      Full name of the entity
      Parameters: not specified @@ -1077,30 +902,20 @@ public function getName(): string; ```php public function getNamespaceName(): string; ``` - +
      Namespace of the class that contains this method
      Parameters: not specified Return value: string -Throws: - -

      @@ -1108,7 +923,7 @@ public function getNamespaceName(): string; ```php @@ -1131,39 +946,20 @@ public function getObjectId(): string; ```php public function getParameters(): array; ``` - +
      Get a list of method parameters
      Parameters: not specified Return value: array -Throws: - -

      @@ -1171,83 +967,43 @@ public function getParameters(): array; ```php public function getParametersString(): string; ``` - +
      Get a list of method parameters as a string
      Parameters: not specified Return value: string -Throws: - - -
      -
      -
      - - - -```php -public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings - -

      ```php -public function getPrototype(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity|null; +public function getParentMethod(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; ``` - +
      Get the parent method for this method
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity Throws: @@ -1264,37 +1020,48 @@ public function getPrototype(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\
      ```php -public function getReturnType(): string; +public function getRelativeFileName(): null|string; ``` - +
      File name relative to project_root configuration parameter
      Parameters: not specified -Return value: string +Return value: null | string -Throws: + +See: +
      +
      +
      -
    92. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    93. + -
    94. - \DI\DependencyException
    95. +```php +public function getReturnType(): string; +``` -
    96. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    97. +
      Get the return type of method
      + +Parameters: not specified + +Return value: string -

      @@ -1303,18 +1070,18 @@ public function getReturnType(): string; ```php -public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
      @@ -1324,18 +1091,18 @@ public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity ```php -public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` -
      Get parent collection of entities
      +
      Get the collection of root entities to which this entity belongs
      Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection @@ -1345,14 +1112,14 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php public function getShortName(): string; ``` - +
      Short name of the entity
      Parameters: not specified @@ -1366,36 +1133,20 @@ public function getShortName(): string; ```php public function getSignature(): string; ``` - +
      Get the method signature as a string
      Parameters: not specified Return value: string -Throws: - -
      @@ -1403,30 +1154,20 @@ public function getSignature(): string; ```php public function getStartColumn(): int; ``` - +
      Get the column number of the beginning of the method code in a file
      Parameters: not specified Return value: int -Throws: - -

      @@ -1434,30 +1175,20 @@ public function getStartColumn(): int; ```php public function getStartLine(): int; ``` - +
      Get the line number of the beginning of the entity code in a file
      Parameters: not specified Return value: int -Throws: - -

      @@ -1465,7 +1196,7 @@ public function getStartLine(): int; ```php @@ -1484,10 +1215,37 @@ public function getThrows(): array; Throws: + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + + +Parameters: not specified + +Return value: array + +Throws: + @@ -1498,7 +1256,7 @@ public function getThrows(): array; ```php @@ -1507,7 +1265,7 @@ public function getThrows(): array; public function hasDescriptionLinks(): bool; ``` - +
      Checking if an entity has links in its description
      Parameters: not specified @@ -1528,7 +1286,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1537,13 +1295,20 @@ public function hasDescriptionLinks(): bool; public function hasExamples(): bool; ``` - +
      Checking if an entity has `example` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -1551,7 +1316,7 @@ public function hasExamples(): bool; ```php @@ -1560,13 +1325,50 @@ public function hasExamples(): bool; public function hasThrows(): bool; ``` +
      Checking if an entity has `throws` docBlock
      + +Parameters: not specified + +Return value: bool + + +Throws: + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` +
      Checking if an entity has `api` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -1574,14 +1376,14 @@ public function hasThrows(): bool; ```php public function isConstructor(): bool; ``` - +
      Checking that a method is a constructor
      Parameters: not specified @@ -1595,7 +1397,7 @@ public function isConstructor(): bool; ```php @@ -1604,13 +1406,20 @@ public function isConstructor(): bool; public function isDeprecated(): bool; ``` - +
      Checking if an entity has `deprecated` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -1618,14 +1427,37 @@ public function isDeprecated(): bool; ```php public function isDynamic(): bool; ``` +
      Check if a method is a dynamic method, that is, implementable using __call or __callStatic
      + +Parameters: not specified + +Return value: bool + + +
      +
      +
      + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` +
      Checking if the entity cache is out of date
      Parameters: not specified @@ -1639,7 +1471,7 @@ public function isDynamic(): bool; ```php @@ -1669,7 +1501,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1678,7 +1510,7 @@ public function isEntityDataCacheOutdated(): bool; public function isEntityFileCanBeLoad(): bool; ``` - +
      Checking if entity data can be retrieved
      Parameters: not specified @@ -1688,10 +1520,7 @@ public function isEntityFileCanBeLoad(): bool; Throws: @@ -1702,14 +1531,14 @@ public function isEntityFileCanBeLoad(): bool; ```php public function isImplementedInParentClass(): bool; ``` - +
      Check if this method is implemented in the parent class
      Parameters: not specified @@ -1723,36 +1552,20 @@ public function isImplementedInParentClass(): bool; ```php public function isInitialization(): bool; ``` - +
      Check if a method is an initialization method
      Parameters: not specified Return value: bool -Throws: - -

      @@ -1760,7 +1573,7 @@ public function isInitialization(): bool; ```php @@ -1769,13 +1582,20 @@ public function isInitialization(): bool; public function isInternal(): bool; ``` - +
      Checking if an entity has `internal` docBlock
      Parameters: not specified Return value: bool +Throws: + +

      @@ -1783,30 +1603,20 @@ public function isInternal(): bool; ```php public function isPrivate(): bool; ``` - +
      Check if a method is a private method
      Parameters: not specified Return value: bool -Throws: - -

      @@ -1814,30 +1624,20 @@ public function isPrivate(): bool; ```php public function isProtected(): bool; ``` - +
      Check if a method is a protected method
      Parameters: not specified Return value: bool -Throws: - -

      @@ -1845,30 +1645,20 @@ public function isProtected(): bool; ```php public function isPublic(): bool; ``` - +
      Check if a method is a public method
      Parameters: not specified Return value: bool -Throws: - -

      @@ -1876,68 +1666,20 @@ public function isPublic(): bool; ```php public function isStatic(): bool; ``` - +
      Check if this method is static
      Parameters: not specified Return value: bool -Throws: - - -
      -
      -
      - - - -```php -public static function parseAnnotationParams(array $params): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $paramsarray-
      - -Return value: array - -

      @@ -1945,7 +1687,7 @@ public static function parseAnnotationParams(array $params): array; ```php @@ -1954,20 +1696,13 @@ public static function parseAnnotationParams(array $params): array; public function reloadEntityDependenciesCache(): array; ``` - +
      Update entity dependency cache
      Parameters: not specified Return value: array -Throws: - -

      @@ -1975,7 +1710,7 @@ public function reloadEntityDependenciesCache(): array; ```php @@ -2015,7 +1750,7 @@ public function removeEntityValueFromCache(string $key): void; ```php @@ -2040,5 +1775,3 @@ public function removeNotUsedEntityDataCache(): void;

      - - \ No newline at end of file diff --git a/docs/tech/classes/OnlyFromCurrentClassCondition.md b/docs/tech/02_parser/classes/OnlyFromCurrentClassCondition.md similarity index 89% rename from docs/tech/classes/OnlyFromCurrentClassCondition.md rename to docs/tech/02_parser/classes/OnlyFromCurrentClassCondition.md index 2d3b716a..dfcd5eb3 100644 --- a/docs/tech/classes/OnlyFromCurrentClassCondition.md +++ b/docs/tech/02_parser/classes/OnlyFromCurrentClassCondition.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / OnlyFromCurrentClassCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / OnlyFromCurrentClassCondition

      OnlyFromCurrentClassCondition class: @@ -77,5 +76,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
      - - \ No newline at end of file diff --git a/docs/tech/classes/OnlyFromCurrentClassCondition_2.md b/docs/tech/02_parser/classes/OnlyFromCurrentClassCondition_2.md similarity index 89% rename from docs/tech/classes/OnlyFromCurrentClassCondition_2.md rename to docs/tech/02_parser/classes/OnlyFromCurrentClassCondition_2.md index df0aa797..6ca28f92 100644 --- a/docs/tech/classes/OnlyFromCurrentClassCondition_2.md +++ b/docs/tech/02_parser/classes/OnlyFromCurrentClassCondition_2.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / OnlyFromCurrentClassCondition
      + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / OnlyFromCurrentClassCondition

      OnlyFromCurrentClassCondition class: @@ -77,5 +76,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
      - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/ClassEntityCollection.md b/docs/tech/02_parser/classes/PhpEntitiesCollection.md similarity index 59% rename from docs/tech/2.parser/classes/ClassEntityCollection.md rename to docs/tech/02_parser/classes/PhpEntitiesCollection.md index 96298fa7..b6328938 100644 --- a/docs/tech/2.parser/classes/ClassEntityCollection.md +++ b/docs/tech/02_parser/classes/PhpEntitiesCollection.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / ClassEntityCollection
      + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / PhpEntitiesCollection

      - ClassEntityCollection class: + PhpEntitiesCollection class:

      @@ -12,10 +11,10 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; -final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection implements \IteratorAggregate, \Traversable +final class PhpEntitiesCollection extends \BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection implements \IteratorAggregate ``` -
      Collection of PHP class entities
      +
      Collection of php root entities
      @@ -35,64 +34,58 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
      1. add -
      2. + - Add an entity to the collection
      3. clearOperationsLogCollection
      4. filterByInterfaces -
      5. + - Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
      6. filterByNameRegularExpression -
      7. + - Get a copy of the current collection with only entities whose names match the regular expression
      8. filterByParentClassNames -
      9. + - Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
      10. filterByPaths -
      11. + - Get a copy of the current collection only with entities filtered by file paths (from project_root)
      12. findEntity -
      13. + - Find an entity in a collection
      14. get -
      15. -
      16. - getEntityByClassName -
      17. + - Get an entity from a collection (only previously added)
      18. getEntityCollectionName -
      19. + - Get collection name
      20. getEntityLinkData
      21. getIterator - - Retrieve an external iterator
      22. +
      23. getLoadedOrCreateNew -
      24. + - Get an entity from the collection or create a new one if it has not yet been added
      25. getOnlyAbstractClasses -
      26. + - Get a copy of the current collection with only abstract classes
      27. getOnlyInstantiable -
      28. + - Get a copy of the current collection with only instantiable entities
      29. getOnlyInterfaces -
      30. + - Get a copy of the current collection with only interfaces
      31. getOnlyTraits -
      32. + - Get a copy of the current collection with only traits
      33. getOperationsLogCollection
      34. -
      35. - getPluginEventDispatcher -
      36. has -
      37. + - Check if an entity has been added to the collection
      38. internalFindEntity
      39. @@ -101,13 +94,22 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
      40. isEmpty -
      41. + - Check if the collection is empty or not
      42. - loadClassEntities -
      43. + loadEntities + - Load entities into a collection +
      44. + loadEntitiesByConfiguration + - Load entities into a collection by configuration
      45. remove + - Remove an entity from a collection
      46. +
      47. + removeAllNotLoadedEntities
      48. +
      49. + toArray + - Convert collection to array
      50. updateEntitiesCache
      51. @@ -118,7 +120,7 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga @@ -133,11 +135,11 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\EntityDocRendererHelper $docRendererHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Console\ProgressBar\ProgressBarFactory $progressBarFactory, \Symfony\Component\Console\Style\OutputStyle $io, \Psr\Log\LoggerInterface $logger); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\EntityDocRendererHelper $docRendererHelper, \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper $phpParserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger); ``` @@ -162,11 +164,6 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $phpHandlerSettings \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings - - - - $parserHelper - \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper - - $pluginEventDispatcher @@ -184,18 +181,13 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf - - $localObjectCache - \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - - - - - $progressBarFactory - \BumbleDocGen\Console\ProgressBar\ProgressBarFactory + $phpParserHelper + \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper - - $io - \Symfony\Component\Console\Style\OutputStyle + $localObjectCache + \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - @@ -215,14 +207,14 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php -public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
        Add an entity to the collection
        Parameters: @@ -237,7 +229,7 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -248,16 +240,13 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -291,14 +280,14 @@ public function clearOperationsLogCollection(): void; ```php -public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
        Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
        Parameters: @@ -319,16 +308,13 @@ public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHan -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -339,14 +325,14 @@ public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHan ```php -public function filterByNameRegularExpression(string $regexPattern): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByNameRegularExpression(string $regexPattern): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
        Get a copy of the current collection with only entities whose names match the regular expression
        Parameters: @@ -367,7 +353,7 @@ public function filterByNameRegularExpression(string $regexPattern): \BumbleDocG -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection @@ -377,14 +363,14 @@ public function filterByNameRegularExpression(string $regexPattern): \BumbleDocG ```php -public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
        Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
        Parameters: @@ -405,16 +391,13 @@ public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -425,14 +408,14 @@ public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen ```php -public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
        Get a copy of the current collection only with entities filtered by file paths (from project_root)
        Parameters: @@ -453,16 +436,13 @@ public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\P -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -479,10 +459,10 @@ public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\P ```php // Implemented in BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection -public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function findEntity(string $search, bool $useUnsafeKeys = true): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
        Find an entity in a collection
        Parameters: @@ -508,7 +488,7 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface @@ -524,10 +504,10 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD ```php // Implemented in BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection -public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function get(string $objectName): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
        Get an entity from a collection (only previously added)
        Parameters: @@ -548,50 +528,7 @@ public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEn -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null - - - -
        -
        - - - -```php -public function getEntityByClassName(string $className, bool $createIfNotExists = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $classNamestring-
        $createIfNotExistsbool-
        - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface
        @@ -601,14 +538,14 @@ public function getEntityByClassName(string $className, bool $createIfNotExists ```php public function getEntityCollectionName(): string; ``` - +
        Get collection name
        Parameters: not specified @@ -622,7 +559,7 @@ public function getEntityCollectionName(): string; ```php @@ -680,26 +617,13 @@ public function getEntityLinkData(string $rawLink, string|null $defaultEntityNam public function getIterator(): \Generator; ``` -
        Retrieve an external iterator
        + Parameters: not specified Return value: \Generator -Throws: - - - -See: -
        @@ -716,7 +640,7 @@ public function getIterator(): \Generator; public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
        Get an entity from the collection or create a new one if it has not yet been added
        Parameters: @@ -749,7 +673,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit See:

        @@ -758,27 +682,24 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit ```php -public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
        Get a copy of the current collection with only abstract classes
        Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -789,29 +710,19 @@ public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Pars ```php -public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
        Get a copy of the current collection with only instantiable entities
        Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
        @@ -820,29 +731,19 @@ public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php -public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
        Get a copy of the current collection with only interfaces
        Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
        @@ -851,29 +752,19 @@ public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\En ```php -public function getOnlyTraits(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyTraits(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
        Get a copy of the current collection with only traits
        Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
        @@ -898,27 +789,6 @@ public function getOperationsLogCollection(): \BumbleDocGen\Core\Parser\Entity\C Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection - -
        -
        - - - -```php -public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEventDispatcher; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Plugin\PluginEventDispatcher - -

        @@ -926,7 +796,7 @@ public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEven ```php @@ -935,7 +805,7 @@ public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEven public function has(string $objectName): bool; ``` - +
        Check if an entity has been added to the collection
        Parameters: @@ -966,11 +836,11 @@ public function has(string $objectName): bool; ```php -public function internalFindEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|null; +public function internalFindEntity(string $search, bool $useUnsafeKeys = true): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` @@ -1001,7 +871,7 @@ public function internalFindEntity(string $search, bool $useUnsafeKeys = true): -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity @@ -1009,14 +879,14 @@ public function internalFindEntity(string $search, bool $useUnsafeKeys = true): Examples of using: ```php -$classEntityCollection->findEntity('App'); // class name -$classEntityCollection->findEntity('BumbleDocGen\Console\App'); // class with namespace -$classEntityCollection->findEntity('\BumbleDocGen\Console\App'); // class with namespace -$classEntityCollection->findEntity('\BumbleDocGen\Console\App::test()'); // class with namespace and optional part -$classEntityCollection->findEntity('App.php'); // filename -$classEntityCollection->findEntity('/BumbleDocGen/Console/App.php'); // relative path -$classEntityCollection->findEntity('/Users/someuser/Desktop/projects/bumble-doc-gen/BumbleDocGen/Console/App.php'); // absolute path -$classEntityCollection->findEntity('https://github.com/bumble-tech/bumble-doc-gen/blob/master/BumbleDocGen/Console/App.php'); // source link +$entitiesCollection->findEntity('App'); // class name +$entitiesCollection->findEntity('BumbleDocGen\Console\App'); // class with namespace +$entitiesCollection->findEntity('\BumbleDocGen\Console\App'); // class with namespace +$entitiesCollection->findEntity('\BumbleDocGen\Console\App::test()'); // class with namespace and optional part +$entitiesCollection->findEntity('App.php'); // filename +$entitiesCollection->findEntity('/src/Console/App.php'); // relative path +$entitiesCollection->findEntity('/Users/someuser/Desktop/projects/bumble-doc-gen/src/Console/App.php'); // absolute path +$entitiesCollection->findEntity('https://github.com/bumble-tech/bumble-doc-gen/blob/master/src/Console/App.php'); // source link ```
        @@ -1026,11 +896,11 @@ $classEntityCollection->findEntity('https://github.com/bumble-tech/bumble-doc-ge ```php -public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` @@ -1059,7 +929,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity Throws: @@ -1070,6 +940,9 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl
      52. \DI\NotFoundException
      53. +
      54. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      55. + @@ -1079,7 +952,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl ```php @@ -1088,7 +961,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl public function isEmpty(): bool; ``` - +
        Check if the collection is empty or not
        Parameters: not specified @@ -1100,35 +973,116 @@ public function isEmpty(): bool;
        ```php -public function loadClassEntities(): void; +public function loadEntities(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection $sourceLocatorsCollection, \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface|null $filters = null, \BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; ``` +
        Load entities into a collection
        +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $sourceLocatorsCollection\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection-
        $filters\BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface | null-
        $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
        -Return value: void +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult Throws: + +
        +
        +
        + +
          +
        • # + loadEntitiesByConfiguration + :warning: Is internal | source code
        • +
        + +```php +public function loadEntitiesByConfiguration(\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; +``` + +
        Load entities into a collection by configuration
        + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
        + +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult + + +Throws: + @@ -1139,7 +1093,7 @@ public function loadClassEntities(): void; ```php @@ -1148,7 +1102,7 @@ public function loadClassEntities(): void; public function remove(string $objectName): void; ``` - +
        Remove an entity from a collection
        Parameters: @@ -1172,6 +1126,52 @@ public function remove(string $objectName): void; Return value: void +
        +
        +
        + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection + +public function removeAllNotLoadedEntities(): void; +``` + + + +Parameters: not specified + +Return value: void + + +
        +
        +
        + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection + +public function toArray(): array; +``` + +
        Convert collection to array
        + +Parameters: not specified + +Return value: array + +

        @@ -1179,7 +1179,7 @@ public function remove(string $objectName): void; ```php @@ -1204,5 +1204,3 @@ public function updateEntitiesCache(): void;

        - - \ No newline at end of file diff --git a/docs/tech/classes/PhpHandlerSettings.md b/docs/tech/02_parser/classes/PhpHandlerSettings.md similarity index 69% rename from docs/tech/classes/PhpHandlerSettings.md rename to docs/tech/02_parser/classes/PhpHandlerSettings.md index 9883e2be..b3acb783 100644 --- a/docs/tech/classes/PhpHandlerSettings.md +++ b/docs/tech/02_parser/classes/PhpHandlerSettings.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / PhpHandlerSettings
        + BumbleDocGen / Technical description of the project / Parser / PhpHandlerSettings

        PhpHandlerSettings class: @@ -33,15 +32,18 @@ final class PhpHandlerSettings

        Methods:

          -
        1. - asyncSourceLoadingEnabled -
        2. getClassConstantEntityFilter
        3. getClassEntityFilter
        4. +
        5. + getComposerConfigFile +
        6. +
        7. + getComposerVendorDir +
        8. getCustomTwigFilters
        9. @@ -60,6 +62,12 @@ final class PhpHandlerSettings
        10. getPropertyEntityFilter
        11. +
        12. + getPsr4Map +
        13. +
        14. + getUseComposerAutoload +
        @@ -126,26 +134,32 @@ public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParame
        ```php -public function asyncSourceLoadingEnabled(): bool; +public function getClassConstantEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; ``` Parameters: not specified -Return value: bool +Return value: \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface Throws: @@ -154,13 +168,13 @@ public function asyncSourceLoadingEnabled(): bool;
        ```php -public function getClassConstantEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; +public function getClassEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; ``` @@ -179,7 +193,7 @@ public function getClassConstantEntityFilter(): \BumbleDocGen\Core\Parser\Filter \DI\NotFoundException
      56. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      57. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -188,32 +202,54 @@ public function getClassConstantEntityFilter(): \BumbleDocGen\Core\Parser\Filter
        ```php -public function getClassEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; +public function getComposerConfigFile(): null|string; ``` Parameters: not specified -Return value: \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface +Return value: null | string Throws: + +
        +
        +
        + + + +```php +public function getComposerVendorDir(): null|string; +``` + -
      58. - \DI\NotFoundException
      59. +Parameters: not specified + +Return value: null | string + + +Throws: + @@ -224,7 +260,7 @@ public function getClassEntityFilter(): \BumbleDocGen\Core\Parser\FilterConditio ```php @@ -244,7 +280,7 @@ public function getCustomTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\ \DI\DependencyException
      60. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      61. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      62. \DI\NotFoundException
      63. @@ -258,7 +294,7 @@ public function getCustomTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\ ```php @@ -278,7 +314,7 @@ public function getCustomTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Funct \DI\DependencyException
      64. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      65. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      66. \DI\NotFoundException
      67. @@ -312,7 +348,7 @@ public function getEntityDocRenderersCollection(): \BumbleDocGen\Core\Renderer\E \DI\DependencyException
      68. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      69. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      70. \DI\NotFoundException
      71. @@ -330,20 +366,20 @@ public function getEntityDocRenderersCollection(): \BumbleDocGen\Core\Renderer\E ```php -public function getFileSourceBaseUrl(): string|null; +public function getFileSourceBaseUrl(): null|string; ``` Parameters: not specified -Return value: string | null +Return value: null | string Throws: @@ -374,7 +410,7 @@ public function getMethodEntityFilter(): \BumbleDocGen\Core\Parser\FilterConditi \DI\DependencyException
      72. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      73. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      74. \DI\NotFoundException
      75. @@ -408,7 +444,7 @@ public function getPropertyEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondi \DI\DependencyException
      76. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      77. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      78. \DI\NotFoundException
      79. @@ -417,5 +453,59 @@ public function getPropertyEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondi

        +
        + + + +```php +public function getPsr4Map(): array; +``` - \ No newline at end of file + + +Parameters: not specified + +Return value: array + + +Throws: + + +
        +
        +
        + + + +```php +public function getUseComposerAutoload(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
        +
        diff --git a/docs/tech/02_parser/classes/ProjectParser.md b/docs/tech/02_parser/classes/ProjectParser.md new file mode 100644 index 00000000..4b1e91cd --- /dev/null +++ b/docs/tech/02_parser/classes/ProjectParser.md @@ -0,0 +1,223 @@ + BumbleDocGen / Technical description of the project / Parser / ProjectParser
        + +

        + ProjectParser class: +

        + + + + + +```php +namespace BumbleDocGen\Core\Parser; + +final class ProjectParser +``` + +
        Entity for project parsing using source locators
        + + + + + + +

        Initialization methods:

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

        Methods:

        + +
          +
        1. + getEntityCollectionForPL +
        2. +
        3. + getRootEntityCollectionsGroup +
        4. +
        5. + parse +
        6. +
        + + + + + + + +

        Method details:

        + +
        + + + +```php +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $configuration\BumbleDocGen\Core\Configuration\Configuration-
        $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
        $rootEntityCollectionsGroup\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup-
        + + + +
        +
        +
        + + + +```php +public function getEntityCollectionForPL(string $plHandlerClassName): null|\BumbleDocGen\Core\Parser\Entity\RootEntityCollection; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $plHandlerClassNamestring-
        + +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityCollection + + +Throws: + + +
        +
        +
        + + + +```php +public function getRootEntityCollectionsGroup(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup + + +
        +
        +
        + + + +```php +public function parse(\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionGroupLoadEntitiesResult; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
        + +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionGroupLoadEntitiesResult + + +Throws: + + +
        +
        diff --git a/docs/tech/classes/PropertyEntityCollection.md b/docs/tech/02_parser/classes/PropertyEntitiesCollection.md similarity index 59% rename from docs/tech/classes/PropertyEntityCollection.md rename to docs/tech/02_parser/classes/PropertyEntitiesCollection.md index e7842cde..c759783c 100644 --- a/docs/tech/classes/PropertyEntityCollection.md +++ b/docs/tech/02_parser/classes/PropertyEntitiesCollection.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / PropertyEntityCollection
        + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / PropertyEntitiesCollection

        - PropertyEntityCollection class: + PropertyEntitiesCollection class:

        @@ -10,9 +9,9 @@ ```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property; -final class PropertyEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable +final class PropertyEntitiesCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate ``` @@ -35,28 +34,28 @@ final class PropertyEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Ba
        1. add -
        2. + - Add an entity to a collection
        3. get -
        4. + - Get the loaded property entity if it exists
        5. getIterator - - Retrieve an external iterator
        6. +
        7. has -
        8. + - Check if an entity has been added to the collection
        9. isEmpty -
        10. + - Check if the collection is empty or not
        11. loadPropertyEntities -
        12. + - Load property entities into the collection according to the project configuration
        13. remove -
        14. + - Remove an entity from a collection
        15. unsafeGet -
        16. + - Get the property entity if it exists. If the property exists but has not been loaded into the collection, a new entity object will be created
        @@ -72,11 +71,11 @@ final class PropertyEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Ba ```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory); +public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory); ``` @@ -94,7 +93,7 @@ public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Clas $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -119,14 +118,14 @@ public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Clas ```php -public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity $propertyEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntityCollection; +public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity $propertyEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection; ``` - +
        Add an entity to a collection
        Parameters: @@ -141,18 +140,18 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEnti $propertyEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity - - + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity + Entity to be added to the collection $reload bool - - + Replace an entity with a new one if one has already been loaded previously -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection
        @@ -162,14 +161,14 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEnti ```php -public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity|null; +public function get(string $objectName): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; ``` - +
        Get the loaded property entity if it exists
        Parameters: @@ -185,12 +184,12 @@ public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parse $objectName string - - + Property entity name -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity
        @@ -209,26 +208,13 @@ public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parse public function getIterator(): \Generator; ``` -
        Retrieve an external iterator
        + Parameters: not specified Return value: \Generator -Throws: - - - -See: -
        @@ -236,7 +222,7 @@ public function getIterator(): \Generator; ```php @@ -245,7 +231,7 @@ public function getIterator(): \Generator; public function has(string $objectName): bool; ``` - +
        Check if an entity has been added to the collection
        Parameters: @@ -276,7 +262,7 @@ public function has(string $objectName): bool; ```php @@ -285,7 +271,7 @@ public function has(string $objectName): bool; public function isEmpty(): bool; ``` - +
        Check if the collection is empty or not
        Parameters: not specified @@ -299,14 +285,14 @@ public function isEmpty(): bool; ```php public function loadPropertyEntities(): void; ``` - +
        Load property entities into the collection according to the project configuration
        Parameters: not specified @@ -319,16 +305,19 @@ public function loadPropertyEntities(): void; \DI\DependencyException
      80. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      81. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      82. \DI\NotFoundException
      83. -
      84. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
      85. - + +See: +

        @@ -336,7 +325,7 @@ public function loadPropertyEntities(): void; ```php @@ -345,7 +334,7 @@ public function loadPropertyEntities(): void; public function remove(string $objectName): void; ``` - +
        Remove an entity from a collection
        Parameters: @@ -376,14 +365,14 @@ public function remove(string $objectName): void; ```php -public function unsafeGet(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity|null; +public function unsafeGet(string $objectName): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; ``` - +
        Get the property entity if it exists. If the property exists but has not been loaded into the collection, a new entity object will be created
        Parameters: @@ -399,31 +388,26 @@ public function unsafeGet(string $objectName): \BumbleDocGen\LanguageHandler\Php $objectName string - - + Property entity name -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity Throws:

        - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/PropertyEntity.md b/docs/tech/02_parser/classes/PropertyEntity.md similarity index 58% rename from docs/tech/2.parser/classes/PropertyEntity.md rename to docs/tech/02_parser/classes/PropertyEntity.md index 617c0494..fe25d5b0 100644 --- a/docs/tech/2.parser/classes/PropertyEntity.md +++ b/docs/tech/02_parser/classes/PropertyEntity.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / PropertyEntity
        + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / PropertyEntity

        - PropertyEntity class: + PropertyEntity class:

        @@ -10,7 +9,7 @@ ```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property; class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface ``` @@ -33,12 +32,12 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas

        Methods:

          -
        1. - entityCacheIsOutdated -
        2. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
        3. +
        4. + getAst + - Get AST for this entity
        5. getCacheKey
        6. @@ -46,119 +45,128 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas getCachedEntityDependencies
        7. - getDefaultValue + getCurrentRootEntity
        8. +
        9. + getDefaultValue + - Get the compiled default value of a property
        10. getDescription -
        11. + - Get entity description
        12. getDescriptionLinks - Get parsed links from description and doc blocks `see` and `link`
        13. getDocBlock -
        14. + - Get DocBlock for current entity
        15. getDocComment - Get the doc comment of an entity
        16. getDocCommentEntity -
        17. + - Link to an entity where docBlock is implemented for this entity +
        18. + getDocCommentLine + - Get the code line number where the docBlock of the current entity begins
        19. getDocNote -
        20. + - Get the note annotation value
        21. getEndLine -
        22. + - Get the line number of the end of a property's code in a file
        23. getExamples - Get parsed examples from `examples` doc block
        24. -
        25. - getFileName -
        26. getFileSourceLink
        27. getFirstExample - - Get first example from @examples doc block
        28. + - Get first example from `examples` doc block
        29. getImplementingClass -
        30. + - Get the class like entity in which the current entity was implemented
        31. getImplementingClassName -
        32. -
        33. - getImplementingReflectionClass -
        34. + - Get the name of the class in which this property is implemented
        35. getModifiersString -
        36. + - Get a text representation of property modifiers
        37. getName -
        38. + - Full name of the entity
        39. getNamespaceName -
        40. + - Namespace of the class that contains this property
        41. getObjectId - Get entity unique ID
        42. - getPhpHandlerSettings -
        43. + getRelativeFileName + - File name relative to project_root configuration parameter
        44. getRootEntity
        45. getRootEntityCollection - - Get parent collection of entities
        46. + - Get the collection of root entities to which this entity belongs
        47. getShortName -
        48. + - Short name of the entity
        49. getStartLine -
        50. + - Get the line number of the beginning of the entity code in a file
        51. getThrows - Get parsed throws from `throws` doc block
        52. - getType + getThrowsDocBlockLinks
        53. +
        54. + getType + - Get current property type
        55. hasDescriptionLinks -
        56. + - Checking if an entity has links in its description
        57. hasExamples -
        58. + - Checking if an entity has `example` docBlock
        59. hasThrows -
        60. + - Checking if an entity has `throws` docBlock +
        61. + isApi + - Checking if an entity has `api` docBlock
        62. isDeprecated -
        63. + - Checking if an entity has `deprecated` docBlock +
        64. + isEntityCacheOutdated + - Checking if the entity cache is out of date
        65. isEntityDataCacheOutdated
        66. isEntityFileCanBeLoad -
        67. + - Checking if entity data can be retrieved
        68. isImplementedInParentClass -
        69. + - Check if this property is implemented in the parent class
        70. isInternal -
        71. + - Checking if an entity has `internal` docBlock
        72. isPrivate -
        73. + - Check if a private is a public private
        74. isProtected -
        75. + - Check if a protected is a public protected
        76. isPublic -
        77. + - Check if a property is a public property
        78. reloadEntityDependenciesCache -
        79. + - Update entity dependency cache
        80. removeEntityValueFromCache
        81. @@ -168,6 +176,25 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
        +

        Constants:

        + @@ -180,11 +207,11 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $propertyName, string $declaringClassName, string $implementingClassName); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $propertyName, string $implementingClassName); ``` @@ -207,7 +234,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -229,11 +256,6 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $propertyName string - - - - $declaringClassName - string - - $implementingClassName @@ -250,31 +272,28 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf
        ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function entityCacheIsOutdated(): bool; +public function getAbsoluteFileName(): null|string; ``` - +
        Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
        Parameters: not specified -Return value: bool +Return value: null | string Throws: @@ -283,28 +302,26 @@ public function entityCacheIsOutdated(): bool;
        ```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getAbsoluteFileName(): string|null; +public function getAst(): \PhpParser\Node\Stmt\Property; ``` -
        Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
        +
        Get AST for this entity
        Parameters: not specified -Return value: string | null +Return value: \PhpParser\Node\Stmt\Property Throws: @@ -315,7 +332,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -338,7 +355,7 @@ public function getCacheKey(): string; ```php @@ -359,8 +376,34 @@ public function getCachedEntityDependencies(): array;
      86. \Psr\Cache\InvalidArgumentException
      87. +
      88. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      89. + +
        +
        +
        + +
          +
        • # + getCurrentRootEntity + :warning: Is internal | source code
        • +
        + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +

        @@ -368,14 +411,14 @@ public function getCachedEntityDependencies(): array; ```php public function getDefaultValue(): string|array|int|bool|null|float; ``` - +
        Get the compiled default value of a property
        Parameters: not specified @@ -385,10 +428,10 @@ public function getDefaultValue(): string|array|int|bool|null|float; Throws: @@ -399,14 +442,16 @@ public function getDefaultValue(): string|array|int|bool|null|float; ```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + public function getDescription(): string; ``` - +
        Get entity description
        Parameters: not specified @@ -416,16 +461,7 @@ public function getDescription(): string; Throws: @@ -436,7 +472,7 @@ public function getDescription(): string; ```php @@ -455,7 +491,7 @@ public function getDescriptionLinks(): array; Throws:
        +
        +
        + -
      90. - \DI\DependencyException
      91. +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -
      92. - \DI\NotFoundException
      93. +public function getDocCommentLine(): null|int; +``` + +
        Get the code line number where the docBlock of the current entity begins
        +Parameters: not specified + +Return value: null | int + + +Throws: + @@ -576,7 +616,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -585,13 +625,20 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ public function getDocNote(): string; ``` - +
        Get the note annotation value
        Parameters: not specified Return value: string +Throws: + +

        @@ -599,14 +646,14 @@ public function getDocNote(): string; ```php public function getEndLine(): int; ``` - +
        Get the line number of the end of a property's code in a file
        Parameters: not specified @@ -616,10 +663,7 @@ public function getEndLine(): int; Throws: @@ -630,7 +674,7 @@ public function getEndLine(): int; ```php @@ -646,34 +690,10 @@ public function getExamples(): array; Return value: array -
        -
        -
        - - - -```php -public function getFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - Throws: @@ -684,13 +704,13 @@ public function getFileName(): string|null; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -714,13 +734,13 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string Throws: @@ -731,7 +751,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -740,13 +760,20 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getFirstExample(): string; ``` -
        Get first example from @examples doc block
        +
        Get first example from `examples` doc block
        Parameters: not specified Return value: string +Throws: + +

        @@ -754,18 +781,18 @@ public function getFirstExample(): string; ```php -public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
        Get the class like entity in which the current entity was implemented
        Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
        @@ -775,51 +802,20 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php public function getImplementingClassName(): string; ``` - +
        Get the name of the class in which this property is implemented
        Parameters: not specified Return value: string -
        -
        -
        - - - -```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: not specified - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: - -

        @@ -827,14 +823,14 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php public function getModifiersString(): string; ``` - +
        Get a text representation of property modifiers
        Parameters: not specified @@ -843,9 +839,6 @@ public function getModifiersString(): string; Throws: @@ -864,14 +857,14 @@ public function getModifiersString(): string; ```php public function getName(): string; ``` - +
        Full name of the entity
        Parameters: not specified @@ -885,30 +878,20 @@ public function getName(): string; ```php public function getNamespaceName(): string; ``` - +
        Namespace of the class that contains this property
        Parameters: not specified Return value: string -Throws: - -

        @@ -916,7 +899,7 @@ public function getNamespaceName(): string; ```php @@ -937,22 +920,28 @@ public function getObjectId(): string;
        ```php -public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; +public function getRelativeFileName(): null|string; ``` - +
        File name relative to project_root configuration parameter
        Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings +Return value: null | string + +See: +

        @@ -960,18 +949,18 @@ public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHa ```php -public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
        @@ -981,18 +970,18 @@ public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity ```php -public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` -
        Get parent collection of entities
        +
        Get the collection of root entities to which this entity belongs
        Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection
        @@ -1002,14 +991,14 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php public function getShortName(): string; ``` - +
        Short name of the entity
        Parameters: not specified @@ -1023,30 +1012,20 @@ public function getShortName(): string; ```php public function getStartLine(): int; ``` - +
        Get the line number of the beginning of the entity code in a file
        Parameters: not specified Return value: int -Throws: - -
        @@ -1054,7 +1033,7 @@ public function getStartLine(): int; ```php @@ -1073,10 +1052,37 @@ public function getThrows(): array; Throws: + +
        +
        +
        + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + +Parameters: not specified + +Return value: array + + +Throws: + @@ -1087,14 +1093,14 @@ public function getThrows(): array; ```php public function getType(): string; ``` - +
        Get current property type
        Parameters: not specified @@ -1106,14 +1112,11 @@ public function getType(): string;
      94. \DI\NotFoundException
      95. -
      96. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
      97. -
      98. \DI\DependencyException
      99. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      100. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -1124,7 +1127,7 @@ public function getType(): string; ```php @@ -1133,7 +1136,7 @@ public function getType(): string; public function hasDescriptionLinks(): bool; ``` - +
        Checking if an entity has links in its description
        Parameters: not specified @@ -1154,7 +1157,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1163,13 +1166,20 @@ public function hasDescriptionLinks(): bool; public function hasExamples(): bool; ``` - +
        Checking if an entity has `example` docBlock
        Parameters: not specified Return value: bool +Throws: + +

        @@ -1177,7 +1187,7 @@ public function hasExamples(): bool; ```php @@ -1186,13 +1196,50 @@ public function hasExamples(): bool; public function hasThrows(): bool; ``` +
        Checking if an entity has `throws` docBlock
        + +Parameters: not specified + +Return value: bool + +Throws: + + +
        +
        +
        + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` + +
        Checking if an entity has `api` docBlock
        Parameters: not specified Return value: bool +Throws: + +

        @@ -1200,7 +1247,7 @@ public function hasThrows(): bool; ```php @@ -1209,7 +1256,37 @@ public function hasThrows(): bool; public function isDeprecated(): bool; ``` +
        Checking if an entity has `deprecated` docBlock
        + +Parameters: not specified + +Return value: bool + + +Throws: + + +
        +
        +
        +
          +
        • # + isEntityCacheOutdated + :warning: Is internal | source code
        • +
        + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` + +
        Checking if the entity cache is out of date
        Parameters: not specified @@ -1223,7 +1300,7 @@ public function isDeprecated(): bool; ```php @@ -1253,7 +1330,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1262,7 +1339,7 @@ public function isEntityDataCacheOutdated(): bool; public function isEntityFileCanBeLoad(): bool; ``` - +
        Checking if entity data can be retrieved
        Parameters: not specified @@ -1272,10 +1349,7 @@ public function isEntityFileCanBeLoad(): bool; Throws: @@ -1286,14 +1360,14 @@ public function isEntityFileCanBeLoad(): bool; ```php public function isImplementedInParentClass(): bool; ``` - +
        Check if this property is implemented in the parent class
        Parameters: not specified @@ -1307,7 +1381,7 @@ public function isImplementedInParentClass(): bool; ```php @@ -1316,13 +1390,20 @@ public function isImplementedInParentClass(): bool; public function isInternal(): bool; ``` - +
        Checking if an entity has `internal` docBlock
        Parameters: not specified Return value: bool +Throws: + +

        @@ -1330,14 +1411,14 @@ public function isInternal(): bool; ```php public function isPrivate(): bool; ``` - +
        Check if a private is a public private
        Parameters: not specified @@ -1347,10 +1428,7 @@ public function isPrivate(): bool; Throws: @@ -1361,14 +1439,14 @@ public function isPrivate(): bool; ```php public function isProtected(): bool; ``` - +
        Check if a protected is a public protected
        Parameters: not specified @@ -1378,10 +1456,7 @@ public function isProtected(): bool; Throws: @@ -1392,14 +1467,14 @@ public function isProtected(): bool; ```php public function isPublic(): bool; ``` - +
        Check if a property is a public property
        Parameters: not specified @@ -1409,10 +1484,7 @@ public function isPublic(): bool; Throws: @@ -1423,7 +1495,7 @@ public function isPublic(): bool; ```php @@ -1432,20 +1504,13 @@ public function isPublic(): bool; public function reloadEntityDependenciesCache(): array; ``` - +
        Update entity dependency cache
        Parameters: not specified Return value: array -Throws: - -

        @@ -1453,7 +1518,7 @@ public function reloadEntityDependenciesCache(): array; ```php @@ -1493,7 +1558,7 @@ public function removeEntityValueFromCache(string $key): void; ```php @@ -1518,5 +1583,3 @@ public function removeNotUsedEntityDataCache(): void;

        - - \ No newline at end of file diff --git a/docs/tech/classes/RecursiveDirectoriesSourceLocator.md b/docs/tech/02_parser/classes/RecursiveDirectoriesSourceLocator.md similarity index 93% rename from docs/tech/classes/RecursiveDirectoriesSourceLocator.md rename to docs/tech/02_parser/classes/RecursiveDirectoriesSourceLocator.md index ecb033ca..5e15b9ba 100644 --- a/docs/tech/classes/RecursiveDirectoriesSourceLocator.md +++ b/docs/tech/02_parser/classes/RecursiveDirectoriesSourceLocator.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / RecursiveDirectoriesSourceLocator
        + BumbleDocGen / Technical description of the project / Parser / Source locators / RecursiveDirectoriesSourceLocator

        RecursiveDirectoriesSourceLocator class: @@ -116,5 +115,3 @@ public function getFinder(): \Symfony\Component\Finder\Finder;
        - - \ No newline at end of file diff --git a/docs/tech/classes/LoggableRootEntityCollection.md b/docs/tech/02_parser/classes/RootEntityCollection.md similarity index 57% rename from docs/tech/classes/LoggableRootEntityCollection.md rename to docs/tech/02_parser/classes/RootEntityCollection.md index db44b043..9c667f81 100644 --- a/docs/tech/classes/LoggableRootEntityCollection.md +++ b/docs/tech/02_parser/classes/RootEntityCollection.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / LoggableRootEntityCollection
        + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / RootEntityCollection

        - LoggableRootEntityCollection class: + RootEntityCollection class:

        @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Parser\Entity; -abstract class LoggableRootEntityCollection extends \BumbleDocGen\Core\Parser\Entity\RootEntityCollection implements \IteratorAggregate, \Traversable +abstract class RootEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate ``` @@ -22,50 +21,49 @@ abstract class LoggableRootEntityCollection extends \BumbleDocGen\Core\Parser\En -

        Initialization methods:

        - -
          -
        1. - __construct -
        2. -

        Methods:

          -
        1. - clearOperationsLogCollection -
        2. findEntity -
        3. + - Find an entity in a collection
        4. get -
        5. + - Get an entity from a collection (only previously added)
        6. getEntityCollectionName -
        7. + - Get collection name
        8. getEntityLinkData
        9. getIterator - - Retrieve an external iterator
        10. -
        11. - getLoadedOrCreateNew
        12. - getOperationsLogCollection -
        13. + getLoadedOrCreateNew + - Get an entity from the collection or create a new one if it has not yet been added
        14. has -
        15. + - Check if an entity has been added to the collection
        16. isEmpty + - Check if the collection is empty or not
        17. +
        18. + loadEntities +
        19. +
        20. + loadEntitiesByConfiguration
        21. remove + - Remove an entity from a collection
        22. +
        23. + removeAllNotLoadedEntities
        24. +
        25. + toArray + - Convert collection to array
        26. updateEntitiesCache
        27. @@ -81,58 +79,17 @@ abstract class LoggableRootEntityCollection extends \BumbleDocGen\Core\Parser\En
          - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
          -
          -
          - - - -```php -public function clearOperationsLogCollection(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
          -
          -
          - ```php -public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function findEntity(string $search, bool $useUnsafeKeys = true): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
          Find an entity in a collection
          Parameters: @@ -158,7 +115,7 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface
          @@ -168,14 +125,14 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD ```php -public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function get(string $objectName): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
          Get an entity from a collection (only previously added)
          Parameters: @@ -196,7 +153,7 @@ public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEn -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface @@ -206,16 +163,14 @@ public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEn ```php -// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection - public function getEntityCollectionName(): string; ``` - +
          Get collection name
          Parameters: not specified @@ -229,12 +184,10 @@ public function getEntityCollectionName(): string; ```php -// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection - public function getEntityLinkData(string $rawLink, string|null $defaultEntityName = null, bool $useUnsafeKeys = true): array; ``` @@ -280,33 +233,22 @@ public function getEntityLinkData(string $rawLink, string|null $defaultEntityNam ```php +// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection + public function getIterator(): \Generator; ``` -
          Retrieve an external iterator
          + Parameters: not specified Return value: \Generator -Throws: - - - -See: -
          @@ -314,14 +256,14 @@ public function getIterator(): \Generator; ```php public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
          Get an entity from the collection or create a new one if it has not yet been added
          Parameters: @@ -354,27 +296,46 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit See:

          ```php -public function getOperationsLogCollection(): \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection; +// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection + +public function has(string $objectName): bool; ``` +
          Check if an entity has been added to the collection
          +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + +
          NameTypeDescription
          $objectNamestring-
          -Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection +Return value: bool
          @@ -382,15 +343,36 @@ public function getOperationsLogCollection(): \BumbleDocGen\Core\Parser\Entity\C
          ```php // Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection -public function has(string $objectName): bool; +public function isEmpty(): bool; +``` + +
          Check if the collection is empty or not
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + + + +```php +public function loadEntities(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection $sourceLocatorsCollection, \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface|null $filters = null, \BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; ``` @@ -407,14 +389,24 @@ public function has(string $objectName): bool; - $objectName - string + $sourceLocatorsCollection + \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection + - + + + $filters + \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface | null + - + + + $progressBar + \BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null - -Return value: bool +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult
          @@ -422,22 +414,37 @@ public function has(string $objectName): bool;
          ```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function isEmpty(): bool; +public function loadEntitiesByConfiguration(\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; ``` -Parameters: not specified +Parameters: -Return value: bool + + + + + + + + + + + + + + + +
          NameTypeDescription
          $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
          + +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult
          @@ -447,7 +454,7 @@ public function isEmpty(): bool; ```php @@ -456,7 +463,7 @@ public function isEmpty(): bool; public function remove(string $objectName): void; ``` - +
          Remove an entity from a collection
          Parameters: @@ -480,6 +487,48 @@ public function remove(string $objectName): void; Return value: void + +
          +
          + + + +```php +public function removeAllNotLoadedEntities(): void; +``` + + + +Parameters: not specified + +Return value: void + + +
          +
          +
          + + + +```php +public function toArray(): array; +``` + +
          Convert collection to array
          + +Parameters: not specified + +Return value: array + +

          @@ -487,12 +536,10 @@ public function remove(string $objectName): void; ```php -// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection - public function updateEntitiesCache(): void; ``` @@ -512,5 +559,3 @@ public function updateEntitiesCache(): void;

          - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/RootEntityInterface.md b/docs/tech/02_parser/classes/RootEntityInterface.md similarity index 74% rename from docs/tech/2.parser/classes/RootEntityInterface.md rename to docs/tech/02_parser/classes/RootEntityInterface.md index 420020ae..2d506c9b 100644 --- a/docs/tech/2.parser/classes/RootEntityInterface.md +++ b/docs/tech/02_parser/classes/RootEntityInterface.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Parser / RootEntityInterface
          + BumbleDocGen / Technical description of the project / Parser / RootEntityInterface

          RootEntityInterface class: @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Parser\Entity; -interface RootEntityInterface extends \\BumbleDocGen\Core\Parser\Entity\EntityInterface implements \BumbleDocGen\Core\Parser\Entity\EntityInterface +interface RootEntityInterface extends \BumbleDocGen\Core\Parser\Entity\EntityInterface ```
          Since the documentation generator supports several programming languages, @@ -27,12 +26,6 @@ their entities need to correspond to the same interfaces

          Methods:

            -
          1. - entityCacheIsOutdated -
          2. -
          3. - entityDataCanBeLoaded - - Checking if it is possible to get the entity data
          4. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
          5. @@ -42,24 +35,30 @@ their entities need to correspond to the same interfaces
          6. getFileContent
          7. -
          8. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
          9. getFileSourceLink
          10. getName -
          11. + - Full name of the entity
          12. getObjectId -
          13. + - Entity object ID +
          14. + getRelativeFileName + - File name relative to project_root configuration parameter
          15. getRootEntityCollection - Get parent collection of entities
          16. getShortName + - Short name of the entity
          17. +
          18. + isEntityCacheOutdated
          19. +
          20. + isEntityDataCanBeLoaded + - Checking if it is possible to get the entity data
          21. isEntityNameValid - Check if entity name is valid
          22. @@ -69,6 +68,9 @@ their entities need to correspond to the same interfaces
          23. isInGit - The entity file is in the git repository
          24. +
          25. + normalizeClassName +
          @@ -81,67 +83,23 @@ their entities need to correspond to the same interfaces
          - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
          -
          -
          - - - -```php -public function entityDataCanBeLoaded(): bool; -``` - -
          Checking if it is possible to get the entity data
          - -Parameters: not specified - -Return value: bool - - -
          -
          -
          - ```php // Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface -public function getAbsoluteFileName(): string|null; +public function getAbsoluteFileName(): null|string; ```
          Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
          Parameters: not specified -Return value: string | null +Return value: null | string
          @@ -151,7 +109,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -172,7 +130,7 @@ public function getEntityDependencies(): array; ```php @@ -186,29 +144,6 @@ public function getFileContent(): string; Return value: string - -
          -
          - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getFileName(): string|null; -``` - -
          Returns the relative path to a file if it can be retrieved and if the file is in the project directory
          - -Parameters: not specified - -Return value: string | null - -

          @@ -216,11 +151,11 @@ public function getFileName(): string|null; ```php -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -244,7 +179,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string
          @@ -254,7 +189,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -263,7 +198,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getName(): string; ``` - +
          Full name of the entity
          Parameters: not specified @@ -277,7 +212,7 @@ public function getName(): string; ```php @@ -286,7 +221,7 @@ public function getName(): string; public function getObjectId(): string; ``` - +
          Entity object ID
          Parameters: not specified @@ -297,10 +232,39 @@ public function getObjectId(): string;
          + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +public function getRelativeFileName(): null|string; +``` + +
          File name relative to project_root configuration parameter
          + +Parameters: not specified + +Return value: null | string + + + +See: + +
          +
          +
          + ```php @@ -323,7 +287,7 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root ```php @@ -332,13 +296,57 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root public function getShortName(): string; ``` - +
          Short name of the entity
          Parameters: not specified Return value: string +
          +
          +
          + +
            +
          • # + isEntityCacheOutdated + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +public function isEntityCacheOutdated(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + + + +```php +public function isEntityDataCanBeLoaded(): bool; +``` + +
          Checking if it is possible to get the entity data
          + +Parameters: not specified + +Return value: bool + +

          @@ -346,7 +354,7 @@ public function getShortName(): string; ```php @@ -384,7 +392,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php @@ -405,7 +413,7 @@ public function isExternalLibraryEntity(): bool; ```php @@ -421,5 +429,41 @@ public function isInGit(): bool;

          +
          - \ No newline at end of file + + +```php +public static function normalizeClassName(string $name): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $namestring-
          + +Return value: string + + +
          +
          diff --git a/docs/tech/classes/SingleFileSourceLocator.md b/docs/tech/02_parser/classes/SingleFileSourceLocator.md similarity index 92% rename from docs/tech/classes/SingleFileSourceLocator.md rename to docs/tech/02_parser/classes/SingleFileSourceLocator.md index 25505e07..8ec0205f 100644 --- a/docs/tech/classes/SingleFileSourceLocator.md +++ b/docs/tech/02_parser/classes/SingleFileSourceLocator.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / SingleFileSourceLocator
          + BumbleDocGen / Technical description of the project / Parser / Source locators / SingleFileSourceLocator

          SingleFileSourceLocator class: @@ -106,5 +105,3 @@ public function getFinder(): \Symfony\Component\Finder\Finder;
          - - \ No newline at end of file diff --git a/docs/tech/classes/SourceLocatorInterface.md b/docs/tech/02_parser/classes/SourceLocatorInterface.md similarity index 65% rename from docs/tech/classes/SourceLocatorInterface.md rename to docs/tech/02_parser/classes/SourceLocatorInterface.md index d5962c1e..65dbdcd1 100644 --- a/docs/tech/classes/SourceLocatorInterface.md +++ b/docs/tech/02_parser/classes/SourceLocatorInterface.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / SourceLocatorInterface
          + BumbleDocGen / Technical description of the project / Parser / Source locators / SourceLocatorInterface

          SourceLocatorInterface class: @@ -48,17 +47,15 @@ interface SourceLocatorInterface ```php -public function getFinder(): \Symfony\Component\Finder\Finder|null; +public function getFinder(): null|\Symfony\Component\Finder\Finder; ``` Parameters: not specified -Return value: \Symfony\Component\Finder\Finder | null +Return value: null | \Symfony\Component\Finder\Finder
          - - \ No newline at end of file diff --git a/docs/tech/02_parser/classes/TraitEntity.md b/docs/tech/02_parser/classes/TraitEntity.md new file mode 100644 index 00000000..c3d74282 --- /dev/null +++ b/docs/tech/02_parser/classes/TraitEntity.md @@ -0,0 +1,3438 @@ + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / TraitEntity
          + +

          + TraitEntity class: +

          + + + + + +```php +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; + +class TraitEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity implements \BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface +``` + +
          Trait
          + +See: + + + + + + + +

          Initialization methods:

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

          Methods:

          + +
            +
          1. + addPluginData + - Add information to aт entity object
          2. +
          3. + cursorToDocAttributeLinkFragment +
          4. +
          5. + getAbsoluteFileName + - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
          6. +
          7. + getAst + - Get AST for this entity
          8. +
          9. + getCacheKey +
          10. +
          11. + getCachedEntityDependencies +
          12. +
          13. + getConstant + - Get the method entity by its name
          14. +
          15. + getConstantEntitiesCollection + - Get a collection of constant entities
          16. +
          17. + getConstantValue + - Get the compiled value of a constant
          18. +
          19. + getConstants + - Get all constants that are available according to the configuration as an array
          20. +
          21. + getConstantsData + - Get a list of all constants and classes where they are implemented
          22. +
          23. + getConstantsValues + - Get class constant compiled values according to filters
          24. +
          25. + getCurrentRootEntity +
          26. +
          27. + getDescription + - Get entity description
          28. +
          29. + getDescriptionLinks + - Get parsed links from description and doc blocks `see` and `link`
          30. +
          31. + getDocBlock + - Get DocBlock for current entity
          32. +
          33. + getDocComment + - Get the doc comment of an entity
          34. +
          35. + getDocCommentEntity + - Link to an entity where docBlock is implemented for this entity
          36. +
          37. + getDocCommentLine + - Get the code line number where the docBlock of the current entity begins
          38. +
          39. + getDocNote + - Get the note annotation value
          40. +
          41. + getDocRender +
          42. +
          43. + getEndLine + - Get the line number of the end of a class code in a file
          44. +
          45. + getEntityDependencies +
          46. +
          47. + getExamples + - Get parsed examples from `examples` doc block
          48. +
          49. + getFileContent +
          50. +
          51. + getFileSourceLink +
          52. +
          53. + getFirstExample + - Get first example from `examples` doc block
          54. +
          55. + getImplementingClass + - Get the class like entity in which the current entity was implemented
          56. +
          57. + getInterfaceNames + - Get a list of class interface names
          58. +
          59. + getInterfacesEntities + - Get a list of interface entities that the current class implements
          60. +
          61. + getMethod + - Get the method entity by its name
          62. +
          63. + getMethodEntitiesCollection + - Get a collection of method entities
          64. +
          65. + getMethods + - Get all methods that are available according to the configuration as an array
          66. +
          67. + getMethodsData + - Get a list of all methods and classes where they are implemented
          68. +
          69. + getModifiersString + - Get entity modifiers as a string
          70. +
          71. + getName + - Full name of the entity
          72. +
          73. + getNamespaceName + - Get the entity namespace name
          74. +
          75. + getObjectId + - Get entity unique ID
          76. +
          77. + getParentClass + - Get the entity of the parent class if it exists
          78. +
          79. + getParentClassEntities + - Get a list of parent class entities
          80. +
          81. + getParentClassName + - Get the name of the parent class entity if it exists
          82. +
          83. + getParentClassNames + - Get a list of entity names of parent classes
          84. +
          85. + getPluginData + - Get additional information added using the plugin
          86. +
          87. + getProperties + - Get all properties that are available according to the configuration as an array
          88. +
          89. + getPropertiesData + - Get a list of all properties and classes where they are implemented
          90. +
          91. + getProperty + - Get the property entity by its name
          92. +
          93. + getPropertyDefaultValue + - Get the compiled value of a property
          94. +
          95. + getPropertyEntitiesCollection + - Get a collection of property entities
          96. +
          97. + getRelativeFileName + - File name relative to project_root configuration parameter
          98. +
          99. + getRootEntityCollection + - Get the collection of root entities to which this entity belongs
          100. +
          101. + getShortName + - Short name of the entity
          102. +
          103. + getStartLine + - Get the line number of the start of a class code in a file
          104. +
          105. + getThrows + - Get parsed throws from `throws` doc block
          106. +
          107. + getThrowsDocBlockLinks +
          108. +
          109. + getTraits + - Get a list of trait entities of the current class
          110. +
          111. + getTraitsNames + - Get a list of class traits names
          112. +
          113. + hasConstant + - Check if a constant exists in a class
          114. +
          115. + hasDescriptionLinks + - Checking if an entity has links in its description
          116. +
          117. + hasExamples + - Checking if an entity has `example` docBlock
          118. +
          119. + hasMethod + - Check if a method exists in a class
          120. +
          121. + hasParentClass + - Check if a certain parent class exists in a chain of parent classes
          122. +
          123. + hasProperty + - Check if a property exists in a class
          124. +
          125. + hasThrows + - Checking if an entity has `throws` docBlock
          126. +
          127. + hasTraits + - Check if the class contains traits
          128. +
          129. + implementsInterface + - Check if a class implements an interface
          130. +
          131. + isAbstract + - Check that an entity is abstract
          132. +
          133. + isApi + - Checking if an entity has `api` docBlock
          134. +
          135. + isClass + - Check if an entity is a Class
          136. +
          137. + isClassLoad +
          138. +
          139. + isDeprecated + - Checking if an entity has `deprecated` docBlock
          140. +
          141. + isDocumentCreationAllowed +
          142. +
          143. + isEntityCacheOutdated + - Checking if the entity cache is out of date
          144. +
          145. + isEntityDataCacheOutdated +
          146. +
          147. + isEntityDataCanBeLoaded +
          148. +
          149. + isEntityFileCanBeLoad + - Checking if entity data can be retrieved
          150. +
          151. + isEntityNameValid + - Check if the name is a valid name for ClassLikeEntity
          152. +
          153. + isEnum + - Check if an entity is an Enum
          154. +
          155. + isExternalLibraryEntity + - Check if a given entity is an entity from a third party library (connected via composer)
          156. +
          157. + isInGit + - Checking if class file is in git repository
          158. +
          159. + isInstantiable + - Check that an entity is instantiable
          160. +
          161. + isInterface + - Check if an entity is an Interface
          162. +
          163. + isInternal + - Checking if an entity has `internal` docBlock
          164. +
          165. + isSubclassOf + - Whether the given class is a subclass of the specified class
          166. +
          167. + isTrait + - Check if an entity is a Trait
          168. +
          169. + normalizeClassName + - Bring the class name to the standard format used in the system
          170. +
          171. + reloadEntityDependenciesCache + - Update entity dependency cache
          172. +
          173. + removeEntityValueFromCache +
          174. +
          175. + removeNotUsedEntityDataCache +
          176. +
          177. + setCustomAst +
          178. +
          + + + + + + + +

          Method details:

          + +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection $entitiesCollection, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper $composerHelper, \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper $phpParserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $className, string|null $relativeFileName); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $configuration\BumbleDocGen\Core\Configuration\Configuration-
          $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
          $entitiesCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection-
          $parserHelper\BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper-
          $composerHelper\BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper-
          $phpParserHelper\BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper-
          $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
          $logger\Psr\Log\LoggerInterface-
          $classNamestring-
          $relativeFileNamestring | null-
          + + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function addPluginData(string $pluginKey, mixed $data): void; +``` + +
          Add information to aт entity object
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $pluginKeystring-
          $datamixed-
          + +Return value: void + + +
          +
          +
          + +
            +
          • # + cursorToDocAttributeLinkFragment + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $cursorstring-
          $isForDocumentbool-
          + +Return value: string + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getAbsoluteFileName(): null|string; +``` + +
          Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
          + +Parameters: not specified + +Return value: null | string + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getAst(): \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_; +``` + +
          Get AST for this entity
          + +Parameters: not specified + +Return value: \PhpParser\Node\Stmt\Class_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function getCacheKey(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
          +
          +
          + +
            +
          • # + getCachedEntityDependencies + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCachedEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstant(string $constantName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; +``` + +
          Get the method entity by its name
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $constantNamestringThe name of the constant whose entity you want to get
          $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
          + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection; +``` + +
          Get a collection of constant entities
          + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection + + +Throws: + + + +See: + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantValue(string $constantName): string|array|int|bool|null|float; +``` + +
          Get the compiled value of a constant
          + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $constantNamestringThe name of the constant for which you need to get the value
          + +Return value: string | array | int | bool | null | float + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstants(): array; +``` + +
          Get all constants that are available according to the configuration as an array
          + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
          +
          +
          + +
            +
          • # + getConstantsData + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
          Get a list of all constants and classes where they are implemented
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $onlyFromCurrentClassAndTraitsboolGet data only for constants from the current class
          $flagsintGet data only for constants corresponding to the visibility modifiers passed in this value
          + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantsValues(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
          Get class constant compiled values according to filters
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $onlyFromCurrentClassAndTraitsboolGet values only for constants from the current class
          $flagsintGet values only for constants corresponding to the visibility modifiers passed in this value
          + +Return value: array + + +Throws: + + +
          +
          +
          + +
            +
          • # + getCurrentRootEntity + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDescription(): string; +``` + +
          Get entity description
          + +Parameters: not specified + +Return value: string + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDescriptionLinks(): array; +``` + +
          Get parsed links from description and doc blocks `see` and `link`
          + +Parameters: not specified + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; +``` + +
          Get DocBlock for current entity
          + +Parameters: not specified + +Return value: \phpDocumentor\Reflection\DocBlock + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocComment(): string; +``` + +
          Get the doc comment of an entity
          + +Parameters: not specified + +Return value: string + + +Throws: + + +
          +
          +
          + +
            +
          • # + getDocCommentEntity + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
          Link to an entity where docBlock is implemented for this entity
          + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocCommentLine(): null|int; +``` + +
          Get the code line number where the docBlock of the current entity begins
          + +Parameters: not specified + +Return value: null | int + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocNote(): string; +``` + +
          Get the note annotation value
          + +Parameters: not specified + +Return value: string + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getEndLine(): int; +``` + +
          Get the line number of the end of a class code in a file
          + +Parameters: not specified + +Return value: int + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getExamples(): array; +``` + +
          Get parsed examples from `examples` doc block
          + +Parameters: not specified + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getFileContent(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
          +
          +
          + +
            +
          • # + getFileSourceLink + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getFileSourceLink(bool $withLine = true): null|string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $withLinebool-
          + +Return value: null | string + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getFirstExample(): string; +``` + +
          Get first example from `examples` doc block
          + +Parameters: not specified + +Return value: string + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
          Get the class like entity in which the current entity was implemented
          + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
          +
          +
          + + + +```php +public function getInterfaceNames(): array; +``` + +
          Get a list of class interface names
          + +Parameters: not specified + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getInterfacesEntities(): array; +``` + +
          Get a list of interface entities that the current class implements
          + +Parameters: not specified + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethod(string $methodName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; +``` + +
          Get the method entity by its name
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $methodNamestringThe name of the method whose entity you want to get
          $unsafeboolCheck all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter())
          + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethodEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection; +``` + +
          Get a collection of method entities
          + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection + + +Throws: + + + +See: + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethods(): array; +``` + +
          Get all methods that are available according to the configuration as an array
          + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
          +
          +
          + +
            +
          • # + getMethodsData + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethodsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
          Get a list of all methods and classes where they are implemented
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $onlyFromCurrentClassAndTraitsboolGet data only for methods from the current class
          $flagsintGet data only for methods corresponding to the visibility modifiers passed in this value
          + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +public function getModifiersString(): string; +``` + +
          Get entity modifiers as a string
          + +Parameters: not specified + +Return value: string + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getName(): string; +``` + +
          Full name of the entity
          + +Parameters: not specified + +Return value: string + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getNamespaceName(): string; +``` + +
          Get the entity namespace name
          + +Parameters: not specified + +Return value: string + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getObjectId(): string; +``` + +
          Get entity unique ID
          + +Parameters: not specified + +Return value: string + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClass(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
          Get the entity of the parent class if it exists
          + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassEntities(): array; +``` + +
          Get a list of parent class entities
          + +Parameters: not specified + +Return value: array + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassName(): null|string; +``` + +
          Get the name of the parent class entity if it exists
          + +Parameters: not specified + +Return value: null | string + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassNames(): array; +``` + +
          Get a list of entity names of parent classes
          + +Parameters: not specified + +Return value: array + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPluginData(string $pluginKey): mixed; +``` + +
          Get additional information added using the plugin
          + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $pluginKeystring-
          + +Return value: mixed + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getProperties(): array; +``` + +
          Get all properties that are available according to the configuration as an array
          + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
          +
          +
          + +
            +
          • # + getPropertiesData + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertiesData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
          Get a list of all properties and classes where they are implemented
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $onlyFromCurrentClassAndTraitsboolGet data only for properties from the current class
          $flagsintGet data only for properties corresponding to the visibility modifiers passed in this value
          + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getProperty(string $propertyName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; +``` + +
          Get the property entity by its name
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $propertyNamestringThe name of the property whose entity you want to get
          $unsafeboolCheck all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter())
          + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertyDefaultValue(string $propertyName): string|array|int|bool|null|float; +``` + +
          Get the compiled value of a property
          + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $propertyNamestringThe name of the property for which you need to get the value
          + +Return value: string | array | int | bool | null | float + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertyEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection; +``` + +
          Get a collection of property entities
          + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection + + +Throws: + + + +See: + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getRelativeFileName(): null|string; +``` + +
          File name relative to project_root configuration parameter
          + +Parameters: not specified + +Return value: null | string + + + +See: + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +``` + +
          Get the collection of root entities to which this entity belongs
          + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getShortName(): string; +``` + +
          Short name of the entity
          + +Parameters: not specified + +Return value: string + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getStartLine(): int; +``` + +
          Get the line number of the start of a class code in a file
          + +Parameters: not specified + +Return value: int + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrows(): array; +``` + +
          Get parsed throws from `throws` doc block
          + +Parameters: not specified + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getTraits(): array; +``` + +
          Get a list of trait entities of the current class
          + +Parameters: not specified + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getTraitsNames(): array; +``` + +
          Get a list of class traits names
          + +Parameters: not specified + +Return value: array + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasConstant(string $constantName, bool $unsafe = false): bool; +``` + +
          Check if a constant exists in a class
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $constantNamestringThe name of the class whose entity you want to check
          $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
          + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasDescriptionLinks(): bool; +``` + +
          Checking if an entity has links in its description
          + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasExamples(): bool; +``` + +
          Checking if an entity has `example` docBlock
          + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasMethod(string $methodName, bool $unsafe = false): bool; +``` + +
          Check if a method exists in a class
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $methodNamestringThe name of the method whose entity you want to check
          $unsafeboolCheck all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter())
          + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasParentClass(string $parentClassName): bool; +``` + +
          Check if a certain parent class exists in a chain of parent classes
          + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $parentClassNamestringSearched parent class
          + +Return value: bool + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasProperty(string $propertyName, bool $unsafe = false): bool; +``` + +
          Check if a property exists in a class
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $propertyNamestringThe name of the property whose entity you want to check
          $unsafeboolCheck all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter())
          + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasThrows(): bool; +``` + +
          Checking if an entity has `throws` docBlock
          + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasTraits(): bool; +``` + +
          Check if the class contains traits
          + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function implementsInterface(string $interfaceName): bool; +``` + +
          Check if a class implements an interface
          + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $interfaceNamestringName of the required interface in the interface chain
          + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isAbstract(): bool; +``` + +
          Check that an entity is abstract
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` + +
          Checking if an entity has `api` docBlock
          + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isClass(): bool; +``` + +
          Check if an entity is a Class
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isClassLoad(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isDeprecated(): bool; +``` + +
          Checking if an entity has `deprecated` docBlock
          + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + +
            +
          • # + isDocumentCreationAllowed + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isDocumentCreationAllowed(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + +
            +
          • # + isEntityCacheOutdated + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` + +
          Checking if the entity cache is out of date
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + +
            +
          • # + isEntityDataCacheOutdated + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function isEntityDataCacheOutdated(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isEntityDataCanBeLoaded(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityFileCanBeLoad(): bool; +``` + +
          Checking if entity data can be retrieved
          + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public static function isEntityNameValid(string $entityName): bool; +``` + +
          Check if the name is a valid name for ClassLikeEntity
          + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $entityNamestring-
          + +Return value: bool + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isEnum(): bool; +``` + +
          Check if an entity is an Enum
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + +
            +
          • # + isExternalLibraryEntity + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isExternalLibraryEntity(): bool; +``` + +
          Check if a given entity is an entity from a third party library (connected via composer)
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInGit(): bool; +``` + +
          Checking if class file is in git repository
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInstantiable(): bool; +``` + +
          Check that an entity is instantiable
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInterface(): bool; +``` + +
          Check if an entity is an Interface
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isInternal(): bool; +``` + +
          Checking if an entity has `internal` docBlock
          + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +public function isSubclassOf(string $className): bool; +``` + +
          Whether the given class is a subclass of the specified class
          + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $classNamestring-
          + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +public function isTrait(): bool; +``` + +
          Check if an entity is a Trait
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public static function normalizeClassName(string $name): string; +``` + +
          Bring the class name to the standard format used in the system
          + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $namestring-
          + +Return value: string + + +
          +
          +
          + +
            +
          • # + reloadEntityDependenciesCache + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function reloadEntityDependenciesCache(): array; +``` + +
          Update entity dependency cache
          + +Parameters: not specified + +Return value: array + + +
          +
          +
          + +
            +
          • # + removeEntityValueFromCache + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $keystring-
          + +Return value: void + + +
          +
          +
          + +
            +
          • # + removeNotUsedEntityDataCache + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeNotUsedEntityDataCache(): void; +``` + + + +Parameters: not specified + +Return value: void + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function setCustomAst(\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Class_|null $customAst): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $customAst\PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Class_ | null-
          + +Return value: void + + +
          +
          diff --git a/docs/tech/classes/TrueCondition.md b/docs/tech/02_parser/classes/TrueCondition.md similarity index 89% rename from docs/tech/classes/TrueCondition.md rename to docs/tech/02_parser/classes/TrueCondition.md index 0dd47daf..99aaf064 100644 --- a/docs/tech/classes/TrueCondition.md +++ b/docs/tech/02_parser/classes/TrueCondition.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / TrueCondition
          + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / TrueCondition

          TrueCondition class: @@ -77,5 +76,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
          - - \ No newline at end of file diff --git a/docs/tech/classes/VisibilityCondition.md b/docs/tech/02_parser/classes/VisibilityCondition.md similarity index 93% rename from docs/tech/classes/VisibilityCondition.md rename to docs/tech/02_parser/classes/VisibilityCondition.md index 553d1daf..72274d8b 100644 --- a/docs/tech/classes/VisibilityCondition.md +++ b/docs/tech/02_parser/classes/VisibilityCondition.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / VisibilityCondition
          + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / VisibilityCondition

          VisibilityCondition class: @@ -121,5 +120,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
          - - \ No newline at end of file diff --git a/docs/tech/classes/VisibilityCondition_2.md b/docs/tech/02_parser/classes/VisibilityCondition_2.md similarity index 93% rename from docs/tech/classes/VisibilityCondition_2.md rename to docs/tech/02_parser/classes/VisibilityCondition_2.md index 0151d212..d00e2f85 100644 --- a/docs/tech/classes/VisibilityCondition_2.md +++ b/docs/tech/02_parser/classes/VisibilityCondition_2.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / VisibilityCondition
          + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / VisibilityCondition

          VisibilityCondition class: @@ -121,5 +120,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
          - - \ No newline at end of file diff --git a/docs/tech/classes/VisibilityCondition_3.md b/docs/tech/02_parser/classes/VisibilityCondition_3.md similarity index 93% rename from docs/tech/classes/VisibilityCondition_3.md rename to docs/tech/02_parser/classes/VisibilityCondition_3.md index 3ca46345..fc485d02 100644 --- a/docs/tech/classes/VisibilityCondition_3.md +++ b/docs/tech/02_parser/classes/VisibilityCondition_3.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / VisibilityCondition
          + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / VisibilityCondition

          VisibilityCondition class: @@ -121,5 +120,3 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf
          - - \ No newline at end of file diff --git a/docs/tech/02_parser/entity.md b/docs/tech/02_parser/entity.md new file mode 100644 index 00000000..5491e99f --- /dev/null +++ b/docs/tech/02_parser/entity.md @@ -0,0 +1,147 @@ + BumbleDocGen / Technical description of the project / Parser / Entities and entities collections
          + +

          Entities and entities collections

          + +Entities are organized outcomes from parsing source code. +They help easily extract details about specific items from templates, allowing users to quickly access and display the information they need. + +Entities are always handled through collections. Collections are the result of the project parsing process and are available in both documentation templates and code. + +

          Examples of using collections in twig templates

          + +* Passing a collection to a function: + +```twig + {{ printEntityCollectionAsList(phpEntities) }} +``` + + +* Filtering a collection and passing it to a function: + +```twig + {{ printEntityCollectionAsList(phpEntities.filterByInterfaces(['BumbleDocGen\Core\Parser\Entity\EntityInterface'])) }} +``` + + +* Saving a filtered collection to a variable: + +```twig + {{ {% set filteredCollection = phpEntities.getOnlyInstantiable() %} }} +``` + + +* Using a collection in a for loop: + +```twig + {% for someClassEntity in phpEntities %} + * {{ someClassEntity.getName() }} + {% endfor %} +``` + + +* Output of all methods of all found entities in `className::methodName()` format: + +```twig + {% for someClassEntity in phpEntities %} + {% for methodEntity in someClassEntity.getMethodEntitiesCollection() %} + * {{ someClassEntity.getName() }}::{{ methodEntity.getName() }}() + {% endfor %} + {% endfor %} +``` + + +

          Root entities collections

          + +To further facilitate the handling of these entities, we utilize entity collections. +These collections not only group relevant entities together but also provide convenient methods for filtering and manipulating these entities. +The root collections (RootEntityCollection), which are directly accessible in your templates, are as follows: + + + + + + + + + + + + + + +
          Collection className in twig templatePLDescription
          PhpEntitiesCollectionphpEntitiesPHPCollection of php root entities
          + +

          Available entities

          + +Following is the list of available entities that are consistent with EntityInterface and can be created. +These classes are a convenient wrapper for accessing data in templates: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          Entity nameCollection nameIs rootPLDescription
          ClassEntityPhpEntitiesCollectionyesPHPPHP Class
          EnumEntityPhpEntitiesCollectionyesPHPEnumeration
          InterfaceEntityPhpEntitiesCollectionyesPHPObject interface
          TraitEntityPhpEntitiesCollectionyesPHPTrait
          ClassConstantEntityClassConstantEntitiesCollectionnoPHPClass constant entity
          DynamicMethodEntityMethodEntitiesCollectionnoPHPMethod obtained by parsing the "method" annotation
          MethodEntityMethodEntitiesCollectionnoPHPClass method entity
          PropertyEntityPropertyEntitiesCollectionnoPHPClass property entity
          + +
          +
          +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
          Last modified date: Wed Jan 10 23:55:33 2024 +0300
          Page content update date: Mon Jan 15 2024
          Made with Bumble Documentation Generator
          \ No newline at end of file diff --git a/docs/tech/2.parser/entityFilterCondition.md b/docs/tech/02_parser/entityFilterCondition.md similarity index 52% rename from docs/tech/2.parser/entityFilterCondition.md rename to docs/tech/02_parser/entityFilterCondition.md index 6c18390d..c8dbf646 100644 --- a/docs/tech/2.parser/entityFilterCondition.md +++ b/docs/tech/02_parser/entityFilterCondition.md @@ -1,4 +1,4 @@ - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions
          + BumbleDocGen / Technical description of the project / Parser / Entity filter conditions

          Entity filter conditions

          @@ -7,7 +7,7 @@ These rules facilitate a strategic extraction of elements, such as classes, meth By implementing these filters, users are endowed with the capability to customize the documentation output, ensuring that it precisely aligns with their requirements and expectations. This level of granularity not only streamlines the documentation process but also guarantees that the resultant documents are devoid of superfluous details, focusing solely on pertinent information. -All filter conditions implement the ConditionInterface interface. +All filter conditions implement the ConditionInterface interface.

          Mechanism for adding entities to the collection

          @@ -68,14 +68,14 @@ language_handlers: Common filtering conditions that are available for any entity: - + +
          +
          + +
            +
          • # + getCurrentRootEntity + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +

          @@ -446,14 +467,16 @@ public function getCachedEntityDependencies(): array; ```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + public function getDescription(): string; ``` - +
          Get entity description
          Parameters: not specified @@ -463,16 +486,7 @@ public function getDescription(): string; Throws: @@ -483,7 +497,7 @@ public function getDescription(): string; ```php @@ -502,7 +516,7 @@ public function getDescriptionLinks(): array; Throws:

          @@ -638,27 +611,24 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php -public function getDocCommentLine(): int|null; +public function getDocCommentLine(): null|int; ``` Parameters: not specified -Return value: int | null +Return value: null | int Throws: @@ -667,53 +637,18 @@ public function getDocCommentLine(): int|null;
          ```php -public function getDocCommentLineRecursive(): int|null; -``` - - - -Parameters: not specified - -Return value: int | null - - -Throws: - - -
          -
          -
          - - +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -```php -public function getDocCommentRecursive(): string; +public function getDocNote(): string; ``` - +
          Get the note annotation value
          Parameters: not specified @@ -723,42 +658,10 @@ public function getDocCommentRecursive(): string; Throws: -
          -
          -
          - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getDocNote(): string; -``` - - - -Parameters: not specified - -Return value: string - -

          @@ -766,30 +669,20 @@ public function getDocNote(): string; ```php public function getEndLine(): int; ``` - +
          Get the line number of the end of a method's code in a file
          Parameters: not specified Return value: int -Throws: - -

          @@ -797,7 +690,7 @@ public function getEndLine(): int; ```php @@ -813,34 +706,10 @@ public function getExamples(): array; Return value: array -
          -
          -
          - - - -```php -public function getFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - Throws: @@ -851,13 +720,13 @@ public function getFileName(): string|null; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -881,13 +750,13 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string Throws: @@ -898,7 +767,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -907,13 +776,20 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getFirstExample(): string; ``` -
          Get first example from @examples doc block
          +
          Get first example from `examples` doc block
          Parameters: not specified Return value: string +Throws: + +

          @@ -921,30 +797,20 @@ public function getFirstExample(): string; ```php public function getFirstReturnValue(): mixed; ``` - +
          Get the compiled first return value of a method (if possible)
          Parameters: not specified Return value: mixed -Throws: - -

          @@ -952,18 +818,18 @@ public function getFirstReturnValue(): mixed; ```php -public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
          Get the class like entity in which the current entity was implemented
          Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
          @@ -973,51 +839,20 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php public function getImplementingClassName(): string; ``` - +
          Get the name of the class in which this method is implemented
          Parameters: not specified Return value: string - -
          -
          - - - -```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: not specified - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: - -

          @@ -1025,30 +860,20 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php public function getModifiersString(): string; ``` - +
          Get a text representation of method modifiers
          Parameters: not specified Return value: string -Throws: - -

          @@ -1056,14 +881,14 @@ public function getModifiersString(): string; ```php public function getName(): string; ``` - +
          Full name of the entity
          Parameters: not specified @@ -1077,30 +902,20 @@ public function getName(): string; ```php public function getNamespaceName(): string; ``` - +
          Namespace of the class that contains this method
          Parameters: not specified Return value: string -Throws: - -

          @@ -1108,7 +923,7 @@ public function getNamespaceName(): string; ```php @@ -1131,39 +946,20 @@ public function getObjectId(): string; ```php public function getParameters(): array; ``` - +
          Get a list of method parameters
          Parameters: not specified Return value: array -Throws: - -

          @@ -1171,83 +967,43 @@ public function getParameters(): array; ```php public function getParametersString(): string; ``` - +
          Get a list of method parameters as a string
          Parameters: not specified Return value: string -Throws: - - -
          -
          -
          - - - -```php -public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings - -

          ```php -public function getPrototype(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity|null; +public function getParentMethod(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; ``` - +
          Get the parent method for this method
          Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity Throws: @@ -1264,37 +1020,48 @@ public function getPrototype(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\
          ```php -public function getReturnType(): string; +public function getRelativeFileName(): null|string; ``` - +
          File name relative to project_root configuration parameter
          Parameters: not specified -Return value: string +Return value: null | string -Throws: + +See: +
          +
          +
          -
        28. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
        29. + -
        30. - \DI\DependencyException
        31. +```php +public function getReturnType(): string; +``` -
        32. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
        33. +
          Get the return type of method
          + +Parameters: not specified + +Return value: string -

          @@ -1303,18 +1070,18 @@ public function getReturnType(): string; ```php -public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
          @@ -1324,18 +1091,18 @@ public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity ```php -public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` -
          Get parent collection of entities
          +
          Get the collection of root entities to which this entity belongs
          Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection @@ -1345,14 +1112,14 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php public function getShortName(): string; ``` - +
          Short name of the entity
          Parameters: not specified @@ -1366,36 +1133,20 @@ public function getShortName(): string; ```php public function getSignature(): string; ``` - +
          Get the method signature as a string
          Parameters: not specified Return value: string -Throws: - -
          @@ -1403,30 +1154,20 @@ public function getSignature(): string; ```php public function getStartColumn(): int; ``` - +
          Get the column number of the beginning of the method code in a file
          Parameters: not specified Return value: int -Throws: - -

          @@ -1434,30 +1175,20 @@ public function getStartColumn(): int; ```php public function getStartLine(): int; ``` - +
          Get the line number of the beginning of the entity code in a file
          Parameters: not specified Return value: int -Throws: - -

          @@ -1465,7 +1196,7 @@ public function getStartLine(): int; ```php @@ -1484,10 +1215,37 @@ public function getThrows(): array; Throws: + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + + +Parameters: not specified + +Return value: array + +Throws: + @@ -1498,7 +1256,7 @@ public function getThrows(): array; ```php @@ -1507,7 +1265,7 @@ public function getThrows(): array; public function hasDescriptionLinks(): bool; ``` - +
          Checking if an entity has links in its description
          Parameters: not specified @@ -1528,7 +1286,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1537,13 +1295,20 @@ public function hasDescriptionLinks(): bool; public function hasExamples(): bool; ``` - +
          Checking if an entity has `example` docBlock
          Parameters: not specified Return value: bool +Throws: + +

          @@ -1551,7 +1316,7 @@ public function hasExamples(): bool; ```php @@ -1560,13 +1325,50 @@ public function hasExamples(): bool; public function hasThrows(): bool; ``` +
          Checking if an entity has `throws` docBlock
          + +Parameters: not specified + +Return value: bool + + +Throws: + + +
          +
          +
          + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` +
          Checking if an entity has `api` docBlock
          Parameters: not specified Return value: bool +Throws: + +

          @@ -1574,14 +1376,14 @@ public function hasThrows(): bool; ```php public function isConstructor(): bool; ``` - +
          Checking that a method is a constructor
          Parameters: not specified @@ -1595,7 +1397,7 @@ public function isConstructor(): bool; ```php @@ -1604,13 +1406,20 @@ public function isConstructor(): bool; public function isDeprecated(): bool; ``` - +
          Checking if an entity has `deprecated` docBlock
          Parameters: not specified Return value: bool +Throws: + +

          @@ -1618,14 +1427,37 @@ public function isDeprecated(): bool; ```php public function isDynamic(): bool; ``` +
          Check if a method is a dynamic method, that is, implementable using __call or __callStatic
          + +Parameters: not specified + +Return value: bool + + +
          +
          +
          + +
            +
          • # + isEntityCacheOutdated + :warning: Is internal | source code
          • +
          + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` +
          Checking if the entity cache is out of date
          Parameters: not specified @@ -1639,7 +1471,7 @@ public function isDynamic(): bool; ```php @@ -1669,7 +1501,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1678,7 +1510,7 @@ public function isEntityDataCacheOutdated(): bool; public function isEntityFileCanBeLoad(): bool; ``` - +
          Checking if entity data can be retrieved
          Parameters: not specified @@ -1688,10 +1520,7 @@ public function isEntityFileCanBeLoad(): bool; Throws: @@ -1702,14 +1531,14 @@ public function isEntityFileCanBeLoad(): bool; ```php public function isImplementedInParentClass(): bool; ``` - +
          Check if this method is implemented in the parent class
          Parameters: not specified @@ -1723,36 +1552,20 @@ public function isImplementedInParentClass(): bool; ```php public function isInitialization(): bool; ``` - +
          Check if a method is an initialization method
          Parameters: not specified Return value: bool -Throws: - -

          @@ -1760,7 +1573,7 @@ public function isInitialization(): bool; ```php @@ -1769,13 +1582,20 @@ public function isInitialization(): bool; public function isInternal(): bool; ``` - +
          Checking if an entity has `internal` docBlock
          Parameters: not specified Return value: bool +Throws: + +

          @@ -1783,30 +1603,20 @@ public function isInternal(): bool; ```php public function isPrivate(): bool; ``` - +
          Check if a method is a private method
          Parameters: not specified Return value: bool -Throws: - -

          @@ -1814,30 +1624,20 @@ public function isPrivate(): bool; ```php public function isProtected(): bool; ``` - +
          Check if a method is a protected method
          Parameters: not specified Return value: bool -Throws: - -

          @@ -1845,30 +1645,20 @@ public function isProtected(): bool; ```php public function isPublic(): bool; ``` - +
          Check if a method is a public method
          Parameters: not specified Return value: bool -Throws: - -

          @@ -1876,68 +1666,20 @@ public function isPublic(): bool; ```php public function isStatic(): bool; ``` - +
          Check if this method is static
          Parameters: not specified Return value: bool -Throws: - - -
          -
          -
          - - - -```php -public static function parseAnnotationParams(array $params): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $paramsarray-
          - -Return value: array - -

          @@ -1945,7 +1687,7 @@ public static function parseAnnotationParams(array $params): array; ```php @@ -1954,20 +1696,13 @@ public static function parseAnnotationParams(array $params): array; public function reloadEntityDependenciesCache(): array; ``` - +
          Update entity dependency cache
          Parameters: not specified Return value: array -Throws: - -

          @@ -1975,7 +1710,7 @@ public function reloadEntityDependenciesCache(): array; ```php @@ -2015,7 +1750,7 @@ public function removeEntityValueFromCache(string $key): void; ```php @@ -2040,5 +1775,3 @@ public function removeNotUsedEntityDataCache(): void;

          - - \ No newline at end of file diff --git a/docs/tech/classes/ClassEntityCollection.md b/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md similarity index 59% rename from docs/tech/classes/ClassEntityCollection.md rename to docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md index a89030c5..b1cf22c2 100644 --- a/docs/tech/classes/ClassEntityCollection.md +++ b/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / ClassEntityCollection
          + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP entities collection / PhpEntitiesCollection

          - ClassEntityCollection class: + PhpEntitiesCollection class:

          @@ -12,10 +11,10 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; -final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection implements \IteratorAggregate, \Traversable +final class PhpEntitiesCollection extends \BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection implements \IteratorAggregate ``` -
          Collection of PHP class entities
          +
          Collection of php root entities
          @@ -35,64 +34,58 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
          1. add -
          2. + - Add an entity to the collection
          3. clearOperationsLogCollection
          4. filterByInterfaces -
          5. + - Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
          6. filterByNameRegularExpression -
          7. + - Get a copy of the current collection with only entities whose names match the regular expression
          8. filterByParentClassNames -
          9. + - Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
          10. filterByPaths -
          11. + - Get a copy of the current collection only with entities filtered by file paths (from project_root)
          12. findEntity -
          13. + - Find an entity in a collection
          14. get -
          15. -
          16. - getEntityByClassName -
          17. + - Get an entity from a collection (only previously added)
          18. getEntityCollectionName -
          19. + - Get collection name
          20. getEntityLinkData
          21. getIterator - - Retrieve an external iterator
          22. +
          23. getLoadedOrCreateNew -
          24. + - Get an entity from the collection or create a new one if it has not yet been added
          25. getOnlyAbstractClasses -
          26. + - Get a copy of the current collection with only abstract classes
          27. getOnlyInstantiable -
          28. + - Get a copy of the current collection with only instantiable entities
          29. getOnlyInterfaces -
          30. + - Get a copy of the current collection with only interfaces
          31. getOnlyTraits -
          32. + - Get a copy of the current collection with only traits
          33. getOperationsLogCollection
          34. -
          35. - getPluginEventDispatcher -
          36. has -
          37. + - Check if an entity has been added to the collection
          38. internalFindEntity
          39. @@ -101,13 +94,22 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
          40. isEmpty -
          41. + - Check if the collection is empty or not
          42. - loadClassEntities -
          43. + loadEntities + - Load entities into a collection +
          44. + loadEntitiesByConfiguration + - Load entities into a collection by configuration
          45. remove + - Remove an entity from a collection
          46. +
          47. + removeAllNotLoadedEntities
          48. +
          49. + toArray + - Convert collection to array
          50. updateEntitiesCache
          51. @@ -118,7 +120,7 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga @@ -133,11 +135,11 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\EntityDocRendererHelper $docRendererHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Console\ProgressBar\ProgressBarFactory $progressBarFactory, \Symfony\Component\Console\Style\OutputStyle $io, \Psr\Log\LoggerInterface $logger); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\EntityDocRendererHelper $docRendererHelper, \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper $phpParserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger); ``` @@ -162,11 +164,6 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $phpHandlerSettings \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings - - - - $parserHelper - \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper - - $pluginEventDispatcher @@ -184,18 +181,13 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf - - $localObjectCache - \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - - - - - $progressBarFactory - \BumbleDocGen\Console\ProgressBar\ProgressBarFactory + $phpParserHelper + \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper - - $io - \Symfony\Component\Console\Style\OutputStyle + $localObjectCache + \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - @@ -215,14 +207,14 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php -public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Add an entity to the collection
            Parameters: @@ -237,7 +229,7 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -248,16 +240,13 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -291,14 +280,14 @@ public function clearOperationsLogCollection(): void; ```php -public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
            Parameters: @@ -319,16 +308,13 @@ public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHan -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -339,14 +325,14 @@ public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHan ```php -public function filterByNameRegularExpression(string $regexPattern): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByNameRegularExpression(string $regexPattern): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection with only entities whose names match the regular expression
            Parameters: @@ -367,7 +353,7 @@ public function filterByNameRegularExpression(string $regexPattern): \BumbleDocG -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection @@ -377,14 +363,14 @@ public function filterByNameRegularExpression(string $regexPattern): \BumbleDocG ```php -public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
            Parameters: @@ -405,16 +391,13 @@ public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -425,14 +408,14 @@ public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen ```php -public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection only with entities filtered by file paths (from project_root)
            Parameters: @@ -453,16 +436,13 @@ public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\P -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -479,10 +459,10 @@ public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\P ```php // Implemented in BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection -public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function findEntity(string $search, bool $useUnsafeKeys = true): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
            Find an entity in a collection
            Parameters: @@ -508,7 +488,7 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface @@ -524,10 +504,10 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD ```php // Implemented in BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection -public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function get(string $objectName): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
            Get an entity from a collection (only previously added)
            Parameters: @@ -548,50 +528,7 @@ public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEn -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null - - - -
            -
            - - - -```php -public function getEntityByClassName(string $className, bool $createIfNotExists = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $classNamestring-
            $createIfNotExistsbool-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface
            @@ -601,14 +538,14 @@ public function getEntityByClassName(string $className, bool $createIfNotExists ```php public function getEntityCollectionName(): string; ``` - +
            Get collection name
            Parameters: not specified @@ -622,7 +559,7 @@ public function getEntityCollectionName(): string; ```php @@ -680,26 +617,13 @@ public function getEntityLinkData(string $rawLink, string|null $defaultEntityNam public function getIterator(): \Generator; ``` -
            Retrieve an external iterator
            + Parameters: not specified Return value: \Generator -Throws: - - - -See: -
            @@ -716,7 +640,7 @@ public function getIterator(): \Generator; public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
            Get an entity from the collection or create a new one if it has not yet been added
            Parameters: @@ -749,7 +673,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit See:

            @@ -758,27 +682,24 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit ```php -public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection with only abstract classes
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -789,29 +710,19 @@ public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Pars ```php -public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection with only instantiable entities
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
            @@ -820,29 +731,19 @@ public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php -public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection with only interfaces
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
            @@ -851,29 +752,19 @@ public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\En ```php -public function getOnlyTraits(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyTraits(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection with only traits
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
            @@ -898,27 +789,6 @@ public function getOperationsLogCollection(): \BumbleDocGen\Core\Parser\Entity\C Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection - -
            -
            - - - -```php -public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEventDispatcher; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Plugin\PluginEventDispatcher - -

            @@ -926,7 +796,7 @@ public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEven ```php @@ -935,7 +805,7 @@ public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEven public function has(string $objectName): bool; ``` - +
            Check if an entity has been added to the collection
            Parameters: @@ -966,11 +836,11 @@ public function has(string $objectName): bool; ```php -public function internalFindEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|null; +public function internalFindEntity(string $search, bool $useUnsafeKeys = true): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` @@ -1001,7 +871,7 @@ public function internalFindEntity(string $search, bool $useUnsafeKeys = true): -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity @@ -1009,14 +879,14 @@ public function internalFindEntity(string $search, bool $useUnsafeKeys = true): Examples of using: ```php -$classEntityCollection->findEntity('App'); // class name -$classEntityCollection->findEntity('BumbleDocGen\Console\App'); // class with namespace -$classEntityCollection->findEntity('\BumbleDocGen\Console\App'); // class with namespace -$classEntityCollection->findEntity('\BumbleDocGen\Console\App::test()'); // class with namespace and optional part -$classEntityCollection->findEntity('App.php'); // filename -$classEntityCollection->findEntity('/BumbleDocGen/Console/App.php'); // relative path -$classEntityCollection->findEntity('/Users/someuser/Desktop/projects/bumble-doc-gen/BumbleDocGen/Console/App.php'); // absolute path -$classEntityCollection->findEntity('https://github.com/bumble-tech/bumble-doc-gen/blob/master/BumbleDocGen/Console/App.php'); // source link +$entitiesCollection->findEntity('App'); // class name +$entitiesCollection->findEntity('BumbleDocGen\Console\App'); // class with namespace +$entitiesCollection->findEntity('\BumbleDocGen\Console\App'); // class with namespace +$entitiesCollection->findEntity('\BumbleDocGen\Console\App::test()'); // class with namespace and optional part +$entitiesCollection->findEntity('App.php'); // filename +$entitiesCollection->findEntity('/src/Console/App.php'); // relative path +$entitiesCollection->findEntity('/Users/someuser/Desktop/projects/bumble-doc-gen/src/Console/App.php'); // absolute path +$entitiesCollection->findEntity('https://github.com/bumble-tech/bumble-doc-gen/blob/master/src/Console/App.php'); // source link ```
            @@ -1026,11 +896,11 @@ $classEntityCollection->findEntity('https://github.com/bumble-tech/bumble-doc-ge ```php -public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` @@ -1059,7 +929,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity Throws: @@ -1070,6 +940,9 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl
          52. \DI\NotFoundException
          53. +
          54. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          55. + @@ -1079,7 +952,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl ```php @@ -1088,7 +961,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl public function isEmpty(): bool; ``` - +
            Check if the collection is empty or not
            Parameters: not specified @@ -1100,35 +973,116 @@ public function isEmpty(): bool;
            ```php -public function loadClassEntities(): void; +public function loadEntities(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection $sourceLocatorsCollection, \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface|null $filters = null, \BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; ``` +
            Load entities into a collection
            +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $sourceLocatorsCollection\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection-
            $filters\BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface | null-
            $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
            -Return value: void +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult Throws: + +
            +
            +
            + +
              +
            • # + loadEntitiesByConfiguration + :warning: Is internal | source code
            • +
            + +```php +public function loadEntitiesByConfiguration(\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; +``` + +
            Load entities into a collection by configuration
            + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
            + +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult + + +Throws: + @@ -1139,7 +1093,7 @@ public function loadClassEntities(): void; ```php @@ -1148,7 +1102,7 @@ public function loadClassEntities(): void; public function remove(string $objectName): void; ``` - +
            Remove an entity from a collection
            Parameters: @@ -1172,6 +1126,52 @@ public function remove(string $objectName): void; Return value: void +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection + +public function removeAllNotLoadedEntities(): void; +``` + + + +Parameters: not specified + +Return value: void + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection + +public function toArray(): array; +``` + +
            Convert collection to array
            + +Parameters: not specified + +Return value: array + +

            @@ -1179,7 +1179,7 @@ public function remove(string $objectName): void; ```php @@ -1204,5 +1204,3 @@ public function updateEntitiesCache(): void;

            - - \ No newline at end of file diff --git a/docs/tech/02_parser/reflectionApi/php/classes/PhpHandlerSettings.md b/docs/tech/02_parser/reflectionApi/php/classes/PhpHandlerSettings.md new file mode 100644 index 00000000..0426fe22 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/classes/PhpHandlerSettings.md @@ -0,0 +1,511 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PhpHandlerSettings
            + +

            + PhpHandlerSettings class: +

            + + + + + +```php +namespace BumbleDocGen\LanguageHandler\Php; + +final class PhpHandlerSettings +``` + + + + + + + + +

            Initialization methods:

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

            Methods:

            + +
              +
            1. + getClassConstantEntityFilter +
            2. +
            3. + getClassEntityFilter +
            4. +
            5. + getComposerConfigFile +
            6. +
            7. + getComposerVendorDir +
            8. +
            9. + getCustomTwigFilters +
            10. +
            11. + getCustomTwigFunctions +
            12. +
            13. + getEntityDocRenderersCollection +
            14. +
            15. + getFileSourceBaseUrl +
            16. +
            17. + getMethodEntityFilter +
            18. +
            19. + getPropertyEntityFilter +
            20. +
            21. + getPsr4Map +
            22. +
            23. + getUseComposerAutoload +
            24. +
            + + +

            Constants:

            + + + + + + +

            Method details:

            + +
            + + + +```php +public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
            $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
            + + + +
            +
            +
            + + + +```php +public function getClassConstantEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface + + +Throws: + + +
            +
            +
            + + + +```php +public function getClassEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface + + +Throws: + + +
            +
            +
            + + + +```php +public function getComposerConfigFile(): null|string; +``` + + + +Parameters: not specified + +Return value: null | string + + +Throws: + + +
            +
            +
            + + + +```php +public function getComposerVendorDir(): null|string; +``` + + + +Parameters: not specified + +Return value: null | string + + +Throws: + + +
            +
            +
            + + + +```php +public function getCustomTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getCustomTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getEntityDocRenderersCollection(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRenderersCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRenderersCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getFileSourceBaseUrl(): null|string; +``` + + + +Parameters: not specified + +Return value: null | string + + +Throws: + + +
            +
            +
            + + + +```php +public function getMethodEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface + + +Throws: + + +
            +
            +
            + + + +```php +public function getPropertyEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface + + +Throws: + + +
            +
            +
            + + + +```php +public function getPsr4Map(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +public function getUseComposerAutoload(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            diff --git a/docs/tech/classes/PropertyEntity.md b/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md similarity index 57% rename from docs/tech/classes/PropertyEntity.md rename to docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md index 56b3e947..bb36e3bc 100644 --- a/docs/tech/classes/PropertyEntity.md +++ b/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / PropertyEntity
            + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP class property reflection API / PropertyEntity

            - PropertyEntity class: + PropertyEntity class:

            @@ -10,7 +9,7 @@ ```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property; class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface ``` @@ -33,12 +32,12 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas

            Methods:

              -
            1. - entityCacheIsOutdated -
            2. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            3. +
            4. + getAst + - Get AST for this entity
            5. getCacheKey
            6. @@ -46,119 +45,128 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas getCachedEntityDependencies
            7. - getDefaultValue + getCurrentRootEntity
            8. +
            9. + getDefaultValue + - Get the compiled default value of a property
            10. getDescription -
            11. + - Get entity description
            12. getDescriptionLinks - Get parsed links from description and doc blocks `see` and `link`
            13. getDocBlock -
            14. + - Get DocBlock for current entity
            15. getDocComment - Get the doc comment of an entity
            16. getDocCommentEntity -
            17. + - Link to an entity where docBlock is implemented for this entity +
            18. + getDocCommentLine + - Get the code line number where the docBlock of the current entity begins
            19. getDocNote -
            20. + - Get the note annotation value
            21. getEndLine -
            22. + - Get the line number of the end of a property's code in a file
            23. getExamples - Get parsed examples from `examples` doc block
            24. -
            25. - getFileName -
            26. getFileSourceLink
            27. getFirstExample - - Get first example from @examples doc block
            28. + - Get first example from `examples` doc block
            29. getImplementingClass -
            30. + - Get the class like entity in which the current entity was implemented
            31. getImplementingClassName -
            32. -
            33. - getImplementingReflectionClass -
            34. + - Get the name of the class in which this property is implemented
            35. getModifiersString -
            36. + - Get a text representation of property modifiers
            37. getName -
            38. + - Full name of the entity
            39. getNamespaceName -
            40. + - Namespace of the class that contains this property
            41. getObjectId - Get entity unique ID
            42. - getPhpHandlerSettings -
            43. + getRelativeFileName + - File name relative to project_root configuration parameter
            44. getRootEntity
            45. getRootEntityCollection - - Get parent collection of entities
            46. + - Get the collection of root entities to which this entity belongs
            47. getShortName -
            48. + - Short name of the entity
            49. getStartLine -
            50. + - Get the line number of the beginning of the entity code in a file
            51. getThrows - Get parsed throws from `throws` doc block
            52. - getType + getThrowsDocBlockLinks
            53. +
            54. + getType + - Get current property type
            55. hasDescriptionLinks -
            56. + - Checking if an entity has links in its description
            57. hasExamples -
            58. + - Checking if an entity has `example` docBlock
            59. hasThrows -
            60. + - Checking if an entity has `throws` docBlock +
            61. + isApi + - Checking if an entity has `api` docBlock
            62. isDeprecated -
            63. + - Checking if an entity has `deprecated` docBlock +
            64. + isEntityCacheOutdated + - Checking if the entity cache is out of date
            65. isEntityDataCacheOutdated
            66. isEntityFileCanBeLoad -
            67. + - Checking if entity data can be retrieved
            68. isImplementedInParentClass -
            69. + - Check if this property is implemented in the parent class
            70. isInternal -
            71. + - Checking if an entity has `internal` docBlock
            72. isPrivate -
            73. + - Check if a private is a public private
            74. isProtected -
            75. + - Check if a protected is a public protected
            76. isPublic -
            77. + - Check if a property is a public property
            78. reloadEntityDependenciesCache -
            79. + - Update entity dependency cache
            80. removeEntityValueFromCache
            81. @@ -168,6 +176,25 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
            +

            Constants:

            + @@ -180,11 +207,11 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $propertyName, string $declaringClassName, string $implementingClassName); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $propertyName, string $implementingClassName); ``` @@ -207,7 +234,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -229,11 +256,6 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $propertyName string - - - - $declaringClassName - string - - $implementingClassName @@ -250,31 +272,28 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf
            ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function entityCacheIsOutdated(): bool; +public function getAbsoluteFileName(): null|string; ``` - +
            Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            Parameters: not specified -Return value: bool +Return value: null | string Throws: @@ -283,28 +302,26 @@ public function entityCacheIsOutdated(): bool;
            ```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getAbsoluteFileName(): string|null; +public function getAst(): \PhpParser\Node\Stmt\Property; ``` -
            Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            +
            Get AST for this entity
            Parameters: not specified -Return value: string | null +Return value: \PhpParser\Node\Stmt\Property Throws: @@ -315,7 +332,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -338,7 +355,7 @@ public function getCacheKey(): string; ```php @@ -359,8 +376,34 @@ public function getCachedEntityDependencies(): array;
          56. \Psr\Cache\InvalidArgumentException
          57. +
          58. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          59. + +
            +
            +
            + +
              +
            • # + getCurrentRootEntity + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +

            @@ -368,14 +411,14 @@ public function getCachedEntityDependencies(): array; ```php public function getDefaultValue(): string|array|int|bool|null|float; ``` - +
            Get the compiled default value of a property
            Parameters: not specified @@ -385,10 +428,10 @@ public function getDefaultValue(): string|array|int|bool|null|float; Throws: @@ -399,14 +442,16 @@ public function getDefaultValue(): string|array|int|bool|null|float; ```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + public function getDescription(): string; ``` - +
            Get entity description
            Parameters: not specified @@ -416,16 +461,7 @@ public function getDescription(): string; Throws: @@ -436,7 +472,7 @@ public function getDescription(): string; ```php @@ -455,7 +491,7 @@ public function getDescriptionLinks(): array; Throws:
            +
            +
            + -
          60. - \DI\DependencyException
          61. +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -
          62. - \DI\NotFoundException
          63. +public function getDocCommentLine(): null|int; +``` + +
            Get the code line number where the docBlock of the current entity begins
            +Parameters: not specified + +Return value: null | int + + +Throws: + @@ -576,7 +616,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -585,13 +625,20 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ public function getDocNote(): string; ``` - +
            Get the note annotation value
            Parameters: not specified Return value: string +Throws: + +

            @@ -599,14 +646,14 @@ public function getDocNote(): string; ```php public function getEndLine(): int; ``` - +
            Get the line number of the end of a property's code in a file
            Parameters: not specified @@ -616,10 +663,7 @@ public function getEndLine(): int; Throws: @@ -630,7 +674,7 @@ public function getEndLine(): int; ```php @@ -646,34 +690,10 @@ public function getExamples(): array; Return value: array -
            -
            -
            - - - -```php -public function getFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - Throws: @@ -684,13 +704,13 @@ public function getFileName(): string|null; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -714,13 +734,13 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string Throws: @@ -731,7 +751,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -740,13 +760,20 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getFirstExample(): string; ``` -
            Get first example from @examples doc block
            +
            Get first example from `examples` doc block
            Parameters: not specified Return value: string +Throws: + +

            @@ -754,18 +781,18 @@ public function getFirstExample(): string; ```php -public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` - +
            Get the class like entity in which the current entity was implemented
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
            @@ -775,51 +802,20 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php public function getImplementingClassName(): string; ``` - +
            Get the name of the class in which this property is implemented
            Parameters: not specified Return value: string -
            -
            -
            - - - -```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: not specified - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: - -

            @@ -827,14 +823,14 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php public function getModifiersString(): string; ``` - +
            Get a text representation of property modifiers
            Parameters: not specified @@ -843,9 +839,6 @@ public function getModifiersString(): string; Throws: @@ -864,14 +857,14 @@ public function getModifiersString(): string; ```php public function getName(): string; ``` - +
            Full name of the entity
            Parameters: not specified @@ -885,30 +878,20 @@ public function getName(): string; ```php public function getNamespaceName(): string; ``` - +
            Namespace of the class that contains this property
            Parameters: not specified Return value: string -Throws: - -

            @@ -916,7 +899,7 @@ public function getNamespaceName(): string; ```php @@ -937,22 +920,28 @@ public function getObjectId(): string;
            ```php -public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; +public function getRelativeFileName(): null|string; ``` - +
            File name relative to project_root configuration parameter
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings +Return value: null | string + +See: +

            @@ -960,18 +949,18 @@ public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHa ```php -public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
            @@ -981,18 +970,18 @@ public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity ```php -public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` -
            Get parent collection of entities
            +
            Get the collection of root entities to which this entity belongs
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection
            @@ -1002,14 +991,14 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php public function getShortName(): string; ``` - +
            Short name of the entity
            Parameters: not specified @@ -1023,30 +1012,20 @@ public function getShortName(): string; ```php public function getStartLine(): int; ``` - +
            Get the line number of the beginning of the entity code in a file
            Parameters: not specified Return value: int -Throws: - -
            @@ -1054,7 +1033,7 @@ public function getStartLine(): int; ```php @@ -1073,10 +1052,37 @@ public function getThrows(): array; Throws: + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + +Parameters: not specified + +Return value: array + + +Throws: + @@ -1087,14 +1093,14 @@ public function getThrows(): array; ```php public function getType(): string; ``` - +
            Get current property type
            Parameters: not specified @@ -1106,14 +1112,11 @@ public function getType(): string;
          64. \DI\NotFoundException
          65. -
          66. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
          67. -
          68. \DI\DependencyException
          69. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          70. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -1124,7 +1127,7 @@ public function getType(): string; ```php @@ -1133,7 +1136,7 @@ public function getType(): string; public function hasDescriptionLinks(): bool; ``` - +
            Checking if an entity has links in its description
            Parameters: not specified @@ -1154,7 +1157,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1163,13 +1166,20 @@ public function hasDescriptionLinks(): bool; public function hasExamples(): bool; ``` - +
            Checking if an entity has `example` docBlock
            Parameters: not specified Return value: bool +Throws: + +

            @@ -1177,7 +1187,7 @@ public function hasExamples(): bool; ```php @@ -1186,13 +1196,50 @@ public function hasExamples(): bool; public function hasThrows(): bool; ``` +
            Checking if an entity has `throws` docBlock
            + +Parameters: not specified + +Return value: bool + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` + +
            Checking if an entity has `api` docBlock
            Parameters: not specified Return value: bool +Throws: + +

            @@ -1200,7 +1247,7 @@ public function hasThrows(): bool; ```php @@ -1209,7 +1256,37 @@ public function hasThrows(): bool; public function isDeprecated(): bool; ``` +
            Checking if an entity has `deprecated` docBlock
            + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            +
              +
            • # + isEntityCacheOutdated + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` + +
            Checking if the entity cache is out of date
            Parameters: not specified @@ -1223,7 +1300,7 @@ public function isDeprecated(): bool; ```php @@ -1253,7 +1330,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1262,7 +1339,7 @@ public function isEntityDataCacheOutdated(): bool; public function isEntityFileCanBeLoad(): bool; ``` - +
            Checking if entity data can be retrieved
            Parameters: not specified @@ -1272,10 +1349,7 @@ public function isEntityFileCanBeLoad(): bool; Throws: @@ -1286,14 +1360,14 @@ public function isEntityFileCanBeLoad(): bool; ```php public function isImplementedInParentClass(): bool; ``` - +
            Check if this property is implemented in the parent class
            Parameters: not specified @@ -1307,7 +1381,7 @@ public function isImplementedInParentClass(): bool; ```php @@ -1316,13 +1390,20 @@ public function isImplementedInParentClass(): bool; public function isInternal(): bool; ``` - +
            Checking if an entity has `internal` docBlock
            Parameters: not specified Return value: bool +Throws: + +

            @@ -1330,14 +1411,14 @@ public function isInternal(): bool; ```php public function isPrivate(): bool; ``` - +
            Check if a private is a public private
            Parameters: not specified @@ -1347,10 +1428,7 @@ public function isPrivate(): bool; Throws: @@ -1361,14 +1439,14 @@ public function isPrivate(): bool; ```php public function isProtected(): bool; ``` - +
            Check if a protected is a public protected
            Parameters: not specified @@ -1378,10 +1456,7 @@ public function isProtected(): bool; Throws: @@ -1392,14 +1467,14 @@ public function isProtected(): bool; ```php public function isPublic(): bool; ``` - +
            Check if a property is a public property
            Parameters: not specified @@ -1409,10 +1484,7 @@ public function isPublic(): bool; Throws: @@ -1423,7 +1495,7 @@ public function isPublic(): bool; ```php @@ -1432,20 +1504,13 @@ public function isPublic(): bool; public function reloadEntityDependenciesCache(): array; ``` - +
            Update entity dependency cache
            Parameters: not specified Return value: array -Throws: - -

            @@ -1453,7 +1518,7 @@ public function reloadEntityDependenciesCache(): array; ```php @@ -1493,7 +1558,7 @@ public function removeEntityValueFromCache(string $key): void; ```php @@ -1518,5 +1583,3 @@ public function removeNotUsedEntityDataCache(): void;

            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/RootEntityInterface_2.md b/docs/tech/02_parser/reflectionApi/php/classes/RootEntityInterface.md similarity index 73% rename from docs/tech/3.renderer/classes/RootEntityInterface_2.md rename to docs/tech/02_parser/reflectionApi/php/classes/RootEntityInterface.md index f771214c..1b87c139 100644 --- a/docs/tech/3.renderer/classes/RootEntityInterface_2.md +++ b/docs/tech/02_parser/reflectionApi/php/classes/RootEntityInterface.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Renderer / RootEntityInterface
            + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / RootEntityInterface

            RootEntityInterface class: @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Parser\Entity; -interface RootEntityInterface extends \\BumbleDocGen\Core\Parser\Entity\EntityInterface implements \BumbleDocGen\Core\Parser\Entity\EntityInterface +interface RootEntityInterface extends \BumbleDocGen\Core\Parser\Entity\EntityInterface ```
            Since the documentation generator supports several programming languages, @@ -27,12 +26,6 @@ their entities need to correspond to the same interfaces

            Methods:

              -
            1. - entityCacheIsOutdated -
            2. -
            3. - entityDataCanBeLoaded - - Checking if it is possible to get the entity data
            4. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            5. @@ -42,24 +35,30 @@ their entities need to correspond to the same interfaces
            6. getFileContent
            7. -
            8. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
            9. getFileSourceLink
            10. getName -
            11. + - Full name of the entity
            12. getObjectId -
            13. + - Entity object ID +
            14. + getRelativeFileName + - File name relative to project_root configuration parameter
            15. getRootEntityCollection - Get parent collection of entities
            16. getShortName + - Short name of the entity
            17. +
            18. + isEntityCacheOutdated
            19. +
            20. + isEntityDataCanBeLoaded + - Checking if it is possible to get the entity data
            21. isEntityNameValid - Check if entity name is valid
            22. @@ -69,6 +68,9 @@ their entities need to correspond to the same interfaces
            23. isInGit - The entity file is in the git repository
            24. +
            25. + normalizeClassName +
            @@ -81,67 +83,23 @@ their entities need to correspond to the same interfaces
            - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function entityDataCanBeLoaded(): bool; -``` - -
            Checking if it is possible to get the entity data
            - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - ```php // Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface -public function getAbsoluteFileName(): string|null; +public function getAbsoluteFileName(): null|string; ```
            Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            Parameters: not specified -Return value: string | null +Return value: null | string
            @@ -151,7 +109,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -172,7 +130,7 @@ public function getEntityDependencies(): array; ```php @@ -186,29 +144,6 @@ public function getFileContent(): string; Return value: string - -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getFileName(): string|null; -``` - -
            Returns the relative path to a file if it can be retrieved and if the file is in the project directory
            - -Parameters: not specified - -Return value: string | null - -

            @@ -216,11 +151,11 @@ public function getFileName(): string|null; ```php -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -244,7 +179,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string
            @@ -254,7 +189,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -263,7 +198,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getName(): string; ``` - +
            Full name of the entity
            Parameters: not specified @@ -277,7 +212,7 @@ public function getName(): string; ```php @@ -286,7 +221,7 @@ public function getName(): string; public function getObjectId(): string; ``` - +
            Entity object ID
            Parameters: not specified @@ -297,10 +232,39 @@ public function getObjectId(): string;
            + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +public function getRelativeFileName(): null|string; +``` + +
            File name relative to project_root configuration parameter
            + +Parameters: not specified + +Return value: null | string + + + +See: + +
            +
            +
            + ```php @@ -323,7 +287,7 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root ```php @@ -332,13 +296,57 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root public function getShortName(): string; ``` - +
            Short name of the entity
            Parameters: not specified Return value: string +
            +
            +
            + +
              +
            • # + isEntityCacheOutdated + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +public function isEntityCacheOutdated(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + + + +```php +public function isEntityDataCanBeLoaded(): bool; +``` + +
            Checking if it is possible to get the entity data
            + +Parameters: not specified + +Return value: bool + +

            @@ -346,7 +354,7 @@ public function getShortName(): string; ```php @@ -384,7 +392,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php @@ -405,7 +413,7 @@ public function isExternalLibraryEntity(): bool; ```php @@ -421,5 +429,41 @@ public function isInGit(): bool;

            +
            - \ No newline at end of file + + +```php +public static function normalizeClassName(string $name): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $namestring-
            + +Return value: string + + +
            +
            diff --git a/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md b/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md new file mode 100644 index 00000000..635487f6 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md @@ -0,0 +1,3438 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP trait reflection API / TraitEntity
            + +

            + TraitEntity class: +

            + + + + + +```php +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; + +class TraitEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity implements \BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface +``` + +
            Trait
            + +See: + + + + + + + +

            Initialization methods:

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

            Methods:

            + +
              +
            1. + addPluginData + - Add information to aт entity object
            2. +
            3. + cursorToDocAttributeLinkFragment +
            4. +
            5. + getAbsoluteFileName + - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            6. +
            7. + getAst + - Get AST for this entity
            8. +
            9. + getCacheKey +
            10. +
            11. + getCachedEntityDependencies +
            12. +
            13. + getConstant + - Get the method entity by its name
            14. +
            15. + getConstantEntitiesCollection + - Get a collection of constant entities
            16. +
            17. + getConstantValue + - Get the compiled value of a constant
            18. +
            19. + getConstants + - Get all constants that are available according to the configuration as an array
            20. +
            21. + getConstantsData + - Get a list of all constants and classes where they are implemented
            22. +
            23. + getConstantsValues + - Get class constant compiled values according to filters
            24. +
            25. + getCurrentRootEntity +
            26. +
            27. + getDescription + - Get entity description
            28. +
            29. + getDescriptionLinks + - Get parsed links from description and doc blocks `see` and `link`
            30. +
            31. + getDocBlock + - Get DocBlock for current entity
            32. +
            33. + getDocComment + - Get the doc comment of an entity
            34. +
            35. + getDocCommentEntity + - Link to an entity where docBlock is implemented for this entity
            36. +
            37. + getDocCommentLine + - Get the code line number where the docBlock of the current entity begins
            38. +
            39. + getDocNote + - Get the note annotation value
            40. +
            41. + getDocRender +
            42. +
            43. + getEndLine + - Get the line number of the end of a class code in a file
            44. +
            45. + getEntityDependencies +
            46. +
            47. + getExamples + - Get parsed examples from `examples` doc block
            48. +
            49. + getFileContent +
            50. +
            51. + getFileSourceLink +
            52. +
            53. + getFirstExample + - Get first example from `examples` doc block
            54. +
            55. + getImplementingClass + - Get the class like entity in which the current entity was implemented
            56. +
            57. + getInterfaceNames + - Get a list of class interface names
            58. +
            59. + getInterfacesEntities + - Get a list of interface entities that the current class implements
            60. +
            61. + getMethod + - Get the method entity by its name
            62. +
            63. + getMethodEntitiesCollection + - Get a collection of method entities
            64. +
            65. + getMethods + - Get all methods that are available according to the configuration as an array
            66. +
            67. + getMethodsData + - Get a list of all methods and classes where they are implemented
            68. +
            69. + getModifiersString + - Get entity modifiers as a string
            70. +
            71. + getName + - Full name of the entity
            72. +
            73. + getNamespaceName + - Get the entity namespace name
            74. +
            75. + getObjectId + - Get entity unique ID
            76. +
            77. + getParentClass + - Get the entity of the parent class if it exists
            78. +
            79. + getParentClassEntities + - Get a list of parent class entities
            80. +
            81. + getParentClassName + - Get the name of the parent class entity if it exists
            82. +
            83. + getParentClassNames + - Get a list of entity names of parent classes
            84. +
            85. + getPluginData + - Get additional information added using the plugin
            86. +
            87. + getProperties + - Get all properties that are available according to the configuration as an array
            88. +
            89. + getPropertiesData + - Get a list of all properties and classes where they are implemented
            90. +
            91. + getProperty + - Get the property entity by its name
            92. +
            93. + getPropertyDefaultValue + - Get the compiled value of a property
            94. +
            95. + getPropertyEntitiesCollection + - Get a collection of property entities
            96. +
            97. + getRelativeFileName + - File name relative to project_root configuration parameter
            98. +
            99. + getRootEntityCollection + - Get the collection of root entities to which this entity belongs
            100. +
            101. + getShortName + - Short name of the entity
            102. +
            103. + getStartLine + - Get the line number of the start of a class code in a file
            104. +
            105. + getThrows + - Get parsed throws from `throws` doc block
            106. +
            107. + getThrowsDocBlockLinks +
            108. +
            109. + getTraits + - Get a list of trait entities of the current class
            110. +
            111. + getTraitsNames + - Get a list of class traits names
            112. +
            113. + hasConstant + - Check if a constant exists in a class
            114. +
            115. + hasDescriptionLinks + - Checking if an entity has links in its description
            116. +
            117. + hasExamples + - Checking if an entity has `example` docBlock
            118. +
            119. + hasMethod + - Check if a method exists in a class
            120. +
            121. + hasParentClass + - Check if a certain parent class exists in a chain of parent classes
            122. +
            123. + hasProperty + - Check if a property exists in a class
            124. +
            125. + hasThrows + - Checking if an entity has `throws` docBlock
            126. +
            127. + hasTraits + - Check if the class contains traits
            128. +
            129. + implementsInterface + - Check if a class implements an interface
            130. +
            131. + isAbstract + - Check that an entity is abstract
            132. +
            133. + isApi + - Checking if an entity has `api` docBlock
            134. +
            135. + isClass + - Check if an entity is a Class
            136. +
            137. + isClassLoad +
            138. +
            139. + isDeprecated + - Checking if an entity has `deprecated` docBlock
            140. +
            141. + isDocumentCreationAllowed +
            142. +
            143. + isEntityCacheOutdated + - Checking if the entity cache is out of date
            144. +
            145. + isEntityDataCacheOutdated +
            146. +
            147. + isEntityDataCanBeLoaded +
            148. +
            149. + isEntityFileCanBeLoad + - Checking if entity data can be retrieved
            150. +
            151. + isEntityNameValid + - Check if the name is a valid name for ClassLikeEntity
            152. +
            153. + isEnum + - Check if an entity is an Enum
            154. +
            155. + isExternalLibraryEntity + - Check if a given entity is an entity from a third party library (connected via composer)
            156. +
            157. + isInGit + - Checking if class file is in git repository
            158. +
            159. + isInstantiable + - Check that an entity is instantiable
            160. +
            161. + isInterface + - Check if an entity is an Interface
            162. +
            163. + isInternal + - Checking if an entity has `internal` docBlock
            164. +
            165. + isSubclassOf + - Whether the given class is a subclass of the specified class
            166. +
            167. + isTrait + - Check if an entity is a Trait
            168. +
            169. + normalizeClassName + - Bring the class name to the standard format used in the system
            170. +
            171. + reloadEntityDependenciesCache + - Update entity dependency cache
            172. +
            173. + removeEntityValueFromCache +
            174. +
            175. + removeNotUsedEntityDataCache +
            176. +
            177. + setCustomAst +
            178. +
            + + + + + + + +

            Method details:

            + +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection $entitiesCollection, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper $composerHelper, \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper $phpParserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $className, string|null $relativeFileName); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $configuration\BumbleDocGen\Core\Configuration\Configuration-
            $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
            $entitiesCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection-
            $parserHelper\BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper-
            $composerHelper\BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper-
            $phpParserHelper\BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper-
            $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
            $logger\Psr\Log\LoggerInterface-
            $classNamestring-
            $relativeFileNamestring | null-
            + + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function addPluginData(string $pluginKey, mixed $data): void; +``` + +
            Add information to aт entity object
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $pluginKeystring-
            $datamixed-
            + +Return value: void + + +
            +
            +
            + +
              +
            • # + cursorToDocAttributeLinkFragment + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $cursorstring-
            $isForDocumentbool-
            + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getAbsoluteFileName(): null|string; +``` + +
            Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            + +Parameters: not specified + +Return value: null | string + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getAst(): \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_; +``` + +
            Get AST for this entity
            + +Parameters: not specified + +Return value: \PhpParser\Node\Stmt\Class_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function getCacheKey(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
            +
            +
            + +
              +
            • # + getCachedEntityDependencies + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCachedEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstant(string $constantName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; +``` + +
            Get the method entity by its name
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $constantNamestringThe name of the constant whose entity you want to get
            $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
            + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection; +``` + +
            Get a collection of constant entities
            + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntitiesCollection + + +Throws: + + + +See: + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantValue(string $constantName): string|array|int|bool|null|float; +``` + +
            Get the compiled value of a constant
            + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $constantNamestringThe name of the constant for which you need to get the value
            + +Return value: string | array | int | bool | null | float + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstants(): array; +``` + +
            Get all constants that are available according to the configuration as an array
            + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
            +
            +
            + +
              +
            • # + getConstantsData + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
            Get a list of all constants and classes where they are implemented
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $onlyFromCurrentClassAndTraitsboolGet data only for constants from the current class
            $flagsintGet data only for constants corresponding to the visibility modifiers passed in this value
            + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getConstantsValues(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
            Get class constant compiled values according to filters
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $onlyFromCurrentClassAndTraitsboolGet values only for constants from the current class
            $flagsintGet values only for constants corresponding to the visibility modifiers passed in this value
            + +Return value: array + + +Throws: + + +
            +
            +
            + +
              +
            • # + getCurrentRootEntity + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getCurrentRootEntity(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + + + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDescription(): string; +``` + +
            Get entity description
            + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDescriptionLinks(): array; +``` + +
            Get parsed links from description and doc blocks `see` and `link`
            + +Parameters: not specified + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; +``` + +
            Get DocBlock for current entity
            + +Parameters: not specified + +Return value: \phpDocumentor\Reflection\DocBlock + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocComment(): string; +``` + +
            Get the doc comment of an entity
            + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + +
              +
            • # + getDocCommentEntity + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
            Link to an entity where docBlock is implemented for this entity
            + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocCommentLine(): null|int; +``` + +
            Get the code line number where the docBlock of the current entity begins
            + +Parameters: not specified + +Return value: null | int + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getDocNote(): string; +``` + +
            Get the note annotation value
            + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getEndLine(): int; +``` + +
            Get the line number of the end of a class code in a file
            + +Parameters: not specified + +Return value: int + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getExamples(): array; +``` + +
            Get parsed examples from `examples` doc block
            + +Parameters: not specified + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getFileContent(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + +
              +
            • # + getFileSourceLink + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getFileSourceLink(bool $withLine = true): null|string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $withLinebool-
            + +Return value: null | string + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getFirstExample(): string; +``` + +
            Get first example from `examples` doc block
            + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
            Get the class like entity in which the current entity was implemented
            + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
            +
            +
            + + + +```php +public function getInterfaceNames(): array; +``` + +
            Get a list of class interface names
            + +Parameters: not specified + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getInterfacesEntities(): array; +``` + +
            Get a list of interface entities that the current class implements
            + +Parameters: not specified + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethod(string $methodName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; +``` + +
            Get the method entity by its name
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $methodNamestringThe name of the method whose entity you want to get
            $unsafeboolCheck all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter())
            + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethodEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection; +``` + +
            Get a collection of method entities
            + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntitiesCollection + + +Throws: + + + +See: + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethods(): array; +``` + +
            Get all methods that are available according to the configuration as an array
            + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
            +
            +
            + +
              +
            • # + getMethodsData + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getMethodsData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
            Get a list of all methods and classes where they are implemented
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $onlyFromCurrentClassAndTraitsboolGet data only for methods from the current class
            $flagsintGet data only for methods corresponding to the visibility modifiers passed in this value
            + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +public function getModifiersString(): string; +``` + +
            Get entity modifiers as a string
            + +Parameters: not specified + +Return value: string + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getName(): string; +``` + +
            Full name of the entity
            + +Parameters: not specified + +Return value: string + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getNamespaceName(): string; +``` + +
            Get the entity namespace name
            + +Parameters: not specified + +Return value: string + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getObjectId(): string; +``` + +
            Get entity unique ID
            + +Parameters: not specified + +Return value: string + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClass(): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +``` + +
            Get the entity of the parent class if it exists
            + +Parameters: not specified + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassEntities(): array; +``` + +
            Get a list of parent class entities
            + +Parameters: not specified + +Return value: array + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassName(): null|string; +``` + +
            Get the name of the parent class entity if it exists
            + +Parameters: not specified + +Return value: null | string + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getParentClassNames(): array; +``` + +
            Get a list of entity names of parent classes
            + +Parameters: not specified + +Return value: array + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPluginData(string $pluginKey): mixed; +``` + +
            Get additional information added using the plugin
            + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $pluginKeystring-
            + +Return value: mixed + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getProperties(): array; +``` + +
            Get all properties that are available according to the configuration as an array
            + +Parameters: not specified + +Return value: array + + +Throws: + + + +See: + +
            +
            +
            + +
              +
            • # + getPropertiesData + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertiesData(bool $onlyFromCurrentClassAndTraits = false, int $flags = \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity::VISIBILITY_MODIFIERS_FLAG_ANY): array; +``` + +
            Get a list of all properties and classes where they are implemented
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $onlyFromCurrentClassAndTraitsboolGet data only for properties from the current class
            $flagsintGet data only for properties corresponding to the visibility modifiers passed in this value
            + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getProperty(string $propertyName, bool $unsafe = false): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; +``` + +
            Get the property entity by its name
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $propertyNamestringThe name of the property whose entity you want to get
            $unsafeboolCheck all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter())
            + +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertyDefaultValue(string $propertyName): string|array|int|bool|null|float; +``` + +
            Get the compiled value of a property
            + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $propertyNamestringThe name of the property for which you need to get the value
            + +Return value: string | array | int | bool | null | float + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getPropertyEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection; +``` + +
            Get a collection of property entities
            + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntitiesCollection + + +Throws: + + + +See: + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getRelativeFileName(): null|string; +``` + +
            File name relative to project_root configuration parameter
            + +Parameters: not specified + +Return value: null | string + + + +See: + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +``` + +
            Get the collection of root entities to which this entity belongs
            + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getShortName(): string; +``` + +
            Short name of the entity
            + +Parameters: not specified + +Return value: string + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getStartLine(): int; +``` + +
            Get the line number of the start of a class code in a file
            + +Parameters: not specified + +Return value: int + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrows(): array; +``` + +
            Get parsed throws from `throws` doc block
            + +Parameters: not specified + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function getThrowsDocBlockLinks(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getTraits(): array; +``` + +
            Get a list of trait entities of the current class
            + +Parameters: not specified + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function getTraitsNames(): array; +``` + +
            Get a list of class traits names
            + +Parameters: not specified + +Return value: array + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasConstant(string $constantName, bool $unsafe = false): bool; +``` + +
            Check if a constant exists in a class
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $constantNamestringThe name of the class whose entity you want to check
            $unsafeboolCheck all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter())
            + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasDescriptionLinks(): bool; +``` + +
            Checking if an entity has links in its description
            + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasExamples(): bool; +``` + +
            Checking if an entity has `example` docBlock
            + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasMethod(string $methodName, bool $unsafe = false): bool; +``` + +
            Check if a method exists in a class
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $methodNamestringThe name of the method whose entity you want to check
            $unsafeboolCheck all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter())
            + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasParentClass(string $parentClassName): bool; +``` + +
            Check if a certain parent class exists in a chain of parent classes
            + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $parentClassNamestringSearched parent class
            + +Return value: bool + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasProperty(string $propertyName, bool $unsafe = false): bool; +``` + +
            Check if a property exists in a class
            + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $propertyNamestringThe name of the property whose entity you want to check
            $unsafeboolCheck all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter())
            + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function hasThrows(): bool; +``` + +
            Checking if an entity has `throws` docBlock
            + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function hasTraits(): bool; +``` + +
            Check if the class contains traits
            + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function implementsInterface(string $interfaceName): bool; +``` + +
            Check if a class implements an interface
            + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $interfaceNamestringName of the required interface in the interface chain
            + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isAbstract(): bool; +``` + +
            Check that an entity is abstract
            + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isApi(): bool; +``` + +
            Checking if an entity has `api` docBlock
            + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isClass(): bool; +``` + +
            Check if an entity is a Class
            + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isClassLoad(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isDeprecated(): bool; +``` + +
            Checking if an entity has `deprecated` docBlock
            + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + +
              +
            • # + isDocumentCreationAllowed + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isDocumentCreationAllowed(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + +
              +
            • # + isEntityCacheOutdated + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityCacheOutdated(): bool; +``` + +
            Checking if the entity cache is out of date
            + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + +
              +
            • # + isEntityDataCacheOutdated + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function isEntityDataCacheOutdated(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isEntityDataCanBeLoaded(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isEntityFileCanBeLoad(): bool; +``` + +
            Checking if entity data can be retrieved
            + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public static function isEntityNameValid(string $entityName): bool; +``` + +
            Check if the name is a valid name for ClassLikeEntity
            + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $entityNamestring-
            + +Return value: bool + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isEnum(): bool; +``` + +
            Check if an entity is an Enum
            + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + +
              +
            • # + isExternalLibraryEntity + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isExternalLibraryEntity(): bool; +``` + +
            Check if a given entity is an entity from a third party library (connected via composer)
            + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInGit(): bool; +``` + +
            Checking if class file is in git repository
            + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInstantiable(): bool; +``` + +
            Check that an entity is instantiable
            + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function isInterface(): bool; +``` + +
            Check if an entity is an Interface
            + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function isInternal(): bool; +``` + +
            Checking if an entity has `internal` docBlock
            + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +public function isSubclassOf(string $className): bool; +``` + +
            Whether the given class is a subclass of the specified class
            + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $classNamestring-
            + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +public function isTrait(): bool; +``` + +
            Check if an entity is a Trait
            + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public static function normalizeClassName(string $name): string; +``` + +
            Bring the class name to the standard format used in the system
            + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $namestring-
            + +Return value: string + + +
            +
            +
            + +
              +
            • # + reloadEntityDependenciesCache + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity + +public function reloadEntityDependenciesCache(): array; +``` + +
            Update entity dependency cache
            + +Parameters: not specified + +Return value: array + + +
            +
            +
            + +
              +
            • # + removeEntityValueFromCache + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $keystring-
            + +Return value: void + + +
            +
            +
            + +
              +
            • # + removeNotUsedEntityDataCache + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeNotUsedEntityDataCache(): void; +``` + + + +Parameters: not specified + +Return value: void + + +Throws: + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity + +public function setCustomAst(\PhpParser\Node\Stmt\Trait_|\PhpParser\Node\Stmt\Enum_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Class_|null $customAst): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $customAst\PhpParser\Node\Stmt\Trait_ | \PhpParser\Node\Stmt\Enum_ | \PhpParser\Node\Stmt\Interface_ | \PhpParser\Node\Stmt\Class_ | null-
            + +Return value: void + + +
            +
            diff --git a/docs/tech/02_parser/reflectionApi/php/phpClassConstantReflectionApi.md b/docs/tech/02_parser/reflectionApi/php/phpClassConstantReflectionApi.md new file mode 100644 index 00000000..b90b25ed --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/phpClassConstantReflectionApi.md @@ -0,0 +1,50 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP class constant reflection API
            + +

            PHP class constant reflection API

            + +Class constant reflection entity class: ClassConstantEntity. + +**Example of creating class constant reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); + +$constantReflection = $classReflection->getConstant('constantName'); +``` + +**Class constant reflection API methods:** + +- [getAbsoluteFileName()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetabsolutefilename): Returns the absolute path to a file if it can be retrieved and if the file is in the project directory +- [getAst()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetast): Get AST for this entity +- [getDescription()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetdescription): Get entity description +- [getDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetdescriptionlinks): Get parsed links from description and doc blocks `see` and `link` +- [getDocComment()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetdoccomment): Get the doc comment of an entity +- [getDocCommentLine()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetdoccommentline): Get the code line number where the docBlock of the current entity begins +- [getDocNote()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetdocnote): Get the note annotation value +- [getEndLine()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetendline): Get the line number of the end of a constant's code in a file +- [getExamples()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetexamples): Get parsed examples from `examples` doc block +- [getFirstExample()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetfirstexample): Get first example from `examples` doc block +- [getImplementingClass()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetimplementingclass): Get the class like entity in which the current entity was implemented +- [getNamespaceName()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetnamespacename): Get the name of the namespace where the current class is implemented +- [getObjectId()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetobjectid): Get entity unique ID +- [getRelativeFileName()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetrelativefilename): File name relative to project_root configuration parameter +- [getRootEntityCollection()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetrootentitycollection): Get the collection of root entities to which this entity belongs +- [getStartLine()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetstartline): Get the line number of the beginning of the constant code in a file +- [getThrows()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetthrows): Get parsed throws from `throws` doc block +- [getValue()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mgetvalue): Get the compiled value of a constant +- [hasDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mhasdescriptionlinks): Checking if an entity has links in its description +- [hasExamples()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mhasexamples): Checking if an entity has `example` docBlock +- [hasThrows()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mhasthrows): Checking if an entity has `throws` docBlock +- [isApi()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#misapi): Checking if an entity has `api` docBlock +- [isDeprecated()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#misdeprecated): Checking if an entity has `deprecated` docBlock +- [isEntityFileCanBeLoad()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#misentityfilecanbeload): Checking if entity data can be retrieved +- [isInternal()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#misinternal): Checking if an entity has `internal` docBlock +- [isPrivate()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#misprivate): Check if a constant is a private constant +- [isProtected()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#misprotected): Check if a constant is a protected constant +- [isPublic()](/docs/tech/02_parser/reflectionApi/php/classes/ClassConstantEntity.md#mispublic): Check if a constant is a public constant + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/02_parser/reflectionApi/php/phpClassMethodReflectionApi.md b/docs/tech/02_parser/reflectionApi/php/phpClassMethodReflectionApi.md new file mode 100644 index 00000000..a972c962 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/phpClassMethodReflectionApi.md @@ -0,0 +1,65 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP class method reflection API
            + +

            PHP class method reflection API

            + +Method reflection entity class: MethodEntity. + +**Example of creating class method reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); + +$methodReflection = $classReflection->getMethod('methodName'); +``` + +**Class method reflection API methods:** + +- [getAbsoluteFileName()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetabsolutefilename): Returns the absolute path to a file if it can be retrieved and if the file is in the project directory +- [getAst()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetast): Get AST for this entity +- [getBodyCode()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetbodycode): Get the code for this method +- [getDescription()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetdescription): Get entity description +- [getDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetdescriptionlinks): Get parsed links from description and doc blocks `see` and `link` +- [getDocComment()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetdoccomment): Get the doc comment of an entity +- [getDocNote()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetdocnote): Get the note annotation value +- [getEndLine()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetendline): Get the line number of the end of a method's code in a file +- [getExamples()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetexamples): Get parsed examples from `examples` doc block +- [getFirstExample()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetfirstexample): Get first example from `examples` doc block +- [getFirstReturnValue()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetfirstreturnvalue): Get the compiled first return value of a method (if possible) +- [getImplementingClass()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetimplementingclass): Get the class like entity in which the current entity was implemented +- [getImplementingClassName()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetimplementingclassname): Get the name of the class in which this method is implemented +- [getModifiersString()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetmodifiersstring): Get a text representation of method modifiers +- [getName()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetname): Full name of the entity +- [getNamespaceName()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetnamespacename): Namespace of the class that contains this method +- [getObjectId()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetobjectid): Get entity unique ID +- [getParameters()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetparameters): Get a list of method parameters +- [getParametersString()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetparametersstring): Get a list of method parameters as a string +- [getParentMethod()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetparentmethod): Get the parent method for this method +- [getRelativeFileName()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetrelativefilename): File name relative to project_root configuration parameter +- [getReturnType()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetreturntype): Get the return type of method +- [getRootEntityCollection()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetrootentitycollection): Get the collection of root entities to which this entity belongs +- [getShortName()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetshortname): Short name of the entity +- [getSignature()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetsignature): Get the method signature as a string +- [getStartColumn()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetstartcolumn): Get the column number of the beginning of the method code in a file +- [getStartLine()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetstartline): Get the line number of the beginning of the entity code in a file +- [getThrows()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mgetthrows): Get parsed throws from `throws` doc block +- [hasDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mhasdescriptionlinks): Checking if an entity has links in its description +- [hasExamples()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mhasexamples): Checking if an entity has `example` docBlock +- [hasThrows()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mhasthrows): Checking if an entity has `throws` docBlock +- [isApi()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misapi): Checking if an entity has `api` docBlock +- [isConstructor()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misconstructor): Checking that a method is a constructor +- [isDeprecated()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misdeprecated): Checking if an entity has `deprecated` docBlock +- [isDynamic()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misdynamic): Check if a method is a dynamic method, that is, implementable using __call or __callStatic +- [isEntityFileCanBeLoad()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misentityfilecanbeload): Checking if entity data can be retrieved +- [isImplementedInParentClass()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misimplementedinparentclass): Check if this method is implemented in the parent class +- [isInitialization()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misinitialization): Check if a method is an initialization method +- [isInternal()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misinternal): Checking if an entity has `internal` docBlock +- [isPrivate()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misprivate): Check if a method is a private method +- [isProtected()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misprotected): Check if a method is a protected method +- [isPublic()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#mispublic): Check if a method is a public method +- [isStatic()](/docs/tech/02_parser/reflectionApi/php/classes/MethodEntity.md#misstatic): Check if this method is static + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/02_parser/reflectionApi/php/phpClassPropertyReflectionApi.md b/docs/tech/02_parser/reflectionApi/php/phpClassPropertyReflectionApi.md new file mode 100644 index 00000000..a0dba3d1 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/phpClassPropertyReflectionApi.md @@ -0,0 +1,56 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP class property reflection API
            + +

            PHP class property reflection API

            + +Property reflection entity class: PropertyEntity. + +**Example of creating class property reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); + +$propertyReflection = $classReflection->getProperty('propertyName'); +``` + +**Class property reflection API methods:** + +- [getAbsoluteFileName()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetabsolutefilename): Returns the absolute path to a file if it can be retrieved and if the file is in the project directory +- [getAst()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetast): Get AST for this entity +- [getDefaultValue()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetdefaultvalue): Get the compiled default value of a property +- [getDescription()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetdescription): Get entity description +- [getDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetdescriptionlinks): Get parsed links from description and doc blocks `see` and `link` +- [getDocComment()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetdoccomment): Get the doc comment of an entity +- [getDocCommentLine()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetdoccommentline): Get the code line number where the docBlock of the current entity begins +- [getDocNote()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetdocnote): Get the note annotation value +- [getEndLine()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetendline): Get the line number of the end of a property's code in a file +- [getExamples()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetexamples): Get parsed examples from `examples` doc block +- [getFirstExample()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetfirstexample): Get first example from `examples` doc block +- [getImplementingClass()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetimplementingclass): Get the class like entity in which the current entity was implemented +- [getImplementingClassName()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetimplementingclassname): Get the name of the class in which this property is implemented +- [getModifiersString()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetmodifiersstring): Get a text representation of property modifiers +- [getName()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetname): Full name of the entity +- [getNamespaceName()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetnamespacename): Namespace of the class that contains this property +- [getObjectId()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetobjectid): Get entity unique ID +- [getRelativeFileName()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetrelativefilename): File name relative to project_root configuration parameter +- [getRootEntityCollection()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetrootentitycollection): Get the collection of root entities to which this entity belongs +- [getShortName()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetshortname): Short name of the entity +- [getStartLine()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetstartline): Get the line number of the beginning of the entity code in a file +- [getThrows()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgetthrows): Get parsed throws from `throws` doc block +- [getType()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mgettype): Get current property type +- [hasDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mhasdescriptionlinks): Checking if an entity has links in its description +- [hasExamples()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mhasexamples): Checking if an entity has `example` docBlock +- [hasThrows()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mhasthrows): Checking if an entity has `throws` docBlock +- [isApi()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#misapi): Checking if an entity has `api` docBlock +- [isDeprecated()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#misdeprecated): Checking if an entity has `deprecated` docBlock +- [isEntityFileCanBeLoad()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#misentityfilecanbeload): Checking if entity data can be retrieved +- [isImplementedInParentClass()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#misimplementedinparentclass): Check if this property is implemented in the parent class +- [isInternal()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#misinternal): Checking if an entity has `internal` docBlock +- [isPrivate()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#misprivate): Check if a private is a public private +- [isProtected()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#misprotected): Check if a protected is a public protected +- [isPublic()](/docs/tech/02_parser/reflectionApi/php/classes/PropertyEntity.md#mispublic): Check if a property is a public property + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/02_parser/reflectionApi/php/phpClassReflectionApi.md b/docs/tech/02_parser/reflectionApi/php/phpClassReflectionApi.md new file mode 100644 index 00000000..77561997 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/phpClassReflectionApi.md @@ -0,0 +1,89 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP class reflection API
            + +

            PHP class reflection API

            + +PHP class reflection ClassEntity inherits from ClassLikeEntity. + +**Source class formats:** + +1) `class ` +2) `abstract class ` +3) `final class ` + +**Example of creating class reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); // or get() +``` + +**Class reflection API methods:** + +- [getAbsoluteFileName()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetabsolutefilename): Returns the absolute path to a file if it can be retrieved and if the file is in the project directory +- [getAst()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetast): Get AST for this entity +- [getConstant()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetconstant): Get the method entity by its name +- [getConstantEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetconstantentitiescollection): Get a collection of constant entities +- [getConstantValue()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetconstantvalue): Get the compiled value of a constant +- [getConstants()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetconstants): Get all constants that are available according to the configuration as an array +- [getConstantsValues()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetconstantsvalues): Get class constant compiled values according to filters +- [getDescription()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetdescription): Get entity description +- [getDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetdescriptionlinks): Get parsed links from description and doc blocks `see` and `link` +- [getDocComment()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetdoccomment): Get the doc comment of an entity +- [getDocCommentLine()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetdoccommentline): Get the code line number where the docBlock of the current entity begins +- [getDocNote()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetdocnote): Get the note annotation value +- [getEndLine()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetendline): Get the line number of the end of a class code in a file +- [getExamples()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetexamples): Get parsed examples from `examples` doc block +- [getFirstExample()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetfirstexample): Get first example from `examples` doc block +- [getImplementingClass()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetimplementingclass): Get the class like entity in which the current entity was implemented +- [getInterfaceNames()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetinterfacenames): Get a list of class interface names +- [getInterfacesEntities()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetinterfacesentities): Get a list of interface entities that the current class implements +- [getMethod()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetmethod): Get the method entity by its name +- [getMethodEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetmethodentitiescollection): Get a collection of method entities +- [getMethods()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetmethods): Get all methods that are available according to the configuration as an array +- [getName()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetname): Full name of the entity +- [getNamespaceName()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetnamespacename): Get the entity namespace name +- [getObjectId()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetobjectid): Get entity unique ID +- [getParentClass()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetparentclass): Get the entity of the parent class if it exists +- [getParentClassEntities()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetparentclassentities): Get a list of parent class entities +- [getParentClassName()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetparentclassname): Get the name of the parent class entity if it exists +- [getParentClassNames()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetparentclassnames): Get a list of entity names of parent classes +- [getPluginData()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetplugindata): Get additional information added using the plugin +- [getProperties()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetproperties): Get all properties that are available according to the configuration as an array +- [getProperty()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetproperty): Get the property entity by its name +- [getPropertyDefaultValue()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetpropertydefaultvalue): Get the compiled value of a property +- [getPropertyEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetpropertyentitiescollection): Get a collection of property entities +- [getRelativeFileName()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetrelativefilename): File name relative to project_root configuration parameter +- [getRootEntityCollection()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetrootentitycollection): Get the collection of root entities to which this entity belongs +- [getShortName()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetshortname): Short name of the entity +- [getStartLine()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetstartline): Get the line number of the start of a class code in a file +- [getThrows()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgetthrows): Get parsed throws from `throws` doc block +- [getTraits()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgettraits): Get a list of trait entities of the current class +- [getTraitsNames()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mgettraitsnames): Get a list of class traits names +- [hasConstant()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mhasconstant): Check if a constant exists in a class +- [hasDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mhasdescriptionlinks): Checking if an entity has links in its description +- [hasExamples()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mhasexamples): Checking if an entity has `example` docBlock +- [hasMethod()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mhasmethod): Check if a method exists in a class +- [hasParentClass()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mhasparentclass): Check if a certain parent class exists in a chain of parent classes +- [hasProperty()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mhasproperty): Check if a property exists in a class +- [hasThrows()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mhasthrows): Checking if an entity has `throws` docBlock +- [hasTraits()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mhastraits): Check if the class contains traits +- [implementsInterface()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mimplementsinterface): Check if a class implements an interface +- [isAbstract()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#misabstract): Check that an entity is abstract +- [isApi()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#misapi): Checking if an entity has `api` docBlock +- [isAttribute()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#misattribute): Check if a class is an attribute +- [isClass()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#misclass): Check if an entity is a Class +- [isDeprecated()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#misdeprecated): Checking if an entity has `deprecated` docBlock +- [isEntityFileCanBeLoad()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#misentityfilecanbeload): Checking if entity data can be retrieved +- [isEnum()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#misenum): Check if an entity is an Enum +- [isInstantiable()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#misinstantiable): Check that an entity is instantiable +- [isInterface()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#misinterface): Check if an entity is an Interface +- [isInternal()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#misinternal): Checking if an entity has `internal` docBlock +- [isSubclassOf()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#missubclassof): Whether the given class is a subclass of the specified class +- [isTrait()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mistrait): Check if an entity is a Trait +- [normalizeClassName()](/docs/tech/02_parser/reflectionApi/php/classes/ClassEntity.md#mnormalizeclassname): Bring the class name to the standard format used in the system + + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/02_parser/reflectionApi/php/phpEntitiesCollection.md b/docs/tech/02_parser/reflectionApi/php/phpEntitiesCollection.md new file mode 100644 index 00000000..8d8df162 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/phpEntitiesCollection.md @@ -0,0 +1,28 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP entities collection
            + +

            PHP entities collection

            + +**PHP entities collection API methods:** + +- [add()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#madd): Add an entity to the collection +- [filterByInterfaces()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mfilterbyinterfaces): Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity) +- [filterByNameRegularExpression()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mfilterbynameregularexpression): Get a copy of the current collection with only entities whose names match the regular expression +- [filterByParentClassNames()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mfilterbyparentclassnames): Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity) +- [filterByPaths()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mfilterbypaths): Get a copy of the current collection only with entities filtered by file paths (from project_root) +- [findEntity()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mfindentity): Find an entity in a collection +- [get()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mget): Get an entity from a collection (only previously added) +- [getEntityCollectionName()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mgetentitycollectionname): Get collection name +- [getLoadedOrCreateNew()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mgetloadedorcreatenew): Get an entity from the collection or create a new one if it has not yet been added +- [getOnlyAbstractClasses()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mgetonlyabstractclasses): Get a copy of the current collection with only abstract classes +- [getOnlyInstantiable()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mgetonlyinstantiable): Get a copy of the current collection with only instantiable entities +- [getOnlyInterfaces()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mgetonlyinterfaces): Get a copy of the current collection with only interfaces +- [getOnlyTraits()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mgetonlytraits): Get a copy of the current collection with only traits +- [has()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mhas): Check if an entity has been added to the collection +- [isEmpty()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#misempty): Check if the collection is empty or not +- [loadEntities()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mloadentities): Load entities into a collection +- [remove()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mremove): Remove an entity from a collection +- [toArray()](/docs/tech/02_parser/reflectionApi/php/classes/PhpEntitiesCollection.md#mtoarray): Convert collection to array + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/02_parser/reflectionApi/php/phpEnumReflectionApi.md b/docs/tech/02_parser/reflectionApi/php/phpEnumReflectionApi.md new file mode 100644 index 00000000..6084c478 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/phpEnumReflectionApi.md @@ -0,0 +1,88 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP enum reflection API
            + +

            PHP enum reflection API

            + +PHP enum reflection EnumEntity inherits from ClassLikeEntity. + +**Source enum formats:** + +1) `enum ` + +**Example of creating enum reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$enumReflection = $entitiesCollection->getLoadedOrCreateNew('SomeEnumName'); // or get() +``` + +**Enum reflection API methods:** + +- [getAbsoluteFileName()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetabsolutefilename): Returns the absolute path to a file if it can be retrieved and if the file is in the project directory +- [getAst()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetast): Get AST for this entity +- [getCasesNames()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetcasesnames): Get enum cases names +- [getConstant()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetconstant): Get the method entity by its name +- [getConstantEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetconstantentitiescollection): Get a collection of constant entities +- [getConstantValue()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetconstantvalue): Get the compiled value of a constant +- [getConstants()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetconstants): Get all constants that are available according to the configuration as an array +- [getConstantsValues()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetconstantsvalues): Get class constant compiled values according to filters +- [getDescription()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetdescription): Get entity description +- [getDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetdescriptionlinks): Get parsed links from description and doc blocks `see` and `link` +- [getDocComment()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetdoccomment): Get the doc comment of an entity +- [getDocCommentLine()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetdoccommentline): Get the code line number where the docBlock of the current entity begins +- [getDocNote()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetdocnote): Get the note annotation value +- [getEndLine()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetendline): Get the line number of the end of a class code in a file +- [getEnumCaseValue()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetenumcasevalue): Get enum case value +- [getEnumCases()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetenumcases): Get enum cases values +- [getExamples()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetexamples): Get parsed examples from `examples` doc block +- [getFirstExample()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetfirstexample): Get first example from `examples` doc block +- [getImplementingClass()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetimplementingclass): Get the class like entity in which the current entity was implemented +- [getInterfaceNames()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetinterfacenames): Get a list of class interface names +- [getInterfacesEntities()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetinterfacesentities): Get a list of interface entities that the current class implements +- [getMethod()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetmethod): Get the method entity by its name +- [getMethodEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetmethodentitiescollection): Get a collection of method entities +- [getMethods()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetmethods): Get all methods that are available according to the configuration as an array +- [getName()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetname): Full name of the entity +- [getNamespaceName()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetnamespacename): Get the entity namespace name +- [getObjectId()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetobjectid): Get entity unique ID +- [getParentClass()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetparentclass): Get the entity of the parent class if it exists +- [getParentClassEntities()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetparentclassentities): Get a list of parent class entities +- [getParentClassName()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetparentclassname): Get the name of the parent class entity if it exists +- [getParentClassNames()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetparentclassnames): Get a list of entity names of parent classes +- [getPluginData()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetplugindata): Get additional information added using the plugin +- [getProperties()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetproperties): Get all properties that are available according to the configuration as an array +- [getProperty()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetproperty): Get the property entity by its name +- [getPropertyDefaultValue()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetpropertydefaultvalue): Get the compiled value of a property +- [getPropertyEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetpropertyentitiescollection): Get a collection of property entities +- [getRelativeFileName()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetrelativefilename): File name relative to project_root configuration parameter +- [getRootEntityCollection()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetrootentitycollection): Get the collection of root entities to which this entity belongs +- [getShortName()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetshortname): Short name of the entity +- [getStartLine()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetstartline): Get the line number of the start of a class code in a file +- [getThrows()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgetthrows): Get parsed throws from `throws` doc block +- [getTraits()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgettraits): Get a list of trait entities of the current class +- [getTraitsNames()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mgettraitsnames): Get a list of class traits names +- [hasConstant()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mhasconstant): Check if a constant exists in a class +- [hasDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mhasdescriptionlinks): Checking if an entity has links in its description +- [hasExamples()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mhasexamples): Checking if an entity has `example` docBlock +- [hasMethod()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mhasmethod): Check if a method exists in a class +- [hasParentClass()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mhasparentclass): Check if a certain parent class exists in a chain of parent classes +- [hasProperty()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mhasproperty): Check if a property exists in a class +- [hasThrows()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mhasthrows): Checking if an entity has `throws` docBlock +- [hasTraits()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mhastraits): Check if the class contains traits +- [implementsInterface()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mimplementsinterface): Check if a class implements an interface +- [isAbstract()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#misabstract): Check that an entity is abstract +- [isApi()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#misapi): Checking if an entity has `api` docBlock +- [isClass()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#misclass): Check if an entity is a Class +- [isDeprecated()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#misdeprecated): Checking if an entity has `deprecated` docBlock +- [isEntityFileCanBeLoad()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#misentityfilecanbeload): Checking if entity data can be retrieved +- [isEnum()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#misenum): Check if an entity is an Enum +- [isInstantiable()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#misinstantiable): Check that an entity is instantiable +- [isInterface()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#misinterface): Check if an entity is an Interface +- [isInternal()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#misinternal): Checking if an entity has `internal` docBlock +- [isSubclassOf()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#missubclassof): Whether the given class is a subclass of the specified class +- [isTrait()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mistrait): Check if an entity is a Trait +- [normalizeClassName()](/docs/tech/02_parser/reflectionApi/php/classes/EnumEntity.md#mnormalizeclassname): Bring the class name to the standard format used in the system + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/02_parser/reflectionApi/php/phpInterfaceReflectionApi.md b/docs/tech/02_parser/reflectionApi/php/phpInterfaceReflectionApi.md new file mode 100644 index 00000000..8f6cd7f7 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/phpInterfaceReflectionApi.md @@ -0,0 +1,85 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP interface reflection API
            + +

            PHP interface reflection API

            + +PHP interface reflection InterfaceEntity inherits from ClassLikeEntity. + +**Source interface formats:** + +1) `interface ` + +**Example of creating interface reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$interfaceReflection = $entitiesCollection->getLoadedOrCreateNew('SomeInterfaceName'); // or get() +``` + +**Interface reflection API methods:** + +- [getAbsoluteFileName()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetabsolutefilename): Returns the absolute path to a file if it can be retrieved and if the file is in the project directory +- [getAst()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetast): Get AST for this entity +- [getConstant()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetconstant): Get the method entity by its name +- [getConstantEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetconstantentitiescollection): Get a collection of constant entities +- [getConstantValue()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetconstantvalue): Get the compiled value of a constant +- [getConstants()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetconstants): Get all constants that are available according to the configuration as an array +- [getConstantsValues()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetconstantsvalues): Get class constant compiled values according to filters +- [getDescription()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetdescription): Get entity description +- [getDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetdescriptionlinks): Get parsed links from description and doc blocks `see` and `link` +- [getDocComment()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetdoccomment): Get the doc comment of an entity +- [getDocCommentLine()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetdoccommentline): Get the code line number where the docBlock of the current entity begins +- [getDocNote()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetdocnote): Get the note annotation value +- [getEndLine()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetendline): Get the line number of the end of a class code in a file +- [getExamples()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetexamples): Get parsed examples from `examples` doc block +- [getFirstExample()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetfirstexample): Get first example from `examples` doc block +- [getImplementingClass()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetimplementingclass): Get the class like entity in which the current entity was implemented +- [getInterfaceNames()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetinterfacenames): Get a list of class interface names +- [getInterfacesEntities()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetinterfacesentities): Get a list of interface entities that the current class implements +- [getMethod()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetmethod): Get the method entity by its name +- [getMethodEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetmethodentitiescollection): Get a collection of method entities +- [getMethods()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetmethods): Get all methods that are available according to the configuration as an array +- [getName()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetname): Full name of the entity +- [getNamespaceName()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetnamespacename): Get the entity namespace name +- [getObjectId()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetobjectid): Get entity unique ID +- [getParentClass()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetparentclass): Get the entity of the parent class if it exists +- [getParentClassEntities()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetparentclassentities): Get a list of parent class entities +- [getParentClassName()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetparentclassname): Get the name of the parent class entity if it exists +- [getParentClassNames()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetparentclassnames): Get a list of entity names of parent classes +- [getPluginData()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetplugindata): Get additional information added using the plugin +- [getProperties()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetproperties): Get all properties that are available according to the configuration as an array +- [getProperty()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetproperty): Get the property entity by its name +- [getPropertyDefaultValue()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetpropertydefaultvalue): Get the compiled value of a property +- [getPropertyEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetpropertyentitiescollection): Get a collection of property entities +- [getRelativeFileName()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetrelativefilename): File name relative to project_root configuration parameter +- [getRootEntityCollection()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetrootentitycollection): Get the collection of root entities to which this entity belongs +- [getShortName()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetshortname): Short name of the entity +- [getStartLine()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetstartline): Get the line number of the start of a class code in a file +- [getThrows()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgetthrows): Get parsed throws from `throws` doc block +- [getTraits()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgettraits): Get a list of trait entities of the current class +- [getTraitsNames()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mgettraitsnames): Get a list of class traits names +- [hasConstant()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mhasconstant): Check if a constant exists in a class +- [hasDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mhasdescriptionlinks): Checking if an entity has links in its description +- [hasExamples()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mhasexamples): Checking if an entity has `example` docBlock +- [hasMethod()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mhasmethod): Check if a method exists in a class +- [hasParentClass()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mhasparentclass): Check if a certain parent class exists in a chain of parent classes +- [hasProperty()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mhasproperty): Check if a property exists in a class +- [hasThrows()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mhasthrows): Checking if an entity has `throws` docBlock +- [hasTraits()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mhastraits): Check if the class contains traits +- [implementsInterface()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mimplementsinterface): Check if a class implements an interface +- [isAbstract()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#misabstract): Check that an entity is abstract +- [isApi()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#misapi): Checking if an entity has `api` docBlock +- [isClass()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#misclass): Check if an entity is a Class +- [isDeprecated()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#misdeprecated): Checking if an entity has `deprecated` docBlock +- [isEntityFileCanBeLoad()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#misentityfilecanbeload): Checking if entity data can be retrieved +- [isEnum()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#misenum): Check if an entity is an Enum +- [isInstantiable()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#misinstantiable): Check that an entity is instantiable +- [isInterface()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#misinterface): Check if an entity is an Interface +- [isInternal()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#misinternal): Checking if an entity has `internal` docBlock +- [isSubclassOf()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#missubclassof): Whether the given class is a subclass of the specified class +- [isTrait()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mistrait): Check if an entity is a Trait +- [normalizeClassName()](/docs/tech/02_parser/reflectionApi/php/classes/InterfaceEntity.md#mnormalizeclassname): Bring the class name to the standard format used in the system + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/02_parser/reflectionApi/php/phpTraitReflectionApi.md b/docs/tech/02_parser/reflectionApi/php/phpTraitReflectionApi.md new file mode 100644 index 00000000..0d06f9b9 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/phpTraitReflectionApi.md @@ -0,0 +1,85 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP / PHP trait reflection API
            + +

            PHP trait reflection API

            + +PHP trait reflection TraitEntity inherits from ClassLikeEntity. + +**Source trait formats:** + +1) `trait ` + +**Example of creating trait reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$traitReflection = $entitiesCollection->getLoadedOrCreateNew('SomeTraitName'); // or get() +``` + +**Trait reflection API methods:** + +- [getAbsoluteFileName()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetabsolutefilename): Returns the absolute path to a file if it can be retrieved and if the file is in the project directory +- [getAst()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetast): Get AST for this entity +- [getConstant()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetconstant): Get the method entity by its name +- [getConstantEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetconstantentitiescollection): Get a collection of constant entities +- [getConstantValue()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetconstantvalue): Get the compiled value of a constant +- [getConstants()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetconstants): Get all constants that are available according to the configuration as an array +- [getConstantsValues()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetconstantsvalues): Get class constant compiled values according to filters +- [getDescription()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetdescription): Get entity description +- [getDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetdescriptionlinks): Get parsed links from description and doc blocks `see` and `link` +- [getDocComment()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetdoccomment): Get the doc comment of an entity +- [getDocCommentLine()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetdoccommentline): Get the code line number where the docBlock of the current entity begins +- [getDocNote()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetdocnote): Get the note annotation value +- [getEndLine()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetendline): Get the line number of the end of a class code in a file +- [getExamples()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetexamples): Get parsed examples from `examples` doc block +- [getFirstExample()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetfirstexample): Get first example from `examples` doc block +- [getImplementingClass()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetimplementingclass): Get the class like entity in which the current entity was implemented +- [getInterfaceNames()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetinterfacenames): Get a list of class interface names +- [getInterfacesEntities()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetinterfacesentities): Get a list of interface entities that the current class implements +- [getMethod()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetmethod): Get the method entity by its name +- [getMethodEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetmethodentitiescollection): Get a collection of method entities +- [getMethods()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetmethods): Get all methods that are available according to the configuration as an array +- [getName()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetname): Full name of the entity +- [getNamespaceName()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetnamespacename): Get the entity namespace name +- [getObjectId()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetobjectid): Get entity unique ID +- [getParentClass()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetparentclass): Get the entity of the parent class if it exists +- [getParentClassEntities()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetparentclassentities): Get a list of parent class entities +- [getParentClassName()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetparentclassname): Get the name of the parent class entity if it exists +- [getParentClassNames()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetparentclassnames): Get a list of entity names of parent classes +- [getPluginData()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetplugindata): Get additional information added using the plugin +- [getProperties()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetproperties): Get all properties that are available according to the configuration as an array +- [getProperty()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetproperty): Get the property entity by its name +- [getPropertyDefaultValue()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetpropertydefaultvalue): Get the compiled value of a property +- [getPropertyEntitiesCollection()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetpropertyentitiescollection): Get a collection of property entities +- [getRelativeFileName()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetrelativefilename): File name relative to project_root configuration parameter +- [getRootEntityCollection()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetrootentitycollection): Get the collection of root entities to which this entity belongs +- [getShortName()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetshortname): Short name of the entity +- [getStartLine()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetstartline): Get the line number of the start of a class code in a file +- [getThrows()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgetthrows): Get parsed throws from `throws` doc block +- [getTraits()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgettraits): Get a list of trait entities of the current class +- [getTraitsNames()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mgettraitsnames): Get a list of class traits names +- [hasConstant()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mhasconstant): Check if a constant exists in a class +- [hasDescriptionLinks()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mhasdescriptionlinks): Checking if an entity has links in its description +- [hasExamples()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mhasexamples): Checking if an entity has `example` docBlock +- [hasMethod()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mhasmethod): Check if a method exists in a class +- [hasParentClass()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mhasparentclass): Check if a certain parent class exists in a chain of parent classes +- [hasProperty()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mhasproperty): Check if a property exists in a class +- [hasThrows()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mhasthrows): Checking if an entity has `throws` docBlock +- [hasTraits()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mhastraits): Check if the class contains traits +- [implementsInterface()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mimplementsinterface): Check if a class implements an interface +- [isAbstract()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#misabstract): Check that an entity is abstract +- [isApi()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#misapi): Checking if an entity has `api` docBlock +- [isClass()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#misclass): Check if an entity is a Class +- [isDeprecated()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#misdeprecated): Checking if an entity has `deprecated` docBlock +- [isEntityFileCanBeLoad()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#misentityfilecanbeload): Checking if entity data can be retrieved +- [isEnum()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#misenum): Check if an entity is an Enum +- [isInstantiable()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#misinstantiable): Check that an entity is instantiable +- [isInterface()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#misinterface): Check if an entity is an Interface +- [isInternal()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#misinternal): Checking if an entity has `internal` docBlock +- [isSubclassOf()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#missubclassof): Whether the given class is a subclass of the specified class +- [isTrait()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mistrait): Check if an entity is a Trait +- [normalizeClassName()](/docs/tech/02_parser/reflectionApi/php/classes/TraitEntity.md#mnormalizeclassname): Bring the class name to the standard format used in the system + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/02_parser/reflectionApi/php/readme.md b/docs/tech/02_parser/reflectionApi/php/readme.md new file mode 100644 index 00000000..f489a1d3 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/php/readme.md @@ -0,0 +1,91 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API / Reflection API for PHP
            + +

            Reflection API for PHP

            + +The tool we implemented partially replicates the [standard PHP reflection API](https://www.php.net/manual/en/book.reflection.php), but it has some additional capabilities. +In addition, our Reflection API is available for use in every documentation template, plugin, twig function, etc. at `BumbleDocGen`. + +

            Class like reflections

            + +Using our PHP reflection API you can get information about project entities. +Below is information about the available methods for working with each entity type: + +1) Class reflection +2) Trait reflection +3) Interface reflection +4) Enum reflection + +**Usage example:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +// In this example, the collection is empty, so we use a method that will create an entity by its name +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); + +$entityName = $classReflection->getName(); +$entityDescription = $classReflection->getDescription(); +$entityClassCodeStartLine = $classReflection->getStartLine(); + +// ... etc. +``` + +

            Entities collection

            + +Class reflections are stored in collections. The collection is filled either before documents are generated, +if the Reflection API is used to generate documentation, or when special methods are called that, under certain conditions, fill them with the required reflections. + +You can perform a number of filtering and searching operations on a collection of entities. +The collections API is presented on this page: PHP entities collection + +**Usage example:** + +```php +// Create an empty collection +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +// Fill the collection with entities +$entitiesCollection->loadEntities( + $sourceLocators, // Source locators are needed so that we can determine all the files that will be traversed to fill the collection with data + $filters // We can define special filters according to which entities will be loaded +); + +$classReflection = $entitiesCollection->get('SomeClassName'); + +$entitiesCollection = $entitiesCollection + ->filterByInterfaces(['SomeNamespace\Interface1', 'SomeNamespace\Interface2']) + ->filterByParentClassNames(['SomeNamespace\ParentClass']); + +foreach($entitiesCollection as $classReflection) { + $name = $classReflection->getName(); +} +``` + +

            Class like sub entities reflections

            + +PHP classes contain methods, properties and constants. Below is information about these child entities: + +1) Class method reflection +2) Class property reflection +3) Class constant reflection + +**Usage example:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); + +$propertyReflection = $classReflection->getProperty('propertyName'); +$propertyName = $methodReflection->getName(); + +$methodReflection = $classReflection->getMethod('methodName'); +$methodName = $methodReflection->getName(); +$firstMethodReturnValue = $methodReflection->getFirstReturnValue(); + +// ... etc. +``` + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/02_parser/reflectionApi/readme.md b/docs/tech/02_parser/reflectionApi/readme.md new file mode 100644 index 00000000..f30625e1 --- /dev/null +++ b/docs/tech/02_parser/reflectionApi/readme.md @@ -0,0 +1,67 @@ + BumbleDocGen / Technical description of the project / Parser / Reflection API
            + +

            Reflection API

            + +The documentation generator has a convenient Reflection API for analyzing the source code of the project being documented. +You can use the Reflection API both in documentation templates and simply in your code where necessary. + +**See:** +1) **Reflection API for PHP** +2) **[Demo](/demo/demo6-reflection-api/demoScript.php)** + +

            Example

            + +```php + // Create a Reflection API config object. This example shows the config for parsing PHP code + $reflectionApiConfig = PhpReflectionApiConfig::create(); + + /** @var PhpEntitiesCollection $entitiesCollection*/ + $entitiesCollection = (new BumbleDocGenDocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + + // Source locators are needed so that we can determine all the files that will be traversed to fill the collection with data + $sourceLocators = SourceLocatorsCollection::create(new DirectoriesSourceLocator([__DIR__])); + + // We can define special filters according to which entities will be loaded + $filter = new TrueCondition(); + + // By default the collection is empty. You can populate the collection with data + $entitiesCollection->loadEntities( + $sourceLocators, + $filter + ); + + // And now you can use Reflection API + $filename = $entitiesCollection->get('SomeClassName')?->getAbsoluteFileName(); + +``` + + +

            Example 2 - Working with the Reflection API through a default parsing mechanism

            + +```php + // Create a documentation generator object + $docGen = (new BumbleDocGenDocGeneratorFactory())->create($configFile); + + // Next we get a group of entity collections (according to the configuration) + $entityCollectionsGroup = $docGen->parseAndGetRootEntityCollectionsGroup(); + + // Next, we can get a specific collection, for example for PHP entities + $entitiesCollection = $entityCollectionsGroup->get(PhpEntitiesCollection::class); + + // And now you can use Reflection API + $filename = $entitiesCollection->get('SomeClassName')?->getAbsoluteFileName(); + +``` + + +This method is used in the documentation generation process. +The only difference with the first example is that the first option is more convenient to use as a separate tool. + +The settings for which entities will be available to the reflector in this case are taken from the configuration file or configuration array, depending on the method of creating the documentation generator instance. + +In addition, RootEntityCollectionsGroup is always available through DI, for example when you implement some twig function or plugin. + + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/02_parser/sourceLocator.md b/docs/tech/02_parser/sourceLocator.md new file mode 100644 index 00000000..f677a293 --- /dev/null +++ b/docs/tech/02_parser/sourceLocator.md @@ -0,0 +1,28 @@ + BumbleDocGen / Technical description of the project / Parser / Source locators
            + +

            Source locators

            + +Source locators are needed so that the parser knows which files to parse, or to get data on a specific file after the primary parsing procedure + +Source locators are set in the configuration: + +```yaml + source_locators: + - class: \BumbleDocGen\Core\Parser\SourceLocator\RecursiveDirectoriesSourceLocator + arguments: + directories: + - "%project_root%/src" + - "%project_root%/selfdoc" +``` + + +You can create your own source locators or use any existing ones. All source locators must implement the SourceLocatorInterface interface. + +

            Built-in source locators

            + + + + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/03_renderer/01_howToCreateTemplates/classes/Configuration.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/Configuration.md new file mode 100644 index 00000000..0d1a5a5f --- /dev/null +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/Configuration.md @@ -0,0 +1,763 @@ + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Front Matter / Configuration
            + +

            + Configuration class: +

            + + + + + +```php +namespace BumbleDocGen\Core\Configuration; + +final class Configuration +``` + +
            Configuration project documentation
            + + + + + + +

            Initialization methods:

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

            Methods:

            + +
              +
            1. + getAdditionalConsoleCommands +
            2. +
            3. + getCacheDir +
            4. +
            5. + getConfigurationVersion +
            6. +
            7. + getDocGenLibDir +
            8. +
            9. + getGitClientPath +
            10. +
            11. + getIfExists +
            12. +
            13. + getLanguageHandlersCollection +
            14. +
            15. + getOutputDir +
            16. +
            17. + getOutputDirBaseUrl +
            18. +
            19. + getPageLinkProcessor +
            20. +
            21. + getPlugins +
            22. +
            23. + getProjectRoot +
            24. +
            25. + getSourceLocators +
            26. +
            27. + getTemplatesDir +
            28. +
            29. + getTwigFilters +
            30. +
            31. + getTwigFunctions +
            32. +
            33. + getWorkingDir +
            34. +
            35. + isCheckFileInGitBeforeCreatingDocEnabled +
            36. +
            37. + renderWithFrontMatter +
            38. +
            39. + useSharedCache +
            40. +
            + + +

            Constants:

            + + + + + + +

            Method details:

            + +
            + + + +```php +public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
            $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
            $logger\Psr\Log\LoggerInterface-
            + + + +
            +
            +
            + + + +```php +public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\AdditionalCommandCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Console\Command\AdditionalCommandCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getCacheDir(): null|string; +``` + + + +Parameters: not specified + +Return value: null | string + + +Throws: + + +
            +
            +
            + + + +```php +public function getConfigurationVersion(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
            +
            +
            + + + +```php +public function getDocGenLibDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
            +
            +
            + + + +```php +public function getGitClientPath(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +public function getIfExists(mixed $key): null|string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $keymixed-
            + +Return value: null | string + + +Throws: + + +
            +
            +
            + + + +```php +public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\LanguageHandlersCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\LanguageHandlersCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getOutputDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +public function getOutputDirBaseUrl(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProcessor\PageLinkProcessorInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\PageLinkProcessor\PageLinkProcessorInterface + + +Throws: + + +
            +
            +
            + + + +```php +public function getPlugins(): \BumbleDocGen\Core\Plugin\PluginsCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Plugin\PluginsCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getProjectRoot(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getTemplatesDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getWorkingDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + +
              +
            • # + isCheckFileInGitBeforeCreatingDocEnabled + | source code
            • +
            + +```php +public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +public function renderWithFrontMatter(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +public function useSharedCache(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            diff --git a/docs/tech/classes/Configuration_2.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/Configuration_2.md similarity index 75% rename from docs/tech/classes/Configuration_2.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/Configuration_2.md index d8fa6f21..b2770cc8 100644 --- a/docs/tech/classes/Configuration_2.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/Configuration_2.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Configuration

            Configuration class: @@ -87,6 +86,9 @@ final class Configuration
          71. isCheckFileInGitBeforeCreatingDocEnabled
          72. +
          73. + renderWithFrontMatter +
          74. useSharedCache
          75. @@ -159,7 +161,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParame ```php @@ -182,7 +184,7 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad \DI\NotFoundException
          76. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          77. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -193,24 +195,24 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad ```php -public function getCacheDir(): string|null; +public function getCacheDir(): null|string; ``` Parameters: not specified -Return value: string | null +Return value: null | string Throws: @@ -242,7 +244,7 @@ public function getConfigurationVersion(): string; ```php @@ -263,7 +265,7 @@ public function getDocGenLibDir(): string; ```php @@ -280,7 +282,7 @@ public function getGitClientPath(): string; Throws: @@ -291,11 +293,11 @@ public function getGitClientPath(): string; ```php -public function getIfExists(mixed $key): string|null; +public function getIfExists(mixed $key): null|string; ``` @@ -319,13 +321,13 @@ public function getIfExists(mixed $key): string|null; -Return value: string | null +Return value: null | string Throws: @@ -336,7 +338,7 @@ public function getIfExists(mixed $key): string|null; ```php @@ -359,7 +361,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L \DI\NotFoundException
          78. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          79. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -370,7 +372,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L ```php @@ -387,7 +389,7 @@ public function getOutputDir(): string; Throws: @@ -398,7 +400,7 @@ public function getOutputDir(): string; ```php @@ -415,7 +417,7 @@ public function getOutputDirBaseUrl(): string; Throws: @@ -426,7 +428,7 @@ public function getOutputDirBaseUrl(): string; ```php @@ -446,7 +448,7 @@ public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProc \DI\DependencyException
          80. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          81. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          82. \DI\NotFoundException
          83. @@ -460,7 +462,7 @@ public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProc ```php @@ -480,7 +482,7 @@ public function getPlugins(): \BumbleDocGen\Core\Plugin\PluginsCollection; \DI\DependencyException
          84. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          85. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          86. \DI\NotFoundException
          87. @@ -511,7 +513,7 @@ public function getProjectRoot(): string; Throws: @@ -542,7 +544,7 @@ public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\Sou \DI\DependencyException
          88. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          89. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          90. \DI\NotFoundException
          91. @@ -573,7 +575,7 @@ public function getTemplatesDir(): string; Throws: @@ -584,7 +586,7 @@ public function getTemplatesDir(): string; ```php @@ -607,7 +609,7 @@ public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\Custom \DI\NotFoundException
          92. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          93. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -618,7 +620,7 @@ public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\Custom ```php @@ -638,7 +640,7 @@ public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\Cu \DI\DependencyException
          94. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          95. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          96. \DI\NotFoundException
          97. @@ -652,7 +654,7 @@ public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\Cu ```php @@ -680,7 +682,7 @@ public function getWorkingDir(): string; ```php @@ -697,7 +699,35 @@ public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; Throws: + + +
            +
            + + + +```php +public function renderWithFrontMatter(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + @@ -708,7 +738,7 @@ public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; ```php @@ -725,11 +755,9 @@ public function useSharedCache(): bool; Throws:

            - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/DocumentedEntityWrapper.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/DocumentedEntityWrapper.md similarity index 97% rename from docs/tech/1.configuration/classes/DocumentedEntityWrapper.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/DocumentedEntityWrapper.md index 674254c8..8ba4fd69 100644 --- a/docs/tech/1.configuration/classes/DocumentedEntityWrapper.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/DocumentedEntityWrapper.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / DocumentedEntityWrapper
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / DocumentedEntityWrapper

            DocumentedEntityWrapper class: @@ -299,5 +298,3 @@ public function setParentDocFilePath(string $parentDocFilePath): void;
            - - \ No newline at end of file diff --git a/docs/tech/classes/DocumentedEntityWrappersCollection_2.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/DocumentedEntityWrappersCollection.md similarity index 85% rename from docs/tech/classes/DocumentedEntityWrappersCollection_2.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/DocumentedEntityWrappersCollection.md index c913bb55..96e1dcaa 100644 --- a/docs/tech/classes/DocumentedEntityWrappersCollection_2.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/DocumentedEntityWrappersCollection.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / DocumentedEntityWrappersCollection
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / DocumentedEntityWrappersCollection

            DocumentedEntityWrappersCollection class: @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Renderer\Context; -final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \Traversable, \Countable +final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \Countable ``` @@ -35,7 +34,7 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T
            1. count - - Count elements of an object
            2. +
            3. createAndAddDocumentedEntityWrapper
            4. @@ -44,7 +43,7 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T
            5. getIterator - - Retrieve an external iterator
            6. +
            @@ -119,19 +118,13 @@ public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext public function count(): int; ``` -
            Count elements of an object
            + Parameters: not specified Return value: int - -See: -
            @@ -173,7 +166,7 @@ public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\En Throws: @@ -212,27 +205,12 @@ public function getDocumentedEntitiesRelations(): array; public function getIterator(): \Generator; ``` -
            Retrieve an external iterator
            + Parameters: not specified Return value: \Generator -Throws: - - - -See: -

            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/DrawDocumentationMenu.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/DrawDocumentationMenu.md similarity index 90% rename from docs/tech/3.renderer/classes/DrawDocumentationMenu.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/DrawDocumentationMenu.md index 39e7b383..6da79a1e 100644 --- a/docs/tech/3.renderer/classes/DrawDocumentationMenu.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/DrawDocumentationMenu.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / DrawDocumentationMenu
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Front Matter / DrawDocumentationMenu

            DrawDocumentationMenu class: @@ -21,7 +20,7 @@ and all links with this page are recursively collected for it, after which the h See: @@ -196,7 +195,7 @@ public function __invoke(string|null $startPageKey = null, int|null $maxDeep = n \DI\DependencyException
          98. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          99. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -244,5 +243,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/GetDocumentationPageUrl.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/GetDocumentationPageUrl.md similarity index 90% rename from docs/tech/3.renderer/classes/GetDocumentationPageUrl.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/GetDocumentationPageUrl.md index 026c1f00..18f448e9 100644 --- a/docs/tech/3.renderer/classes/GetDocumentationPageUrl.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/GetDocumentationPageUrl.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates / GetDocumentationPageUrl
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates / GetDocumentationPageUrl

            GetDocumentationPageUrl class: @@ -177,7 +176,7 @@ public function __invoke(string $key): string; \DI\DependencyException
          100. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          101. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          102. \DI\NotFoundException
          103. @@ -228,5 +227,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/GetDocumentedEntityUrl.md similarity index 79% rename from docs/tech/3.renderer/classes/GetDocumentedEntityUrl.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/GetDocumentedEntityUrl.md index bfae4f01..7f5fbfdb 100644 --- a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/GetDocumentedEntityUrl.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates / GetDocumentedEntityUrl
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates / GetDocumentedEntityUrl

            - GetDocumentedEntityUrl class: + GetDocumentedEntityUrl class:

            @@ -21,30 +20,30 @@ the `EntityDocRendererInterface::getDocFileExtension()` directory will be create See: Examples of using: ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} The function returns a reference to the documented entity, anchored to the getFunctions method ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} The function returns a reference to the documented entity MainExtension ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} The function returns a link to the file MainExtension ``` @@ -91,7 +90,7 @@ The function returns a link to the file MainExtension @@ -106,7 +105,7 @@ The function returns a link to the file MainExtension ```php @@ -158,7 +157,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $renderer ```php @@ -211,14 +210,11 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ \DI\DependencyException
          104. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          105. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          106. \DI\NotFoundException
          107. -
          108. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
          109. - @@ -228,7 +224,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ ```php @@ -249,7 +245,7 @@ public static function getName(): string; ```php @@ -265,5 +261,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_3.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/GetDocumentedEntityUrl_2.md similarity index 81% rename from docs/tech/3.renderer/classes/GetDocumentedEntityUrl_3.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/GetDocumentedEntityUrl_2.md index 94533a93..3e39559c 100644 --- a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_3.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/GetDocumentedEntityUrl_2.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Renderer / GetDocumentedEntityUrl
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / GetDocumentedEntityUrl

            - GetDocumentedEntityUrl class: + GetDocumentedEntityUrl class:

            @@ -21,30 +20,30 @@ the `EntityDocRendererInterface::getDocFileExtension()` directory will be create See: Examples of using: ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} The function returns a reference to the documented entity, anchored to the getFunctions method ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} The function returns a reference to the documented entity MainExtension ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} The function returns a link to the file MainExtension ``` @@ -91,7 +90,7 @@ The function returns a link to the file MainExtension @@ -106,7 +105,7 @@ The function returns a link to the file MainExtension ```php @@ -158,7 +157,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $renderer ```php @@ -211,14 +210,11 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ \DI\DependencyException
          110. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          111. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          112. \DI\NotFoundException
          113. -
          114. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
          115. - @@ -228,7 +224,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ ```php @@ -249,7 +245,7 @@ public static function getName(): string; ```php @@ -265,5 +261,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/03_renderer/01_howToCreateTemplates/classes/InvalidConfigurationParameterException.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/InvalidConfigurationParameterException.md new file mode 100644 index 00000000..7d350595 --- /dev/null +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/InvalidConfigurationParameterException.md @@ -0,0 +1,31 @@ + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / InvalidConfigurationParameterException
            + +

            + InvalidConfigurationParameterException class: +

            + + + + + +```php +namespace BumbleDocGen\Core\Configuration\Exception; + +final class InvalidConfigurationParameterException extends \Exception +``` + + + + + + + + + + + + + + + + diff --git a/docs/tech/3.renderer/classes/LanguageHandlerInterface.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/LanguageHandlerInterface.md similarity index 93% rename from docs/tech/3.renderer/classes/LanguageHandlerInterface.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/LanguageHandlerInterface.md index f2ebf676..c0c9d8e4 100644 --- a/docs/tech/3.renderer/classes/LanguageHandlerInterface.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/LanguageHandlerInterface.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates variables / LanguageHandlerInterface
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates variables / LanguageHandlerInterface

            LanguageHandlerInterface class: @@ -166,5 +165,3 @@ public static function getLanguageKey(): string;
            - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/PageHtmlLinkerPlugin.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/PageHtmlLinkerPlugin.md similarity index 87% rename from docs/tech/4.pluginSystem/classes/PageHtmlLinkerPlugin.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/PageHtmlLinkerPlugin.md index 191d037e..514fbddc 100644 --- a/docs/tech/4.pluginSystem/classes/PageHtmlLinkerPlugin.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/PageHtmlLinkerPlugin.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Plugin system / PageHtmlLinkerPlugin
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates / PageHtmlLinkerPlugin

            PageHtmlLinkerPlugin class: @@ -68,7 +67,7 @@ final class PageHtmlLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\Pa
          116. getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
          117. +

          @@ -84,7 +83,7 @@ final class PageHtmlLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\Pa ```php @@ -138,7 +137,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsH ```php @@ -180,10 +179,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B \DI\DependencyException
        34. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
        35. - -
        36. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
        37. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -194,7 +190,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B ```php @@ -203,7 +199,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B public static function getSubscribedEvents(): array; ``` -
          Returns an array of event names this subscriber wants to listen to.
          + Parameters: not specified @@ -212,5 +208,3 @@ public static function getSubscribedEvents(): array;
          - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/ClassEntityCollection.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/PhpEntitiesCollection.md similarity index 59% rename from docs/tech/3.renderer/classes/ClassEntityCollection.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/PhpEntitiesCollection.md index 78f49204..febcb6b5 100644 --- a/docs/tech/3.renderer/classes/ClassEntityCollection.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/PhpEntitiesCollection.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates variables / ClassEntityCollection
          + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates variables / PhpEntitiesCollection

          - ClassEntityCollection class: + PhpEntitiesCollection class:

          @@ -12,10 +11,10 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; -final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection implements \IteratorAggregate, \Traversable +final class PhpEntitiesCollection extends \BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection implements \IteratorAggregate ``` -
          Collection of PHP class entities
          +
          Collection of php root entities
          @@ -35,64 +34,58 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
          1. add -
          2. + - Add an entity to the collection
          3. clearOperationsLogCollection
          4. filterByInterfaces -
          5. + - Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
          6. filterByNameRegularExpression -
          7. + - Get a copy of the current collection with only entities whose names match the regular expression
          8. filterByParentClassNames -
          9. + - Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
          10. filterByPaths -
          11. + - Get a copy of the current collection only with entities filtered by file paths (from project_root)
          12. findEntity -
          13. + - Find an entity in a collection
          14. get -
          15. -
          16. - getEntityByClassName -
          17. + - Get an entity from a collection (only previously added)
          18. getEntityCollectionName -
          19. + - Get collection name
          20. getEntityLinkData
          21. getIterator - - Retrieve an external iterator
          22. +
          23. getLoadedOrCreateNew -
          24. + - Get an entity from the collection or create a new one if it has not yet been added
          25. getOnlyAbstractClasses -
          26. + - Get a copy of the current collection with only abstract classes
          27. getOnlyInstantiable -
          28. + - Get a copy of the current collection with only instantiable entities
          29. getOnlyInterfaces -
          30. + - Get a copy of the current collection with only interfaces
          31. getOnlyTraits -
          32. + - Get a copy of the current collection with only traits
          33. getOperationsLogCollection
          34. -
          35. - getPluginEventDispatcher -
          36. has -
          37. + - Check if an entity has been added to the collection
          38. internalFindEntity
          39. @@ -101,13 +94,22 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
          40. isEmpty -
          41. + - Check if the collection is empty or not
          42. - loadClassEntities -
          43. + loadEntities + - Load entities into a collection +
          44. + loadEntitiesByConfiguration + - Load entities into a collection by configuration
          45. remove + - Remove an entity from a collection
          46. +
          47. + removeAllNotLoadedEntities
          48. +
          49. + toArray + - Convert collection to array
          50. updateEntitiesCache
          51. @@ -118,7 +120,7 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga @@ -133,11 +135,11 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\EntityDocRendererHelper $docRendererHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Console\ProgressBar\ProgressBarFactory $progressBarFactory, \Symfony\Component\Console\Style\OutputStyle $io, \Psr\Log\LoggerInterface $logger); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\EntityDocRendererHelper $docRendererHelper, \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper $phpParserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger); ``` @@ -162,11 +164,6 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $phpHandlerSettings \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings - - - - $parserHelper - \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper - - $pluginEventDispatcher @@ -184,18 +181,13 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf - - $localObjectCache - \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - - - - - $progressBarFactory - \BumbleDocGen\Console\ProgressBar\ProgressBarFactory + $phpParserHelper + \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper - - $io - \Symfony\Component\Console\Style\OutputStyle + $localObjectCache + \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - @@ -215,14 +207,14 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php -public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Add an entity to the collection
            Parameters: @@ -237,7 +229,7 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -248,16 +240,13 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -291,14 +280,14 @@ public function clearOperationsLogCollection(): void; ```php -public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
            Parameters: @@ -319,16 +308,13 @@ public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHan -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -339,14 +325,14 @@ public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHan ```php -public function filterByNameRegularExpression(string $regexPattern): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByNameRegularExpression(string $regexPattern): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection with only entities whose names match the regular expression
            Parameters: @@ -367,7 +353,7 @@ public function filterByNameRegularExpression(string $regexPattern): \BumbleDocG -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection @@ -377,14 +363,14 @@ public function filterByNameRegularExpression(string $regexPattern): \BumbleDocG ```php -public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
            Parameters: @@ -405,16 +391,13 @@ public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -425,14 +408,14 @@ public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen ```php -public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection only with entities filtered by file paths (from project_root)
            Parameters: @@ -453,16 +436,13 @@ public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\P -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -479,10 +459,10 @@ public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\P ```php // Implemented in BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection -public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function findEntity(string $search, bool $useUnsafeKeys = true): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
            Find an entity in a collection
            Parameters: @@ -508,7 +488,7 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface @@ -524,10 +504,10 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD ```php // Implemented in BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection -public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function get(string $objectName): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
            Get an entity from a collection (only previously added)
            Parameters: @@ -548,50 +528,7 @@ public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEn -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null - - - -
            -
            - - - -```php -public function getEntityByClassName(string $className, bool $createIfNotExists = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $classNamestring-
            $createIfNotExistsbool-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface
            @@ -601,14 +538,14 @@ public function getEntityByClassName(string $className, bool $createIfNotExists ```php public function getEntityCollectionName(): string; ``` - +
            Get collection name
            Parameters: not specified @@ -622,7 +559,7 @@ public function getEntityCollectionName(): string; ```php @@ -680,26 +617,13 @@ public function getEntityLinkData(string $rawLink, string|null $defaultEntityNam public function getIterator(): \Generator; ``` -
            Retrieve an external iterator
            + Parameters: not specified Return value: \Generator -Throws: - - - -See: -
            @@ -716,7 +640,7 @@ public function getIterator(): \Generator; public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
            Get an entity from the collection or create a new one if it has not yet been added
            Parameters: @@ -749,7 +673,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit See:

            @@ -758,27 +682,24 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit ```php -public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection with only abstract classes
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -789,29 +710,19 @@ public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Pars ```php -public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection with only instantiable entities
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
            @@ -820,29 +731,19 @@ public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php -public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection with only interfaces
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
            @@ -851,29 +752,19 @@ public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\En ```php -public function getOnlyTraits(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyTraits(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
            Get a copy of the current collection with only traits
            Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
            @@ -898,27 +789,6 @@ public function getOperationsLogCollection(): \BumbleDocGen\Core\Parser\Entity\C Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection - -
            -
            - - - -```php -public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEventDispatcher; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Plugin\PluginEventDispatcher - -

            @@ -926,7 +796,7 @@ public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEven ```php @@ -935,7 +805,7 @@ public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEven public function has(string $objectName): bool; ``` - +
            Check if an entity has been added to the collection
            Parameters: @@ -966,11 +836,11 @@ public function has(string $objectName): bool; ```php -public function internalFindEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|null; +public function internalFindEntity(string $search, bool $useUnsafeKeys = true): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` @@ -1001,7 +871,7 @@ public function internalFindEntity(string $search, bool $useUnsafeKeys = true): -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity @@ -1009,14 +879,14 @@ public function internalFindEntity(string $search, bool $useUnsafeKeys = true): Examples of using: ```php -$classEntityCollection->findEntity('App'); // class name -$classEntityCollection->findEntity('BumbleDocGen\Console\App'); // class with namespace -$classEntityCollection->findEntity('\BumbleDocGen\Console\App'); // class with namespace -$classEntityCollection->findEntity('\BumbleDocGen\Console\App::test()'); // class with namespace and optional part -$classEntityCollection->findEntity('App.php'); // filename -$classEntityCollection->findEntity('/BumbleDocGen/Console/App.php'); // relative path -$classEntityCollection->findEntity('/Users/someuser/Desktop/projects/bumble-doc-gen/BumbleDocGen/Console/App.php'); // absolute path -$classEntityCollection->findEntity('https://github.com/bumble-tech/bumble-doc-gen/blob/master/BumbleDocGen/Console/App.php'); // source link +$entitiesCollection->findEntity('App'); // class name +$entitiesCollection->findEntity('BumbleDocGen\Console\App'); // class with namespace +$entitiesCollection->findEntity('\BumbleDocGen\Console\App'); // class with namespace +$entitiesCollection->findEntity('\BumbleDocGen\Console\App::test()'); // class with namespace and optional part +$entitiesCollection->findEntity('App.php'); // filename +$entitiesCollection->findEntity('/src/Console/App.php'); // relative path +$entitiesCollection->findEntity('/Users/someuser/Desktop/projects/bumble-doc-gen/src/Console/App.php'); // absolute path +$entitiesCollection->findEntity('https://github.com/bumble-tech/bumble-doc-gen/blob/master/src/Console/App.php'); // source link ```
            @@ -1026,11 +896,11 @@ $classEntityCollection->findEntity('https://github.com/bumble-tech/bumble-doc-ge ```php -public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` @@ -1059,7 +929,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity Throws: @@ -1070,6 +940,9 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl
          52. \DI\NotFoundException
          53. +
          54. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          55. + @@ -1079,7 +952,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl ```php @@ -1088,7 +961,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl public function isEmpty(): bool; ``` - +
            Check if the collection is empty or not
            Parameters: not specified @@ -1100,35 +973,116 @@ public function isEmpty(): bool;
            ```php -public function loadClassEntities(): void; +public function loadEntities(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection $sourceLocatorsCollection, \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface|null $filters = null, \BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; ``` +
            Load entities into a collection
            +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $sourceLocatorsCollection\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection-
            $filters\BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface | null-
            $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
            -Return value: void +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult Throws: + +
            +
            +
            + +
              +
            • # + loadEntitiesByConfiguration + :warning: Is internal | source code
            • +
            + +```php +public function loadEntitiesByConfiguration(\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; +``` + +
            Load entities into a collection by configuration
            + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
            + +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult + + +Throws: + @@ -1139,7 +1093,7 @@ public function loadClassEntities(): void; ```php @@ -1148,7 +1102,7 @@ public function loadClassEntities(): void; public function remove(string $objectName): void; ``` - +
            Remove an entity from a collection
            Parameters: @@ -1172,6 +1126,52 @@ public function remove(string $objectName): void; Return value: void +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection + +public function removeAllNotLoadedEntities(): void; +``` + + + +Parameters: not specified + +Return value: void + + +
            +
            +
            + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection + +public function toArray(): array; +``` + +
            Convert collection to array
            + +Parameters: not specified + +Return value: array + +

            @@ -1179,7 +1179,7 @@ public function remove(string $objectName): void; ```php @@ -1204,5 +1204,3 @@ public function updateEntitiesCache(): void;

            - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/RendererContext.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/RendererContext.md similarity index 91% rename from docs/tech/1.configuration/classes/RendererContext.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/RendererContext.md index c2389341..c7b2bcdf 100644 --- a/docs/tech/1.configuration/classes/RendererContext.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/RendererContext.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / RendererContext
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / RendererContext

            RendererContext class: @@ -125,14 +124,14 @@ public function clearDependencies(): void; ```php -public function getCurrentDocumentedEntityWrapper(): \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper|null; +public function getCurrentDocumentedEntityWrapper(): null|\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper; ``` Parameters: not specified -Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper | null +Return value: null | \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper @@ -255,5 +254,3 @@ public function setCurrentTemplateFilePatch(string $currentTemplateFilePath): vo
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/RootEntityInterface.md b/docs/tech/03_renderer/01_howToCreateTemplates/classes/RootEntityInterface.md similarity index 73% rename from docs/tech/3.renderer/classes/RootEntityInterface.md rename to docs/tech/03_renderer/01_howToCreateTemplates/classes/RootEntityInterface.md index 1ba150ef..5a9d1055 100644 --- a/docs/tech/3.renderer/classes/RootEntityInterface.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/classes/RootEntityInterface.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / RootEntityInterface
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / RootEntityInterface

            RootEntityInterface class: @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Parser\Entity; -interface RootEntityInterface extends \\BumbleDocGen\Core\Parser\Entity\EntityInterface implements \BumbleDocGen\Core\Parser\Entity\EntityInterface +interface RootEntityInterface extends \BumbleDocGen\Core\Parser\Entity\EntityInterface ```
            Since the documentation generator supports several programming languages, @@ -27,12 +26,6 @@ their entities need to correspond to the same interfaces

            Methods:

              -
            1. - entityCacheIsOutdated -
            2. -
            3. - entityDataCanBeLoaded - - Checking if it is possible to get the entity data
            4. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            5. @@ -42,24 +35,30 @@ their entities need to correspond to the same interfaces
            6. getFileContent
            7. -
            8. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
            9. getFileSourceLink
            10. getName -
            11. + - Full name of the entity
            12. getObjectId -
            13. + - Entity object ID +
            14. + getRelativeFileName + - File name relative to project_root configuration parameter
            15. getRootEntityCollection - Get parent collection of entities
            16. getShortName + - Short name of the entity
            17. +
            18. + isEntityCacheOutdated
            19. +
            20. + isEntityDataCanBeLoaded + - Checking if it is possible to get the entity data
            21. isEntityNameValid - Check if entity name is valid
            22. @@ -69,6 +68,9 @@ their entities need to correspond to the same interfaces
            23. isInGit - The entity file is in the git repository
            24. +
            25. + normalizeClassName +
            @@ -81,67 +83,23 @@ their entities need to correspond to the same interfaces
            - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function entityDataCanBeLoaded(): bool; -``` - -
            Checking if it is possible to get the entity data
            - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - ```php // Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface -public function getAbsoluteFileName(): string|null; +public function getAbsoluteFileName(): null|string; ```
            Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            Parameters: not specified -Return value: string | null +Return value: null | string
            @@ -151,7 +109,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -172,7 +130,7 @@ public function getEntityDependencies(): array; ```php @@ -186,29 +144,6 @@ public function getFileContent(): string; Return value: string - -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getFileName(): string|null; -``` - -
            Returns the relative path to a file if it can be retrieved and if the file is in the project directory
            - -Parameters: not specified - -Return value: string | null - -

            @@ -216,11 +151,11 @@ public function getFileName(): string|null; ```php -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -244,7 +179,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string
            @@ -254,7 +189,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -263,7 +198,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getName(): string; ``` - +
            Full name of the entity
            Parameters: not specified @@ -277,7 +212,7 @@ public function getName(): string; ```php @@ -286,7 +221,7 @@ public function getName(): string; public function getObjectId(): string; ``` - +
            Entity object ID
            Parameters: not specified @@ -297,10 +232,39 @@ public function getObjectId(): string;
            + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +public function getRelativeFileName(): null|string; +``` + +
            File name relative to project_root configuration parameter
            + +Parameters: not specified + +Return value: null | string + + + +See: + +
            +
            +
            + ```php @@ -323,7 +287,7 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root ```php @@ -332,13 +296,57 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root public function getShortName(): string; ``` - +
            Short name of the entity
            Parameters: not specified Return value: string +
            +
            +
            + +
              +
            • # + isEntityCacheOutdated + :warning: Is internal | source code
            • +
            + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +public function isEntityCacheOutdated(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
            +
            +
            + + + +```php +public function isEntityDataCanBeLoaded(): bool; +``` + +
            Checking if it is possible to get the entity data
            + +Parameters: not specified + +Return value: bool + +

            @@ -346,7 +354,7 @@ public function getShortName(): string; ```php @@ -384,7 +392,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php @@ -405,7 +413,7 @@ public function isExternalLibraryEntity(): bool; ```php @@ -421,5 +429,41 @@ public function isInGit(): bool;

            +
            - \ No newline at end of file + + +```php +public static function normalizeClassName(string $name): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $namestring-
            + +Return value: string + + +
            +
            diff --git a/docs/tech/03_renderer/01_howToCreateTemplates/frontMatter.md b/docs/tech/03_renderer/01_howToCreateTemplates/frontMatter.md new file mode 100644 index 00000000..278c0591 --- /dev/null +++ b/docs/tech/03_renderer/01_howToCreateTemplates/frontMatter.md @@ -0,0 +1,30 @@ + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Front Matter
            + +

            Front Matter

            + +Front Matter is a special block at the top of a document template or generated document that contains certain important meta information. + +This block must be located strictly at the top of the template, its beginning and end are indicated by a combination of symbols `---`: + +```twig +--- +title: Front Matter +prevPage: How to create documentation templates? +someVariable: 123 +--- + +some template content ... +``` + +The content of this block must be in YAML format. +During the template generation process, this block is parsed, and all values become available in the form of twig variables. +By default, this block is hidden from generated MD files, but it can be displayed by enabling the special option render_with_front_matter in the configuration + +Some Front Matter block variables are used internally in our system, for example `title` and `prevPage` are used to generate breadcrumbs and documentation menus. + +This block is also used when generating HTML documentation. You can learn about the variables used in this block when generating HTML content [in the documentation of the library](https://daux.io/Features/Front_Matter.html) that we use to create HTML pages. + + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Fri Jan 12 18:53:16 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/3.renderer/01_templates.md b/docs/tech/03_renderer/01_howToCreateTemplates/readme.md similarity index 73% rename from docs/tech/3.renderer/01_templates.md rename to docs/tech/03_renderer/01_howToCreateTemplates/readme.md index 72ce1bb5..95f8c7c0 100644 --- a/docs/tech/3.renderer/01_templates.md +++ b/docs/tech/03_renderer/01_howToCreateTemplates/readme.md @@ -1,4 +1,4 @@ - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates?
            + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates?

            How to create documentation templates?

            @@ -6,7 +6,7 @@ Templates are `twig` files in which you can write both static text and dynamic b **You can read more about template parts here:** - +

            Examples

            @@ -23,15 +23,17 @@ After generating the documentation, this page will look exactly like a template.

            2) An example of a template with static text and dynamic blocks:

            ```twig - {% set title = 'Some page' %} - {% set prevPage = 'Technical description of the project' %} + --- + title: Some page + prevPage: Technical description of the project + --- {{ generatePageBreadcrumbs(title, _self) }} Some static text... Dynamic block: - {{ printEntityCollectionAsList(phpClassEntityCollection.filterByInterfaces(['\\BumbleDocGen\\Core\\Parser\\SourceLocator\\SourceLocatorInterface']).getOnlyInstantiable()) }} + {{ printEntityCollectionAsList(phpEntities.filterByInterfaces(['\\BumbleDocGen\\Core\\Parser\\SourceLocator\\SourceLocatorInterface']).getOnlyInstantiable()) }} More static text... @@ -72,9 +74,9 @@ Output method description as a dynamic block: Dynamic block: - {{ phpClassEntityCollection + {{ phpEntities .get('\\BumbleDocGen\\LanguageHandler\\LanguageHandlerInterface') - .getMethodEntity('getLanguageKey') + .getMethod('getLanguageKey') .getDescription() }} @@ -101,4 +103,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: Mon Nov 06 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 Jan 11 00:14:41 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/03_renderer/01_howToCreateTemplates/templatesDynamicBlocks.md b/docs/tech/03_renderer/01_howToCreateTemplates/templatesDynamicBlocks.md new file mode 100644 index 00000000..2af0eedd --- /dev/null +++ b/docs/tech/03_renderer/01_howToCreateTemplates/templatesDynamicBlocks.md @@ -0,0 +1,29 @@ + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates dynamic blocks
            + +

            Templates dynamic blocks

            + +There are several ways to create dynamic blocks in templates. + +* First of all, these are custom twig functions and filters. +You can use the built-in functions and filters or add your own, so you can implement any logic for generating dynamically changing content. + +```twig + {{ printEntityCollectionAsList(phpEntities.filterByInterfaces(['\\BumbleDocGen\\Core\\Parser\\SourceLocator\\SourceLocatorInterface']).getOnlyInstantiable()) }} +``` + + +* The second way is to output data from variables directly to the template. For example, you can display a list of classes or methods of documented code according to certain rules. + +```twig + {% for entity in phpEntities.filterByInterfaces(['\\BumbleDocGen\\Core\\Parser\\SourceLocator\\SourceLocatorInterface']).getOnlyInstantiable() %} + * {{ entity.getName() }} + {% endfor %} + +``` + + + + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Thu Jan 11 00:14:41 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/03_renderer/01_howToCreateTemplates/templatesLinking.md b/docs/tech/03_renderer/01_howToCreateTemplates/templatesLinking.md new file mode 100644 index 00000000..70c54f40 --- /dev/null +++ b/docs/tech/03_renderer/01_howToCreateTemplates/templatesLinking.md @@ -0,0 +1,41 @@ + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates
            + +

            Linking templates

            + +One of the main requirements of the documentation is to be able to easily and quickly implement linking between pages. +We have several options for this, such as using special functions or using a special document linking mechanism (`completing blank links`) + +

            Completing blank links

            + +Plugin PageHtmlLinkerPlugin have been added to the basic configuration, +which process the text of the filled template before its result is written to a file, and fill in all empty links. + +For example, an empty link: + +
            <a>Existent page name</a>
            + +will be replaced with this link: + +
            <a href="/docs/some/page/targetPage.md">Existent page name</a>
            + +Sometimes the use of standard empty links is not entirely obvious or has insufficient capabilities. For example, in standard empty links it is not obvious which link text will be used in the end. + +To fix this, we implemented a special mechanism with link tags:
            [a][/a]
            + +Examples: + +
            [a]Existent page name[/a] => <a href="/docs/some/page/targetPage.md">Existent page name</a>
            + +
            [a x-title="test"]Existent page name[/a] => <a href="/docs/some/page/targetPage.md">test</a>
            + + +

            Generating links through functions

            + +The second way to relink templates is to generate links through functions. + +There are a number of functions that allow you to get a link to an entity, for example GetDocumentedEntityUrl, and there are also functions for getting a link to other documents, for example GetDocumentationPageUrl. +You can also implement your own functions for relinking if necessary. + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Fri Jan 12 01:40:01 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/03_renderer/01_howToCreateTemplates/templatesVariables.md b/docs/tech/03_renderer/01_howToCreateTemplates/templatesVariables.md new file mode 100644 index 00000000..b409bc19 --- /dev/null +++ b/docs/tech/03_renderer/01_howToCreateTemplates/templatesVariables.md @@ -0,0 +1,16 @@ + BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates variables
            + +

            Templates variables

            + +There are several variables available in each processed template. + +1) Firstly, these are built-in twig variables, for example `_self`, which returns the path to the processed template. + +2) Secondly, variables with collections of processed programming languages are available in the template (see LanguageHandlerInterface). For example, when processing a PHP project collection, a collection PhpEntitiesCollection will be available in the template under the name phpEntities + +3) Thirdly, all variables specified in **Front Matter** are automatically converted into template variables and are available in it + + +
            +
            +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Fri Jan 12 18:53:16 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator
            \ No newline at end of file diff --git a/docs/tech/3.renderer/02_breadcrumbs.md b/docs/tech/03_renderer/02_breadcrumbs.md similarity index 70% rename from docs/tech/3.renderer/02_breadcrumbs.md rename to docs/tech/03_renderer/02_breadcrumbs.md index 38a39bce..4af6af8e 100644 --- a/docs/tech/3.renderer/02_breadcrumbs.md +++ b/docs/tech/03_renderer/02_breadcrumbs.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Renderer / Documentation structure and breadcrumbs
            + BumbleDocGen / Technical description of the project / Renderer / Documentation structure and breadcrumbs

            Documentation structure and breadcrumbs

            -To work with breadcrumbs and get the structure of the documentation, we use the inner class BreadcrumbsHelper. +To work with breadcrumbs and get the structure of the documentation, we use the inner class BreadcrumbsHelper. To build the documentation structure, twig templates from the `templates_dir` configuration are used.

            Project structure definitions

            @@ -13,10 +13,12 @@ For each directory there is an index file ( readme.md or index.md But in addition to building the documentation structure using the actual location of template files in directories, -you can explicitly specify the parent page in each template using the special variable `prevPage`: +you can explicitly specify the parent page in each template using the special front matter variable `prevPage`: -```twig - {% set prevPage = 'Prev page name' %} +```markdown + --- + prevPage: Prev page name + --- ``` @@ -26,7 +28,7 @@ In this way, complex documentation structures can be created with less file nest

            Displaying breadcrumbs in documents

            -There is a built-in function to generate breadcrumbs in templates GeneratePageBreadcrumbs. +There is a built-in function to generate breadcrumbs in templates GeneratePageBreadcrumbs. Here is how it is used in twig templates: ```twig @@ -35,20 +37,22 @@ Here is how it is used in twig templates: To build breadcrumbs, the previously compiled project structure and the names of each template are used. -The template name can be specified using the `title` variable: +The template name can be specified using the `title` front matter variable: -```twig - {% set title = 'Some page title' %} +```markdown + --- + title: Some page title + --- ``` Here is an example of the result of the `generatePageBreadcrumbs` function: ```twig - BumbleDocGen / Technical description of the project / Renderer / Documentation structure and breadcrumbs
            + BumbleDocGen / Technical description of the project / Renderer / Some page title
            ```

            -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Sat Oct 28 11:03:31 2023 +0300
            Page content update date: Mon Nov 06 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 Jan 12 18:53:16 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/03_documentStructure.md b/docs/tech/03_renderer/03_documentStructure.md similarity index 79% rename from docs/tech/3.renderer/03_documentStructure.md rename to docs/tech/03_renderer/03_documentStructure.md index f7a420ff..b8d84d88 100644 --- a/docs/tech/3.renderer/03_documentStructure.md +++ b/docs/tech/03_renderer/03_documentStructure.md @@ -1,4 +1,4 @@ - BumbleDocGen / Technical description of the project / Renderer / Document structure of generated entities
            + BumbleDocGen / Technical description of the project / Renderer / Document structure of generated entities

            Document structure of generated entities

            @@ -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: Mon Nov 06 2023
            Made with Bumble Documentation Generator
            \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/04_twigCustomFilters.md b/docs/tech/03_renderer/04_twigCustomFilters.md similarity index 74% rename from docs/tech/3.renderer/04_twigCustomFilters.md rename to docs/tech/03_renderer/04_twigCustomFilters.md index cb110aaa..84d544ee 100644 --- a/docs/tech/3.renderer/04_twigCustomFilters.md +++ b/docs/tech/03_renderer/04_twigCustomFilters.md @@ -1,9 +1,9 @@ - BumbleDocGen / Technical description of the project / Renderer / Template filters
            + BumbleDocGen / Technical description of the project / Renderer / Template filters

            Template filters

            When generating pages, you can use filters that allow you to modify the content. -Filters available during page generation are defined in the configuration ( `twig_filters` parameter ) +Filters available during page generation are defined in the configuration ( `twig_filters` parameter ) We use the twig template engine, you can get more information about working with filters here: https://twig.symfony.com/doc/1.x/advanced.html#filters @@ -28,7 +28,7 @@ twig_filters: ``` It is important to remember that when a template is inherited, custom filters are not overridden and augmented. -This information is detailed on page Configuration files. +This information is detailed on page Configuration.

            Defautl template filters

            @@ -55,9 +55,8 @@ Here is a list of filters available by default: - addIndentFromLeft
            - Filter adds indent from left - + addIndentFromLeft
            + Filter adds indent from left @@ -88,9 +87,8 @@ Here is a list of filters available by default: - fixStrSize
            - The filter pads the string with the specified characters on the right to the specified size - + fixStrSize
            + The filter pads the string with the specified characters on the right to the specified size @@ -121,9 +119,28 @@ Here is a list of filters available by default: - preg_match
            - Perform a regular expression match - + implode
            + Join array elements with a string + + + + + + + $separator + + + string + + Element separator in result string + + +   + + + + preg_match
            + Perform a regular expression match @@ -142,9 +159,8 @@ Here is a list of filters available by default: - prepareSourceLink
            - The filter converts the string into an anchor that can be used in a GitHub document link - + prepareSourceLink
            + The filter converts the string into an anchor that can be used in a GitHub document link The filter does not accept any additional parameters @@ -152,9 +168,8 @@ Here is a list of filters available by default: - quotemeta
            - Quote meta characters - + quotemeta
            + Quote meta characters The filter does not accept any additional parameters @@ -162,9 +177,8 @@ Here is a list of filters available by default: - removeLineBrakes
            - The filter replaces all line breaks with a space - + removeLineBrakes
            + The filter replaces all line breaks with a space The filter does not accept any additional parameters @@ -172,9 +186,8 @@ Here is a list of filters available by default: - strTypeToUrl
            - The filter converts the string with the data type into a link to the documented entity, if possible. -
            :warning: This filter initiates the creation of documents for the displayed entities
            + strTypeToUrl
            + The filter converts the string with the data type into a link to the documented entity, if possible.
            :warning: This filter initiates the creation of documents for the displayed entities
            @@ -217,9 +230,8 @@ Here is a list of filters available by default: - textToCodeBlock
            - Convert text to code block - + textToCodeBlock
            + Convert text to code block @@ -238,9 +250,8 @@ Here is a list of filters available by default: - textToHeading
            - Convert text to html header - + textToHeading
            + Convert text to html header @@ -263,4 +274,4 @@ Here is a list of filters available by default:

            -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Sat Oct 28 11:03:31 2023 +0300
            Page content update date: Mon Nov 06 2023
            Made with Bumble Documentation Generator
            \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/3.renderer/05_twigCustomFunctions.md b/docs/tech/03_renderer/05_twigCustomFunctions.md similarity index 83% rename from docs/tech/3.renderer/05_twigCustomFunctions.md rename to docs/tech/03_renderer/05_twigCustomFunctions.md index 9a0db2a5..b3449148 100644 --- a/docs/tech/3.renderer/05_twigCustomFunctions.md +++ b/docs/tech/03_renderer/05_twigCustomFunctions.md @@ -1,14 +1,14 @@ - BumbleDocGen / Technical description of the project / Renderer / Template functions
            + BumbleDocGen / Technical description of the project / Renderer / Template functions

            Template functions

            When generating pages, you can use functions that allow you to modify the content. -Functions available during page generation are defined in the configuration ( `twig_functions` parameter ) +Functions available during page generation are defined in the configuration ( `twig_functions` parameter ) We use the twig template engine, you can get more information about working with functions here: https://twig.symfony.com/doc/1.x/advanced.html#functions You can also create your own functions and use them for any purpose, such as loading some additional information into a template, filtering data, or formatting the output of any information. -Each function must implement the CustomFunctionInterface interface, implement the `__invoke` magic method, and be added to the configuration. +Each function must implement the CustomFunctionInterface interface, implement the `__invoke` magic method, and be added to the configuration.

            How to use a function in a template

            @@ -26,7 +26,7 @@ twig_functions: ``` It is important to remember that when a template is inherited, custom functions are not overridden and augmented. -This information is detailed on page Configuration files. +This information is detailed on page Configuration.

            Defautl template functions

            @@ -53,7 +53,7 @@ Here is a list of functions available by default: - drawDocumentationMenu
            + drawDocumentationMenu
            Generate documentation menu in HTML format. To generate the menu, the start page is taken, and all links with this page are recursively collected for it, after which the html menu is created.
            :warning: This function initiates the creation of documents for the displayed entities
            @@ -81,14 +81,14 @@ Here is a list of functions available by default: - drawDocumentedEntityLink
            + drawDocumentedEntityLink
            Creates an entity link by object
            :warning: This function initiates the creation of documents for the displayed entities
            $entity - RootEntityInterface + RootEntityInterface The entity for which we want to get the link @@ -121,7 +121,7 @@ Here is a list of functions available by default: - fileGetContents
            + fileGetContents
            Displaying the content of a file or web resource @@ -137,7 +137,7 @@ Here is a list of functions available by default: - generatePageBreadcrumbs
            + generatePageBreadcrumbs
            Function to generate breadcrumbs on the page @@ -177,7 +177,7 @@ Here is a list of functions available by default: - getDocumentationPageUrl
            + getDocumentationPageUrl
            Creates an entity link by object @@ -193,14 +193,14 @@ Here is a list of functions available by default: - getDocumentedEntityUrl
            + getDocumentedEntityUrl
            Get the URL of a documented entity by its name. If the entity is found, next to the file where this method was called, the `EntityDocRendererInterface::getDocFileExtension()` directory will be created, in which the documented entity file will be created
            :warning: This function initiates the creation of documents for the displayed entities
            $rootEntityCollection - RootEntityCollection + RootEntityCollection Processed entity collection @@ -245,7 +245,7 @@ Here is a list of functions available by default: - loadPluginsContent
            + loadPluginsContent
            :warning: For internal use
            Process entity template blocks with plugins. The method returns the content processed by plugins. @@ -264,7 +264,7 @@ Here is a list of functions available by default: $entity - RootEntityInterface + RootEntityInterface The entity for which we process the content block @@ -285,14 +285,14 @@ Here is a list of functions available by default: - printEntityCollectionAsList
            + printEntityCollectionAsList
            Outputting entity data as HTML list
            :warning: This function initiates the creation of documents for the displayed entities
            $rootEntityCollection - RootEntityCollection + RootEntityCollection Processed entity collection @@ -337,14 +337,30 @@ Here is a list of functions available by default: - drawClassMap
            + displayClassApiMethods
            + Display all API methods of a class + + + $className + + + string + + Name of the class for which API methods need to be displayed + + +   + + + + drawClassMap
            Generate class map in HTML format
            :warning: This function initiates the creation of documents for the displayed entities
            - $classEntityCollections + $entitiesCollections - ClassEntityCollection + PhpEntitiesCollection The collection of entities for which the class map will be generated @@ -353,7 +369,7 @@ Here is a list of functions available by default: - getClassMethodsBodyCode
            + getClassMethodsBodyCode
            Get the code of the specified class methods as a formatted string @@ -385,4 +401,4 @@ Here is a list of functions available by default:

            -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Sat Oct 28 11:03:31 2023 +0300
            Page content update date: Mon Nov 06 2023
            Made with Bumble Documentation Generator
            \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
            Last modified date: Wed Jan 10 23:55:33 2024 +0300
            Page content update date: Mon Jan 15 2024
            Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/AddIndentFromLeft.md b/docs/tech/03_renderer/classes/AddIndentFromLeft.md similarity index 94% rename from docs/tech/1.configuration/classes/AddIndentFromLeft.md rename to docs/tech/03_renderer/classes/AddIndentFromLeft.md index 2e433da2..18504932 100644 --- a/docs/tech/1.configuration/classes/AddIndentFromLeft.md +++ b/docs/tech/03_renderer/classes/AddIndentFromLeft.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / AddIndentFromLeft
            + BumbleDocGen / Technical description of the project / Renderer / Template filters / AddIndentFromLeft

            AddIndentFromLeft class: @@ -149,5 +148,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/BreadcrumbsHelper.md b/docs/tech/03_renderer/classes/BreadcrumbsHelper.md similarity index 77% rename from docs/tech/3.renderer/classes/BreadcrumbsHelper.md rename to docs/tech/03_renderer/classes/BreadcrumbsHelper.md index 3559f4cc..534edc34 100644 --- a/docs/tech/3.renderer/classes/BreadcrumbsHelper.md +++ b/docs/tech/03_renderer/classes/BreadcrumbsHelper.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Renderer / Documentation structure and breadcrumbs / BreadcrumbsHelper
            + BumbleDocGen / Technical description of the project / Renderer / Documentation structure and breadcrumbs / BreadcrumbsHelper

            - BreadcrumbsHelper class: + BreadcrumbsHelper class:

            @@ -54,6 +53,9 @@ final class BreadcrumbsHelper
          56. getPageLinkByKey
          57. +
          58. + getTemplateFrontMatter +
          59. getTemplateLinkKey
          60. @@ -70,7 +72,7 @@ final class BreadcrumbsHelper @@ -85,7 +87,7 @@ final class BreadcrumbsHelper ```php @@ -142,7 +144,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -165,7 +167,7 @@ public function getAllPageLinks(): array; \DI\DependencyException
          61. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          62. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -176,7 +178,7 @@ public function getAllPageLinks(): array; ```php @@ -221,7 +223,7 @@ public function getBreadcrumbs(string $filePatch, bool $fromCurrent = true): arr \DI\DependencyException
          63. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          64. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -232,7 +234,7 @@ public function getBreadcrumbs(string $filePatch, bool $fromCurrent = true): arr ```php @@ -277,7 +279,7 @@ public function getBreadcrumbsForTemplates(string $filePatch, bool $fromCurrent \DI\DependencyException
          65. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          66. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -288,7 +290,7 @@ public function getBreadcrumbsForTemplates(string $filePatch, bool $fromCurrent ```php @@ -322,7 +324,7 @@ public function getNearestIndexFile(string $templateName): string; Throws: @@ -333,11 +335,11 @@ public function getNearestIndexFile(string $templateName): string; ```php -public function getPageDataByKey(string $key): array|null; +public function getPageDataByKey(string $key): null|array; ``` @@ -361,7 +363,7 @@ public function getPageDataByKey(string $key): array|null; -Return value: array | null +Return value: null | array Throws: @@ -370,7 +372,7 @@ public function getPageDataByKey(string $key): array|null; \DI\DependencyException
          67. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          68. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          69. \DI\NotFoundException
          70. @@ -384,11 +386,11 @@ public function getPageDataByKey(string $key): array|null; ```php -public function getPageDocFileByKey(string $key): string|null; +public function getPageDocFileByKey(string $key): null|string; ``` @@ -412,7 +414,7 @@ public function getPageDocFileByKey(string $key): string|null; -Return value: string | null +Return value: null | string Throws: @@ -421,7 +423,7 @@ public function getPageDocFileByKey(string $key): string|null; \DI\DependencyException
          71. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          72. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          73. \DI\NotFoundException
          74. @@ -435,11 +437,11 @@ public function getPageDocFileByKey(string $key): string|null; ```php -public function getPageLinkByKey(string $key): string|null; +public function getPageLinkByKey(string $key): null|string; ``` @@ -463,7 +465,7 @@ public function getPageLinkByKey(string $key): string|null; -Return value: string | null +Return value: null | string Throws: @@ -472,7 +474,7 @@ public function getPageLinkByKey(string $key): string|null; \DI\DependencyException
          75. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          76. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          77. \DI\NotFoundException
          78. @@ -483,14 +485,59 @@ public function getPageLinkByKey(string $key): string|null;
            + + +```php +public function getTemplateFrontMatter(string $templateName): array; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $templateNamestring-
            + +Return value: array + + +Throws: + + +
            +
            +
            + ```php -public function getTemplateLinkKey(string $templateName): string|null; +public function getTemplateLinkKey(string $templateName): null|string; ``` @@ -514,13 +561,13 @@ public function getTemplateLinkKey(string $templateName): string|null; -Return value: string | null +Return value: null | string Throws: @@ -531,7 +578,7 @@ public function getTemplateLinkKey(string $templateName): string|null; ```php @@ -565,7 +612,7 @@ public function getTemplateTitle(string $templateName): string; Throws: @@ -574,8 +621,10 @@ public function getTemplateTitle(string $templateName): string; Examples of using: ```php -// variable in template: -// {% set title = 'Some template title' %} +# Front matter in template: +# --- +# title: Some template title +# --- $breadcrumbsHelper->getTemplateTitle() == 'Some template title'; // is true ``` @@ -587,7 +636,7 @@ $breadcrumbsHelper->getTemplateTitle() == 'Some template title'; // is true ```php @@ -646,11 +695,9 @@ public function renderBreadcrumbs(string $currentPageTitle, string $filePatch, b \Twig\Error\LoaderError
          79. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          80. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException

            - - \ No newline at end of file diff --git a/docs/tech/03_renderer/classes/Configuration.md b/docs/tech/03_renderer/classes/Configuration.md new file mode 100644 index 00000000..111dc8b0 --- /dev/null +++ b/docs/tech/03_renderer/classes/Configuration.md @@ -0,0 +1,763 @@ + BumbleDocGen / Technical description of the project / Renderer / Configuration
            + +

            + Configuration class: +

            + + + + + +```php +namespace BumbleDocGen\Core\Configuration; + +final class Configuration +``` + +
            Configuration project documentation
            + + + + + + +

            Initialization methods:

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

            Methods:

            + +
              +
            1. + getAdditionalConsoleCommands +
            2. +
            3. + getCacheDir +
            4. +
            5. + getConfigurationVersion +
            6. +
            7. + getDocGenLibDir +
            8. +
            9. + getGitClientPath +
            10. +
            11. + getIfExists +
            12. +
            13. + getLanguageHandlersCollection +
            14. +
            15. + getOutputDir +
            16. +
            17. + getOutputDirBaseUrl +
            18. +
            19. + getPageLinkProcessor +
            20. +
            21. + getPlugins +
            22. +
            23. + getProjectRoot +
            24. +
            25. + getSourceLocators +
            26. +
            27. + getTemplatesDir +
            28. +
            29. + getTwigFilters +
            30. +
            31. + getTwigFunctions +
            32. +
            33. + getWorkingDir +
            34. +
            35. + isCheckFileInGitBeforeCreatingDocEnabled +
            36. +
            37. + renderWithFrontMatter +
            38. +
            39. + useSharedCache +
            40. +
            + + +

            Constants:

            + + + + + + +

            Method details:

            + +
            + + + +```php +public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
            $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
            $logger\Psr\Log\LoggerInterface-
            + + + +
            +
            +
            + + + +```php +public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\AdditionalCommandCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Console\Command\AdditionalCommandCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getCacheDir(): null|string; +``` + + + +Parameters: not specified + +Return value: null | string + + +Throws: + + +
            +
            +
            + + + +```php +public function getConfigurationVersion(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
            +
            +
            + + + +```php +public function getDocGenLibDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
            +
            +
            + + + +```php +public function getGitClientPath(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +public function getIfExists(mixed $key): null|string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $keymixed-
            + +Return value: null | string + + +Throws: + + +
            +
            +
            + + + +```php +public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\LanguageHandlersCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\LanguageHandlersCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getOutputDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +public function getOutputDirBaseUrl(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProcessor\PageLinkProcessorInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\PageLinkProcessor\PageLinkProcessorInterface + + +Throws: + + +
            +
            +
            + + + +```php +public function getPlugins(): \BumbleDocGen\Core\Plugin\PluginsCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Plugin\PluginsCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getProjectRoot(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getTemplatesDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + + + +```php +public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection + + +Throws: + + +
            +
            +
            + + + +```php +public function getWorkingDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
            +
            +
            + +
              +
            • # + isCheckFileInGitBeforeCreatingDocEnabled + | source code
            • +
            + +```php +public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +public function renderWithFrontMatter(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            +
            + + + +```php +public function useSharedCache(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
            +
            diff --git a/docs/tech/classes/CustomFunctionInterface.md b/docs/tech/03_renderer/classes/CustomFunctionInterface.md similarity index 88% rename from docs/tech/classes/CustomFunctionInterface.md rename to docs/tech/03_renderer/classes/CustomFunctionInterface.md index ed1b1e86..105d7b9d 100644 --- a/docs/tech/classes/CustomFunctionInterface.md +++ b/docs/tech/03_renderer/classes/CustomFunctionInterface.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / CustomFunctionInterface
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / CustomFunctionInterface

            CustomFunctionInterface class: @@ -84,5 +83,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/GetClassMethodsBodyCode.md b/docs/tech/03_renderer/classes/DisplayClassApiMethods.md similarity index 61% rename from docs/tech/3.renderer/classes/GetClassMethodsBodyCode.md rename to docs/tech/03_renderer/classes/DisplayClassApiMethods.md index a34314a8..8a7238d7 100644 --- a/docs/tech/3.renderer/classes/GetClassMethodsBodyCode.md +++ b/docs/tech/03_renderer/classes/DisplayClassApiMethods.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / GetClassMethodsBodyCode
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / DisplayClassApiMethods

            - GetClassMethodsBodyCode class: + DisplayClassApiMethods class:

            @@ -12,16 +11,16 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Renderer\Twig\Function; -final class GetClassMethodsBodyCode implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface +final class DisplayClassApiMethods implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface ``` -
            Get the code of the specified class methods as a formatted string
            +
            Display all API methods of a class
            Examples of using: ```php -{{ getClassMethodsBodyCode('\\BumbleDocGen\\Renderer\\Twig\\MainExtension', ['getFunctions']) }} +{{ displayClassApiMethods('\\BumbleDocGen\\LanguageHandler\\Php\\Parser\\Entity\\ClassEntity') }} ``` @@ -33,7 +32,7 @@ final class GetClassMethodsBodyCode implements \BumbleDocGen\Core\Renderer\Twig\ - +
            Function name:getClassMethodsBodyCodedisplayClassApiMethods
            @@ -75,11 +74,11 @@ final class GetClassMethodsBodyCode implements \BumbleDocGen\Core\Renderer\Twig\ ```php -public function __construct(\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup); +public function __construct(\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction); ``` @@ -99,6 +98,11 @@ public function __construct(\BumbleDocGen\Core\Parser\Entity\RootEntityCollectio $rootEntityCollectionsGroup \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup - + + + $getDocumentedEntityUrlFunction + \BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl + - @@ -112,11 +116,11 @@ public function __construct(\BumbleDocGen\Core\Parser\Entity\RootEntityCollectio ```php -public function __invoke(string $className, array $methodsNames): string|null; +public function __invoke(string $className): null|string; ``` @@ -135,24 +139,16 @@ public function __invoke(string $className, array $methodsNames): string|null; $className string - The name of the class whose methods are to be retrieved - - - $methodsNames - array - List of class methods whose code needs to be retrieved + Name of the class for which API methods need to be displayed -Return value: string | null +Return value: null | string Throws: @@ -171,7 +167,7 @@ public function __invoke(string $className, array $methodsNames): string|null; ```php @@ -192,7 +188,7 @@ public static function getName(): string; ```php @@ -208,5 +204,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/classes/DocumentedEntityWrapper_2.md b/docs/tech/03_renderer/classes/DocumentedEntityWrapper.md similarity index 98% rename from docs/tech/classes/DocumentedEntityWrapper_2.md rename to docs/tech/03_renderer/classes/DocumentedEntityWrapper.md index f5621eef..4a94b8bd 100644 --- a/docs/tech/classes/DocumentedEntityWrapper_2.md +++ b/docs/tech/03_renderer/classes/DocumentedEntityWrapper.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / DocumentedEntityWrapper
            + BumbleDocGen / Technical description of the project / Renderer / DocumentedEntityWrapper

            DocumentedEntityWrapper class: @@ -299,5 +298,3 @@ public function setParentDocFilePath(string $parentDocFilePath): void;
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/DocumentedEntityWrappersCollection.md b/docs/tech/03_renderer/classes/DocumentedEntityWrappersCollection.md similarity index 84% rename from docs/tech/3.renderer/classes/DocumentedEntityWrappersCollection.md rename to docs/tech/03_renderer/classes/DocumentedEntityWrappersCollection.md index d2cbd376..5fea8107 100644 --- a/docs/tech/3.renderer/classes/DocumentedEntityWrappersCollection.md +++ b/docs/tech/03_renderer/classes/DocumentedEntityWrappersCollection.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Renderer / DocumentedEntityWrappersCollection
            + BumbleDocGen / Technical description of the project / Renderer / DocumentedEntityWrappersCollection

            DocumentedEntityWrappersCollection class: @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Renderer\Context; -final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \Traversable, \Countable +final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \Countable ``` @@ -35,7 +34,7 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T
            1. count - - Count elements of an object
            2. +
            3. createAndAddDocumentedEntityWrapper
            4. @@ -44,7 +43,7 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T
            5. getIterator - - Retrieve an external iterator
            6. +
            @@ -119,19 +118,13 @@ public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext public function count(): int; ``` -
            Count elements of an object
            + Parameters: not specified Return value: int - -See: -
            @@ -173,7 +166,7 @@ public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\En Throws: @@ -212,27 +205,12 @@ public function getDocumentedEntitiesRelations(): array; public function getIterator(): \Generator; ``` -
            Retrieve an external iterator
            + Parameters: not specified Return value: \Generator -Throws: - - - -See: -

            - - \ No newline at end of file diff --git a/docs/tech/classes/DrawClassMap.md b/docs/tech/03_renderer/classes/DrawClassMap.md similarity index 79% rename from docs/tech/classes/DrawClassMap.md rename to docs/tech/03_renderer/classes/DrawClassMap.md index 7ed2a300..52bd63fe 100644 --- a/docs/tech/classes/DrawClassMap.md +++ b/docs/tech/03_renderer/classes/DrawClassMap.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / DrawClassMap
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / DrawClassMap

            - DrawClassMap class: + DrawClassMap class:

            @@ -21,12 +20,12 @@ final class DrawClassMap implements \BumbleDocGen\Core\Renderer\Twig\Function\Cu Examples of using: ```php -{{ drawClassMap(classEntityCollection.filterByPaths(['/src/Renderer'])) }} +{{ drawClassMap(phpEntities.filterByPaths(['/src/Renderer'])) }} ``` ```php -{{ drawClassMap(classEntityCollection) }} +{{ drawClassMap(phpEntities) }} ``` @@ -86,7 +85,7 @@ final class DrawClassMap implements \BumbleDocGen\Core\Renderer\Twig\Function\Cu ```php @@ -128,11 +127,11 @@ public function __construct(\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumen ```php -public function __invoke(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection ...$classEntityCollections): string; +public function __invoke(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection ...$entitiesCollections): string; ``` @@ -149,8 +148,8 @@ public function __invoke(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEn - $classEntityCollections (variadic) - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection + $entitiesCollections (variadic) + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection The collection of entities for which the class map will be generated @@ -164,14 +163,11 @@ public function __invoke(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEn
          81. \DI\NotFoundException
          82. -
          83. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
          84. -
          85. \DI\DependencyException
          86. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          87. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -182,7 +178,7 @@ public function __invoke(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEn ```php @@ -230,11 +226,11 @@ public function convertDirectoryStructureToFormattedString(array $structure, str ```php -public function getDirectoryStructure(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection ...$classEntityCollections): array; +public function getDirectoryStructure(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection ...$entitiesCollections): array; ``` @@ -251,8 +247,8 @@ public function getDirectoryStructure(\BumbleDocGen\LanguageHandler\Php\Parser\E - $classEntityCollections (variadic) - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection + $entitiesCollections (variadic) + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection - @@ -266,14 +262,11 @@ public function getDirectoryStructure(\BumbleDocGen\LanguageHandler\Php\Parser\E
          88. \DI\NotFoundException
          89. -
          90. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
          91. -
          92. \DI\DependencyException
          93. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          94. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -284,7 +277,7 @@ public function getDirectoryStructure(\BumbleDocGen\LanguageHandler\Php\Parser\E ```php @@ -305,7 +298,7 @@ public static function getName(): string; ```php @@ -321,5 +314,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/DrawDocumentationMenu.md b/docs/tech/03_renderer/classes/DrawDocumentationMenu.md similarity index 92% rename from docs/tech/1.configuration/classes/DrawDocumentationMenu.md rename to docs/tech/03_renderer/classes/DrawDocumentationMenu.md index 9d537a14..48dd97cd 100644 --- a/docs/tech/1.configuration/classes/DrawDocumentationMenu.md +++ b/docs/tech/03_renderer/classes/DrawDocumentationMenu.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / DrawDocumentationMenu
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / DrawDocumentationMenu

            DrawDocumentationMenu class: @@ -21,7 +20,7 @@ and all links with this page are recursively collected for it, after which the h See: @@ -196,7 +195,7 @@ public function __invoke(string|null $startPageKey = null, int|null $maxDeep = n \DI\DependencyException
          95. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          96. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -244,5 +243,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/DrawDocumentedEntityLink.md b/docs/tech/03_renderer/classes/DrawDocumentedEntityLink.md similarity index 86% rename from docs/tech/1.configuration/classes/DrawDocumentedEntityLink.md rename to docs/tech/03_renderer/classes/DrawDocumentedEntityLink.md index 90351755..2a73a6a7 100644 --- a/docs/tech/1.configuration/classes/DrawDocumentedEntityLink.md +++ b/docs/tech/03_renderer/classes/DrawDocumentedEntityLink.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Configuration files / DrawDocumentedEntityLink
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / DrawDocumentedEntityLink

            - DrawDocumentedEntityLink class: + DrawDocumentedEntityLink class:

            @@ -85,7 +84,7 @@ final class DrawDocumentedEntityLink implements \BumbleDocGen\Core\Renderer\Twig ```php @@ -122,7 +121,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumen ```php @@ -168,14 +167,11 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $e
          97. \DI\NotFoundException
          98. -
          99. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
          100. -
          101. \DI\DependencyException
          102. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          103. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -186,7 +182,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $e ```php @@ -207,7 +203,7 @@ public static function getName(): string; ```php @@ -223,5 +219,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/FileGetContents.md b/docs/tech/03_renderer/classes/FileGetContents.md similarity index 95% rename from docs/tech/1.configuration/classes/FileGetContents.md rename to docs/tech/03_renderer/classes/FileGetContents.md index d94ec513..1758b51e 100644 --- a/docs/tech/1.configuration/classes/FileGetContents.md +++ b/docs/tech/03_renderer/classes/FileGetContents.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / FileGetContents
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / FileGetContents

            FileGetContents class: @@ -199,5 +198,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/FixStrSize.md b/docs/tech/03_renderer/classes/FixStrSize.md similarity index 94% rename from docs/tech/1.configuration/classes/FixStrSize.md rename to docs/tech/03_renderer/classes/FixStrSize.md index 1e1c5851..029a7bd7 100644 --- a/docs/tech/1.configuration/classes/FixStrSize.md +++ b/docs/tech/03_renderer/classes/FixStrSize.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / FixStrSize
            + BumbleDocGen / Technical description of the project / Renderer / Template filters / FixStrSize

            FixStrSize class: @@ -149,5 +148,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/GeneratePageBreadcrumbs.md b/docs/tech/03_renderer/classes/GeneratePageBreadcrumbs.md similarity index 93% rename from docs/tech/1.configuration/classes/GeneratePageBreadcrumbs.md rename to docs/tech/03_renderer/classes/GeneratePageBreadcrumbs.md index e0b13380..0109274b 100644 --- a/docs/tech/1.configuration/classes/GeneratePageBreadcrumbs.md +++ b/docs/tech/03_renderer/classes/GeneratePageBreadcrumbs.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / GeneratePageBreadcrumbs
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / GeneratePageBreadcrumbs

            GeneratePageBreadcrumbs class: @@ -175,7 +174,7 @@ public function __invoke(string $currentPageTitle, string $templatePath, bool $s \DI\NotFoundException
          104. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          105. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -223,5 +222,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs_2.md b/docs/tech/03_renderer/classes/GeneratePageBreadcrumbs_2.md similarity index 93% rename from docs/tech/3.renderer/classes/GeneratePageBreadcrumbs_2.md rename to docs/tech/03_renderer/classes/GeneratePageBreadcrumbs_2.md index cbfa1200..39ccc052 100644 --- a/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs_2.md +++ b/docs/tech/03_renderer/classes/GeneratePageBreadcrumbs_2.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Renderer / Documentation structure and breadcrumbs / GeneratePageBreadcrumbs
            + BumbleDocGen / Technical description of the project / Renderer / Documentation structure and breadcrumbs / GeneratePageBreadcrumbs

            GeneratePageBreadcrumbs class: @@ -175,7 +174,7 @@ public function __invoke(string $currentPageTitle, string $templatePath, bool $s \DI\NotFoundException
          106. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          107. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -223,5 +222,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/classes/GetClassMethodsBodyCode.md b/docs/tech/03_renderer/classes/GetClassMethodsBodyCode.md similarity index 83% rename from docs/tech/classes/GetClassMethodsBodyCode.md rename to docs/tech/03_renderer/classes/GetClassMethodsBodyCode.md index 98395caf..0ae3a972 100644 --- a/docs/tech/classes/GetClassMethodsBodyCode.md +++ b/docs/tech/03_renderer/classes/GetClassMethodsBodyCode.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / GetClassMethodsBodyCode
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / GetClassMethodsBodyCode

            - GetClassMethodsBodyCode class: + GetClassMethodsBodyCode class:

            @@ -75,7 +74,7 @@ final class GetClassMethodsBodyCode implements \BumbleDocGen\Core\Renderer\Twig\ ```php @@ -112,11 +111,11 @@ public function __construct(\BumbleDocGen\Core\Parser\Entity\RootEntityCollectio ```php -public function __invoke(string $className, array $methodsNames): string|null; +public function __invoke(string $className, array $methodsNames): null|string; ``` @@ -145,14 +144,11 @@ public function __invoke(string $className, array $methodsNames): string|null; -Return value: string | null +Return value: null | string Throws: @@ -171,7 +167,7 @@ public function __invoke(string $className, array $methodsNames): string|null; ```php @@ -192,7 +188,7 @@ public static function getName(): string; ```php @@ -208,5 +204,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/GetDocumentationPageUrl.md b/docs/tech/03_renderer/classes/GetDocumentationPageUrl.md similarity index 92% rename from docs/tech/1.configuration/classes/GetDocumentationPageUrl.md rename to docs/tech/03_renderer/classes/GetDocumentationPageUrl.md index 79c2c4cb..af605e97 100644 --- a/docs/tech/1.configuration/classes/GetDocumentationPageUrl.md +++ b/docs/tech/03_renderer/classes/GetDocumentationPageUrl.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / GetDocumentationPageUrl
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / GetDocumentationPageUrl

            GetDocumentationPageUrl class: @@ -177,7 +176,7 @@ public function __invoke(string $key): string; \DI\DependencyException
          108. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          109. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          110. \DI\NotFoundException
          111. @@ -228,5 +227,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/GetDocumentedEntityUrl.md b/docs/tech/03_renderer/classes/GetDocumentedEntityUrl.md similarity index 81% rename from docs/tech/1.configuration/classes/GetDocumentedEntityUrl.md rename to docs/tech/03_renderer/classes/GetDocumentedEntityUrl.md index 2a57a65e..5fd48c82 100644 --- a/docs/tech/1.configuration/classes/GetDocumentedEntityUrl.md +++ b/docs/tech/03_renderer/classes/GetDocumentedEntityUrl.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Configuration files / GetDocumentedEntityUrl
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / GetDocumentedEntityUrl

            - GetDocumentedEntityUrl class: + GetDocumentedEntityUrl class:

            @@ -21,30 +20,30 @@ the `EntityDocRendererInterface::getDocFileExtension()` directory will be create See: Examples of using: ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} The function returns a reference to the documented entity, anchored to the getFunctions method ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} The function returns a reference to the documented entity MainExtension ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} The function returns a link to the file MainExtension ``` @@ -91,7 +90,7 @@ The function returns a link to the file MainExtension @@ -106,7 +105,7 @@ The function returns a link to the file MainExtension ```php @@ -158,7 +157,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $renderer ```php @@ -211,14 +210,11 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ \DI\DependencyException
          112. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          113. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          114. \DI\NotFoundException
          115. -
          116. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
          117. - @@ -228,7 +224,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ ```php @@ -249,7 +245,7 @@ public static function getName(): string; ```php @@ -265,5 +261,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_2.md b/docs/tech/03_renderer/classes/GetDocumentedEntityUrl_2.md similarity index 80% rename from docs/tech/3.renderer/classes/GetDocumentedEntityUrl_2.md rename to docs/tech/03_renderer/classes/GetDocumentedEntityUrl_2.md index 2ce0dbe3..1030ccf4 100644 --- a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_2.md +++ b/docs/tech/03_renderer/classes/GetDocumentedEntityUrl_2.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / GetDocumentedEntityUrl
            + BumbleDocGen / Technical description of the project / Renderer / GetDocumentedEntityUrl

            - GetDocumentedEntityUrl class: + GetDocumentedEntityUrl class:

            @@ -21,30 +20,30 @@ the `EntityDocRendererInterface::getDocFileExtension()` directory will be create See: Examples of using: ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} The function returns a reference to the documented entity, anchored to the getFunctions method ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} The function returns a reference to the documented entity MainExtension ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} The function returns a link to the file MainExtension ``` @@ -91,7 +90,7 @@ The function returns a link to the file MainExtension @@ -106,7 +105,7 @@ The function returns a link to the file MainExtension ```php @@ -158,7 +157,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $renderer ```php @@ -211,14 +210,11 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ \DI\DependencyException
          118. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          119. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          120. \DI\NotFoundException
          121. -
          122. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
          123. - @@ -228,7 +224,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ ```php @@ -249,7 +245,7 @@ public static function getName(): string; ```php @@ -265,5 +261,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/TextToCodeBlock.md b/docs/tech/03_renderer/classes/Implode.md similarity index 65% rename from docs/tech/3.renderer/classes/TextToCodeBlock.md rename to docs/tech/03_renderer/classes/Implode.md index e24d5d55..66445405 100644 --- a/docs/tech/3.renderer/classes/TextToCodeBlock.md +++ b/docs/tech/03_renderer/classes/Implode.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / TextToCodeBlock
            + BumbleDocGen / Technical description of the project / Renderer / Template filters / Implode

            - TextToCodeBlock class: + Implode class:

            @@ -12,10 +11,16 @@ ```php namespace BumbleDocGen\Core\Renderer\Twig\Filter; -final class TextToCodeBlock implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface +final class Implode implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface ``` -
            Convert text to code block
            +
            Join array elements with a string
            + +See: + @@ -29,7 +34,7 @@ final class TextToCodeBlock implements \BumbleDocGen\Core\Renderer\Twig\Filter\C Filter name: - textToCodeBlock + implode @@ -64,11 +69,11 @@ final class TextToCodeBlock implements \BumbleDocGen\Core\Renderer\Twig\Filter\C ```php -public function __invoke(string $text, string $codeBlockType): string; +public function __invoke(array $elements, string $separator = ', '): string; ``` @@ -85,14 +90,14 @@ public function __invoke(string $text, string $codeBlockType): string; - $text - string - Processed text + $elements + array + The array to implode - $codeBlockType + $separator string - Code block type (e.g. php or console ) + Element separator in result string @@ -107,7 +112,7 @@ public function __invoke(string $text, string $codeBlockType): string; ```php @@ -128,7 +133,7 @@ public static function getName(): string; ```php @@ -144,5 +149,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/03_renderer/classes/InvalidConfigurationParameterException.md b/docs/tech/03_renderer/classes/InvalidConfigurationParameterException.md new file mode 100644 index 00000000..79d6a3b3 --- /dev/null +++ b/docs/tech/03_renderer/classes/InvalidConfigurationParameterException.md @@ -0,0 +1,31 @@ + BumbleDocGen / Technical description of the project / Renderer / InvalidConfigurationParameterException
            + +

            + InvalidConfigurationParameterException class: +

            + + + + + +```php +namespace BumbleDocGen\Core\Configuration\Exception; + +final class InvalidConfigurationParameterException extends \Exception +``` + + + + + + + + + + + + + + + + diff --git a/docs/tech/4.pluginSystem/classes/LoadPluginsContent.md b/docs/tech/03_renderer/classes/LoadPluginsContent.md similarity index 95% rename from docs/tech/4.pluginSystem/classes/LoadPluginsContent.md rename to docs/tech/03_renderer/classes/LoadPluginsContent.md index 86042ae0..c2dff34a 100644 --- a/docs/tech/4.pluginSystem/classes/LoadPluginsContent.md +++ b/docs/tech/03_renderer/classes/LoadPluginsContent.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Plugin system / LoadPluginsContent
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / LoadPluginsContent

            LoadPluginsContent class: @@ -197,5 +196,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/ClassEntityCollection_2.md b/docs/tech/03_renderer/classes/PhpEntitiesCollection.md similarity index 59% rename from docs/tech/3.renderer/classes/ClassEntityCollection_2.md rename to docs/tech/03_renderer/classes/PhpEntitiesCollection.md index b8e21b37..da8bcd02 100644 --- a/docs/tech/3.renderer/classes/ClassEntityCollection_2.md +++ b/docs/tech/03_renderer/classes/PhpEntitiesCollection.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / ClassEntityCollection
            + BumbleDocGen / Technical description of the project / Renderer / Template functions / PhpEntitiesCollection

            - ClassEntityCollection class: + PhpEntitiesCollection class:

            @@ -12,10 +11,10 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; -final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection implements \IteratorAggregate, \Traversable +final class PhpEntitiesCollection extends \BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection implements \IteratorAggregate ``` -
            Collection of PHP class entities
            +
            Collection of php root entities
            @@ -35,64 +34,58 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
            1. add -
            2. + - Add an entity to the collection
            3. clearOperationsLogCollection
            4. filterByInterfaces -
            5. + - Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
            6. filterByNameRegularExpression -
            7. + - Get a copy of the current collection with only entities whose names match the regular expression
            8. filterByParentClassNames -
            9. + - Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
            10. filterByPaths -
            11. + - Get a copy of the current collection only with entities filtered by file paths (from project_root)
            12. findEntity -
            13. + - Find an entity in a collection
            14. get -
            15. -
            16. - getEntityByClassName -
            17. + - Get an entity from a collection (only previously added)
            18. getEntityCollectionName -
            19. + - Get collection name
            20. getEntityLinkData
            21. getIterator - - Retrieve an external iterator
            22. +
            23. getLoadedOrCreateNew -
            24. + - Get an entity from the collection or create a new one if it has not yet been added
            25. getOnlyAbstractClasses -
            26. + - Get a copy of the current collection with only abstract classes
            27. getOnlyInstantiable -
            28. + - Get a copy of the current collection with only instantiable entities
            29. getOnlyInterfaces -
            30. + - Get a copy of the current collection with only interfaces
            31. getOnlyTraits -
            32. + - Get a copy of the current collection with only traits
            33. getOperationsLogCollection
            34. -
            35. - getPluginEventDispatcher -
            36. has -
            37. + - Check if an entity has been added to the collection
            38. internalFindEntity
            39. @@ -101,13 +94,22 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
            40. isEmpty -
            41. + - Check if the collection is empty or not
            42. - loadClassEntities -
            43. + loadEntities + - Load entities into a collection +
            44. + loadEntitiesByConfiguration + - Load entities into a collection by configuration
            45. remove + - Remove an entity from a collection
            46. +
            47. + removeAllNotLoadedEntities
            48. +
            49. + toArray + - Convert collection to array
            50. updateEntitiesCache
            51. @@ -118,7 +120,7 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga @@ -133,11 +135,11 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\EntityDocRendererHelper $docRendererHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Console\ProgressBar\ProgressBarFactory $progressBarFactory, \Symfony\Component\Console\Style\OutputStyle $io, \Psr\Log\LoggerInterface $logger); +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\EntityDocRendererHelper $docRendererHelper, \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper $phpParserHelper, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger); ``` @@ -162,11 +164,6 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $phpHandlerSettings \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings - - - - $parserHelper - \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper - - $pluginEventDispatcher @@ -184,18 +181,13 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf - - $localObjectCache - \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - - - - - $progressBarFactory - \BumbleDocGen\Console\ProgressBar\ProgressBarFactory + $phpParserHelper + \BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\PhpParserHelper - - $io - \Symfony\Component\Console\Style\OutputStyle + $localObjectCache + \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - @@ -215,14 +207,14 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php -public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
              Add an entity to the collection
              Parameters: @@ -237,7 +229,7 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - @@ -248,16 +240,13 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -291,14 +280,14 @@ public function clearOperationsLogCollection(): void; ```php -public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
              Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
              Parameters: @@ -319,16 +308,13 @@ public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHan -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -339,14 +325,14 @@ public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHan ```php -public function filterByNameRegularExpression(string $regexPattern): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByNameRegularExpression(string $regexPattern): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
              Get a copy of the current collection with only entities whose names match the regular expression
              Parameters: @@ -367,7 +353,7 @@ public function filterByNameRegularExpression(string $regexPattern): \BumbleDocG -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection @@ -377,14 +363,14 @@ public function filterByNameRegularExpression(string $regexPattern): \BumbleDocG ```php -public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
              Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
              Parameters: @@ -405,16 +391,13 @@ public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -425,14 +408,14 @@ public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen ```php -public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
              Get a copy of the current collection only with entities filtered by file paths (from project_root)
              Parameters: @@ -453,16 +436,13 @@ public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\P -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -479,10 +459,10 @@ public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\P ```php // Implemented in BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection -public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function findEntity(string $search, bool $useUnsafeKeys = true): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
              Find an entity in a collection
              Parameters: @@ -508,7 +488,7 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface @@ -524,10 +504,10 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD ```php // Implemented in BumbleDocGen\Core\Parser\Entity\LoggableRootEntityCollection -public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function get(string $objectName): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
              Get an entity from a collection (only previously added)
              Parameters: @@ -548,50 +528,7 @@ public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEn -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null - - - -
              -
              - - - -```php -public function getEntityByClassName(string $className, bool $createIfNotExists = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
              NameTypeDescription
              $classNamestring-
              $createIfNotExistsbool-
              - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface
              @@ -601,14 +538,14 @@ public function getEntityByClassName(string $className, bool $createIfNotExists ```php public function getEntityCollectionName(): string; ``` - +
              Get collection name
              Parameters: not specified @@ -622,7 +559,7 @@ public function getEntityCollectionName(): string; ```php @@ -680,26 +617,13 @@ public function getEntityLinkData(string $rawLink, string|null $defaultEntityNam public function getIterator(): \Generator; ``` -
              Retrieve an external iterator
              + Parameters: not specified Return value: \Generator -Throws: - - - -See: -
              @@ -716,7 +640,7 @@ public function getIterator(): \Generator; public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
              Get an entity from the collection or create a new one if it has not yet been added
              Parameters: @@ -749,7 +673,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit See:

              @@ -758,27 +682,24 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit ```php -public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
              Get a copy of the current collection with only abstract classes
              Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection Throws: @@ -789,29 +710,19 @@ public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Pars ```php -public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
              Get a copy of the current collection with only instantiable entities
              Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
              @@ -820,29 +731,19 @@ public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php -public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
              Get a copy of the current collection with only interfaces
              Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
              @@ -851,29 +752,19 @@ public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\En ```php -public function getOnlyTraits(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getOnlyTraits(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` - +
              Get a copy of the current collection with only traits
              Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -Throws: -
              @@ -898,27 +789,6 @@ public function getOperationsLogCollection(): \BumbleDocGen\Core\Parser\Entity\C Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection - -
              -
              - - - -```php -public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEventDispatcher; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Plugin\PluginEventDispatcher - -

              @@ -926,7 +796,7 @@ public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEven ```php @@ -935,7 +805,7 @@ public function getPluginEventDispatcher(): \BumbleDocGen\Core\Plugin\PluginEven public function has(string $objectName): bool; ``` - +
              Check if an entity has been added to the collection
              Parameters: @@ -966,11 +836,11 @@ public function has(string $objectName): bool; ```php -public function internalFindEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|null; +public function internalFindEntity(string $search, bool $useUnsafeKeys = true): null|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` @@ -1001,7 +871,7 @@ public function internalFindEntity(string $search, bool $useUnsafeKeys = true): -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | null +Return value: null | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity @@ -1009,14 +879,14 @@ public function internalFindEntity(string $search, bool $useUnsafeKeys = true): Examples of using: ```php -$classEntityCollection->findEntity('App'); // class name -$classEntityCollection->findEntity('BumbleDocGen\Console\App'); // class with namespace -$classEntityCollection->findEntity('\BumbleDocGen\Console\App'); // class with namespace -$classEntityCollection->findEntity('\BumbleDocGen\Console\App::test()'); // class with namespace and optional part -$classEntityCollection->findEntity('App.php'); // filename -$classEntityCollection->findEntity('/BumbleDocGen/Console/App.php'); // relative path -$classEntityCollection->findEntity('/Users/someuser/Desktop/projects/bumble-doc-gen/BumbleDocGen/Console/App.php'); // absolute path -$classEntityCollection->findEntity('https://github.com/bumble-tech/bumble-doc-gen/blob/master/BumbleDocGen/Console/App.php'); // source link +$entitiesCollection->findEntity('App'); // class name +$entitiesCollection->findEntity('BumbleDocGen\Console\App'); // class with namespace +$entitiesCollection->findEntity('\BumbleDocGen\Console\App'); // class with namespace +$entitiesCollection->findEntity('\BumbleDocGen\Console\App::test()'); // class with namespace and optional part +$entitiesCollection->findEntity('App.php'); // filename +$entitiesCollection->findEntity('/src/Console/App.php'); // relative path +$entitiesCollection->findEntity('/Users/someuser/Desktop/projects/bumble-doc-gen/src/Console/App.php'); // absolute path +$entitiesCollection->findEntity('https://github.com/bumble-tech/bumble-doc-gen/blob/master/src/Console/App.php'); // source link ```
              @@ -1026,11 +896,11 @@ $classEntityCollection->findEntity('https://github.com/bumble-tech/bumble-doc-ge ```php -public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` @@ -1059,7 +929,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity Throws: @@ -1070,6 +940,9 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl
            52. \DI\NotFoundException
            53. +
            54. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
            55. + @@ -1079,7 +952,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl ```php @@ -1088,7 +961,7 @@ public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddCl public function isEmpty(): bool; ``` - +
              Check if the collection is empty or not
              Parameters: not specified @@ -1100,35 +973,116 @@ public function isEmpty(): bool;
              ```php -public function loadClassEntities(): void; +public function loadEntities(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection $sourceLocatorsCollection, \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface|null $filters = null, \BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; ``` +
              Load entities into a collection
              +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + + + + + + + + + + + +
              NameTypeDescription
              $sourceLocatorsCollection\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection-
              $filters\BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface | null-
              $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
              -Return value: void +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult Throws: + +
              +
              +
              + +
                +
              • # + loadEntitiesByConfiguration + :warning: Is internal | source code
              • +
              + +```php +public function loadEntitiesByConfiguration(\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; +``` + +
              Load entities into a collection by configuration
              + +Parameters: + + + + + + + + + + + + + + + + +
              NameTypeDescription
              $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
              + +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult + + +Throws: + @@ -1139,7 +1093,7 @@ public function loadClassEntities(): void; ```php @@ -1148,7 +1102,7 @@ public function loadClassEntities(): void; public function remove(string $objectName): void; ``` - +
              Remove an entity from a collection
              Parameters: @@ -1172,6 +1126,52 @@ public function remove(string $objectName): void; Return value: void +
              +
              +
              + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection + +public function removeAllNotLoadedEntities(): void; +``` + + + +Parameters: not specified + +Return value: void + + +
              +
              +
              + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\RootEntityCollection + +public function toArray(): array; +``` + +
              Convert collection to array
              + +Parameters: not specified + +Return value: array + +

              @@ -1179,7 +1179,7 @@ public function remove(string $objectName): void; ```php @@ -1204,5 +1204,3 @@ public function updateEntitiesCache(): void;

              - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/PregMatch.md b/docs/tech/03_renderer/classes/PregMatch.md similarity index 94% rename from docs/tech/1.configuration/classes/PregMatch.md rename to docs/tech/03_renderer/classes/PregMatch.md index 0c0d6c54..0e2f971b 100644 --- a/docs/tech/1.configuration/classes/PregMatch.md +++ b/docs/tech/03_renderer/classes/PregMatch.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / PregMatch
              + BumbleDocGen / Technical description of the project / Renderer / Template filters / PregMatch

              PregMatch class: @@ -150,5 +149,3 @@ public static function getOptions(): array;
              - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/PrepareSourceLink.md b/docs/tech/03_renderer/classes/PrepareSourceLink.md similarity index 93% rename from docs/tech/1.configuration/classes/PrepareSourceLink.md rename to docs/tech/03_renderer/classes/PrepareSourceLink.md index 63e083a7..abb9f147 100644 --- a/docs/tech/1.configuration/classes/PrepareSourceLink.md +++ b/docs/tech/03_renderer/classes/PrepareSourceLink.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / PrepareSourceLink
              + BumbleDocGen / Technical description of the project / Renderer / Template filters / PrepareSourceLink

              PrepareSourceLink class: @@ -139,5 +138,3 @@ public static function getOptions(): array;
              - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/PrintEntityCollectionAsList.md b/docs/tech/03_renderer/classes/PrintEntityCollectionAsList.md similarity index 89% rename from docs/tech/1.configuration/classes/PrintEntityCollectionAsList.md rename to docs/tech/03_renderer/classes/PrintEntityCollectionAsList.md index 78e19920..d05b2538 100644 --- a/docs/tech/1.configuration/classes/PrintEntityCollectionAsList.md +++ b/docs/tech/03_renderer/classes/PrintEntityCollectionAsList.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / PrintEntityCollectionAsList
              + BumbleDocGen / Technical description of the project / Renderer / Template functions / PrintEntityCollectionAsList

              PrintEntityCollectionAsList class: @@ -21,13 +20,13 @@ final class PrintEntityCollectionAsList implements \BumbleDocGen\Core\Renderer\T Examples of using: ```php -{{ printEntityCollectionAsList(phpClassEntityCollection.filterByInterfaces(['ScriptFramework\\ScriptInterface', 'ScriptFramework\\TestScriptInterface'])) }} +{{ printEntityCollectionAsList(phpEntities.filterByInterfaces(['ScriptFramework\\ScriptInterface', 'ScriptFramework\\TestScriptInterface'])) }} The function will output a list of PHP classes that match the ScriptFramework\ScriptInterface and ScriptFramework\TestScriptInterface interfaces ``` ```php -{{ printEntityCollectionAsList(phpClassEntityCollection) }} +{{ printEntityCollectionAsList(phpEntities) }} The function will list all documented PHP classes ``` @@ -168,7 +167,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ Throws: @@ -216,5 +215,3 @@ public static function getOptions(): array;
              - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/Quotemeta.md b/docs/tech/03_renderer/classes/Quotemeta.md similarity index 93% rename from docs/tech/1.configuration/classes/Quotemeta.md rename to docs/tech/03_renderer/classes/Quotemeta.md index 1b3182e8..1f61c598 100644 --- a/docs/tech/1.configuration/classes/Quotemeta.md +++ b/docs/tech/03_renderer/classes/Quotemeta.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / Quotemeta
              + BumbleDocGen / Technical description of the project / Renderer / Template filters / Quotemeta

              Quotemeta class: @@ -145,5 +144,3 @@ public static function getOptions(): array;
              - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/RemoveLineBrakes.md b/docs/tech/03_renderer/classes/RemoveLineBrakes.md similarity index 93% rename from docs/tech/1.configuration/classes/RemoveLineBrakes.md rename to docs/tech/03_renderer/classes/RemoveLineBrakes.md index 9dff30be..6e98af5f 100644 --- a/docs/tech/1.configuration/classes/RemoveLineBrakes.md +++ b/docs/tech/03_renderer/classes/RemoveLineBrakes.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / RemoveLineBrakes
              + BumbleDocGen / Technical description of the project / Renderer / Template filters / RemoveLineBrakes

              RemoveLineBrakes class: @@ -139,5 +138,3 @@ public static function getOptions(): array;
              - - \ No newline at end of file diff --git a/docs/tech/classes/RendererContext_2.md b/docs/tech/03_renderer/classes/RendererContext.md similarity index 92% rename from docs/tech/classes/RendererContext_2.md rename to docs/tech/03_renderer/classes/RendererContext.md index 151654d5..90e8f0a4 100644 --- a/docs/tech/classes/RendererContext_2.md +++ b/docs/tech/03_renderer/classes/RendererContext.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / RendererContext
              + BumbleDocGen / Technical description of the project / Renderer / RendererContext

              RendererContext class: @@ -125,14 +124,14 @@ public function clearDependencies(): void; ```php -public function getCurrentDocumentedEntityWrapper(): \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper|null; +public function getCurrentDocumentedEntityWrapper(): null|\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper; ``` Parameters: not specified -Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper | null +Return value: null | \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper @@ -255,5 +254,3 @@ public function setCurrentTemplateFilePatch(string $currentTemplateFilePath): vo
              - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/RootEntityCollection.md b/docs/tech/03_renderer/classes/RootEntityCollection.md similarity index 57% rename from docs/tech/3.renderer/classes/RootEntityCollection.md rename to docs/tech/03_renderer/classes/RootEntityCollection.md index 57f757a4..2ba67046 100644 --- a/docs/tech/3.renderer/classes/RootEntityCollection.md +++ b/docs/tech/03_renderer/classes/RootEntityCollection.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / RootEntityCollection
              + BumbleDocGen / Technical description of the project / Renderer / Template functions / RootEntityCollection

              - RootEntityCollection class: + RootEntityCollection class:

              @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Parser\Entity; -abstract class RootEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable +abstract class RootEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate ``` @@ -28,31 +27,43 @@ abstract class RootEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Bas
              1. findEntity -
              2. + - Find an entity in a collection
              3. get -
              4. + - Get an entity from a collection (only previously added)
              5. getEntityCollectionName -
              6. + - Get collection name
              7. getEntityLinkData
              8. getIterator - - Retrieve an external iterator
              9. +
              10. getLoadedOrCreateNew -
              11. + - Get an entity from the collection or create a new one if it has not yet been added
              12. has -
              13. + - Check if an entity has been added to the collection
              14. isEmpty + - Check if the collection is empty or not
              15. +
              16. + loadEntities +
              17. +
              18. + loadEntitiesByConfiguration
              19. remove + - Remove an entity from a collection
              20. +
              21. + removeAllNotLoadedEntities
              22. +
              23. + toArray + - Convert collection to array
              24. updateEntitiesCache
              25. @@ -71,14 +82,14 @@ abstract class RootEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Bas ```php -public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function findEntity(string $search, bool $useUnsafeKeys = true): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
                Find an entity in a collection
                Parameters: @@ -104,7 +115,7 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface @@ -114,14 +125,14 @@ public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleD ```php -public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; +public function get(string $objectName): null|\BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
                Get an entity from a collection (only previously added)
                Parameters: @@ -142,7 +153,7 @@ public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEn -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null +Return value: null | \BumbleDocGen\Core\Parser\Entity\RootEntityInterface @@ -152,14 +163,14 @@ public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEn ```php public function getEntityCollectionName(): string; ``` - +
                Get collection name
                Parameters: not specified @@ -173,7 +184,7 @@ public function getEntityCollectionName(): string; ```php @@ -231,26 +242,13 @@ public function getEntityLinkData(string $rawLink, string|null $defaultEntityNam public function getIterator(): \Generator; ``` -
                Retrieve an external iterator
                + Parameters: not specified Return value: \Generator -Throws: - - - -See: -
                @@ -258,14 +256,14 @@ public function getIterator(): \Generator; ```php public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface; ``` - +
                Get an entity from the collection or create a new one if it has not yet been added
                Parameters: @@ -298,7 +296,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit See:

                @@ -307,7 +305,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit ```php @@ -316,7 +314,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit public function has(string $objectName): bool; ``` - +
                Check if an entity has been added to the collection
                Parameters: @@ -347,7 +345,7 @@ public function has(string $objectName): bool; ```php @@ -356,13 +354,99 @@ public function has(string $objectName): bool; public function isEmpty(): bool; ``` - +
                Check if the collection is empty or not
                Parameters: not specified Return value: bool + +
                +
                + + + +```php +public function loadEntities(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection $sourceLocatorsCollection, \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface|null $filters = null, \BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + +
                NameTypeDescription
                $sourceLocatorsCollection\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection-
                $filters\BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface | null-
                $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
                + +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult + + +
                +
                +
                + + + +```php +public function loadEntitiesByConfiguration(\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
                NameTypeDescription
                $progressBar\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface | null-
                + +Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLoadEntitiesResult + +

                @@ -370,7 +454,7 @@ public function isEmpty(): bool; ```php @@ -379,7 +463,7 @@ public function isEmpty(): bool; public function remove(string $objectName): void; ``` - +
                Remove an entity from a collection
                Parameters: @@ -403,6 +487,48 @@ public function remove(string $objectName): void; Return value: void +
                +
                +
                + + + +```php +public function removeAllNotLoadedEntities(): void; +``` + + + +Parameters: not specified + +Return value: void + + +
                +
                +
                + + + +```php +public function toArray(): array; +``` + +
                Convert collection to array
                + +Parameters: not specified + +Return value: array + +

                @@ -410,7 +536,7 @@ public function remove(string $objectName): void; ```php @@ -433,5 +559,3 @@ public function updateEntitiesCache(): void;

                - - \ No newline at end of file diff --git a/docs/tech/classes/RootEntityInterface.md b/docs/tech/03_renderer/classes/RootEntityInterface.md similarity index 73% rename from docs/tech/classes/RootEntityInterface.md rename to docs/tech/03_renderer/classes/RootEntityInterface.md index d581979c..d1d84406 100644 --- a/docs/tech/classes/RootEntityInterface.md +++ b/docs/tech/03_renderer/classes/RootEntityInterface.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / RootEntityInterface
                + BumbleDocGen / Technical description of the project / Renderer / Template functions / RootEntityInterface

                RootEntityInterface class: @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Parser\Entity; -interface RootEntityInterface extends \\BumbleDocGen\Core\Parser\Entity\EntityInterface implements \BumbleDocGen\Core\Parser\Entity\EntityInterface +interface RootEntityInterface extends \BumbleDocGen\Core\Parser\Entity\EntityInterface ```
                Since the documentation generator supports several programming languages, @@ -27,12 +26,6 @@ their entities need to correspond to the same interfaces

                Methods:

                  -
                1. - entityCacheIsOutdated -
                2. -
                3. - entityDataCanBeLoaded - - Checking if it is possible to get the entity data
                4. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
                5. @@ -42,24 +35,30 @@ their entities need to correspond to the same interfaces
                6. getFileContent
                7. -
                8. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
                9. getFileSourceLink
                10. getName -
                11. + - Full name of the entity
                12. getObjectId -
                13. + - Entity object ID +
                14. + getRelativeFileName + - File name relative to project_root configuration parameter
                15. getRootEntityCollection - Get parent collection of entities
                16. getShortName + - Short name of the entity
                17. +
                18. + isEntityCacheOutdated
                19. +
                20. + isEntityDataCanBeLoaded + - Checking if it is possible to get the entity data
                21. isEntityNameValid - Check if entity name is valid
                22. @@ -69,6 +68,9 @@ their entities need to correspond to the same interfaces
                23. isInGit - The entity file is in the git repository
                24. +
                25. + normalizeClassName +
                @@ -81,67 +83,23 @@ their entities need to correspond to the same interfaces
                - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function entityDataCanBeLoaded(): bool; -``` - -
                Checking if it is possible to get the entity data
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - ```php // Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface -public function getAbsoluteFileName(): string|null; +public function getAbsoluteFileName(): null|string; ```
                Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
                Parameters: not specified -Return value: string | null +Return value: null | string
                @@ -151,7 +109,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -172,7 +130,7 @@ public function getEntityDependencies(): array; ```php @@ -186,29 +144,6 @@ public function getFileContent(): string; Return value: string - -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getFileName(): string|null; -``` - -
                Returns the relative path to a file if it can be retrieved and if the file is in the project directory
                - -Parameters: not specified - -Return value: string | null - -

                @@ -216,11 +151,11 @@ public function getFileName(): string|null; ```php -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -244,7 +179,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string
                @@ -254,7 +189,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -263,7 +198,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getName(): string; ``` - +
                Full name of the entity
                Parameters: not specified @@ -277,7 +212,7 @@ public function getName(): string; ```php @@ -286,7 +221,7 @@ public function getName(): string; public function getObjectId(): string; ``` - +
                Entity object ID
                Parameters: not specified @@ -297,10 +232,39 @@ public function getObjectId(): string;
                + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +public function getRelativeFileName(): null|string; +``` + +
                File name relative to project_root configuration parameter
                + +Parameters: not specified + +Return value: null | string + + + +See: + +
                +
                +
                + ```php @@ -323,7 +287,7 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root ```php @@ -332,13 +296,57 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root public function getShortName(): string; ``` - +
                Short name of the entity
                Parameters: not specified Return value: string +
                +
                +
                + +
                  +
                • # + isEntityCacheOutdated + :warning: Is internal | source code
                • +
                + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +public function isEntityCacheOutdated(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
                +
                +
                + + + +```php +public function isEntityDataCanBeLoaded(): bool; +``` + +
                Checking if it is possible to get the entity data
                + +Parameters: not specified + +Return value: bool + +

                @@ -346,7 +354,7 @@ public function getShortName(): string; ```php @@ -384,7 +392,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php @@ -405,7 +413,7 @@ public function isExternalLibraryEntity(): bool; ```php @@ -421,5 +429,41 @@ public function isInGit(): bool;

                +
                - \ No newline at end of file + + +```php +public static function normalizeClassName(string $name): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
                NameTypeDescription
                $namestring-
                + +Return value: string + + +
                +
                diff --git a/docs/tech/classes/RootEntityInterface_2.md b/docs/tech/03_renderer/classes/RootEntityInterface_2.md similarity index 74% rename from docs/tech/classes/RootEntityInterface_2.md rename to docs/tech/03_renderer/classes/RootEntityInterface_2.md index 68e688c4..2e9bf66c 100644 --- a/docs/tech/classes/RootEntityInterface_2.md +++ b/docs/tech/03_renderer/classes/RootEntityInterface_2.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / RootEntityInterface
                + BumbleDocGen / Technical description of the project / Renderer / RootEntityInterface

                RootEntityInterface class: @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Parser\Entity; -interface RootEntityInterface extends \\BumbleDocGen\Core\Parser\Entity\EntityInterface implements \BumbleDocGen\Core\Parser\Entity\EntityInterface +interface RootEntityInterface extends \BumbleDocGen\Core\Parser\Entity\EntityInterface ```
                Since the documentation generator supports several programming languages, @@ -27,12 +26,6 @@ their entities need to correspond to the same interfaces

                Methods:

                  -
                1. - entityCacheIsOutdated -
                2. -
                3. - entityDataCanBeLoaded - - Checking if it is possible to get the entity data
                4. getAbsoluteFileName - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
                5. @@ -42,24 +35,30 @@ their entities need to correspond to the same interfaces
                6. getFileContent
                7. -
                8. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
                9. getFileSourceLink
                10. getName -
                11. + - Full name of the entity
                12. getObjectId -
                13. + - Entity object ID +
                14. + getRelativeFileName + - File name relative to project_root configuration parameter
                15. getRootEntityCollection - Get parent collection of entities
                16. getShortName + - Short name of the entity
                17. +
                18. + isEntityCacheOutdated
                19. +
                20. + isEntityDataCanBeLoaded + - Checking if it is possible to get the entity data
                21. isEntityNameValid - Check if entity name is valid
                22. @@ -69,6 +68,9 @@ their entities need to correspond to the same interfaces
                23. isInGit - The entity file is in the git repository
                24. +
                25. + normalizeClassName +
                @@ -81,67 +83,23 @@ their entities need to correspond to the same interfaces
                - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function entityDataCanBeLoaded(): bool; -``` - -
                Checking if it is possible to get the entity data
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - ```php // Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface -public function getAbsoluteFileName(): string|null; +public function getAbsoluteFileName(): null|string; ```
                Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
                Parameters: not specified -Return value: string | null +Return value: null | string
                @@ -151,7 +109,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -172,7 +130,7 @@ public function getEntityDependencies(): array; ```php @@ -186,29 +144,6 @@ public function getFileContent(): string; Return value: string - -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getFileName(): string|null; -``` - -
                Returns the relative path to a file if it can be retrieved and if the file is in the project directory
                - -Parameters: not specified - -Return value: string | null - -

                @@ -216,11 +151,11 @@ public function getFileName(): string|null; ```php -public function getFileSourceLink(bool $withLine = true): string|null; +public function getFileSourceLink(bool $withLine = true): null|string; ``` @@ -244,7 +179,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; -Return value: string | null +Return value: null | string
                @@ -254,7 +189,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -263,7 +198,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; public function getName(): string; ``` - +
                Full name of the entity
                Parameters: not specified @@ -277,7 +212,7 @@ public function getName(): string; ```php @@ -286,7 +221,7 @@ public function getName(): string; public function getObjectId(): string; ``` - +
                Entity object ID
                Parameters: not specified @@ -297,10 +232,39 @@ public function getObjectId(): string;
                + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +public function getRelativeFileName(): null|string; +``` + +
                File name relative to project_root configuration parameter
                + +Parameters: not specified + +Return value: null | string + + + +See: + +
                +
                +
                + ```php @@ -323,7 +287,7 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root ```php @@ -332,13 +296,57 @@ public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\Root public function getShortName(): string; ``` - +
                Short name of the entity
                Parameters: not specified Return value: string +
                +
                +
                + +
                  +
                • # + isEntityCacheOutdated + :warning: Is internal | source code
                • +
                + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +public function isEntityCacheOutdated(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
                +
                +
                + + + +```php +public function isEntityDataCanBeLoaded(): bool; +``` + +
                Checking if it is possible to get the entity data
                + +Parameters: not specified + +Return value: bool + +

                @@ -346,7 +354,7 @@ public function getShortName(): string; ```php @@ -384,7 +392,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php @@ -405,7 +413,7 @@ public function isExternalLibraryEntity(): bool; ```php @@ -421,5 +429,41 @@ public function isInGit(): bool;

                +
                - \ No newline at end of file + + +```php +public static function normalizeClassName(string $name): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
                NameTypeDescription
                $namestring-
                + +Return value: string + + +
                +
                diff --git a/docs/tech/1.configuration/classes/StrTypeToUrl.md b/docs/tech/03_renderer/classes/StrTypeToUrl.md similarity index 93% rename from docs/tech/1.configuration/classes/StrTypeToUrl.md rename to docs/tech/03_renderer/classes/StrTypeToUrl.md index cda69c1d..19669341 100644 --- a/docs/tech/1.configuration/classes/StrTypeToUrl.md +++ b/docs/tech/03_renderer/classes/StrTypeToUrl.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / StrTypeToUrl
                + BumbleDocGen / Technical description of the project / Renderer / Template filters / StrTypeToUrl

                StrTypeToUrl class: @@ -20,7 +19,7 @@ final class StrTypeToUrl implements \BumbleDocGen\Core\Renderer\Twig\Filter\Cust See: @@ -214,5 +213,3 @@ public static function getOptions(): array;
                - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/TextToCodeBlock.md b/docs/tech/03_renderer/classes/TextToCodeBlock.md similarity index 93% rename from docs/tech/1.configuration/classes/TextToCodeBlock.md rename to docs/tech/03_renderer/classes/TextToCodeBlock.md index 5e39cde4..60d661ef 100644 --- a/docs/tech/1.configuration/classes/TextToCodeBlock.md +++ b/docs/tech/03_renderer/classes/TextToCodeBlock.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / TextToCodeBlock
                + BumbleDocGen / Technical description of the project / Renderer / Template filters / TextToCodeBlock

                TextToCodeBlock class: @@ -144,5 +143,3 @@ public static function getOptions(): array;
                - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/TextToHeading.md b/docs/tech/03_renderer/classes/TextToHeading.md similarity index 93% rename from docs/tech/1.configuration/classes/TextToHeading.md rename to docs/tech/03_renderer/classes/TextToHeading.md index 3b4bd050..e0b5cf0a 100644 --- a/docs/tech/1.configuration/classes/TextToHeading.md +++ b/docs/tech/03_renderer/classes/TextToHeading.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / TextToHeading
                + BumbleDocGen / Technical description of the project / Renderer / Template filters / TextToHeading

                TextToHeading class: @@ -144,5 +143,3 @@ public static function getOptions(): array;
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/readme.md b/docs/tech/03_renderer/readme.md similarity index 66% rename from docs/tech/3.renderer/readme.md rename to docs/tech/03_renderer/readme.md index 800c1393..63222f4f 100644 --- a/docs/tech/3.renderer/readme.md +++ b/docs/tech/03_renderer/readme.md @@ -10,7 +10,7 @@ We use twig to process templates.

                More detailed description of renderer components

                - +

                Starting the rendering process

                @@ -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: Mon Nov 06 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 Jan 12 18:53:16 2024 +0300
                Page content update date: Mon Jan 15 2024
                Made with Bumble Documentation Generator \ No newline at end of file diff --git a/docs/tech/04_pluginSystem.md b/docs/tech/04_pluginSystem.md new file mode 100644 index 00000000..d9276374 --- /dev/null +++ b/docs/tech/04_pluginSystem.md @@ -0,0 +1,208 @@ + BumbleDocGen / Technical description of the project / Plugin system
                + +

                Plugin system

                + +The documentation generator includes the ability to expand the functionality using plugins that allow you to add the necessary functionality to the system without changing its core. + +The system is built on the basis of an event model, each plugin class must implement PluginInterface. + +

                Configuration example

                + +You can add your plugins to the configuration like this: + +```yaml +plugins: + - class: \SelfDocConfig\Plugin\TwigFilterClassParser\TwigFilterClassParserPlugin + - class: \SelfDocConfig\Plugin\TwigFunctionClassParser\TwigFunctionClassParserPlugin +``` + +

                Default plugins

                + +Below are the plugins that are available by default when working with the library. +Plugins for any programming languages work regardless of which language handler is configured in the configuration. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                PluginPLHandles eventsDescription
                LastPageCommitterany + + Plugin for adding a block with information about the last commit and date of page update to the generated document
                PageHtmlLinkerPluginany + + 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
                PageLinkerPluginany + + 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
                PageRstLinkerPluginany + + Adds URLs to empty links in rst 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
                BasePhpStubberPluginPHP + + Adding links to type documentation and documentation of built-in PHP classes
                PhpDocumentorStubberPluginPHP + + Adding links to the documentation of PHP classes in the \phpDocumentor namespace
                PhpUnitStubberPluginPHP + + Adding links to the documentation of PHP classes in the \PHPUnit namespace
                StubberPluginPHP + + The plugin allows you to automatically provide links to github repositories for documented classes from libraries included in composer
                DauxPHP + +
                EntityDocUnifiedPlacePluginPHP + + This plugin changes the algorithm for saving entity documents. The standard system stores each file +in a directory next to the file where it was requested. This behavior changes and all documents are saved +in a separate directory structure, so they are not duplicated.
                + +

                Default events

                + + + +

                Adding a new plugin

                + +If you decide to add a new plugin, there are a few things you need to do: + +

                1) Add plugin class and implement events handling

                + +```php +namespace Demo\Plugin\DemoFakeResourceLinkPlugin; + +final class DemoFakeResourceLinkPlugin implements \BumbleDocGen\Core\Plugin\PluginInterface +{ + public static function getSubscribedEvents(): array + { + return [ + \BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink::class => 'onGettingResourceLink', + ]; + } + + public function onGettingResourceLink(OnGettingResourceLink $event): void + { + if (!$event->getResourceUrl()) { + $event->setResourceUrl("https://google.com"); + } + } +} +``` + +

                2) Add the new plugin to the configuration

                + +```yaml +plugins: + - class: \Demo\Plugin\DemoFakeResourceLinkPlugin\DemoFakeResourceLinkPlugin +``` + + +
                +
                +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
                Last modified date: Wed Jan 10 23:55:33 2024 +0300
                Page content update date: Mon Jan 15 2024
                Made with Bumble Documentation Generator
                \ No newline at end of file diff --git a/docs/tech/05_console.md b/docs/tech/05_console.md new file mode 100644 index 00000000..bcc4148b --- /dev/null +++ b/docs/tech/05_console.md @@ -0,0 +1,67 @@ + BumbleDocGen / Technical description of the project / Console app
                + +

                Console app

                + +The documentation generator provides the ability to work through a built-in console application. +It is available via composer: +```console +vendor/bin/bumbleDocGen list +``` + +We use [Symfony Console](https://github.com/symfony/console) as the basis of the console application. + +

                Built-in console commands

                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                CommandParametersDescription
                help[--format FORMAT]
                [--raw]
                [<command_name>]
                Display help for a command
                list[--raw]
                [--format FORMAT]
                [--short]
                [<namespace>]
                List commands
                generate[--as-html]
                [--project_root [PROJECT_ROOT]]
                [--templates_dir [TEMPLATES_DIR]]
                [--output_dir [OUTPUT_DIR]]
                [--cache_dir [CACHE_DIR]]
                [--use_shared_cache [USE_SHARED_CACHE]]
                Generate documentation
                serve[--as-html]
                [--dev-server-host [DEV-SERVER-HOST]]
                [--dev-server-port [DEV-SERVER-PORT]]
                [--project_root [PROJECT_ROOT]]
                [--templates_dir [TEMPLATES_DIR]]
                [--use_shared_cache [USE_SHARED_CACHE]]
                Serve documentation
                ai:generate-readme-template[--project_root [PROJECT_ROOT]]
                [--templates_dir [TEMPLATES_DIR]]
                [--cache_dir [CACHE_DIR]]
                [--ai_provider [AI_PROVIDER]]
                [--ai_api_key [AI_API_KEY]]
                [--ai_model [AI_MODEL]]
                Leverage AI to generate content for a project readme.md file.
                ai:add-doc-blocks[--project_root [PROJECT_ROOT]]
                [--templates_dir [TEMPLATES_DIR]]
                [--cache_dir [CACHE_DIR]]
                [--ai_provider [AI_PROVIDER]]
                [--ai_api_key [AI_API_KEY]]
                [--ai_model [AI_MODEL]]
                Leverage AI to insert missing doc blocks in code.
                configuration[<key>]Display list of configured plugins, programming language handlers, etc
                + +

                Adding a custom command

                + +The system allows you to add custom commands to a standard console application. +This can be done using a special configuration option additional_console_commands (see Configuration page). + +After adding a new command to the configuration, it will be available in the application. Each added command must inherit the `\Symfony\Component\Console\Command\Command` class + +
                +
                +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
                Last modified date: Thu Jan 11 13:50:48 2024 +0300
                Page content update date: Mon Jan 15 2024
                Made with Bumble Documentation Generator
                \ No newline at end of file diff --git a/docs/tech/06_debugging.md b/docs/tech/06_debugging.md new file mode 100644 index 00000000..7fa6640b --- /dev/null +++ b/docs/tech/06_debugging.md @@ -0,0 +1,25 @@ + BumbleDocGen / Technical description of the project / Debug documents
                + +

                Debug documents

                + +Our tool provides several options for debugging documentation. + +1) Firstly, after each generation of documents, you can make sure that the linking of documents was normal and no problems arose: after completing the documentation generation process, we display a list of all errors that occurred in the console: + + **Here is an example of error output:** + + + +2) To track exactly how documentation is generated, you can use the interactive mode: + + `vendor/bin/bumbleDocGen serve` - So that the generated documentation changes automatically with changes in templates + + **or** + + `vendor/bin/bumbleDocGen serve --as-html` - So that the generated documentation changes automatically with changes in templates and is displayed as HTML on the local development server +3) Logs are saved to a special file `last_run.log` which is located in the working directory + + +
                +
                +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
                Last modified date: Fri Jan 12 01:11:04 2024 +0300
                Page content update date: Mon Jan 15 2024
                Made with Bumble Documentation Generator
                \ No newline at end of file diff --git a/docs/tech/07_outputFormat.md b/docs/tech/07_outputFormat.md new file mode 100644 index 00000000..c36f6c2b --- /dev/null +++ b/docs/tech/07_outputFormat.md @@ -0,0 +1,40 @@ + BumbleDocGen / Technical description of the project / Output formats
                + +

                Output formats

                + +At the moment, the documentation generator is focused on creating documentation in two formats: [GitHub Flavored Markdown](https://github.github.com/gfm/) and HTML. +However, it is possible to create other files with some restrictions. + +1) Creating **GFM** documentation is possible both using a console application and using the built-in commands of the documentation generator. + + * Generate GFM doc by console command: + ```bash + # Generate GFM files ( see {output_dir}) + vendor/bin/bumbleDocGen generate + + # Serve GFM documentation ( see {output_dir}) + vendor/bin/bumbleDocGen serve + ``` + * Generate GFM doc by docGen PHP API: + ```php + # Generate GFM files ( see {output_dir}) + (new DocGeneratorFactory())->create($configFile)->generate(); + + # Serve GFM documentation ( see {output_dir}) + (new DocGeneratorFactory())->create($configFile)->serve(); + ``` + +2) Creating **HTML** documentation is only possible through a console application. The [Daux.io](https://daux.io/) library is used to generate HTML pages. + * Generate HTML doc by console command: + ```bash + # Generate static HTML files ( see {output_dir}/html) + vendor/bin/bumbleDocGen generate --as-html + + # Serve HTML documentation (see generated content in browser) + vendor/bin/bumbleDocGen serve --as-html + ``` + + +
                +
                +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
                Last modified date: Fri Jan 12 18:54:20 2024 +0300
                Page content update date: Mon Jan 15 2024
                Made with Bumble Documentation Generator
                \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/BasePageLinkProcessor.md b/docs/tech/1.configuration/classes/BasePageLinkProcessor.md deleted file mode 100644 index f3d6bd9e..00000000 --- a/docs/tech/1.configuration/classes/BasePageLinkProcessor.md +++ /dev/null @@ -1,125 +0,0 @@ - - BumbleDocGen / Technical description of the project / Configuration files / BasePageLinkProcessor
                - -

                - BasePageLinkProcessor class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\PageLinkProcessor; - -class BasePageLinkProcessor implements \BumbleDocGen\Core\Renderer\PageLinkProcessor\PageLinkProcessorInterface -``` - - - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getAbsoluteUrl -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $configuration\BumbleDocGen\Core\Configuration\Configuration-
                - - - -
                -
                -
                - - - -```php -public function getAbsoluteUrl(string $relativeUrl): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $relativeUrlstring-
                - -Return value: string - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/DocumentedEntityWrappersCollection.md b/docs/tech/1.configuration/classes/DocumentedEntityWrappersCollection.md deleted file mode 100644 index 6759727b..00000000 --- a/docs/tech/1.configuration/classes/DocumentedEntityWrappersCollection.md +++ /dev/null @@ -1,238 +0,0 @@ - - BumbleDocGen / Technical description of the project / Configuration files / DocumentedEntityWrappersCollection
                - -

                - DocumentedEntityWrappersCollection class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Context; - -final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \Traversable, \Countable -``` - - - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - count - - Count elements of an object
                2. -
                3. - createAndAddDocumentedEntityWrapper -
                4. -
                5. - getDocumentedEntitiesRelations -
                6. -
                7. - getIterator - - Retrieve an external iterator
                8. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $rendererContext, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper $breadcrumbsHelper, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $rendererContext\BumbleDocGen\Core\Renderer\Context\RendererContext-
                $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
                $breadcrumbsHelper\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper-
                $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
                - - - -
                -
                -
                - - - -```php -public function count(): int; -``` - -
                Count elements of an object
                - -Parameters: not specified - -Return value: int - - - -See: - -
                -
                -
                - - - -```php -public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $rootEntity): \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $rootEntity\BumbleDocGen\Core\Parser\Entity\RootEntityInterface-
                - -Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper - - -Throws: - - -
                -
                -
                - - - -```php -public function getDocumentedEntitiesRelations(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                -
                - - - -```php -public function getIterator(): \Generator; -``` - -
                Retrieve an external iterator
                - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/InvalidConfigurationParameterException.md b/docs/tech/1.configuration/classes/InvalidConfigurationParameterException.md deleted file mode 100644 index d3fa920e..00000000 --- a/docs/tech/1.configuration/classes/InvalidConfigurationParameterException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Configuration files / InvalidConfigurationParameterException
                - -

                - InvalidConfigurationParameterException class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Configuration\Exception; - -final class InvalidConfigurationParameterException extends \Exception implements \Throwable, \Stringable -``` - -
                Exception is the base class for -all Exceptions.
                - -See: - - - - - - - -

                Initialization methods:

                - -
                  -
                1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
                2. -
                - -

                Methods:

                - -
                  -
                1. - __toString - - String representation of the exception
                2. -
                3. - __wakeup -
                4. -
                5. - getCode - - Gets the Exception code
                6. -
                7. - getFile - - Gets the file in which the exception occurred
                8. -
                9. - getLine - - Gets the line in which the exception occurred
                10. -
                11. - getMessage - - Gets the Exception message
                12. -
                13. - getPrevious - - Returns previous Exception
                14. -
                15. - getTrace - - Gets the stack trace
                16. -
                17. - getTraceAsString - - Gets the stack trace as a string
                18. -
                - - - - - - - -

                Method details:

                - -
                - -
                  -
                • # - __construct -
                • -
                - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
                Construct the exception. Note: The message is NOT binary safe.
                - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $messagestring[optional] The Exception message to throw.
                $codeint[optional] The Exception code.
                $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
                - - - - -See: - -
                -
                -
                - -
                  -
                • # - __toString -
                • -
                - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
                String representation of the exception
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - __wakeup -
                • -
                - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
                -
                -
                - -
                  -
                • # - getCode -
                • -
                - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
                Gets the Exception code
                - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
                -
                -
                - -
                  -
                • # - getFile -
                • -
                - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
                Gets the file in which the exception occurred
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getLine -
                • -
                - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
                Gets the line in which the exception occurred
                - -Parameters: not specified - -Return value: int - - - -See: - -
                -
                -
                - -
                  -
                • # - getMessage -
                • -
                - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
                Gets the Exception message
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getPrevious -
                • -
                - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
                Returns previous Exception
                - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
                -
                -
                - -
                  -
                • # - getTrace -
                • -
                - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
                Gets the stack trace
                - -Parameters: not specified - -Return value: array - - - -See: - -
                -
                -
                - -
                  -
                • # - getTraceAsString -
                • -
                - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
                Gets the stack trace as a string
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/LoadPluginsContent.md b/docs/tech/1.configuration/classes/LoadPluginsContent.md deleted file mode 100644 index cc2c1850..00000000 --- a/docs/tech/1.configuration/classes/LoadPluginsContent.md +++ /dev/null @@ -1,201 +0,0 @@ - - BumbleDocGen / Technical description of the project / Configuration files / LoadPluginsContent
                - -

                - LoadPluginsContent class: -

                - - - - -:warning: Is internal -```php -namespace BumbleDocGen\Core\Renderer\Twig\Function; - -final class LoadPluginsContent implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface -``` - -
                Process entity template blocks with plugins. The method returns the content processed by plugins.
                - - -Examples of using: - -```php -{{ loadPluginsContent('some text', entity, constant('BumbleDocGen\\Plugin\\BaseTemplatePluginInterface::BLOCK_AFTER_HEADER')) }} - -``` - - - - -

                Settings:

                - - - - - - -
                Function name:loadPluginsContent
                - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
                - - - -
                -
                -
                - - - -```php -public function __invoke(string $content, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity, string $blockType): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $contentstringContent to be processed by plugins
                $entity\BumbleDocGen\Core\Parser\Entity\RootEntityInterfaceThe entity for which we process the content block
                $blockTypestringContent block type. @see BaseTemplatePluginInterface::BLOCK_*
                - -Return value: string - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/PageLinkerPlugin.md b/docs/tech/1.configuration/classes/PageLinkerPlugin.md deleted file mode 100644 index d5e696de..00000000 --- a/docs/tech/1.configuration/classes/PageLinkerPlugin.md +++ /dev/null @@ -1,216 +0,0 @@ - - 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/classes/ReflectionException.md b/docs/tech/1.configuration/classes/ReflectionException.md deleted file mode 100644 index 73e53d94..00000000 --- a/docs/tech/1.configuration/classes/ReflectionException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Configuration files / ReflectionException
                - -

                - ReflectionException class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception; - -final class ReflectionException extends \Exception implements \Throwable, \Stringable -``` - -
                Exception is the base class for -all Exceptions.
                - -See: - - - - - - - -

                Initialization methods:

                - -
                  -
                1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
                2. -
                - -

                Methods:

                - -
                  -
                1. - __toString - - String representation of the exception
                2. -
                3. - __wakeup -
                4. -
                5. - getCode - - Gets the Exception code
                6. -
                7. - getFile - - Gets the file in which the exception occurred
                8. -
                9. - getLine - - Gets the line in which the exception occurred
                10. -
                11. - getMessage - - Gets the Exception message
                12. -
                13. - getPrevious - - Returns previous Exception
                14. -
                15. - getTrace - - Gets the stack trace
                16. -
                17. - getTraceAsString - - Gets the stack trace as a string
                18. -
                - - - - - - - -

                Method details:

                - -
                - -
                  -
                • # - __construct -
                • -
                - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
                Construct the exception. Note: The message is NOT binary safe.
                - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $messagestring[optional] The Exception message to throw.
                $codeint[optional] The Exception code.
                $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
                - - - - -See: - -
                -
                -
                - -
                  -
                • # - __toString -
                • -
                - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
                String representation of the exception
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - __wakeup -
                • -
                - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
                -
                -
                - -
                  -
                • # - getCode -
                • -
                - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
                Gets the Exception code
                - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
                -
                -
                - -
                  -
                • # - getFile -
                • -
                - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
                Gets the file in which the exception occurred
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getLine -
                • -
                - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
                Gets the line in which the exception occurred
                - -Parameters: not specified - -Return value: int - - - -See: - -
                -
                -
                - -
                  -
                • # - getMessage -
                • -
                - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
                Gets the Exception message
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getPrevious -
                • -
                - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
                Returns previous Exception
                - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
                -
                -
                - -
                  -
                • # - getTrace -
                • -
                - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
                Gets the stack trace
                - -Parameters: not specified - -Return value: array - - - -See: - -
                -
                -
                - -
                  -
                • # - getTraceAsString -
                • -
                - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
                Gets the stack trace as a string
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/AsyncSourceLocator.md b/docs/tech/2.parser/classes/AsyncSourceLocator.md deleted file mode 100644 index b5ed8e9a..00000000 --- a/docs/tech/2.parser/classes/AsyncSourceLocator.md +++ /dev/null @@ -1,159 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Source locators / AsyncSourceLocator
                - -

                - AsyncSourceLocator class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator; - -final class AsyncSourceLocator implements \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface, \BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\CustomSourceLocatorInterface -``` - -
                Lazy loading classes. Cannot be used for initial parsing of files, only for getting specific documents
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getFinder -
                2. -
                3. - getSourceLocator -
                4. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, array $psr4FileMap, array $classMap); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
                $psr4FileMaparray-
                $classMaparray-
                - - - -
                -
                -
                - - - -```php -public function getFinder(): \Symfony\Component\Finder\Finder|null; -``` - - - -Parameters: not specified - -Return value: \Symfony\Component\Finder\Finder | null - - -
                -
                -
                - - - -```php -public function getSourceLocator(\Roave\BetterReflection\SourceLocator\Ast\Locator $astLocator): \Roave\BetterReflection\SourceLocator\Type\SourceLocator; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $astLocator\Roave\BetterReflection\SourceLocator\Ast\Locator-
                - -Return value: \Roave\BetterReflection\SourceLocator\Type\SourceLocator - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/ConditionGroup.md b/docs/tech/2.parser/classes/ConditionGroup.md deleted file mode 100644 index ad12e4d8..00000000 --- a/docs/tech/2.parser/classes/ConditionGroup.md +++ /dev/null @@ -1,131 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / ConditionGroup
                - -

                - ConditionGroup class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\FilterCondition; - -final class ConditionGroup implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Filter condition to group other filter conditions. A group can have an OR/AND condition test; -In the case of OR, it is enough to successfully check at least one condition, in the case of AND, all checks must be successfully completed.
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(string $groupType, \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface ...$conditions); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $groupTypestring-
                $conditions (variadic)\BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface-
                - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/ConditionInterface.md b/docs/tech/2.parser/classes/ConditionInterface.md deleted file mode 100644 index 9e894110..00000000 --- a/docs/tech/2.parser/classes/ConditionInterface.md +++ /dev/null @@ -1,81 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / ConditionInterface
                - -

                - ConditionInterface class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\FilterCondition; - -interface ConditionInterface -``` - - - - - - - - - -

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/ConstantEntityCollection.md b/docs/tech/2.parser/classes/ConstantEntityCollection.md deleted file mode 100644 index 13405e59..00000000 --- a/docs/tech/2.parser/classes/ConstantEntityCollection.md +++ /dev/null @@ -1,429 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / ConstantEntityCollection
                - -

                - ConstantEntityCollection class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; - -final class ConstantEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - add -
                2. -
                3. - get -
                4. -
                5. - getIterator - - Retrieve an external iterator
                6. -
                7. - has -
                8. -
                9. - isEmpty -
                10. -
                11. - loadConstantEntities -
                12. -
                13. - remove -
                14. -
                15. - unsafeGet -
                16. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
                $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
                $cacheablePhpEntityFactory\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory-
                - - - -
                -
                -
                - - - -```php -public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity $constantEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntityCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $constantEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity-
                $reloadbool-
                - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntityCollection - - -
                -
                -
                - - - -```php -public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity | null - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function getIterator(): \Generator; -``` - -
                Retrieve an external iterator
                - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function has(string $objectName): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function isEmpty(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function loadConstantEntities(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function remove(string $objectName): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function unsafeGet(string $constantName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $constantNamestring-
                - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity | null - - -Throws: - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/DirectoriesSourceLocator.md b/docs/tech/2.parser/classes/DirectoriesSourceLocator.md deleted file mode 100644 index 2d981778..00000000 --- a/docs/tech/2.parser/classes/DirectoriesSourceLocator.md +++ /dev/null @@ -1,110 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Source locators / DirectoriesSourceLocator
                - -

                - DirectoriesSourceLocator class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\SourceLocator; - -final class DirectoriesSourceLocator extends \BumbleDocGen\Core\Parser\SourceLocator\BaseSourceLocator implements \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface -``` - -
                Loads all files from the specified directory
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getFinder -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(array $directories); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $directoriesarray-
                - - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\SourceLocator\BaseSourceLocator - -public function getFinder(): \Symfony\Component\Finder\Finder; -``` - - - -Parameters: not specified - -Return value: \Symfony\Component\Finder\Finder - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/DynamicMethodEntity.md b/docs/tech/2.parser/classes/DynamicMethodEntity.md deleted file mode 100644 index 75630006..00000000 --- a/docs/tech/2.parser/classes/DynamicMethodEntity.md +++ /dev/null @@ -1,887 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / DynamicMethodEntity
                - -

                - DynamicMethodEntity class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; - -class DynamicMethodEntity implements \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface -``` - -
                Method obtained by parsing the "method" annotation
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - entityCacheIsOutdated -
                2. -
                3. - getAbsoluteFileName -
                4. -
                5. - getBodyCode -
                6. -
                7. - getCallMethod -
                8. -
                9. - getDescription -
                10. -
                11. - getEndLine -
                12. -
                13. - getFileName -
                14. -
                15. - getFirstReturnValue -
                16. -
                17. - getImplementingClass -
                18. -
                19. - getImplementingClassName -
                20. -
                21. - getImplementingReflectionClass -
                22. -
                23. - getModifiersString -
                24. -
                25. - getName -
                26. -
                27. - getNamespaceName -
                28. -
                29. - getObjectId -
                30. -
                31. - getParameters -
                32. -
                33. - getParametersString -
                34. -
                35. - getReturnType -
                36. -
                37. - getRootEntity -
                38. -
                39. - getRootEntityCollection - - Get parent collection of entities
                40. -
                41. - getShortName -
                42. -
                43. - getStartColumn -
                44. -
                45. - getStartLine -
                46. -
                47. - isDynamic -
                48. -
                49. - isInitialization -
                50. -
                51. - isPrivate -
                52. -
                53. - isProtected -
                54. -
                55. - isPublic -
                56. -
                57. - isStatic -
                58. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \phpDocumentor\Reflection\DocBlock\Tags\Method $annotationMethod); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $configuration\BumbleDocGen\Core\Configuration\Configuration-
                $parserHelper\BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper-
                $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
                $annotationMethod\phpDocumentor\Reflection\DocBlock\Tags\Method-
                - - - -
                -
                -
                - - - -```php -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function getAbsoluteFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - -Throws: - - -
                -
                -
                - - - -```php -public function getBodyCode(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getCallMethod(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity - - -Throws: - - -
                -
                -
                - - - -```php -public function getDescription(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getEndLine(): int; -``` - - - -Parameters: not specified - -Return value: int - - -Throws: - - -
                -
                -
                - - - -```php -public function getFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - -Throws: - - -
                -
                -
                - - - -```php -public function getFirstReturnValue(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
                -
                -
                - - - -```php -public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -
                -
                -
                - - - -```php -public function getImplementingClassName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -Throws: - - -
                -
                -
                - - - -```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: not specified - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: - - -
                -
                -
                - - - -```php -public function getModifiersString(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getNamespaceName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -Throws: - - -
                -
                -
                - - - -```php -public function getObjectId(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getParameters(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                -
                - - - -```php -public function getParametersString(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getReturnType(): string; -``` - - - -Parameters: not specified - -Return value: string - - -Throws: - - -
                -
                -
                - - - -```php -public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -
                -
                -
                - - - -```php -public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection; -``` - -
                Get parent collection of entities
                - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection - - -
                -
                -
                - - - -```php -public function getShortName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getStartColumn(): int; -``` - - - -Parameters: not specified - -Return value: int - - -Throws: - - -
                -
                -
                - - - -```php -public function getStartLine(): int; -``` - - - -Parameters: not specified - -Return value: int - - -Throws: - - -
                -
                -
                - - - -```php -public function isDynamic(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function isInitialization(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
                -
                -
                - - - -```php -public function isPrivate(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function isProtected(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function isPublic(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function isStatic(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/FalseCondition.md b/docs/tech/2.parser/classes/FalseCondition.md deleted file mode 100644 index dfd9997f..00000000 --- a/docs/tech/2.parser/classes/FalseCondition.md +++ /dev/null @@ -1,81 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / FalseCondition
                - -

                - FalseCondition class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\FilterCondition\CommonFilterCondition; - -final class FalseCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                False conditions, any object is not available
                - - - - - - - -

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/FileIteratorSourceLocator.md b/docs/tech/2.parser/classes/FileIteratorSourceLocator.md deleted file mode 100644 index c01f841a..00000000 --- a/docs/tech/2.parser/classes/FileIteratorSourceLocator.md +++ /dev/null @@ -1,110 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Source locators / FileIteratorSourceLocator
                - -

                - FileIteratorSourceLocator class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\SourceLocator; - -final class FileIteratorSourceLocator extends \BumbleDocGen\Core\Parser\SourceLocator\BaseSourceLocator implements \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface -``` - -
                Loads all files using an iterator
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getFinder -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\Iterator $fileInfoIterator); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $fileInfoIterator\Iterator-
                - - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\SourceLocator\BaseSourceLocator - -public function getFinder(): \Symfony\Component\Finder\Finder; -``` - - - -Parameters: not specified - -Return value: \Symfony\Component\Finder\Finder - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/FileTextContainsCondition.md b/docs/tech/2.parser/classes/FileTextContainsCondition.md deleted file mode 100644 index 63465ee0..00000000 --- a/docs/tech/2.parser/classes/FileTextContainsCondition.md +++ /dev/null @@ -1,125 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / FileTextContainsCondition
                - -

                - FileTextContainsCondition class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\FilterCondition\CommonFilterCondition; - -final class FileTextContainsCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Checking if a file contains a substring
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(string $substring); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $substringstring-
                - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/InvalidConfigurationParameterException.md b/docs/tech/2.parser/classes/InvalidConfigurationParameterException.md deleted file mode 100644 index c8d2be4e..00000000 --- a/docs/tech/2.parser/classes/InvalidConfigurationParameterException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / InvalidConfigurationParameterException
                - -

                - InvalidConfigurationParameterException class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Configuration\Exception; - -final class InvalidConfigurationParameterException extends \Exception implements \Throwable, \Stringable -``` - -
                Exception is the base class for -all Exceptions.
                - -See: - - - - - - - -

                Initialization methods:

                - -
                  -
                1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
                2. -
                - -

                Methods:

                - -
                  -
                1. - __toString - - String representation of the exception
                2. -
                3. - __wakeup -
                4. -
                5. - getCode - - Gets the Exception code
                6. -
                7. - getFile - - Gets the file in which the exception occurred
                8. -
                9. - getLine - - Gets the line in which the exception occurred
                10. -
                11. - getMessage - - Gets the Exception message
                12. -
                13. - getPrevious - - Returns previous Exception
                14. -
                15. - getTrace - - Gets the stack trace
                16. -
                17. - getTraceAsString - - Gets the stack trace as a string
                18. -
                - - - - - - - -

                Method details:

                - -
                - -
                  -
                • # - __construct -
                • -
                - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
                Construct the exception. Note: The message is NOT binary safe.
                - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $messagestring[optional] The Exception message to throw.
                $codeint[optional] The Exception code.
                $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
                - - - - -See: - -
                -
                -
                - -
                  -
                • # - __toString -
                • -
                - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
                String representation of the exception
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - __wakeup -
                • -
                - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
                -
                -
                - -
                  -
                • # - getCode -
                • -
                - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
                Gets the Exception code
                - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
                -
                -
                - -
                  -
                • # - getFile -
                • -
                - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
                Gets the file in which the exception occurred
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getLine -
                • -
                - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
                Gets the line in which the exception occurred
                - -Parameters: not specified - -Return value: int - - - -See: - -
                -
                -
                - -
                  -
                • # - getMessage -
                • -
                - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
                Gets the Exception message
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getPrevious -
                • -
                - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
                Returns previous Exception
                - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
                -
                -
                - -
                  -
                • # - getTrace -
                • -
                - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
                Gets the stack trace
                - -Parameters: not specified - -Return value: array - - - -See: - -
                -
                -
                - -
                  -
                • # - getTraceAsString -
                • -
                - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
                Gets the stack trace as a string
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/IsPrivateCondition.md b/docs/tech/2.parser/classes/IsPrivateCondition.md deleted file mode 100644 index ff5141f1..00000000 --- a/docs/tech/2.parser/classes/IsPrivateCondition.md +++ /dev/null @@ -1,108 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPrivateCondition
                - -

                - IsPrivateCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition; - -final class IsPrivateCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Check is a private constant or not
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/IsPrivateCondition_2.md b/docs/tech/2.parser/classes/IsPrivateCondition_2.md deleted file mode 100644 index 4cc8afd7..00000000 --- a/docs/tech/2.parser/classes/IsPrivateCondition_2.md +++ /dev/null @@ -1,108 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPrivateCondition
                - -

                - IsPrivateCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition; - -final class IsPrivateCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Check is a private method or not
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/IsPrivateCondition_3.md b/docs/tech/2.parser/classes/IsPrivateCondition_3.md deleted file mode 100644 index d2439ee5..00000000 --- a/docs/tech/2.parser/classes/IsPrivateCondition_3.md +++ /dev/null @@ -1,108 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPrivateCondition
                - -

                - IsPrivateCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition; - -final class IsPrivateCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Check is a private property or not
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/IsProtectedCondition.md b/docs/tech/2.parser/classes/IsProtectedCondition.md deleted file mode 100644 index 4c045b51..00000000 --- a/docs/tech/2.parser/classes/IsProtectedCondition.md +++ /dev/null @@ -1,108 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsProtectedCondition
                - -

                - IsProtectedCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition; - -final class IsProtectedCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Check is a protected constant or not
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/IsProtectedCondition_2.md b/docs/tech/2.parser/classes/IsProtectedCondition_2.md deleted file mode 100644 index a76e0135..00000000 --- a/docs/tech/2.parser/classes/IsProtectedCondition_2.md +++ /dev/null @@ -1,108 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsProtectedCondition
                - -

                - IsProtectedCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition; - -final class IsProtectedCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Check is a protected method or not
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/IsProtectedCondition_3.md b/docs/tech/2.parser/classes/IsProtectedCondition_3.md deleted file mode 100644 index e2e2beb9..00000000 --- a/docs/tech/2.parser/classes/IsProtectedCondition_3.md +++ /dev/null @@ -1,108 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsProtectedCondition
                - -

                - IsProtectedCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition; - -final class IsProtectedCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Check is a protected property or not
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/IsPublicCondition.md b/docs/tech/2.parser/classes/IsPublicCondition.md deleted file mode 100644 index e2f61b40..00000000 --- a/docs/tech/2.parser/classes/IsPublicCondition.md +++ /dev/null @@ -1,108 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPublicCondition
                - -

                - IsPublicCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition; - -final class IsPublicCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Check is a public constant or not
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/IsPublicCondition_2.md b/docs/tech/2.parser/classes/IsPublicCondition_2.md deleted file mode 100644 index 319c2db1..00000000 --- a/docs/tech/2.parser/classes/IsPublicCondition_2.md +++ /dev/null @@ -1,108 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPublicCondition
                - -

                - IsPublicCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition; - -final class IsPublicCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Check is a public method or not
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/IsPublicCondition_3.md b/docs/tech/2.parser/classes/IsPublicCondition_3.md deleted file mode 100644 index f4eef9de..00000000 --- a/docs/tech/2.parser/classes/IsPublicCondition_3.md +++ /dev/null @@ -1,108 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / IsPublicCondition
                - -

                - IsPublicCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition; - -final class IsPublicCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Check is a public property or not
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/LocatedInCondition.md b/docs/tech/2.parser/classes/LocatedInCondition.md deleted file mode 100644 index 928c362e..00000000 --- a/docs/tech/2.parser/classes/LocatedInCondition.md +++ /dev/null @@ -1,142 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / LocatedInCondition
                - -

                - LocatedInCondition class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\FilterCondition\CommonFilterCondition; - -final class LocatedInCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Checking the existence of an entity in the specified directories
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, array $directories = []); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $configuration\BumbleDocGen\Core\Configuration\Configuration-
                $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
                $directoriesarray-
                - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -Throws: - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/LocatedNotInCondition.md b/docs/tech/2.parser/classes/LocatedNotInCondition.md deleted file mode 100644 index 2becdf60..00000000 --- a/docs/tech/2.parser/classes/LocatedNotInCondition.md +++ /dev/null @@ -1,142 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / LocatedNotInCondition
                - -

                - LocatedNotInCondition class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\FilterCondition\CommonFilterCondition; - -final class LocatedNotInCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Checking the existence of an entity not in the specified directories
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, array $directories = []); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $configuration\BumbleDocGen\Core\Configuration\Configuration-
                $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
                $directoriesarray-
                - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -Throws: - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/MethodEntityCollection.md b/docs/tech/2.parser/classes/MethodEntityCollection.md deleted file mode 100644 index f39ab9ff..00000000 --- a/docs/tech/2.parser/classes/MethodEntityCollection.md +++ /dev/null @@ -1,482 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / MethodEntityCollection
                - -

                - MethodEntityCollection class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; - -final class MethodEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - add -
                2. -
                3. - get -
                4. -
                5. - getAllExceptInitializations -
                6. -
                7. - getInitializations -
                8. -
                9. - getIterator - - Retrieve an external iterator
                10. -
                11. - has -
                12. -
                13. - isEmpty -
                14. -
                15. - loadMethodEntities -
                16. -
                17. - remove -
                18. -
                19. - unsafeGet -
                20. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory, \Psr\Log\LoggerInterface $logger); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
                $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
                $cacheablePhpEntityFactory\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory-
                $logger\Psr\Log\LoggerInterface-
                - - - -
                -
                -
                - - - -```php -public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityInterface $methodEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $methodEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityInterface-
                $reloadbool-
                - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection - - -
                -
                -
                - - - -```php -public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity | null - - -
                -
                -
                - - - -```php -public function getAllExceptInitializations(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection - - -
                -
                -
                - - - -```php -public function getInitializations(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function getIterator(): \Generator; -``` - -
                Retrieve an external iterator
                - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function has(string $objectName): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function isEmpty(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function loadMethodEntities(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function remove(string $objectName): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function unsafeGet(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity | null - - -Throws: - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/OnlyFromCurrentClassCondition.md b/docs/tech/2.parser/classes/OnlyFromCurrentClassCondition.md deleted file mode 100644 index 3dc6206a..00000000 --- a/docs/tech/2.parser/classes/OnlyFromCurrentClassCondition.md +++ /dev/null @@ -1,81 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / OnlyFromCurrentClassCondition
                - -

                - OnlyFromCurrentClassCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition; - -final class OnlyFromCurrentClassCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Only methods that belong to the current class (not parent)
                - - - - - - - -

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/OnlyFromCurrentClassCondition_2.md b/docs/tech/2.parser/classes/OnlyFromCurrentClassCondition_2.md deleted file mode 100644 index ef66d1df..00000000 --- a/docs/tech/2.parser/classes/OnlyFromCurrentClassCondition_2.md +++ /dev/null @@ -1,81 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / OnlyFromCurrentClassCondition
                - -

                - OnlyFromCurrentClassCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition; - -final class OnlyFromCurrentClassCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Only properties that belong to the current class (not parent)
                - - - - - - - -

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/ProjectParser.md b/docs/tech/2.parser/classes/ProjectParser.md deleted file mode 100644 index 7e1c881b..00000000 --- a/docs/tech/2.parser/classes/ProjectParser.md +++ /dev/null @@ -1,126 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / ProjectParser
                - -

                - ProjectParser class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser; - -final class ProjectParser -``` - -
                Entity for project parsing using source locators
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - parse -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $configuration\BumbleDocGen\Core\Configuration\Configuration-
                $rootEntityCollectionsGroup\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup-
                - - - -
                -
                -
                - - - -```php -public function parse(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup - - -Throws: - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/PropertyEntityCollection.md b/docs/tech/2.parser/classes/PropertyEntityCollection.md deleted file mode 100644 index c650e7f3..00000000 --- a/docs/tech/2.parser/classes/PropertyEntityCollection.md +++ /dev/null @@ -1,429 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / PropertyEntityCollection
                - -

                - PropertyEntityCollection class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; - -final class PropertyEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - add -
                2. -
                3. - get -
                4. -
                5. - getIterator - - Retrieve an external iterator
                6. -
                7. - has -
                8. -
                9. - isEmpty -
                10. -
                11. - loadPropertyEntities -
                12. -
                13. - remove -
                14. -
                15. - unsafeGet -
                16. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory $cacheablePhpEntityFactory); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
                $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
                $cacheablePhpEntityFactory\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory-
                - - - -
                -
                -
                - - - -```php -public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity $propertyEntity, bool $reload = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntityCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $propertyEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity-
                $reloadbool-
                - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntityCollection - - -
                -
                -
                - - - -```php -public function get(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity | null - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function getIterator(): \Generator; -``` - -
                Retrieve an external iterator
                - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function has(string $objectName): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function isEmpty(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function loadPropertyEntities(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function remove(string $objectName): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function unsafeGet(string $objectName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity | null - - -Throws: - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/RecursiveDirectoriesSourceLocator.md b/docs/tech/2.parser/classes/RecursiveDirectoriesSourceLocator.md deleted file mode 100644 index 185836e9..00000000 --- a/docs/tech/2.parser/classes/RecursiveDirectoriesSourceLocator.md +++ /dev/null @@ -1,120 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Source locators / RecursiveDirectoriesSourceLocator
                - -

                - RecursiveDirectoriesSourceLocator class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\SourceLocator; - -final class RecursiveDirectoriesSourceLocator extends \BumbleDocGen\Core\Parser\SourceLocator\BaseSourceLocator implements \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface -``` - -
                Loads all files from the specified directories, which are traversed recursively
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getFinder -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(array $directories, array $exclude = [], bool $abortExecutionIfPartOfDirsNotExists = true); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $directoriesarray-
                $excludearray-
                $abortExecutionIfPartOfDirsNotExistsbool-
                - - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\SourceLocator\BaseSourceLocator - -public function getFinder(): \Symfony\Component\Finder\Finder; -``` - - - -Parameters: not specified - -Return value: \Symfony\Component\Finder\Finder - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/ReflectionException.md b/docs/tech/2.parser/classes/ReflectionException.md deleted file mode 100644 index 3447c81b..00000000 --- a/docs/tech/2.parser/classes/ReflectionException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / ReflectionException
                - -

                - ReflectionException class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception; - -final class ReflectionException extends \Exception implements \Throwable, \Stringable -``` - -
                Exception is the base class for -all Exceptions.
                - -See: - - - - - - - -

                Initialization methods:

                - -
                  -
                1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
                2. -
                - -

                Methods:

                - -
                  -
                1. - __toString - - String representation of the exception
                2. -
                3. - __wakeup -
                4. -
                5. - getCode - - Gets the Exception code
                6. -
                7. - getFile - - Gets the file in which the exception occurred
                8. -
                9. - getLine - - Gets the line in which the exception occurred
                10. -
                11. - getMessage - - Gets the Exception message
                12. -
                13. - getPrevious - - Returns previous Exception
                14. -
                15. - getTrace - - Gets the stack trace
                16. -
                17. - getTraceAsString - - Gets the stack trace as a string
                18. -
                - - - - - - - -

                Method details:

                - -
                - -
                  -
                • # - __construct -
                • -
                - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
                Construct the exception. Note: The message is NOT binary safe.
                - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $messagestring[optional] The Exception message to throw.
                $codeint[optional] The Exception code.
                $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
                - - - - -See: - -
                -
                -
                - -
                  -
                • # - __toString -
                • -
                - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
                String representation of the exception
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - __wakeup -
                • -
                - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
                -
                -
                - -
                  -
                • # - getCode -
                • -
                - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
                Gets the Exception code
                - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
                -
                -
                - -
                  -
                • # - getFile -
                • -
                - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
                Gets the file in which the exception occurred
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getLine -
                • -
                - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
                Gets the line in which the exception occurred
                - -Parameters: not specified - -Return value: int - - - -See: - -
                -
                -
                - -
                  -
                • # - getMessage -
                • -
                - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
                Gets the Exception message
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getPrevious -
                • -
                - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
                Returns previous Exception
                - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
                -
                -
                - -
                  -
                • # - getTrace -
                • -
                - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
                Gets the stack trace
                - -Parameters: not specified - -Return value: array - - - -See: - -
                -
                -
                - -
                  -
                • # - getTraceAsString -
                • -
                - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
                Gets the stack trace as a string
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/RootEntityCollection.md b/docs/tech/2.parser/classes/RootEntityCollection.md deleted file mode 100644 index 397415d1..00000000 --- a/docs/tech/2.parser/classes/RootEntityCollection.md +++ /dev/null @@ -1,437 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / RootEntityCollection
                - -

                - RootEntityCollection class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity; - -abstract class RootEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

                Methods:

                - -
                  -
                1. - findEntity -
                2. -
                3. - get -
                4. -
                5. - getEntityCollectionName -
                6. -
                7. - getEntityLinkData -
                8. -
                9. - getIterator - - Retrieve an external iterator
                10. -
                11. - getLoadedOrCreateNew -
                12. -
                13. - has -
                14. -
                15. - isEmpty -
                16. -
                17. - remove -
                18. -
                19. - updateEntitiesCache -
                20. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $searchstring-
                $useUnsafeKeysbool-
                - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null - - -
                -
                -
                - - - -```php -public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null - - -
                -
                -
                - - - -```php -public function getEntityCollectionName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getEntityLinkData(string $rawLink, string|null $defaultEntityName = null, bool $useUnsafeKeys = true): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $rawLinkstringRaw link to an entity or entity element
                $defaultEntityNamestring | nullEntity name to use if the link does not contain a valid or existing entity name, - but only a cursor on an entity element
                $useUnsafeKeysbool-
                - -Return value: array - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function getIterator(): \Generator; -``` - -
                Retrieve an external iterator
                - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
                -
                -
                - - - -```php -public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                $withAddClassEntityToCollectionEventbool-
                - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface - - - -See: - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function has(string $objectName): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function isEmpty(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function remove(string $objectName): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $objectNamestring-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function updateEntitiesCache(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/SingleFileSourceLocator.md b/docs/tech/2.parser/classes/SingleFileSourceLocator.md deleted file mode 100644 index de423c67..00000000 --- a/docs/tech/2.parser/classes/SingleFileSourceLocator.md +++ /dev/null @@ -1,110 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Source locators / SingleFileSourceLocator
                - -

                - SingleFileSourceLocator class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\SourceLocator; - -final class SingleFileSourceLocator extends \BumbleDocGen\Core\Parser\SourceLocator\BaseSourceLocator implements \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface -``` - -
                Loads one specific file by its path
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getFinder -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(string $filename); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $filenamestring-
                - - - -
                -
                -
                - - - -```php -// Implemented in BumbleDocGen\Core\Parser\SourceLocator\BaseSourceLocator - -public function getFinder(): \Symfony\Component\Finder\Finder; -``` - - - -Parameters: not specified - -Return value: \Symfony\Component\Finder\Finder - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/SourceLocatorInterface.md b/docs/tech/2.parser/classes/SourceLocatorInterface.md deleted file mode 100644 index ffd429ac..00000000 --- a/docs/tech/2.parser/classes/SourceLocatorInterface.md +++ /dev/null @@ -1,64 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Source locators / SourceLocatorInterface
                - -

                - SourceLocatorInterface class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\SourceLocator; - -interface SourceLocatorInterface -``` - - - - - - - - - -

                Methods:

                - -
                  -
                1. - getFinder -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function getFinder(): \Symfony\Component\Finder\Finder|null; -``` - - - -Parameters: not specified - -Return value: \Symfony\Component\Finder\Finder | null - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/TrueCondition.md b/docs/tech/2.parser/classes/TrueCondition.md deleted file mode 100644 index 9151afff..00000000 --- a/docs/tech/2.parser/classes/TrueCondition.md +++ /dev/null @@ -1,81 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / TrueCondition
                - -

                - TrueCondition class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Parser\FilterCondition\CommonFilterCondition; - -final class TrueCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                True conditions, any object is available
                - - - - - - - -

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/VisibilityCondition.md b/docs/tech/2.parser/classes/VisibilityCondition.md deleted file mode 100644 index 2d3b88e5..00000000 --- a/docs/tech/2.parser/classes/VisibilityCondition.md +++ /dev/null @@ -1,125 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / VisibilityCondition
                - -

                - VisibilityCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition; - -final class VisibilityCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Constant access modifier check
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(string ...$visibilityModifiers); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $visibilityModifiers (variadic)string-
                - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/VisibilityCondition_2.md b/docs/tech/2.parser/classes/VisibilityCondition_2.md deleted file mode 100644 index 36c9d792..00000000 --- a/docs/tech/2.parser/classes/VisibilityCondition_2.md +++ /dev/null @@ -1,125 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / VisibilityCondition
                - -

                - VisibilityCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition; - -final class VisibilityCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Method access modifier check
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(string ...$visibilityModifiers); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $visibilityModifiers (variadic)string-
                - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/VisibilityCondition_3.md b/docs/tech/2.parser/classes/VisibilityCondition_3.md deleted file mode 100644 index 6cea98a3..00000000 --- a/docs/tech/2.parser/classes/VisibilityCondition_3.md +++ /dev/null @@ -1,125 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / VisibilityCondition
                - -

                - VisibilityCondition class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition; - -final class VisibilityCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface -``` - -
                Property access modifier check
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - canAddToCollection -
                2. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(string ...$visibilityModifiers); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $visibilityModifiers (variadic)string-
                - - - -
                -
                -
                - - - -```php -public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\EntityInterface-
                - -Return value: bool - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/2.parser/entity.md b/docs/tech/2.parser/entity.md deleted file mode 100644 index b3230099..00000000 --- a/docs/tech/2.parser/entity.md +++ /dev/null @@ -1,126 +0,0 @@ - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections
                - -

                Entities and entities collections

                - -Entities are organized outcomes from parsing source code. -They help easily extract details about specific items from templates, allowing users to quickly access and display the information they need. - -Entities are always handled through collections. Collections are the result of the project parsing process and are available in both documentation templates and code. - -

                Examples of using collections in twig templates

                - -* Passing a collection to a function: - -```twig - {{ printEntityCollectionAsList(phpClassEntityCollection) }} -``` - - -* Filtering a collection and passing it to a function: - -```twig - {{ printEntityCollectionAsList(phpClassEntityCollection.filterByInterfaces(['BumbleDocGen\Core\Parser\Entity\EntityInterface'])) }} -``` - - -* Saving a filtered collection to a variable: - -```twig - {{ {% set filteredCollection = phpClassEntityCollection.getOnlyInstantiable() %} }} -``` - - -* Using a collection in a for loop: - -```twig - {% for someClassEntity in phpClassEntityCollection %} - * {{ someClassEntity.getName() }} - {% endfor %} -``` - - -* Output of all methods of all found entities in `className::methodName()` format: - -```twig - {% for someClassEntity in phpClassEntityCollection %} - {% for methodEntity in someClassEntity.getMethodEntityCollection() %} - * {{ someClassEntity.getName() }}::{{ methodEntity.getName() }}() - {% endfor %} - {% endfor %} -``` - - -

                Root entities collections

                - -To further facilitate the handling of these entities, we utilize entity collections. -These collections not only group relevant entities together but also provide convenient methods for filtering and manipulating these entities. -The root collections (RootEntityCollection), which are directly accessible in your templates, are as follows: - - - - - - - - - - - - - - -
                Collection className in twig templatePLDescription
                ClassEntityCollectionphpClassEntityCollectionPHPCollection of PHP class entities
                - -

                Available entities

                - -Following is the list of available entities that are consistent with EntityInterface and can be created. -These classes are a convenient wrapper for accessing data in templates: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                Entity nameCollection nameIs rootPLDescription
                ClassEntityClassEntityCollectionyesPHPClass entity
                ConstantEntityConstantEntityCollectionnoPHPClass constant entity
                DynamicMethodEntityMethodEntityCollectionnoPHPMethod obtained by parsing the "method" annotation
                MethodEntityMethodEntityCollectionnoPHPClass method entity
                PropertyEntityPropertyEntityCollectionnoPHPClass property entity
                - -
                -
                -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
                Last modified date: Sat Oct 28 11:03:31 2023 +0300
                Page content update date: Mon Nov 06 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 deleted file mode 100644 index c7cae9be..00000000 --- a/docs/tech/2.parser/sourceLocator.md +++ /dev/null @@ -1,33 +0,0 @@ - BumbleDocGen / Technical description of the project / Parser / Source locators
                - -

                Source locators

                - -Source locators are needed so that the parser knows which files to parse, or to get data on a specific file after the primary parsing procedure - -Source locators are set in the configuration: - -```yaml - source_locators: - - class: \BumbleDocGen\Core\Parser\SourceLocator\RecursiveDirectoriesSourceLocator - arguments: - directories: - - "%project_root%/src" - - "%project_root%/selfdoc" -``` - - -You can create your own source locators or use any existing ones. All source locators must implement the SourceLocatorInterface interface. - -

                Built-in source locators

                - -**Common source locators:** - - - -**PHP source locators:** - -
                • AsyncSourceLocator - Lazy loading classes. Cannot be used for initial parsing of files, only for getting specific documents
                - -
                -
                -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
                Last modified date: Sat Oct 28 11:03:31 2023 +0300
                Page content update date: Mon Nov 06 2023
                Made with Bumble Documentation Generator
                \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/AddIndentFromLeft.md b/docs/tech/3.renderer/classes/AddIndentFromLeft.md deleted file mode 100644 index 423b69fa..00000000 --- a/docs/tech/3.renderer/classes/AddIndentFromLeft.md +++ /dev/null @@ -1,153 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / AddIndentFromLeft
                - -

                - AddIndentFromLeft class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Filter; - -final class AddIndentFromLeft implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface -``` - -
                Filter adds indent from left
                - - - - -

                Settings:

                - - - - - - - - - - -
                namevalue
                Filter name:addIndentFromLeft
                - - - - - -

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __invoke(string $text, int $identLength = 4, bool $skipFirstIdent = false): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $textstringProcessed text
                $identLengthintIndent size
                $skipFirstIdentboolSkip indent for first line in text or not
                - -Return value: string - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/CustomFunctionInterface.md b/docs/tech/3.renderer/classes/CustomFunctionInterface.md deleted file mode 100644 index f2f47483..00000000 --- a/docs/tech/3.renderer/classes/CustomFunctionInterface.md +++ /dev/null @@ -1,88 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / CustomFunctionInterface
                - -

                - CustomFunctionInterface class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Function; - -interface CustomFunctionInterface -``` - - - - - - - - - -

                Methods:

                - -
                  -
                1. - getName -
                2. -
                3. - getOptions -
                4. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/DocumentedEntityWrapper.md b/docs/tech/3.renderer/classes/DocumentedEntityWrapper.md deleted file mode 100644 index 9303aeb1..00000000 --- a/docs/tech/3.renderer/classes/DocumentedEntityWrapper.md +++ /dev/null @@ -1,303 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / DocumentedEntityWrapper
                - -

                - DocumentedEntityWrapper class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Context; - -final class DocumentedEntityWrapper -``` - -
                Wrapper for the entity that was requested for documentation
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getDocRender -
                2. -
                3. - getDocUrl - - Get the relative path to the document to be generated
                4. -
                5. - getDocumentTransformableEntity - - Get entity that is allowed to be documented
                6. -
                7. - getEntityName -
                8. -
                9. - getFileName - - The name of the file to be generated
                10. -
                11. - getKey - - Get document key
                12. -
                13. - getParentDocFilePath -
                14. -
                15. - setParentDocFilePath -
                16. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface $documentTransformableEntity, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, string $parentDocFilePath); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $documentTransformableEntity\BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterfaceAn entity that is allowed to be documented
                $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
                $parentDocFilePathstringThe file in which the documentation of the entity was requested
                - - - -
                -
                -
                - - - -```php -public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface - - -
                -
                -
                - - - -```php -public function getDocUrl(): string; -``` - -
                Get the relative path to the document to be generated
                - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getDocumentTransformableEntity(): \BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface; -``` - -
                Get entity that is allowed to be documented
                - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface - - -
                -
                -
                - - - -```php -public function getEntityName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getFileName(): string; -``` - -
                The name of the file to be generated
                - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getKey(): string; -``` - -
                Get document key
                - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getParentDocFilePath(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function setParentDocFilePath(string $parentDocFilePath): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $parentDocFilePathstring-
                - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/DrawClassMap.md b/docs/tech/3.renderer/classes/DrawClassMap.md deleted file mode 100644 index 84f0f7ed..00000000 --- a/docs/tech/3.renderer/classes/DrawClassMap.md +++ /dev/null @@ -1,325 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / DrawClassMap
                - -

                - DrawClassMap class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Renderer\Twig\Function; - -final class DrawClassMap implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface -``` - -
                Generate class map in HTML format
                - - -Examples of using: - -```php -{{ drawClassMap(classEntityCollection.filterByPaths(['/src/Renderer'])) }} - -``` - -```php -{{ drawClassMap(classEntityCollection) }} - -``` - - - - -

                Settings:

                - - - - - - -
                Function name:drawClassMap
                - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - convertDirectoryStructureToFormattedString -
                4. -
                5. - getDirectoryStructure -
                6. -
                7. - getName -
                8. -
                9. - getOptions -
                10. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $getDocumentedEntityUrlFunction\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl-
                $rootEntityCollectionsGroup\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup-
                - - - -
                -
                -
                - - - -```php -public function __invoke(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection ...$classEntityCollections): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $classEntityCollections (variadic)\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollectionThe collection of entities for which the class map will be generated
                - -Return value: string - - -Throws: - - -
                -
                -
                - -
                  -
                • # - convertDirectoryStructureToFormattedString - | source code
                • -
                - -```php -public function convertDirectoryStructureToFormattedString(array $structure, string $prefix = '│', string $path = '/'): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $structurearray-
                $prefixstring-
                $pathstring-
                - -Return value: string - - -
                -
                -
                - - - -```php -public function getDirectoryStructure(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection ...$classEntityCollections): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $classEntityCollections (variadic)\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection-
                - -Return value: array - - -Throws: - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/DrawDocumentedEntityLink.md b/docs/tech/3.renderer/classes/DrawDocumentedEntityLink.md deleted file mode 100644 index 21f61981..00000000 --- a/docs/tech/3.renderer/classes/DrawDocumentedEntityLink.md +++ /dev/null @@ -1,227 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / DrawDocumentedEntityLink
                - -

                - DrawDocumentedEntityLink class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Function; - -final class DrawDocumentedEntityLink implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface -``` - -
                Creates an entity link by object
                - - -Examples of using: - -```php -{{ drawDocumentedEntityLink($entity, 'getFunctions()') }} - -``` - -```php -{{ drawDocumentedEntityLink($entity) }} - -``` - -```php -{{ drawDocumentedEntityLink($entity, '', false) }} - -``` - - - - -

                Settings:

                - - - - - - -
                Function name:drawDocumentedEntityLink
                - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $getDocumentedEntityUrlFunction\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl-
                - - - -
                -
                -
                - - - -```php -public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity, string $cursor = '', bool $useShortName = true): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\Core\Parser\Entity\RootEntityInterfaceThe entity for which we want to get the link
                $cursorstringReference to an element inside an entity, for example, the name of a function/constant/property
                $useShortNameboolUse the full or short entity name in the link
                - -Return value: string - - -Throws: - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/FileGetContents.md b/docs/tech/3.renderer/classes/FileGetContents.md deleted file mode 100644 index 751fa10e..00000000 --- a/docs/tech/3.renderer/classes/FileGetContents.md +++ /dev/null @@ -1,203 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / FileGetContents
                - -

                - FileGetContents class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Function; - -final class FileGetContents implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface -``` - -
                Displaying the content of a file or web resource
                - -See: - - - -Examples of using: - -```php -{{ fileGetContents('https://www.php.net/manual/en/function.file-get-contents.php') }} - -``` - -```php -{{ fileGetContents('%templates_dir%/../config.yaml') }} - -``` - - - - -

                Settings:

                - - - - - - -
                Function name:fileGetContents
                - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
                - - - -
                -
                -
                - - - -```php -public function __invoke(string $resourceName): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $resourceNamestringResource name, url or path to the resource. - The path can contain shortcodes with parameters from the configuration (%param_name%)
                - -Return value: string - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/FixStrSize.md b/docs/tech/3.renderer/classes/FixStrSize.md deleted file mode 100644 index 10df8270..00000000 --- a/docs/tech/3.renderer/classes/FixStrSize.md +++ /dev/null @@ -1,153 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / FixStrSize
                - -

                - FixStrSize class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Filter; - -final class FixStrSize implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface -``` - -
                The filter pads the string with the specified characters on the right to the specified size
                - - - - -

                Settings:

                - - - - - - - - - - -
                namevalue
                Filter name:fixStrSize
                - - - - - -

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __invoke(string $text, int $size, string $symbol = ' '): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $textstringProcessed text
                $sizeintRequired string size
                $symbolstringThe character to be used to complete the string
                - -Return value: string - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs.md b/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs.md deleted file mode 100644 index b251ade9..00000000 --- a/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs.md +++ /dev/null @@ -1,227 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / GeneratePageBreadcrumbs
                - -

                - GeneratePageBreadcrumbs class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Function; - -final class GeneratePageBreadcrumbs implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface -``` - -
                Function to generate breadcrumbs on the page
                - - - - -

                Settings:

                - - - - - - -
                Function name:generatePageBreadcrumbs
                - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper $breadcrumbsHelper, \BumbleDocGen\Core\Renderer\Context\RendererContext $rendererContext, \BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyFactory $dependencyFactory); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $breadcrumbsHelper\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper-
                $rendererContext\BumbleDocGen\Core\Renderer\Context\RendererContext-
                $dependencyFactory\BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyFactory-
                - - - -
                -
                -
                - - - -```php -public function __invoke(string $currentPageTitle, string $templatePath, bool $skipFirstTemplatePage = true): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $currentPageTitlestringTitle of the current page
                $templatePathstringPath to the template from which the breadcrumbs will be generated
                $skipFirstTemplatePageboolIf set to true, the page from which parsing starts will not participate in the formation of breadcrumbs - This option is useful when working with the _self value in a template, as it returns the full path to the - current template, and the reference to it in breadcrumbs should not be clickable.
                - -Return value: string - - -Throws: - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/GetDocumentationPageUrl_2.md b/docs/tech/3.renderer/classes/GetDocumentationPageUrl_2.md deleted file mode 100644 index 13464c1f..00000000 --- a/docs/tech/3.renderer/classes/GetDocumentationPageUrl_2.md +++ /dev/null @@ -1,232 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / GetDocumentationPageUrl
                - -

                - GetDocumentationPageUrl class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Function; - -final class GetDocumentationPageUrl implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface -``` - -
                Creates an entity link by object
                - - -Examples of using: - -```php -{{ getDocumentationPageUrl('Page name') }} - -``` - -```php -{{ getDocumentationPageUrl('/someDir/someTemplate.md.twig') }} - -``` - -```php -{{ getDocumentationPageUrl('/docs/someDir/someDocFile.md') }} - -``` - -```php -{{ getDocumentationPageUrl('readme.md') }} - -``` - - - - -

                Settings:

                - - - - - - -
                Function name:getDocumentationPageUrl
                - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - -

                Constants:

                - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper $breadcrumbsHelper, \Psr\Log\LoggerInterface $logger); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $breadcrumbsHelper\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper-
                $logger\Psr\Log\LoggerInterface-
                - - - -
                -
                -
                - - - -```php -public function __invoke(string $key): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $keystringThe key by which to look up the URL of the page. - Can be the title of a page, a path to a template, or a generated document
                - -Return value: string - - -Throws: - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/InvalidConfigurationParameterException.md b/docs/tech/3.renderer/classes/InvalidConfigurationParameterException.md deleted file mode 100644 index e5223cd5..00000000 --- a/docs/tech/3.renderer/classes/InvalidConfigurationParameterException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / InvalidConfigurationParameterException
                - -

                - InvalidConfigurationParameterException class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Configuration\Exception; - -final class InvalidConfigurationParameterException extends \Exception implements \Throwable, \Stringable -``` - -
                Exception is the base class for -all Exceptions.
                - -See: - - - - - - - -

                Initialization methods:

                - -
                  -
                1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
                2. -
                - -

                Methods:

                - -
                  -
                1. - __toString - - String representation of the exception
                2. -
                3. - __wakeup -
                4. -
                5. - getCode - - Gets the Exception code
                6. -
                7. - getFile - - Gets the file in which the exception occurred
                8. -
                9. - getLine - - Gets the line in which the exception occurred
                10. -
                11. - getMessage - - Gets the Exception message
                12. -
                13. - getPrevious - - Returns previous Exception
                14. -
                15. - getTrace - - Gets the stack trace
                16. -
                17. - getTraceAsString - - Gets the stack trace as a string
                18. -
                - - - - - - - -

                Method details:

                - -
                - -
                  -
                • # - __construct -
                • -
                - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
                Construct the exception. Note: The message is NOT binary safe.
                - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $messagestring[optional] The Exception message to throw.
                $codeint[optional] The Exception code.
                $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
                - - - - -See: - -
                -
                -
                - -
                  -
                • # - __toString -
                • -
                - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
                String representation of the exception
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - __wakeup -
                • -
                - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
                -
                -
                - -
                  -
                • # - getCode -
                • -
                - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
                Gets the Exception code
                - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
                -
                -
                - -
                  -
                • # - getFile -
                • -
                - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
                Gets the file in which the exception occurred
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getLine -
                • -
                - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
                Gets the line in which the exception occurred
                - -Parameters: not specified - -Return value: int - - - -See: - -
                -
                -
                - -
                  -
                • # - getMessage -
                • -
                - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
                Gets the Exception message
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getPrevious -
                • -
                - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
                Returns previous Exception
                - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
                -
                -
                - -
                  -
                • # - getTrace -
                • -
                - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
                Gets the stack trace
                - -Parameters: not specified - -Return value: array - - - -See: - -
                -
                -
                - -
                  -
                • # - getTraceAsString -
                • -
                - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
                Gets the stack trace as a string
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/LoadPluginsContent.md b/docs/tech/3.renderer/classes/LoadPluginsContent.md deleted file mode 100644 index ceaccca5..00000000 --- a/docs/tech/3.renderer/classes/LoadPluginsContent.md +++ /dev/null @@ -1,201 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / LoadPluginsContent
                - -

                - LoadPluginsContent class: -

                - - - - -:warning: Is internal -```php -namespace BumbleDocGen\Core\Renderer\Twig\Function; - -final class LoadPluginsContent implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface -``` - -
                Process entity template blocks with plugins. The method returns the content processed by plugins.
                - - -Examples of using: - -```php -{{ loadPluginsContent('some text', entity, constant('BumbleDocGen\\Plugin\\BaseTemplatePluginInterface::BLOCK_AFTER_HEADER')) }} - -``` - - - - -

                Settings:

                - - - - - - -
                Function name:loadPluginsContent
                - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
                - - - -
                -
                -
                - - - -```php -public function __invoke(string $content, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity, string $blockType): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $contentstringContent to be processed by plugins
                $entity\BumbleDocGen\Core\Parser\Entity\RootEntityInterfaceThe entity for which we process the content block
                $blockTypestringContent block type. @see BaseTemplatePluginInterface::BLOCK_*
                - -Return value: string - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/PageHtmlLinkerPlugin.md b/docs/tech/3.renderer/classes/PageHtmlLinkerPlugin.md deleted file mode 100644 index 79de64fa..00000000 --- a/docs/tech/3.renderer/classes/PageHtmlLinkerPlugin.md +++ /dev/null @@ -1,216 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates / PageHtmlLinkerPlugin
                - -

                - PageHtmlLinkerPlugin class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\CorePlugin\PageLinker; - -final class PageHtmlLinkerPlugin 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 -Existent page name => Existent page name - -``` - -```php -\Namespace\ClassName => Custom title - -``` - -```php -\Namespace\ClassName => \Namespace\ClassName - -``` - -```php -Non-existent page name => 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/3.renderer/classes/PregMatch.md b/docs/tech/3.renderer/classes/PregMatch.md deleted file mode 100644 index 8594dfd6..00000000 --- a/docs/tech/3.renderer/classes/PregMatch.md +++ /dev/null @@ -1,154 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / PregMatch
                - -

                - PregMatch class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Filter; - -final class PregMatch implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface -``` - -
                Perform a regular expression match
                - -See: - - - - - -

                Settings:

                - - - - - - - - - - -
                namevalue
                Filter name:preg_match
                - - - - - -

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __invoke(string $text, string $pattern): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $textstringProcessed text
                $patternstringThe pattern to search for, as a string.
                - -Return value: array - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/PrepareSourceLink.md b/docs/tech/3.renderer/classes/PrepareSourceLink.md deleted file mode 100644 index 479ebd63..00000000 --- a/docs/tech/3.renderer/classes/PrepareSourceLink.md +++ /dev/null @@ -1,143 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / PrepareSourceLink
                - -

                - PrepareSourceLink class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Filter; - -final class PrepareSourceLink implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface -``` - -
                The filter converts the string into an anchor that can be used in a GitHub document link
                - - - - -

                Settings:

                - - - - - - - - - - -
                namevalue
                Filter name:prepareSourceLink
                - - - - - -

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __invoke(string $text): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $textstringProcessed text
                - -Return value: string - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/PrintEntityCollectionAsList.md b/docs/tech/3.renderer/classes/PrintEntityCollectionAsList.md deleted file mode 100644 index a8086d43..00000000 --- a/docs/tech/3.renderer/classes/PrintEntityCollectionAsList.md +++ /dev/null @@ -1,220 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / PrintEntityCollectionAsList
                - -

                - PrintEntityCollectionAsList class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Function; - -final class PrintEntityCollectionAsList implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface -``` - -
                Outputting entity data as HTML list
                - - -Examples of using: - -```php -{{ printEntityCollectionAsList(phpClassEntityCollection.filterByInterfaces(['ScriptFramework\\ScriptInterface', 'ScriptFramework\\TestScriptInterface'])) }} -The function will output a list of PHP classes that match the ScriptFramework\ScriptInterface and ScriptFramework\TestScriptInterface interfaces - -``` - -```php -{{ printEntityCollectionAsList(phpClassEntityCollection) }} -The function will list all documented PHP classes - -``` - - - - -

                Settings:

                - - - - - - -
                Function name:printEntityCollectionAsList
                - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $getDocumentedEntityUrlFunction\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl-
                - - - -
                -
                -
                - - - -```php -public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, string $type = 'ul', bool $skipDescription = false, bool $useFullName = false): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $rootEntityCollection\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionProcessed entity collection
                $typestringList tag type (
                  /
                    )
                $skipDescriptionboolDon't print description of this entities
                $useFullNameboolUse the full name of the entity in the list
                - -Return value: string - - -Throws: - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/Quotemeta.md b/docs/tech/3.renderer/classes/Quotemeta.md deleted file mode 100644 index 7e722aff..00000000 --- a/docs/tech/3.renderer/classes/Quotemeta.md +++ /dev/null @@ -1,149 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / Quotemeta
                - -

                - Quotemeta class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Filter; - -final class Quotemeta implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface -``` - -
                Quote meta characters
                - -See: - - - - - -

                Settings:

                - - - - - - - - - - -
                namevalue
                Filter name:quotemeta
                - - - - - -

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __invoke(string $text): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $textstringProcessed text
                - -Return value: string - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/ReflectionException.md b/docs/tech/3.renderer/classes/ReflectionException.md deleted file mode 100644 index 89c5be36..00000000 --- a/docs/tech/3.renderer/classes/ReflectionException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / ReflectionException
                - -

                - ReflectionException class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception; - -final class ReflectionException extends \Exception implements \Throwable, \Stringable -``` - -
                Exception is the base class for -all Exceptions.
                - -See: - - - - - - - -

                Initialization methods:

                - -
                  -
                1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
                2. -
                - -

                Methods:

                - -
                  -
                1. - __toString - - String representation of the exception
                2. -
                3. - __wakeup -
                4. -
                5. - getCode - - Gets the Exception code
                6. -
                7. - getFile - - Gets the file in which the exception occurred
                8. -
                9. - getLine - - Gets the line in which the exception occurred
                10. -
                11. - getMessage - - Gets the Exception message
                12. -
                13. - getPrevious - - Returns previous Exception
                14. -
                15. - getTrace - - Gets the stack trace
                16. -
                17. - getTraceAsString - - Gets the stack trace as a string
                18. -
                - - - - - - - -

                Method details:

                - -
                - -
                  -
                • # - __construct -
                • -
                - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
                Construct the exception. Note: The message is NOT binary safe.
                - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $messagestring[optional] The Exception message to throw.
                $codeint[optional] The Exception code.
                $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
                - - - - -See: - -
                -
                -
                - -
                  -
                • # - __toString -
                • -
                - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
                String representation of the exception
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - __wakeup -
                • -
                - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
                -
                -
                - -
                  -
                • # - getCode -
                • -
                - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
                Gets the Exception code
                - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
                -
                -
                - -
                  -
                • # - getFile -
                • -
                - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
                Gets the file in which the exception occurred
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getLine -
                • -
                - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
                Gets the line in which the exception occurred
                - -Parameters: not specified - -Return value: int - - - -See: - -
                -
                -
                - -
                  -
                • # - getMessage -
                • -
                - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
                Gets the Exception message
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getPrevious -
                • -
                - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
                Returns previous Exception
                - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
                -
                -
                - -
                  -
                • # - getTrace -
                • -
                - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
                Gets the stack trace
                - -Parameters: not specified - -Return value: array - - - -See: - -
                -
                -
                - -
                  -
                • # - getTraceAsString -
                • -
                - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
                Gets the stack trace as a string
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/RemoveLineBrakes.md b/docs/tech/3.renderer/classes/RemoveLineBrakes.md deleted file mode 100644 index 237cbdee..00000000 --- a/docs/tech/3.renderer/classes/RemoveLineBrakes.md +++ /dev/null @@ -1,143 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / RemoveLineBrakes
                - -

                - RemoveLineBrakes class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Filter; - -final class RemoveLineBrakes implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface -``` - -
                The filter replaces all line breaks with a space
                - - - - -

                Settings:

                - - - - - - - - - - -
                namevalue
                Filter name:removeLineBrakes
                - - - - - -

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __invoke(string $text): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $textstringProcessed text
                - -Return value: string - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/RendererContext.md b/docs/tech/3.renderer/classes/RendererContext.md deleted file mode 100644 index b8df10a8..00000000 --- a/docs/tech/3.renderer/classes/RendererContext.md +++ /dev/null @@ -1,259 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / RendererContext
                - -

                - RendererContext class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Context; - -final class RendererContext -``` - -
                Document rendering context
                - - - - - - - -

                Methods:

                - -
                  -
                1. - addDependency -
                2. -
                3. - clearDependencies -
                4. -
                5. - getCurrentDocumentedEntityWrapper -
                6. -
                7. - getCurrentTemplateFilePatch - - Getting the path to the template file that is currently being worked on
                8. -
                9. - getDependencies -
                10. -
                11. - setCurrentDocumentedEntityWrapper -
                12. -
                13. - setCurrentTemplateFilePatch - - Saving the path to the template file that is currently being worked on in the context
                14. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function addDependency(\BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyInterface $dependency): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $dependency\BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyInterface-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function clearDependencies(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
                -
                -
                - - - -```php -public function getCurrentDocumentedEntityWrapper(): \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper|null; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper | null - - -
                -
                -
                - - - -```php -public function getCurrentTemplateFilePatch(): string; -``` - -
                Getting the path to the template file that is currently being worked on
                - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getDependencies(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                -
                - - - -```php -public function setCurrentDocumentedEntityWrapper(\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper $currentDocumentedEntityWrapper): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $currentDocumentedEntityWrapper\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function setCurrentTemplateFilePatch(string $currentTemplateFilePath): void; -``` - -
                Saving the path to the template file that is currently being worked on in the context
                - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $currentTemplateFilePathstring-
                - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/StrTypeToUrl.md b/docs/tech/3.renderer/classes/StrTypeToUrl.md deleted file mode 100644 index 3ceef34f..00000000 --- a/docs/tech/3.renderer/classes/StrTypeToUrl.md +++ /dev/null @@ -1,218 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / StrTypeToUrl
                - -

                - StrTypeToUrl class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Filter; - -final class StrTypeToUrl implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface -``` - -
                The filter converts the string with the data type into a link to the documented entity, if possible.
                - -See: - - - - - -

                Settings:

                - - - - - - - - - - -
                namevalue
                Filter name:strTypeToUrl
                - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - __invoke -
                2. -
                3. - getName -
                4. -
                5. - getOptions -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper, \BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction, \Monolog\Logger $logger); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $rendererHelper\BumbleDocGen\Core\Renderer\RendererHelper-
                $getDocumentedEntityUrlFunction\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl-
                $logger\Monolog\Logger-
                - - - -
                -
                -
                - - - -```php -public function __invoke(string $text, \BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, bool $useShortLinkVersion = false, bool $createDocument = false): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $textstringProcessed text
                $rootEntityCollection\BumbleDocGen\Core\Parser\Entity\RootEntityCollection-
                $useShortLinkVersionboolShorten or not the link name. When shortening, only the shortName of the entity will be shown
                $createDocumentboolIf true, creates an entity document. Otherwise, just gives a reference to the entity code
                - -Return value: string - - -
                -
                -
                - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/3.renderer/templatesDynamicBlocks.md b/docs/tech/3.renderer/templatesDynamicBlocks.md deleted file mode 100644 index 5f0ba622..00000000 --- a/docs/tech/3.renderer/templatesDynamicBlocks.md +++ /dev/null @@ -1,29 +0,0 @@ - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates dynamic blocks
                - -

                Templates dynamic blocks

                - -There are several ways to create dynamic blocks in templates. - -* First of all, these are custom twig functions and filters. -You can use the built-in functions and filters or add your own, so you can implement any logic for generating dynamically changing content. - -```twig - {{ printEntityCollectionAsList(phpClassEntityCollection.filterByInterfaces(['\\BumbleDocGen\\Core\\Parser\\SourceLocator\\SourceLocatorInterface']).getOnlyInstantiable()) }} -``` - - -* The second way is to output data from variables directly to the template. For example, you can display a list of classes or methods of documented code according to certain rules. - -```twig - {% for entity in phpClassEntityCollection.filterByInterfaces(['\\BumbleDocGen\\Core\\Parser\\SourceLocator\\SourceLocatorInterface']).getOnlyInstantiable() %} - * {{ entity.getName() }} - {% endfor %} - -``` - - - - -
                -
                -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
                Last modified date: Sat Sep 2 21:01:47 2023 +0300
                Page content update date: Mon Nov 06 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 deleted file mode 100644 index acd69845..00000000 --- a/docs/tech/3.renderer/templatesLinking.md +++ /dev/null @@ -1,30 +0,0 @@ - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates
                - -

                Linking templates

                - -One of the main requirements of the documentation is to be able to easily and quickly implement linking between pages. -We have several options for this, such as using special functions or using a special document linking mechanism (`completing blank links`) - -

                Completing blank links

                - -Plugin PageHtmlLinkerPlugin have been added to the basic configuration, -which process the text of the filled template before its result is written to a file, and fill in all empty links. - -For example, an empty link: - -
                <a>Existent page name</a>
                - -will be replaced with this link: - -
                <a href="/docs/some/page/targetPage.md">Existent page name</a>
                - -

                Generating links through functions

                - -The second way to relink templates is to generate links through functions. - -There are a number of functions that allow you to get a link to an entity, for example GetDocumentedEntityUrl, and there are also functions for getting a link to other documents, for example GetDocumentationPageUrl. -You can also implement your own functions for relinking if necessary. - -
                -
                -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
                Last modified date: Sat Oct 28 11:03:31 2023 +0300
                Page content update date: Mon Nov 06 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 deleted file mode 100644 index cf73d7a0..00000000 --- a/docs/tech/3.renderer/templatesVariables.md +++ /dev/null @@ -1,14 +0,0 @@ - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates variables
                - -

                Templates variables

                - -There are several variables available in each processed template. - -1) Firstly, these are built-in twig variables, for example `_self`, which returns the path to the processed template. - -2) Secondly, variables with collections of processed programming languages are available in the template (see LanguageHandlerInterface). For example, when processing a PHP project collection, a collection ClassEntityCollection will be available in the template under the name phpClassEntityCollection - - -
                -
                -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
                Last modified date: Sat Oct 28 11:03:31 2023 +0300
                Page content update date: Mon Nov 06 2023
                Made with Bumble Documentation Generator
                \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/AfterLoadingClassEntityCollection.md b/docs/tech/4.pluginSystem/classes/AfterLoadingClassEntityCollection.md deleted file mode 100644 index d1fde6a2..00000000 --- a/docs/tech/4.pluginSystem/classes/AfterLoadingClassEntityCollection.md +++ /dev/null @@ -1,160 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / AfterLoadingClassEntityCollection
                - -

                - AfterLoadingClassEntityCollection class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser; - -final class AfterLoadingClassEntityCollection extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                The event is called after the initial creation of a collection of class entities
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getClassEntityCollection -
                2. -
                3. - isPropagationStopped - - Is propagation stopped?
                4. -
                5. - stopPropagation - - Stops the propagation of the event to further event listeners.
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $classEntityCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection-
                - - - -
                -
                -
                - - - -```php -public function getClassEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/AfterRenderingEntities.md b/docs/tech/4.pluginSystem/classes/AfterRenderingEntities.md deleted file mode 100644 index 37f8776d..00000000 --- a/docs/tech/4.pluginSystem/classes/AfterRenderingEntities.md +++ /dev/null @@ -1,92 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / AfterRenderingEntities
                - -

                - AfterRenderingEntities class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Renderer; - -final class AfterRenderingEntities extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                Event is the base class for classes containing event data.
                - - - - - - - -

                Methods:

                - -
                  -
                1. - isPropagationStopped - - Is propagation stopped?
                2. -
                3. - stopPropagation - - Stops the propagation of the event to further event listeners.
                4. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/BasePhpStubberPlugin.md b/docs/tech/4.pluginSystem/classes/BasePhpStubberPlugin.md deleted file mode 100644 index 9fc85aa9..00000000 --- a/docs/tech/4.pluginSystem/classes/BasePhpStubberPlugin.md +++ /dev/null @@ -1,105 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / BasePhpStubberPlugin
                - -

                - BasePhpStubberPlugin class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\BasePhpStubber; - -final class BasePhpStubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface -``` - -
                Adding links to type documentation and documentation of built-in PHP classes
                - - - - - - - -

                Methods:

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

                Method details:

                - -
                - - - -```php -public static function getSubscribedEvents(): array; -``` - -
                Returns an array of event names this subscriber wants to listen to.
                - -Parameters: not specified - -Return value: array - - -
                -
                -
                - - - -```php -public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink-
                - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/BeforeCreatingDocFile.md b/docs/tech/4.pluginSystem/classes/BeforeCreatingDocFile.md deleted file mode 100644 index 6c8bd9da..00000000 --- a/docs/tech/4.pluginSystem/classes/BeforeCreatingDocFile.md +++ /dev/null @@ -1,230 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / BeforeCreatingDocFile
                - -

                - BeforeCreatingDocFile class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Renderer; - -final class BeforeCreatingDocFile extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                Called before the content of the documentation document is saved to a file
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getContent -
                2. -
                3. - getContext -
                4. -
                5. - isPropagationStopped - - Is propagation stopped?
                6. -
                7. - setContent -
                8. -
                9. - stopPropagation - - Stops the propagation of the event to further event listeners.
                10. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(string $content, \BumbleDocGen\Core\Renderer\Context\RendererContext $context); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $contentstring-
                $context\BumbleDocGen\Core\Renderer\Context\RendererContext-
                - - - -
                -
                -
                - - - -```php -public function getContent(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getContext(): \BumbleDocGen\Core\Renderer\Context\RendererContext; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Renderer\Context\RendererContext - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function setContent(string $content): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $contentstring-
                - -Return value: void - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/BeforeRenderingDocFiles.md b/docs/tech/4.pluginSystem/classes/BeforeRenderingDocFiles.md deleted file mode 100644 index 68122b37..00000000 --- a/docs/tech/4.pluginSystem/classes/BeforeRenderingDocFiles.md +++ /dev/null @@ -1,92 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / BeforeRenderingDocFiles
                - -

                - BeforeRenderingDocFiles class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Renderer; - -final class BeforeRenderingDocFiles extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                The event occurs before the main documents begin rendering
                - - - - - - - -

                Methods:

                - -
                  -
                1. - isPropagationStopped - - Is propagation stopped?
                2. -
                3. - stopPropagation - - Stops the propagation of the event to further event listeners.
                4. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/BeforeRenderingEntities.md b/docs/tech/4.pluginSystem/classes/BeforeRenderingEntities.md deleted file mode 100644 index 0ad8070a..00000000 --- a/docs/tech/4.pluginSystem/classes/BeforeRenderingEntities.md +++ /dev/null @@ -1,92 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / BeforeRenderingEntities
                - -

                - BeforeRenderingEntities class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Renderer; - -final class BeforeRenderingEntities extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                The event occurs before the rendering of entity documents begins, after the main documents have been created
                - - - - - - - -

                Methods:

                - -
                  -
                1. - isPropagationStopped - - Is propagation stopped?
                2. -
                3. - stopPropagation - - Stops the propagation of the event to further event listeners.
                4. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/EntityDocUnifiedPlacePlugin.md b/docs/tech/4.pluginSystem/classes/EntityDocUnifiedPlacePlugin.md deleted file mode 100644 index f1b12b32..00000000 --- a/docs/tech/4.pluginSystem/classes/EntityDocUnifiedPlacePlugin.md +++ /dev/null @@ -1,196 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / EntityDocUnifiedPlacePlugin
                - -

                - EntityDocUnifiedPlacePlugin class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\EntityDocUnifiedPlace; - -final class EntityDocUnifiedPlacePlugin implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface -``` - -
                This plugin changes the algorithm for saving entity documents. The standard system stores each file -in a directory next to the file where it was requested. This behavior changes and all documents are saved -in a separate directory structure, so they are not duplicated.
                - - - - - - - -

                Methods:

                - -
                  -
                1. - getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
                2. -
                3. - onCreateDocumentedEntityWrapper -
                4. -
                5. - onGetProjectTemplatesDirs -
                6. -
                7. - onGetTemplatePathByRelativeDocPath -
                8. -
                - - -

                Constants:

                - - - - - - -

                Method details:

                - -
                - - - -```php -public static function getSubscribedEvents(): array; -``` - -
                Returns an array of event names this subscriber wants to listen to.
                - -Parameters: not specified - -Return value: array - - -
                -
                -
                - - - -```php -public function onCreateDocumentedEntityWrapper(\BumbleDocGen\Core\Plugin\Event\Renderer\OnCreateDocumentedEntityWrapper $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\Core\Plugin\Event\Renderer\OnCreateDocumentedEntityWrapper-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function onGetProjectTemplatesDirs(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetProjectTemplatesDirs $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetProjectTemplatesDirs-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function onGetTemplatePathByRelativeDocPath(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetTemplatePathByRelativeDocPath $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetTemplatePathByRelativeDocPath-
                - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/InvalidConfigurationParameterException.md b/docs/tech/4.pluginSystem/classes/InvalidConfigurationParameterException.md deleted file mode 100644 index 5a1220d3..00000000 --- a/docs/tech/4.pluginSystem/classes/InvalidConfigurationParameterException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / InvalidConfigurationParameterException
                - -

                - InvalidConfigurationParameterException class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Configuration\Exception; - -final class InvalidConfigurationParameterException extends \Exception implements \Throwable, \Stringable -``` - -
                Exception is the base class for -all Exceptions.
                - -See: - - - - - - - -

                Initialization methods:

                - -
                  -
                1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
                2. -
                - -

                Methods:

                - -
                  -
                1. - __toString - - String representation of the exception
                2. -
                3. - __wakeup -
                4. -
                5. - getCode - - Gets the Exception code
                6. -
                7. - getFile - - Gets the file in which the exception occurred
                8. -
                9. - getLine - - Gets the line in which the exception occurred
                10. -
                11. - getMessage - - Gets the Exception message
                12. -
                13. - getPrevious - - Returns previous Exception
                14. -
                15. - getTrace - - Gets the stack trace
                16. -
                17. - getTraceAsString - - Gets the stack trace as a string
                18. -
                - - - - - - - -

                Method details:

                - -
                - -
                  -
                • # - __construct -
                • -
                - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
                Construct the exception. Note: The message is NOT binary safe.
                - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $messagestring[optional] The Exception message to throw.
                $codeint[optional] The Exception code.
                $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
                - - - - -See: - -
                -
                -
                - -
                  -
                • # - __toString -
                • -
                - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
                String representation of the exception
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - __wakeup -
                • -
                - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
                -
                -
                - -
                  -
                • # - getCode -
                • -
                - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
                Gets the Exception code
                - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
                -
                -
                - -
                  -
                • # - getFile -
                • -
                - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
                Gets the file in which the exception occurred
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getLine -
                • -
                - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
                Gets the line in which the exception occurred
                - -Parameters: not specified - -Return value: int - - - -See: - -
                -
                -
                - -
                  -
                • # - getMessage -
                • -
                - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
                Gets the Exception message
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getPrevious -
                • -
                - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
                Returns previous Exception
                - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
                -
                -
                - -
                  -
                • # - getTrace -
                • -
                - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
                Gets the stack trace
                - -Parameters: not specified - -Return value: array - - - -See: - -
                -
                -
                - -
                  -
                • # - getTraceAsString -
                • -
                - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
                Gets the stack trace as a string
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/LastPageCommitter.md b/docs/tech/4.pluginSystem/classes/LastPageCommitter.md deleted file mode 100644 index 8bdd4747..00000000 --- a/docs/tech/4.pluginSystem/classes/LastPageCommitter.md +++ /dev/null @@ -1,154 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / LastPageCommitter
                - -

                - LastPageCommitter class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\CorePlugin\LastPageCommitter; - -final class LastPageCommitter implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface -``` - -
                Plugin for adding a block with information about the last commit and date of page update to the generated document
                - - - - - - -

                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 -public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $context, \BumbleDocGen\Core\Configuration\Configuration $configuration); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $context\BumbleDocGen\Core\Renderer\Context\RendererContext-
                $configuration\BumbleDocGen\Core\Configuration\Configuration-
                - - - -
                -
                -
                - - - -```php -public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile-
                - -Return value: void - - -
                -
                -
                - - - -```php -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/classes/OnAddClassEntityToCollection.md b/docs/tech/4.pluginSystem/classes/OnAddClassEntityToCollection.md deleted file mode 100644 index 8247594d..00000000 --- a/docs/tech/4.pluginSystem/classes/OnAddClassEntityToCollection.md +++ /dev/null @@ -1,213 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / OnAddClassEntityToCollection
                - -

                - OnAddClassEntityToCollection class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser; - -final class OnAddClassEntityToCollection extends \Symfony\Contracts\EventDispatcher\Event implements \BumbleDocGen\Core\Plugin\OnlySingleExecutionEvent -``` - -
                Called when each class entity is added to the entity collection
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getClassEntityCollection -
                2. -
                3. - getRootEntity -
                4. -
                5. - getUniqueExecutionId -
                6. -
                7. - isPropagationStopped - - Is propagation stopped?
                8. -
                9. - stopPropagation - - Stops the propagation of the event to further event listeners.
                10. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
                $classEntityCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection-
                - - - -
                -
                -
                - - - -```php -public function getClassEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -
                -
                -
                - - - -```php -public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -
                -
                -
                - - - -```php -public function getUniqueExecutionId(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/OnCheckIsClassEntityCanBeLoad.md b/docs/tech/4.pluginSystem/classes/OnCheckIsClassEntityCanBeLoad.md deleted file mode 100644 index 2c3a1991..00000000 --- a/docs/tech/4.pluginSystem/classes/OnCheckIsClassEntityCanBeLoad.md +++ /dev/null @@ -1,227 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / OnCheckIsClassEntityCanBeLoad
                - -

                - OnCheckIsClassEntityCanBeLoad class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity; - -final class OnCheckIsClassEntityCanBeLoad extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                Event is the base class for classes containing event data.
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - disableClassLoading -
                2. -
                3. - getEntity -
                4. -
                5. - isClassCanBeLoad -
                6. -
                7. - isPropagationStopped - - Is propagation stopped?
                8. -
                9. - stopPropagation - - Stops the propagation of the event to further event listeners.
                10. -
                - - - -

                Properties:

                - -
                  -
                1. - classCanBeLoad
                2. -
                - - - -

                Property details:

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

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $entity); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $entity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
                - - - -
                -
                -
                - - - -```php -public function disableClassLoading(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
                -
                -
                - - - -```php -public function getEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -
                -
                -
                - - - -```php -public function isClassCanBeLoad(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/OnCreateDocumentedEntityWrapper.md b/docs/tech/4.pluginSystem/classes/OnCreateDocumentedEntityWrapper.md deleted file mode 100644 index b0dbaf39..00000000 --- a/docs/tech/4.pluginSystem/classes/OnCreateDocumentedEntityWrapper.md +++ /dev/null @@ -1,160 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / OnCreateDocumentedEntityWrapper
                - -

                - OnCreateDocumentedEntityWrapper class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Renderer; - -final class OnCreateDocumentedEntityWrapper extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                The event occurs when an entity is added to the list for documentation
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getDocumentedEntityWrapper -
                2. -
                3. - isPropagationStopped - - Is propagation stopped?
                4. -
                5. - stopPropagation - - Stops the propagation of the event to further event listeners.
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper $documentedEntityWrapper); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $documentedEntityWrapper\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper-
                - - - -
                -
                -
                - - - -```php -public function getDocumentedEntityWrapper(): \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/OnGetProjectTemplatesDirs.md b/docs/tech/4.pluginSystem/classes/OnGetProjectTemplatesDirs.md deleted file mode 100644 index e9d504ac..00000000 --- a/docs/tech/4.pluginSystem/classes/OnGetProjectTemplatesDirs.md +++ /dev/null @@ -1,201 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / OnGetProjectTemplatesDirs
                - -

                - OnGetProjectTemplatesDirs class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Renderer; - -final class OnGetProjectTemplatesDirs extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                This event occurs when all directories containing document templates are retrieved
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - addTemplatesDir -
                2. -
                3. - getTemplatesDirs -
                4. -
                5. - isPropagationStopped - - Is propagation stopped?
                6. -
                7. - stopPropagation - - Stops the propagation of the event to further event listeners.
                8. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(array $templatesDirs); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $templatesDirsarray-
                - - - -
                -
                -
                - - - -```php -public function addTemplatesDir(string $dirName): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $dirNamestring-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function getTemplatesDirs(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/OnGetTemplatePathByRelativeDocPath.md b/docs/tech/4.pluginSystem/classes/OnGetTemplatePathByRelativeDocPath.md deleted file mode 100644 index 64f9ac0b..00000000 --- a/docs/tech/4.pluginSystem/classes/OnGetTemplatePathByRelativeDocPath.md +++ /dev/null @@ -1,225 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / OnGetTemplatePathByRelativeDocPath
                - -

                - OnGetTemplatePathByRelativeDocPath class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Renderer; - -final class OnGetTemplatePathByRelativeDocPath extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                The event occurs when the path to the template file is obtained relative to the path to the document
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getCustomTemplateFilePath -
                2. -
                3. - getTemplateName -
                4. -
                5. - isPropagationStopped - - Is propagation stopped?
                6. -
                7. - setCustomTemplateFilePath -
                8. -
                9. - stopPropagation - - Stops the propagation of the event to further event listeners.
                10. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(string $templateName); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $templateNamestring-
                - - - -
                -
                -
                - - - -```php -public function getCustomTemplateFilePath(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - -
                -
                -
                - - - -```php -public function getTemplateName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function setCustomTemplateFilePath(string|null $customTemplateFilePath): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $customTemplateFilePathstring | null-
                - -Return value: void - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/OnGettingResourceLink.md b/docs/tech/4.pluginSystem/classes/OnGettingResourceLink.md deleted file mode 100644 index 55ab7614..00000000 --- a/docs/tech/4.pluginSystem/classes/OnGettingResourceLink.md +++ /dev/null @@ -1,225 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / OnGettingResourceLink
                - -

                - OnGettingResourceLink class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Renderer; - -final class OnGettingResourceLink extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                Event occurs when a reference to an entity (resource) is received
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getResourceName -
                2. -
                3. - getResourceUrl -
                4. -
                5. - isPropagationStopped - - Is propagation stopped?
                6. -
                7. - setResourceUrl -
                8. -
                9. - stopPropagation - - Stops the propagation of the event to further event listeners.
                10. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(string $resourceName); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $resourceNamestring-
                - - - -
                -
                -
                - - - -```php -public function getResourceName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getResourceUrl(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -public function setResourceUrl(string|null $resourceUrl): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $resourceUrlstring | null-
                - -Return value: void - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/OnLoadEntityDocPluginContent.md b/docs/tech/4.pluginSystem/classes/OnLoadEntityDocPluginContent.md deleted file mode 100644 index e03471f4..00000000 --- a/docs/tech/4.pluginSystem/classes/OnLoadEntityDocPluginContent.md +++ /dev/null @@ -1,289 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / OnLoadEntityDocPluginContent
                - -

                - OnLoadEntityDocPluginContent class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Renderer; - -final class OnLoadEntityDocPluginContent extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                Called when entity documentation is generated (plugin content loading)
                - -See: - - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - addBlockContentPluginResult -
                2. -
                3. - getBlockContent -
                4. -
                5. - getBlockContentPluginResults -
                6. -
                7. - getBlockType -
                8. -
                9. - getEntity -
                10. -
                11. - isPropagationStopped - - Is propagation stopped?
                12. -
                13. - stopPropagation - - Stops the propagation of the event to further event listeners.
                14. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(string $blockContent, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity, string $blockType); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $blockContentstring-
                $entity\BumbleDocGen\Core\Parser\Entity\RootEntityInterface-
                $blockTypestring-
                - - - -
                -
                -
                - - - -```php -public function addBlockContentPluginResult(string $pluginResult): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $pluginResultstring-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function getBlockContent(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getBlockContentPluginResults(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
                -
                -
                - - - -```php -public function getBlockType(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
                -
                -
                - - - -```php -public function getEntity(): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/OnLoadSourceLocatorsCollection.md b/docs/tech/4.pluginSystem/classes/OnLoadSourceLocatorsCollection.md deleted file mode 100644 index 0bc4f882..00000000 --- a/docs/tech/4.pluginSystem/classes/OnLoadSourceLocatorsCollection.md +++ /dev/null @@ -1,160 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / OnLoadSourceLocatorsCollection
                - -

                - OnLoadSourceLocatorsCollection class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Parser; - -final class OnLoadSourceLocatorsCollection extends \Symfony\Contracts\EventDispatcher\Event -``` - -
                Called when source locators are loaded
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getSourceLocatorsCollection -
                2. -
                3. - isPropagationStopped - - Is propagation stopped?
                4. -
                5. - stopPropagation - - Stops the propagation of the event to further event listeners.
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection $sourceLocatorsCollection); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $sourceLocatorsCollection\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection-
                - - - -
                -
                -
                - - - -```php -public function getSourceLocatorsCollection(): \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
                Is propagation stopped?
                - -Parameters: not specified - -Return value: bool - - -
                -
                -
                - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
                Stops the propagation of the event to further event listeners.
                - -Parameters: not specified - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/PageRstLinkerPlugin.md b/docs/tech/4.pluginSystem/classes/PageRstLinkerPlugin.md deleted file mode 100644 index 433b4745..00000000 --- a/docs/tech/4.pluginSystem/classes/PageRstLinkerPlugin.md +++ /dev/null @@ -1,206 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / PageRstLinkerPlugin
                - -

                - PageRstLinkerPlugin class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin\CorePlugin\PageLinker; - -final class PageRstLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface -``` - -
                Adds URLs to empty links in rst 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 -`Existent page name`_ => `Existent page name `_ - -``` - -```php -`Non-existent page name`_ => 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/classes/PhpDocumentorStubberPlugin.md b/docs/tech/4.pluginSystem/classes/PhpDocumentorStubberPlugin.md deleted file mode 100644 index a7be44da..00000000 --- a/docs/tech/4.pluginSystem/classes/PhpDocumentorStubberPlugin.md +++ /dev/null @@ -1,146 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / PhpDocumentorStubberPlugin
                - -

                - PhpDocumentorStubberPlugin class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\BasePhpStubber; - -final class PhpDocumentorStubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface -``` - -
                Adding links to the documentation of PHP classes in the \phpDocumentor namespace
                - - - - - - - -

                Methods:

                - -
                  -
                1. - getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
                2. -
                3. - onCheckIsClassEntityCanBeLoad -
                4. -
                5. - onGettingResourceLink -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public static function getSubscribedEvents(): array; -``` - -
                Returns an array of event names this subscriber wants to listen to.
                - -Parameters: not specified - -Return value: array - - -
                -
                -
                - - - -```php -public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink-
                - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/PhpUnitStubberPlugin.md b/docs/tech/4.pluginSystem/classes/PhpUnitStubberPlugin.md deleted file mode 100644 index 30956139..00000000 --- a/docs/tech/4.pluginSystem/classes/PhpUnitStubberPlugin.md +++ /dev/null @@ -1,146 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / PhpUnitStubberPlugin
                - -

                - PhpUnitStubberPlugin class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\BasePhpStubber; - -final class PhpUnitStubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface -``` - -
                Adding links to the documentation of PHP classes in the \PHPUnit namespace
                - - - - - - - -

                Methods:

                - -
                  -
                1. - getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
                2. -
                3. - onCheckIsClassEntityCanBeLoad -
                4. -
                5. - onGettingResourceLink -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public static function getSubscribedEvents(): array; -``` - -
                Returns an array of event names this subscriber wants to listen to.
                - -Parameters: not specified - -Return value: array - - -
                -
                -
                - - - -```php -public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad-
                - -Return value: void - - -
                -
                -
                - - - -```php -public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink-
                - -Return value: void - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/PluginInterface.md b/docs/tech/4.pluginSystem/classes/PluginInterface.md deleted file mode 100644 index 6e9a56d9..00000000 --- a/docs/tech/4.pluginSystem/classes/PluginInterface.md +++ /dev/null @@ -1,66 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / PluginInterface
                - -

                - PluginInterface class: -

                - - - - - -```php -namespace BumbleDocGen\Core\Plugin; - -interface PluginInterface extends \\Symfony\Component\EventDispatcher\EventSubscriberInterface implements \Symfony\Component\EventDispatcher\EventSubscriberInterface -``` - - - - - - - - - -

                Methods:

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

                Method details:

                - -
                - - - -```php -// Implemented in Symfony\Component\EventDispatcher\EventSubscriberInterface - -public static function getSubscribedEvents(): array>; -``` - -
                Returns an array of event names this subscriber wants to listen to.
                - -Parameters: not specified - -Return value: array | array{0:string,1:int} | list> - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/ReflectionException.md b/docs/tech/4.pluginSystem/classes/ReflectionException.md deleted file mode 100644 index 96ce19e2..00000000 --- a/docs/tech/4.pluginSystem/classes/ReflectionException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / ReflectionException
                - -

                - ReflectionException class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception; - -final class ReflectionException extends \Exception implements \Throwable, \Stringable -``` - -
                Exception is the base class for -all Exceptions.
                - -See: - - - - - - - -

                Initialization methods:

                - -
                  -
                1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
                2. -
                - -

                Methods:

                - -
                  -
                1. - __toString - - String representation of the exception
                2. -
                3. - __wakeup -
                4. -
                5. - getCode - - Gets the Exception code
                6. -
                7. - getFile - - Gets the file in which the exception occurred
                8. -
                9. - getLine - - Gets the line in which the exception occurred
                10. -
                11. - getMessage - - Gets the Exception message
                12. -
                13. - getPrevious - - Returns previous Exception
                14. -
                15. - getTrace - - Gets the stack trace
                16. -
                17. - getTraceAsString - - Gets the stack trace as a string
                18. -
                - - - - - - - -

                Method details:

                - -
                - -
                  -
                • # - __construct -
                • -
                - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
                Construct the exception. Note: The message is NOT binary safe.
                - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $messagestring[optional] The Exception message to throw.
                $codeint[optional] The Exception code.
                $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
                - - - - -See: - -
                -
                -
                - -
                  -
                • # - __toString -
                • -
                - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
                String representation of the exception
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - __wakeup -
                • -
                - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
                -
                -
                - -
                  -
                • # - getCode -
                • -
                - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
                Gets the Exception code
                - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
                -
                -
                - -
                  -
                • # - getFile -
                • -
                - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
                Gets the file in which the exception occurred
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getLine -
                • -
                - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
                Gets the line in which the exception occurred
                - -Parameters: not specified - -Return value: int - - - -See: - -
                -
                -
                - -
                  -
                • # - getMessage -
                • -
                - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
                Gets the Exception message
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                -
                - -
                  -
                • # - getPrevious -
                • -
                - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
                Returns previous Exception
                - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
                -
                -
                - -
                  -
                • # - getTrace -
                • -
                - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
                Gets the stack trace
                - -Parameters: not specified - -Return value: array - - - -See: - -
                -
                -
                - -
                  -
                • # - getTraceAsString -
                • -
                - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
                Gets the stack trace as a string
                - -Parameters: not specified - -Return value: string - - - -See: - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/StubberPlugin.md b/docs/tech/4.pluginSystem/classes/StubberPlugin.md deleted file mode 100644 index eae9c06f..00000000 --- a/docs/tech/4.pluginSystem/classes/StubberPlugin.md +++ /dev/null @@ -1,204 +0,0 @@ - - BumbleDocGen / Technical description of the project / Plugin system / StubberPlugin
                - -

                - StubberPlugin class: -

                - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\ComposerPackagesStubber; - -final class StubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface -``` - -
                The plugin allows you to automatically provide links to github repositories for documented classes from libraries included in composer
                - - - - - - -

                Initialization methods:

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

                Methods:

                - -
                  -
                1. - getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
                2. -
                3. - onCheckIsClassEntityCanBeLoad -
                4. -
                5. - onGettingResourceLink -
                6. -
                - - - - - - - -

                Method details:

                - -
                - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser $composerParser); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $composerParser\BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser-
                - - - -
                -
                -
                - - - -```php -public static function getSubscribedEvents(): array; -``` - -
                Returns an array of event names this subscriber wants to listen to.
                - -Parameters: not specified - -Return value: array - - -
                -
                -
                - - - -```php -public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad-
                - -Return value: void - - -Throws: - - -
                -
                -
                - - - -```php -public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink $event): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
                NameTypeDescription
                $event\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink-
                - -Return value: void - - -Throws: - - -
                -
                - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/readme.md b/docs/tech/4.pluginSystem/readme.md deleted file mode 100644 index 01f7ca5b..00000000 --- a/docs/tech/4.pluginSystem/readme.md +++ /dev/null @@ -1,193 +0,0 @@ - BumbleDocGen / Technical description of the project / Plugin system
                - -

                Plugin system

                - -The documentation generator includes the ability to expand the functionality using plugins that allow you to add the necessary functionality to the system without changing its core. - -The system is built on the basis of an event model, each plugin class must implement PluginInterface. - -

                Configuration example

                - -You can add your plugins to the configuration like this: - -```yaml -plugins: - - class: \SelfDocConfig\Plugin\RoaveStubber\BetterReflectionStubberPlugin - - class: \SelfDocConfig\Plugin\TwigFilterClassParser\TwigFilterClassParserPlugin - - class: \SelfDocConfig\Plugin\TwigFunctionClassParser\TwigFunctionClassParserPlugin -``` - -

                Default plugins

                - -Below are the plugins that are available by default when working with the library. -Plugins for any programming languages work regardless of which language handler is configured in the configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                PluginPLHandles eventsDescription
                LastPageCommitterany - - Plugin for adding a block with information about the last commit and date of page update to the generated document
                PageHtmlLinkerPluginany - - 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
                PageLinkerPluginany - - 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
                PageRstLinkerPluginany - - Adds URLs to empty links in rst 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
                BasePhpStubberPluginPHP - - Adding links to type documentation and documentation of built-in PHP classes
                PhpDocumentorStubberPluginPHP - - Adding links to the documentation of PHP classes in the \phpDocumentor namespace
                PhpUnitStubberPluginPHP - - Adding links to the documentation of PHP classes in the \PHPUnit namespace
                StubberPluginPHP - - The plugin allows you to automatically provide links to github repositories for documented classes from libraries included in composer
                EntityDocUnifiedPlacePluginPHP - - This plugin changes the algorithm for saving entity documents. The standard system stores each file -in a directory next to the file where it was requested. This behavior changes and all documents are saved -in a separate directory structure, so they are not duplicated.
                - -

                Default events

                - - - -

                Adding a new plugin

                - -If you decide to add a new plugin, there are a few things you need to do: - -

                1) Add plugin class and implement events handling

                - -```php -namespace Demo\Plugin\DemoFakeResourceLinkPlugin; - -final class DemoFakeResourceLinkPlugin implements \BumbleDocGen\Core\Plugin\PluginInterface -{ - public static function getSubscribedEvents(): array - { - return [ - \BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink::class => 'onGettingResourceLink', - ]; - } - - public function onGettingResourceLink(OnGettingResourceLink $event): void - { - if (!$event->getResourceUrl()) { - $event->setResourceUrl("https://google.com"); - } - } -} -``` - -

                2) Add the new plugin to the configuration

                - -```yaml -plugins: - - class: \Demo\Plugin\DemoFakeResourceLinkPlugin\DemoFakeResourceLinkPlugin -``` - - -
                -
                -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
                Last modified date: Sat Oct 28 11:03:31 2023 +0300
                Page content update date: Mon Nov 06 2023
                Made with Bumble Documentation Generator
                \ No newline at end of file diff --git a/docs/tech/classes/AddDocBlocksCommand.md b/docs/tech/classes/AddDocBlocksCommand.md index e4bca321..63cd8403 100644 --- a/docs/tech/classes/AddDocBlocksCommand.md +++ b/docs/tech/classes/AddDocBlocksCommand.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / AddDocBlocksCommand
                + BumbleDocGen / Technical description of the project / Console app / AddDocBlocksCommand

                - AddDocBlocksCommand class: + AddDocBlocksCommand class:

                @@ -15,7 +14,7 @@ namespace BumbleDocGen\AI\Console; final class AddDocBlocksCommand extends \BumbleDocGen\Console\Command\BaseCommand ``` -
                Base class for all commands.
                + @@ -30,109 +29,6 @@ final class AddDocBlocksCommand extends \BumbleDocGen\Console\Command\BaseComman
              -

              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:

              @@ -142,21 +38,9 @@ final class AddDocBlocksCommand extends \BumbleDocGen\Console\Command\BaseComman

              Constants:

              @@ -196,1198 +80,12 @@ public function __construct(string $name = null); $name string - The 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/AddIndentFromLeft.md b/docs/tech/classes/AddIndentFromLeft.md index 67c77eb5..28632e5e 100644 --- a/docs/tech/classes/AddIndentFromLeft.md +++ b/docs/tech/classes/AddIndentFromLeft.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / AddIndentFromLeft
              + BumbleDocGen / Technical description of the project / Configuration / AddIndentFromLeft

              AddIndentFromLeft class: @@ -149,5 +148,3 @@ public static function getOptions(): array;
              - - \ No newline at end of file diff --git a/docs/tech/classes/AdditionalCommandCollection.md b/docs/tech/classes/AdditionalCommandCollection.md deleted file mode 100644 index 35b3aaca..00000000 --- a/docs/tech/classes/AdditionalCommandCollection.md +++ /dev/null @@ -1,159 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / AdditionalCommandCollection
              - -

              - AdditionalCommandCollection class: -

              - - - - - -```php -namespace BumbleDocGen\Console\Command; - -final class AdditionalCommandCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

              Methods:

              - -
                -
              1. - add -
              2. -
              3. - create -
              4. -
              5. - getIterator - - Retrieve an external iterator
              6. -
              - - - - - - - -

              Method details:

              - -
              - - - -```php -public function add(\Symfony\Component\Console\Command\Command $command): \BumbleDocGen\Console\Command\AdditionalCommandCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
              NameTypeDescription
              $command\Symfony\Component\Console\Command\Command-
              - -Return value: \BumbleDocGen\Console\Command\AdditionalCommandCollection - - -
              -
              -
              - - - -```php -public static function create(\Symfony\Component\Console\Command\Command ...$commands): \BumbleDocGen\Console\Command\AdditionalCommandCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
              NameTypeDescription
              $commands (variadic)\Symfony\Component\Console\Command\Command-
              - -Return value: \BumbleDocGen\Console\Command\AdditionalCommandCollection - - -
              -
              -
              - - - -```php -public function getIterator(): \Generator; -``` - -
              Retrieve an external iterator
              - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
              -
              - - \ No newline at end of file diff --git a/docs/tech/classes/AfterLoadingClassEntityCollection.md b/docs/tech/classes/AfterLoadingClassEntityCollection.md deleted file mode 100644 index 82149929..00000000 --- a/docs/tech/classes/AfterLoadingClassEntityCollection.md +++ /dev/null @@ -1,160 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / AfterLoadingClassEntityCollection
              - -

              - AfterLoadingClassEntityCollection class: -

              - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser; - -final class AfterLoadingClassEntityCollection extends \Symfony\Contracts\EventDispatcher\Event -``` - -
              The event is called after the initial creation of a collection of class entities
              - - - - - - -

              Initialization methods:

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

              Methods:

              - -
                -
              1. - getClassEntityCollection -
              2. -
              3. - isPropagationStopped - - Is propagation stopped?
              4. -
              5. - stopPropagation - - Stops the propagation of the event to further event listeners.
              6. -
              - - - - - - - -

              Method details:

              - -
              - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
              NameTypeDescription
              $classEntityCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection-
              - - - -
              -
              -
              - - - -```php -public function getClassEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -
              -
              -
              - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
              Is propagation stopped?
              - -Parameters: not specified - -Return value: bool - - -
              -
              -
              - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
              Stops the propagation of the event to further event listeners.
              - -Parameters: not specified - -Return value: void - - -
              -
              - - \ No newline at end of file diff --git a/docs/tech/classes/AfterLoadingPhpEntitiesCollection.md b/docs/tech/classes/AfterLoadingPhpEntitiesCollection.md new file mode 100644 index 00000000..966601ce --- /dev/null +++ b/docs/tech/classes/AfterLoadingPhpEntitiesCollection.md @@ -0,0 +1,105 @@ + BumbleDocGen / Technical description of the project / Plugin system / AfterLoadingPhpEntitiesCollection
              + +

              + AfterLoadingPhpEntitiesCollection class: +

              + + + + + +```php +namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser; + +final class AfterLoadingPhpEntitiesCollection extends \Symfony\Contracts\EventDispatcher\Event +``` + +
              The event is called after the initial creation of a collection of PHP entities
              + + + + + + +

              Initialization methods:

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

              Methods:

              + +
                +
              1. + getPhpEntitiesCollection +
              2. +
              + + + + + + + +

              Method details:

              + +
              + + + +```php +public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection $entitiesCollection); +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
              NameTypeDescription
              $entitiesCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection-
              + + + +
              +
              +
              + + + +```php +public function getPhpEntitiesCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection + + +
              +
              diff --git a/docs/tech/classes/AfterRenderingEntities.md b/docs/tech/classes/AfterRenderingEntities.md index a64b57f8..3c6ad6c5 100644 --- a/docs/tech/classes/AfterRenderingEntities.md +++ b/docs/tech/classes/AfterRenderingEntities.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / AfterRenderingEntities
              + BumbleDocGen / Technical description of the project / Plugin system / AfterRenderingEntities

              AfterRenderingEntities class: @@ -15,7 +14,6 @@ namespace BumbleDocGen\Core\Plugin\Event\Renderer; final class AfterRenderingEntities extends \Symfony\Contracts\EventDispatcher\Event ``` -
              Event is the base class for classes containing event data.
              @@ -23,16 +21,7 @@ final class AfterRenderingEntities extends \Symfony\Contracts\EventDispatcher\Ev -

              Methods:

              -
                -
              1. - isPropagationStopped - - Is propagation stopped?
              2. -
              3. - stopPropagation - - Stops the propagation of the event to further event listeners.
              4. -
              @@ -40,53 +29,3 @@ final class AfterRenderingEntities extends \Symfony\Contracts\EventDispatcher\Ev -

              Method details:

              - -
              - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
              Is propagation stopped?
              - -Parameters: not specified - -Return value: bool - - -
              -
              -
              - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
              Stops the propagation of the event to further event listeners.
              - -Parameters: not specified - -Return value: void - - -
              -
              - - \ No newline at end of file diff --git a/docs/tech/classes/App.md b/docs/tech/classes/App.md index a6a41439..9983c68f 100644 --- a/docs/tech/classes/App.md +++ b/docs/tech/classes/App.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / App
              + BumbleDocGen / Technical description of the project / Console app / App

              - App class: + App class:

              @@ -15,7 +14,7 @@ namespace BumbleDocGen\Console; class App extends \Symfony\Component\Console\Application ``` -
              An Application is the container for a collection of commands.
              + @@ -30,118 +29,6 @@ class App extends \Symfony\Component\Console\Application
            -

            Methods:

            - -
              -
            1. - add - - Adds a command object.
            2. -
            3. - addCommands - - Adds an array of command objects.
            4. -
            5. - all - - Gets the commands (registered in the given namespace if provided).
            6. -
            7. - areExceptionsCaught - - Gets whether to catch exceptions or not during commands execution.
            8. -
            9. - complete - - Adds suggestions to $suggestions for the current completion input (e.g. option or argument).
            10. -
            11. - doRun - - Runs the current application.
            12. -
            13. - extractNamespace - - Returns the namespace part of the command name.
            14. -
            15. - find - - Finds a command by name or alias.
            16. -
            17. - findNamespace - - Finds a registered namespace by a name or an abbreviation.
            18. -
            19. - get - - Returns a registered command by name or alias.
            20. -
            21. - getAbbreviations - - Returns an array of possible abbreviations given a set of names.
            22. -
            23. - getDefinition - - Gets the InputDefinition related to this Application.
            24. -
            25. - getHelp - - Gets the help message.
            26. -
            27. - getHelperSet - - Get the helper set associated with the command.
            28. -
            29. - getLongVersion - - Returns the long version of the application.
            30. -
            31. - getName - - Gets the name of the application.
            32. -
            33. - getNamespaces - - Returns an array of all unique namespaces used by currently registered commands.
            34. -
            35. - getSignalRegistry -
            36. -
            37. - getVersion - - Gets the application version.
            38. -
            39. - has - - Returns true if the command exists, false otherwise.
            40. -
            41. - isAutoExitEnabled - - Gets whether to automatically exit after a command execution or not.
            42. -
            43. - isSingleCommand -
            44. -
            45. - register - - Registers a new command.
            46. -
            47. - renderThrowable -
            48. -
            49. - reset -
            50. -
            51. - run - - Runs the current application.
            52. -
            53. - setAutoExit - - Sets whether to automatically exit after a command execution or not.
            54. -
            55. - setCatchExceptions - - Sets whether to catch exceptions or not during commands execution.
            56. -
            57. - setCommandLoader -
            58. -
            59. - setDefaultCommand - - Sets the default Command name.
            60. -
            61. - setDefinition -
            62. -
            63. - setDispatcher -
            64. -
            65. - setHelperSet -
            66. -
            67. - setName - - Sets the application name.
            68. -
            69. - setSignalsToDispatchEvent -
            70. -
            71. - setVersion - - Sets the application version.
            72. -
            @@ -156,7 +43,7 @@ class App extends \Symfony\Component\Console\Application ```php @@ -171,1299 +58,3 @@ public function __construct();
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function add(\Symfony\Component\Console\Command\Command $command): \Symfony\Component\Console\Command\Command|null; -``` - -
            Adds a command object.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $command\Symfony\Component\Console\Command\Command-
            - -Return value: \Symfony\Component\Console\Command\Command | null - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function addCommands(array $commands): mixed; -``` - -
            Adds an array of command objects.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $commandsarrayAn array of commands
            - -Return value: mixed - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function all(string $namespace = null): \Symfony\Component\Console\Command\Command[]; -``` - -
            Gets the commands (registered in the given namespace if provided).
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namespacestring-
            - -Return value: \Symfony\Component\Console\Command\Command[] - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function areExceptionsCaught(): bool; -``` - -
            Gets whether to catch exceptions or not during commands execution.
            - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -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\Application - -public function doRun(\Symfony\Component\Console\Input\InputInterface $input, \Symfony\Component\Console\Output\OutputInterface $output): int; -``` - -
            Runs the current application.
            - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $input\Symfony\Component\Console\Input\InputInterface-
            $output\Symfony\Component\Console\Output\OutputInterface-
            - -Return value: int - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function extractNamespace(string $name, int $limit = null): string; -``` - -
            Returns the namespace part of the command name.
            - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namestring-
            $limitint-
            - -Return value: string - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function find(string $name): \Symfony\Component\Console\Command\Command; -``` - -
            Finds a command by name or alias.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namestring-
            - -Return value: \Symfony\Component\Console\Command\Command - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function findNamespace(string $namespace): string; -``` - -
            Finds a registered namespace by a name or an abbreviation.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namespacestring-
            - -Return value: string - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function get(string $name): \Symfony\Component\Console\Command\Command; -``` - -
            Returns a registered command by name or alias.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namestring-
            - -Return value: \Symfony\Component\Console\Command\Command - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public static function getAbbreviations(array $names): array; -``` - -
            Returns an array of possible abbreviations given a set of names.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namesarray-
            - -Return value: array - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function getDefinition(): \Symfony\Component\Console\Input\InputDefinition; -``` - -
            Gets the InputDefinition related to this Application.
            - -Parameters: not specified - -Return value: \Symfony\Component\Console\Input\InputDefinition - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function getHelp(): string; -``` - -
            Gets the help message.
            - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function getHelperSet(): \Symfony\Component\Console\Helper\HelperSet; -``` - -
            Get the helper set associated with the command.
            - -Parameters: not specified - -Return value: \Symfony\Component\Console\Helper\HelperSet - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function getLongVersion(): string; -``` - -
            Returns the long version of the application.
            - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function getName(): string; -``` - -
            Gets the name of the application.
            - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function getNamespaces(): array; -``` - -
            Returns an array of all unique namespaces used by currently registered commands.
            - -Parameters: not specified - -Return value: array - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function getSignalRegistry(): \Symfony\Component\Console\SignalRegistry\SignalRegistry; -``` - - - -Parameters: not specified - -Return value: \Symfony\Component\Console\SignalRegistry\SignalRegistry - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function getVersion(): string; -``` - -
            Gets the application version.
            - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function has(string $name): bool; -``` - -
            Returns true if the command exists, false otherwise.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namestring-
            - -Return value: bool - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function isAutoExitEnabled(): bool; -``` - -
            Gets whether to automatically exit after a command execution or not.
            - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - -
              -
            • # - isSingleCommand - :warning: Is internal | source code
            • -
            - -```php -// Implemented in Symfony\Component\Console\Application - -public function isSingleCommand(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function register(string $name): \Symfony\Component\Console\Command\Command; -``` - -
            Registers a new command.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namestring-
            - -Return value: \Symfony\Component\Console\Command\Command - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function renderThrowable(\Throwable $e, \Symfony\Component\Console\Output\OutputInterface $output): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $e\Throwable-
            $output\Symfony\Component\Console\Output\OutputInterface-
            - -Return value: void - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function reset(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function run(\Symfony\Component\Console\Input\InputInterface $input = null, \Symfony\Component\Console\Output\OutputInterface $output = null): int; -``` - -
            Runs the current application.
            - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $input\Symfony\Component\Console\Input\InputInterface-
            $output\Symfony\Component\Console\Output\OutputInterface-
            - -Return value: int - - -Throws: -
              -
            • - \Exception - When running fails. Bypass this when {@link setCatchExceptions()}.
            • - -
            - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function setAutoExit(bool $boolean): mixed; -``` - -
            Sets whether to automatically exit after a command execution or not.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $booleanbool-
            - -Return value: mixed - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function setCatchExceptions(bool $boolean): mixed; -``` - -
            Sets whether to catch exceptions or not during commands execution.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $booleanbool-
            - -Return value: mixed - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function setCommandLoader(\Symfony\Component\Console\CommandLoader\CommandLoaderInterface $commandLoader): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $commandLoader\Symfony\Component\Console\CommandLoader\CommandLoaderInterface-
            - -Return value: mixed - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function setDefaultCommand(string $commandName, bool $isSingleCommand = false): static; -``` - -
            Sets the default Command name.
            - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $commandNamestring-
            $isSingleCommandbool-
            - -Return value: static - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function setDefinition(\Symfony\Component\Console\Input\InputDefinition $definition): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $definition\Symfony\Component\Console\Input\InputDefinition-
            - -Return value: mixed - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function setDispatcher(\Symfony\Contracts\EventDispatcher\EventDispatcherInterface $dispatcher): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $dispatcher\Symfony\Contracts\EventDispatcher\EventDispatcherInterface-
            - -Return value: mixed - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -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\Application - -public function setName(string $name): mixed; -``` - -
            Sets the application name.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namestring-
            - -Return value: mixed - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function setSignalsToDispatchEvent(int ...$signalsToDispatchEvent): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $signalsToDispatchEvent (variadic)int-
            - -Return value: mixed - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Component\Console\Application - -public function setVersion(string $version): mixed; -``` - -
            Sets the application version.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $versionstring-
            - -Return value: mixed - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/ArgvValueResolver.md b/docs/tech/classes/ArgvValueResolver.md deleted file mode 100644 index a6abd8d6..00000000 --- a/docs/tech/classes/ArgvValueResolver.md +++ /dev/null @@ -1,100 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ArgvValueResolver
            - -

            - ArgvValueResolver class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Configuration\ValueResolver; - -final class ArgvValueResolver implements \BumbleDocGen\Core\Configuration\ValueResolver\ValueResolverInterface -``` - -
            We supplement the values by replacing the shortcodes with real values by -the arguments passed to the script when running from the command line; -Template: %argv:param_num% , where param_num is the number of the argument passed to the script
            - - -Examples of using: - -```php -# Configuration processing example. -# In case passing argument 3 => 'test' -output_dir: "%argv:3%/docs" - -# After the value processing procedure, output_dir => "test/docs" - -``` - - - - - - - -

            Methods:

            - -
              -
            1. - resolveValue -
            2. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function resolveValue(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, mixed $value): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
            $valuemixed-
            - -Return value: mixed - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/AsyncSourceLocator.md b/docs/tech/classes/AsyncSourceLocator.md deleted file mode 100644 index c5e1315f..00000000 --- a/docs/tech/classes/AsyncSourceLocator.md +++ /dev/null @@ -1,159 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / AsyncSourceLocator
            - -

            - AsyncSourceLocator class: -

            - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator; - -final class AsyncSourceLocator implements \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface, \BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\CustomSourceLocatorInterface -``` - -
            Lazy loading classes. Cannot be used for initial parsing of files, only for getting specific documents
            - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - getFinder -
            2. -
            3. - getSourceLocator -
            4. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, array $psr4FileMap, array $classMap); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
            $psr4FileMaparray-
            $classMaparray-
            - - - -
            -
            -
            - - - -```php -public function getFinder(): \Symfony\Component\Finder\Finder|null; -``` - - - -Parameters: not specified - -Return value: \Symfony\Component\Finder\Finder | null - - -
            -
            -
            - - - -```php -public function getSourceLocator(\Roave\BetterReflection\SourceLocator\Ast\Locator $astLocator): \Roave\BetterReflection\SourceLocator\Type\SourceLocator; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $astLocator\Roave\BetterReflection\SourceLocator\Ast\Locator-
            - -Return value: \Roave\BetterReflection\SourceLocator\Type\SourceLocator - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/BaseCommand.md b/docs/tech/classes/BaseCommand.md deleted file mode 100644 index 75a7fd8e..00000000 --- a/docs/tech/classes/BaseCommand.md +++ /dev/null @@ -1,1382 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / BaseCommand
            - -

            - BaseCommand class: -

            - - - - - -```php -namespace BumbleDocGen\Console\Command; - -abstract class BaseCommand extends \Symfony\Component\Console\Command\Command -``` - -
            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. -
            - - -

            Constants:

            - - - - - - -

            Method details:

            - -
            - - - -```php -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/BaseEntity.md b/docs/tech/classes/BaseEntity.md deleted file mode 100644 index 1f29bd28..00000000 --- a/docs/tech/classes/BaseEntity.md +++ /dev/null @@ -1,958 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / BaseEntity
            - -

            - BaseEntity class: -

            - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; - -abstract class BaseEntity implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface -``` - - - - - - - - - -

            Methods:

            - -
              -
            1. - entityCacheIsOutdated -
            2. -
            3. - getAbsoluteFileName - - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            4. -
            5. - getCacheKey -
            6. -
            7. - getCachedEntityDependencies -
            8. -
            9. - getDescription -
            10. -
            11. - getDescriptionLinks - - Get parsed links from description and doc blocks `see` and `link`
            12. -
            13. - getDocBlock -
            14. -
            15. - getDocComment - - Get the doc comment of an entity
            16. -
            17. - getDocCommentEntity -
            18. -
            19. - getDocNote -
            20. -
            21. - getExamples - - Get parsed examples from `examples` doc block
            22. -
            23. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
            24. -
            25. - getFileSourceLink -
            26. -
            27. - getFirstExample - - Get first example from @examples doc block
            28. -
            29. - getImplementingReflectionClass -
            30. -
            31. - getName -
            32. -
            33. - getObjectId - - Get entity unique ID
            34. -
            35. - getPhpHandlerSettings -
            36. -
            37. - getRootEntityCollection - - Get parent collection of entities
            38. -
            39. - getShortName -
            40. -
            41. - getStartLine -
            42. -
            43. - getThrows - - Get parsed throws from `throws` doc block
            44. -
            45. - hasDescriptionLinks -
            46. -
            47. - hasExamples -
            48. -
            49. - hasThrows -
            50. -
            51. - isDeprecated -
            52. -
            53. - isEntityDataCacheOutdated -
            54. -
            55. - isEntityFileCanBeLoad -
            56. -
            57. - isInternal -
            58. -
            59. - reloadEntityDependenciesCache -
            60. -
            61. - removeEntityValueFromCache -
            62. -
            63. - removeNotUsedEntityDataCache -
            64. -
            - -

            Traits:

            - - - - - - - - -

            Method details:

            - -
            - - - -```php -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function getAbsoluteFileName(): string|null; -``` - -
            Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            - -Parameters: not specified - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function getCacheKey(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getCachedEntityDependencies(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getDescription(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getDescriptionLinks(): array; -``` - -
            Get parsed links from description and doc blocks `see` and `link`
            - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; -``` - - - -Parameters: not specified - -Return value: \phpDocumentor\Reflection\DocBlock - - -
            -
            -
            - - - -```php -public function getDocComment(): string; -``` - -
            Get the doc comment of an entity
            - -Parameters: not specified - -Return value: string - - -Throws: - - -
            -
            -
            - - - -```php -public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity|\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity | \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity - - -
            -
            -
            - - - -```php -public function getDocNote(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getExamples(): array; -``` - -
            Get parsed examples from `examples` doc block
            - -Parameters: not specified - -Return value: array - - -
            -
            -
            - - - -```php -public function getFileName(): string|null; -``` - -
            Returns the relative path to a file if it can be retrieved and if the file is in the project directory
            - -Parameters: not specified - -Return value: string | null - - -
            -
            -
            - - - -```php -public function getFileSourceLink(bool $withLine = true): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $withLinebool-
            - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getFirstExample(): string; -``` - -
            Get first example from @examples doc block
            - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: not specified - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getObjectId(): string; -``` - -
            Get entity unique ID
            - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings - - -
            -
            -
            - - - -```php -public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -``` - -
            Get parent collection of entities
            - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getShortName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getStartLine(): int; -``` - - - -Parameters: not specified - -Return value: int - - -
            -
            -
            - - - -```php -public function getThrows(): array; -``` - -
            Get parsed throws from `throws` doc block
            - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function hasDescriptionLinks(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function hasExamples(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function hasThrows(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function isDeprecated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function isEntityDataCacheOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function isEntityFileCanBeLoad(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function isInternal(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function reloadEntityDependenciesCache(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function removeEntityValueFromCache(string $key): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $keystring-
            - -Return value: void - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function removeNotUsedEntityDataCache(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/BaseEntityCollection.md b/docs/tech/classes/BaseEntityCollection.md deleted file mode 100644 index 5ffc4f7b..00000000 --- a/docs/tech/classes/BaseEntityCollection.md +++ /dev/null @@ -1,224 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / BaseEntityCollection
            - -

            - BaseEntityCollection class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity; - -abstract class BaseEntityCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

            Methods:

            - -
              -
            1. - get -
            2. -
            3. - getIterator - - Retrieve an external iterator
            4. -
            5. - has -
            6. -
            7. - isEmpty -
            8. -
            9. - remove -
            10. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\EntityInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $objectNamestring-
            - -Return value: \BumbleDocGen\Core\Parser\Entity\EntityInterface | null - - -
            -
            -
            - - - -```php -public function getIterator(): \Generator; -``` - -
            Retrieve an external iterator
            - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
            -
            -
            - - - -```php -public function has(string $objectName): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $objectNamestring-
            - -Return value: bool - - -
            -
            -
            - - - -```php -public function isEmpty(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function remove(string $objectName): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $objectNamestring-
            - -Return value: void - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/BasePageLinkProcessor.md b/docs/tech/classes/BasePageLinkProcessor.md index 69e95f28..99837dc9 100644 --- a/docs/tech/classes/BasePageLinkProcessor.md +++ b/docs/tech/classes/BasePageLinkProcessor.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / BasePageLinkProcessor
            + BumbleDocGen / Technical description of the project / Configuration / BasePageLinkProcessor

            BasePageLinkProcessor class: @@ -121,5 +120,3 @@ public function getAbsoluteUrl(string $relativeUrl): string;
            - - \ No newline at end of file diff --git a/docs/tech/classes/BasePageLinker.md b/docs/tech/classes/BasePageLinker.md deleted file mode 100644 index 9e0e7672..00000000 --- a/docs/tech/classes/BasePageLinker.md +++ /dev/null @@ -1,180 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / BasePageLinker
            - -

            - BasePageLinker class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Plugin\CorePlugin\PageLinker; - -abstract class BasePageLinker implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface -``` - - - - - - - - -

            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 -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 -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 -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/classes/BasePhpStubberPlugin.md b/docs/tech/classes/BasePhpStubberPlugin.md index aa636a5b..73144fff 100644 --- a/docs/tech/classes/BasePhpStubberPlugin.md +++ b/docs/tech/classes/BasePhpStubberPlugin.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / BasePhpStubberPlugin
            + BumbleDocGen / Technical description of the project / Plugin system / BasePhpStubberPlugin

            - BasePhpStubberPlugin class: + BasePhpStubberPlugin class:

            @@ -28,7 +27,10 @@ final class BasePhpStubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInte
            1. getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
            2. + +
            3. + onCheckIsEntityCanBeLoaded +
            4. onGettingResourceLink
            5. @@ -47,20 +49,58 @@ final class BasePhpStubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInte ```php public static function getSubscribedEvents(): array; ``` -
              Returns an array of event names this subscriber wants to listen to.
              + Parameters: not specified Return value: array + +
              +
              + + + +```php +public function onCheckIsEntityCanBeLoaded(\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded $event): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
              NameTypeDescription
              $event\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded-
              + +Return value: void + +

              @@ -68,7 +108,7 @@ public static function getSubscribedEvents(): array; ```php @@ -101,5 +141,3 @@ public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\O

              - - \ No newline at end of file diff --git a/docs/tech/classes/BaseSourceLocator.md b/docs/tech/classes/BaseSourceLocator.md deleted file mode 100644 index 6342776f..00000000 --- a/docs/tech/classes/BaseSourceLocator.md +++ /dev/null @@ -1,91 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / BaseSourceLocator
              - -

              - BaseSourceLocator class: -

              - - - - - -```php -namespace BumbleDocGen\Core\Parser\SourceLocator; - -abstract class BaseSourceLocator implements \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface -``` - - - - - - - - -

              Initialization methods:

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

              Methods:

              - -
                -
              1. - getFinder -
              2. -
              - - - - - - - -

              Method details:

              - -
              - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
              -
              -
              - - - -```php -public function getFinder(): \Symfony\Component\Finder\Finder; -``` - - - -Parameters: not specified - -Return value: \Symfony\Component\Finder\Finder - - -
              -
              - - \ No newline at end of file diff --git a/docs/tech/classes/BeforeCreatingDocFile.md b/docs/tech/classes/BeforeCreatingDocFile.md index 8fb330dd..82c24d16 100644 --- a/docs/tech/classes/BeforeCreatingDocFile.md +++ b/docs/tech/classes/BeforeCreatingDocFile.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / BeforeCreatingDocFile
              + BumbleDocGen / Technical description of the project / Plugin system / BeforeCreatingDocFile

              - BeforeCreatingDocFile class: + BeforeCreatingDocFile class:

              @@ -37,17 +36,14 @@ final class BeforeCreatingDocFile extends \Symfony\Contracts\EventDispatcher\Eve getContent
            6. - getContext + getOutputFilePatch
            7. -
            8. - isPropagationStopped - - Is propagation stopped?
            9. setContent
            10. - stopPropagation - - Stops the propagation of the event to further event listeners.
            11. + setOutputFilePatch +
            @@ -63,11 +59,11 @@ final class BeforeCreatingDocFile extends \Symfony\Contracts\EventDispatcher\Eve ```php -public function __construct(string $content, \BumbleDocGen\Core\Renderer\Context\RendererContext $context); +public function __construct(string $content, string $outputFilePatch); ``` @@ -89,8 +85,8 @@ public function __construct(string $content, \BumbleDocGen\Core\Renderer\Context - - $context - \BumbleDocGen\Core\Renderer\Context\RendererContext + $outputFilePatch + string - @@ -105,7 +101,7 @@ public function __construct(string $content, \BumbleDocGen\Core\Renderer\Context ```php @@ -124,43 +120,20 @@ public function getContent(): string;
            ```php -public function getContext(): \BumbleDocGen\Core\Renderer\Context\RendererContext; +public function getOutputFilePatch(): string; ``` Parameters: not specified -Return value: \BumbleDocGen\Core\Renderer\Context\RendererContext - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
            Is propagation stopped?
            - -Parameters: not specified - -Return value: bool +Return value: string
            @@ -170,7 +143,7 @@ public function isPropagationStopped(): bool; ```php @@ -206,25 +179,38 @@ public function setContent(string $content): void;
            ```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; +public function setOutputFilePatch(string $outputFilePatch): void; ``` -
            Stops the propagation of the event to further event listeners.
            -Parameters: not specified + +Parameters: + + + + + + + + + + + + + + + + +
            NameTypeDescription
            $outputFilePatchstring-
            Return value: void

            - - \ No newline at end of file diff --git a/docs/tech/classes/ProviderInterface.md b/docs/tech/classes/BeforeCreatingEntityDocFile.md similarity index 52% rename from docs/tech/classes/ProviderInterface.md rename to docs/tech/classes/BeforeCreatingEntityDocFile.md index 003f029a..7271253d 100644 --- a/docs/tech/classes/ProviderInterface.md +++ b/docs/tech/classes/BeforeCreatingEntityDocFile.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / ProviderInterface
            + BumbleDocGen / Technical description of the project / Plugin system / BeforeCreatingEntityDocFile

            - ProviderInterface class: + BeforeCreatingEntityDocFile class:

            @@ -10,9 +9,9 @@ ```php -namespace BumbleDocGen\AI; +namespace BumbleDocGen\Core\Plugin\Event\Renderer; -interface ProviderInterface +final class BeforeCreatingEntityDocFile extends \Symfony\Contracts\EventDispatcher\Event ``` @@ -22,21 +21,28 @@ interface ProviderInterface +

            Initialization methods:

            + +
              +
            1. + __construct +
            2. +

            Methods:

            1. - formatDataPrompt + getContent
            2. - getName + getOutputFilePatch
            3. - getSystemPrompt + setContent
            4. - sendPrompts + setOutputFilePatch
            @@ -51,13 +57,13 @@ interface ProviderInterface
            ```php -public function formatDataPrompt(string $title, string $content): string; +public function __construct(string $content, string $outputFilePatch); ``` @@ -74,18 +80,38 @@ public function formatDataPrompt(string $title, string $content): string; - $title + $content string - - $content + $outputFilePatch string - + + +
            +
            +
            + + + +```php +public function getContent(): string; +``` + + + +Parameters: not specified + Return value: string @@ -94,13 +120,13 @@ public function formatDataPrompt(string $title, string $content): string;
            ```php -public function getName(): string; +public function getOutputFilePatch(): string; ``` @@ -115,13 +141,13 @@ public function getName(): string;
            ```php -public function getSystemPrompt(string $fileName): string; +public function setContent(string $content): void; ``` @@ -138,14 +164,14 @@ public function getSystemPrompt(string $fileName): string; - $fileName + $content string - -Return value: string +Return value: void
            @@ -153,13 +179,13 @@ public function getSystemPrompt(string $fileName): string;
            ```php -public function sendPrompts(array $prompts, string $system): string; +public function setOutputFilePatch(string $outputFilePatch): void; ``` @@ -176,22 +202,15 @@ public function sendPrompts(array $prompts, string $system): string; - $prompts - array - - - - - $system + $outputFilePatch string - -Return value: string +Return value: void

            - - \ No newline at end of file diff --git a/docs/tech/classes/BeforeParsingProcess.md b/docs/tech/classes/BeforeParsingProcess.md new file mode 100644 index 00000000..17b80f01 --- /dev/null +++ b/docs/tech/classes/BeforeParsingProcess.md @@ -0,0 +1,60 @@ + BumbleDocGen / Technical description of the project / Plugin system / BeforeParsingProcess
            + +

            + BeforeParsingProcess class: +

            + + + + + +```php +namespace BumbleDocGen\Core\Plugin\Event\Parser; + +final class BeforeParsingProcess extends \Symfony\Contracts\EventDispatcher\Event +``` + + + + + + + + +

            Initialization methods:

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

            Method details:

            + +
            + + + +```php +public function __construct(); +``` + + + +Parameters: not specified + + + +
            +
            diff --git a/docs/tech/classes/BeforeRenderingDocFiles.md b/docs/tech/classes/BeforeRenderingDocFiles.md index c31648f9..7a23f72c 100644 --- a/docs/tech/classes/BeforeRenderingDocFiles.md +++ b/docs/tech/classes/BeforeRenderingDocFiles.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / BeforeRenderingDocFiles
            + BumbleDocGen / Technical description of the project / Plugin system / BeforeRenderingDocFiles

            BeforeRenderingDocFiles class: @@ -23,70 +22,10 @@ final class BeforeRenderingDocFiles extends \Symfony\Contracts\EventDispatcher\E -

            Methods:

            -
              -
            1. - isPropagationStopped - - Is propagation stopped?
            2. -
            3. - stopPropagation - - Stops the propagation of the event to further event listeners.
            4. -
            - -

            Method details:

            - -
            - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
            Is propagation stopped?
            - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
            Stops the propagation of the event to further event listeners.
            - -Parameters: not specified - -Return value: void - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/BeforeRenderingEntities.md b/docs/tech/classes/BeforeRenderingEntities.md index dd163de4..1647e0f6 100644 --- a/docs/tech/classes/BeforeRenderingEntities.md +++ b/docs/tech/classes/BeforeRenderingEntities.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / BeforeRenderingEntities
            + BumbleDocGen / Technical description of the project / Plugin system / BeforeRenderingEntities

            BeforeRenderingEntities class: @@ -23,70 +22,10 @@ final class BeforeRenderingEntities extends \Symfony\Contracts\EventDispatcher\E -

            Methods:

            -
              -
            1. - isPropagationStopped - - Is propagation stopped?
            2. -
            3. - stopPropagation - - Stops the propagation of the event to further event listeners.
            4. -
            - -

            Method details:

            - -
            - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
            Is propagation stopped?
            - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
            Stops the propagation of the event to further event listeners.
            - -Parameters: not specified - -Return value: void - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/BreadcrumbsHelper.md b/docs/tech/classes/BreadcrumbsHelper.md deleted file mode 100644 index f5c84ec7..00000000 --- a/docs/tech/classes/BreadcrumbsHelper.md +++ /dev/null @@ -1,656 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / BreadcrumbsHelper
            - -

            - BreadcrumbsHelper class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Breadcrumbs; - -final class BreadcrumbsHelper -``` - -
            Helper entity for working with breadcrumbs
            - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - getAllPageLinks -
            2. -
            3. - getBreadcrumbs - - Get breadcrumbs as an array
            4. -
            5. - getBreadcrumbsForTemplates -
            6. -
            7. - getNearestIndexFile -
            8. -
            9. - getPageDataByKey -
            10. -
            11. - getPageDocFileByKey -
            12. -
            13. - getPageLinkByKey -
            14. -
            15. - getTemplateLinkKey -
            16. -
            17. - getTemplateTitle - - Get the name of a template by its URL.
            18. -
            19. - renderBreadcrumbs - - Returns an HTML string with rendered breadcrumbs
            20. -
            - - -

            Constants:

            - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsTwigEnvironment $breadcrumbsTwig, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, string $prevPageNameTemplate = self::DEFAULT_PREV_PAGE_NAME_TEMPLATE); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $configuration\BumbleDocGen\Core\Configuration\Configuration-
            $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
            $breadcrumbsTwig\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsTwigEnvironment-
            $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
            $prevPageNameTemplatestringIndex page for each child section
            - - - -
            -
            -
            - - - -```php -public function getAllPageLinks(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getBreadcrumbs(string $filePatch, bool $fromCurrent = true): array; -``` - -
            Get breadcrumbs as an array
            - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $filePatchstring-
            $fromCurrentbool-
            - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getBreadcrumbsForTemplates(string $filePatch, bool $fromCurrent = true): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $filePatchstring-
            $fromCurrentbool-
            - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getNearestIndexFile(string $templateName): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $templateNamestring-
            - -Return value: string - - -Throws: - - -
            -
            -
            - - - -```php -public function getPageDataByKey(string $key): array|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $keystring-
            - -Return value: array | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getPageDocFileByKey(string $key): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $keystring-
            - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getPageLinkByKey(string $key): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $keystring-
            - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getTemplateLinkKey(string $templateName): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $templateNamestring-
            - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getTemplateTitle(string $templateName): string; -``` - -
            Get the name of a template by its URL.
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $templateNamestring-
            - -Return value: string - - -Throws: - - - - -Examples of using: - -```php -// variable in template: -// {% set title = 'Some template title' %} - -$breadcrumbsHelper->getTemplateTitle() == 'Some template title'; // is true -``` - -
            -
            -
            - - - -```php -public function renderBreadcrumbs(string $currentPageTitle, string $filePatch, bool $fromCurrent = true): string; -``` - -
            Returns an HTML string with rendered breadcrumbs
            - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $currentPageTitlestring-
            $filePatchstring-
            $fromCurrentbool-
            - -Return value: string - - -Throws: - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/BreadcrumbsTwigEnvironment.md b/docs/tech/classes/BreadcrumbsTwigEnvironment.md deleted file mode 100644 index 3a0f342c..00000000 --- a/docs/tech/classes/BreadcrumbsTwigEnvironment.md +++ /dev/null @@ -1,126 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / BreadcrumbsTwigEnvironment
            - -

            - BreadcrumbsTwigEnvironment class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Breadcrumbs; - -final class BreadcrumbsTwigEnvironment -``` - - - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - render -
            2. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(); -``` - - - -Parameters: not specified - - - -
            -
            -
            - - - -```php -public function render(mixed $name, array $context = []): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namemixed-
            $contextarray-
            - -Return value: string - - -Throws: - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/CacheKeyGeneratorInterface.md b/docs/tech/classes/CacheKeyGeneratorInterface.md deleted file mode 100644 index 243fbc46..00000000 --- a/docs/tech/classes/CacheKeyGeneratorInterface.md +++ /dev/null @@ -1,91 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CacheKeyGeneratorInterface
            - -

            - CacheKeyGeneratorInterface class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\Cache\CacheKey; - -interface CacheKeyGeneratorInterface -``` - - - - - - - - - -

            Methods:

            - -
              -
            1. - generateKey -
            2. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public static function generateKey(string $cacheNamespace, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface $entity, array $args): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $cacheNamespacestring-
            $entity\BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface-
            $argsarray-
            - -Return value: string - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/CacheableEntityInterface.md b/docs/tech/classes/CacheableEntityInterface.md deleted file mode 100644 index 04d2f117..00000000 --- a/docs/tech/classes/CacheableEntityInterface.md +++ /dev/null @@ -1,208 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CacheableEntityInterface
            - -

            - CacheableEntityInterface class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\Cache; - -interface CacheableEntityInterface -``` - - - - - - - - - -

            Methods:

            - -
              -
            1. - entityCacheIsOutdated -
            2. -
            3. - getCacheKey -
            4. -
            5. - getObjectId -
            6. -
            7. - isEntityDataCacheOutdated -
            8. -
            9. - isEntityFileCanBeLoad -
            10. -
            11. - reloadEntityDependenciesCache -
            12. -
            13. - removeNotUsedEntityDataCache -
            14. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function getCacheKey(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getObjectId(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function isEntityDataCacheOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function isEntityFileCanBeLoad(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function reloadEntityDependenciesCache(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
            -
            -
            - - - -```php -public function removeNotUsedEntityDataCache(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/CacheableEntityTrait.md b/docs/tech/classes/CacheableEntityTrait.md deleted file mode 100644 index 1bf16d86..00000000 --- a/docs/tech/classes/CacheableEntityTrait.md +++ /dev/null @@ -1,191 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CacheableEntityTrait
            - -

            - CacheableEntityTrait class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\Cache; - -trait CacheableEntityTrait -``` - - - - - - - - - -

            Methods:

            - -
              -
            1. - entityCacheIsOutdated -
            2. -
            3. - getCacheKey -
            4. -
            5. - isEntityDataCacheOutdated -
            6. -
            7. - removeEntityValueFromCache -
            8. -
            9. - removeNotUsedEntityDataCache -
            10. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function getCacheKey(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function isEntityDataCacheOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function removeEntityValueFromCache(string $key): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $keystring-
            - -Return value: void - - -
            -
            -
            - - - -```php -public function removeNotUsedEntityDataCache(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/CacheableEntityWrapperFactory.md b/docs/tech/classes/CacheableEntityWrapperFactory.md deleted file mode 100644 index 58aa8849..00000000 --- a/docs/tech/classes/CacheableEntityWrapperFactory.md +++ /dev/null @@ -1,130 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CacheableEntityWrapperFactory
            - -

            - CacheableEntityWrapperFactory class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\Cache; - -final class CacheableEntityWrapperFactory -``` - - - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - createWrappedEntityClass -
            2. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
            - - - -
            -
            -
            - - - -```php -public function createWrappedEntityClass(string $className, string $wrapperName): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $classNamestring-
            $wrapperNamestring-
            - -Return value: string - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/CacheableEntityWrapperTrait.md b/docs/tech/classes/CacheableEntityWrapperTrait.md deleted file mode 100644 index e40efbbe..00000000 --- a/docs/tech/classes/CacheableEntityWrapperTrait.md +++ /dev/null @@ -1,230 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CacheableEntityWrapperTrait
            - -

            - CacheableEntityWrapperTrait class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\Cache; - -trait CacheableEntityWrapperTrait -``` - - - - - - - - - -

            Methods:

            - -
              -
            1. - entityCacheIsOutdated -
            2. -
            3. - getCacheKey -
            4. -
            5. - isEntityDataCacheOutdated -
            6. -
            7. - isEntityFileCanBeLoad -
            8. -
            9. - removeEntityValueFromCache -
            10. -
            11. - removeNotUsedEntityDataCache -
            12. -
            - -

            Traits:

            - - - - - - - - -

            Method details:

            - -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function getCacheKey(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function isEntityDataCacheOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function isEntityFileCanBeLoad(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function removeEntityValueFromCache(string $key): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $keystring-
            - -Return value: void - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function removeNotUsedEntityDataCache(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/CacheableMethod.md b/docs/tech/classes/CacheableMethod.md deleted file mode 100644 index f1c6d804..00000000 --- a/docs/tech/classes/CacheableMethod.md +++ /dev/null @@ -1,152 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CacheableMethod
            - -

            - CacheableMethod class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\Cache; - -final class CacheableMethod -``` - - - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - getCacheKeyGeneratorClass -
            2. -
            3. - getCacheSeconds -
            4. -
            - - -

            Constants:

            - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(int $cacheSeconds = self::MONTH_SECONDS, string $cacheKeyGeneratorClass = \BumbleDocGen\Core\Parser\Entity\Cache\CacheKey\DefaultCacheKeyGenerator::class); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $cacheSecondsint-
            $cacheKeyGeneratorClassstring-
            - - - -
            -
            -
            - - - -```php -public function getCacheKeyGeneratorClass(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getCacheSeconds(): int; -``` - - - -Parameters: not specified - -Return value: int - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/CacheablePhpEntityFactory.md b/docs/tech/classes/CacheablePhpEntityFactory.md deleted file mode 100644 index b3880a8d..00000000 --- a/docs/tech/classes/CacheablePhpEntityFactory.md +++ /dev/null @@ -1,613 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CacheablePhpEntityFactory
            - -

            - CacheablePhpEntityFactory class: -

            - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache; - -final class CacheablePhpEntityFactory -``` - - - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - createClassEntity -
            2. -
            3. - createClassEntityByReflection -
            4. -
            5. - createConstantEntity -
            6. -
            7. - createDynamicMethodEntity -
            8. -
            9. - createMethodEntity -
            10. -
            11. - createPropertyEntity -
            12. -
            13. - createSubClassEntity -
            14. -
            15. - createSubClassEntityByReflection -
            16. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(\BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityWrapperFactory $cacheableEntityWrapperFactory, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper $reflector, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \DI\Container $diContainer); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $cacheableEntityWrapperFactory\BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityWrapperFactory-
            $reflector\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper-
            $configuration\BumbleDocGen\Core\Configuration\Configuration-
            $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
            $diContainer\DI\Container-
            - - - -
            -
            -
            - - - -```php -public function createClassEntity(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection, string $className, string|null $relativeFileName = null): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $classEntityCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection-
            $classNamestring-
            $relativeFileNamestring | null-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -Throws: - - -
            -
            -
            - - - -```php -public function createClassEntityByReflection(\Roave\BetterReflection\Reflection\ReflectionClass $reflectionClass, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $reflectionClass\Roave\BetterReflection\Reflection\ReflectionClass-
            $classEntityCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -Throws: - - -
            -
            -
            - - - -```php -public function createConstantEntity(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, string $constantName, string $declaringClassName, string $implementingClassName, bool $reloadCache = false): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
            $constantNamestring-
            $declaringClassNamestring-
            $implementingClassNamestring-
            $reloadCachebool-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity - - -Throws: - - -
            -
            -
            - - - -```php -public function createDynamicMethodEntity(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \phpDocumentor\Reflection\DocBlock\Tags\Method $annotationMethod): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\DynamicMethodEntity; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
            $annotationMethod\phpDocumentor\Reflection\DocBlock\Tags\Method-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\DynamicMethodEntity - - -Throws: - - -
            -
            -
            - - - -```php -public function createMethodEntity(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, string $methodName, string $declaringClassName, string $implementingClassName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
            $methodNamestring-
            $declaringClassNamestring-
            $implementingClassNamestring-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity - - -Throws: - - -
            -
            -
            - - - -```php -public function createPropertyEntity(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, string $propertyName, string $declaringClassName, string $implementingClassName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
            $propertyNamestring-
            $declaringClassNamestring-
            $implementingClassNamestring-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity - - -Throws: - - -
            -
            -
            - - - -```php -public function createSubClassEntity(string $subClassEntity, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection, string $className, string|null $relativeFileName): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $subClassEntitystring-
            $classEntityCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection-
            $classNamestring-
            $relativeFileNamestring | null-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -Throws: - - -
            -
            -
            - - - -```php -public function createSubClassEntityByReflection(string $subClassEntity, \Roave\BetterReflection\Reflection\ReflectionClass $reflectionClass, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $subClassEntitystring-
            $reflectionClass\Roave\BetterReflection\Reflection\ReflectionClass-
            $classEntityCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -Throws: - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/CachedSourceLocator.md b/docs/tech/classes/CachedSourceLocator.md deleted file mode 100644 index 5726a857..00000000 --- a/docs/tech/classes/CachedSourceLocator.md +++ /dev/null @@ -1,196 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CachedSourceLocator
            - -

            - CachedSourceLocator class: -

            - - - - -:warning: Is internal -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\Internal; - -final class CachedSourceLocator implements \Roave\BetterReflection\SourceLocator\Type\SourceLocator -``` - - - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - locateIdentifier -
            2. -
            3. - locateIdentifiersByType - - Find all identifiers of a type
            4. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(\Roave\BetterReflection\SourceLocator\Type\SourceLocator $sourceLocator, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Cache\SourceLocatorCacheItemPool $cache); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $sourceLocator\Roave\BetterReflection\SourceLocator\Type\SourceLocator-
            $configuration\BumbleDocGen\Core\Configuration\Configuration-
            $cache\BumbleDocGen\Core\Cache\SourceLocatorCacheItemPool-
            - - - -
            -
            -
            - - - -```php -public function locateIdentifier(\Roave\BetterReflection\Reflector\Reflector $reflector, \Roave\BetterReflection\Identifier\Identifier $identifier): \Roave\BetterReflection\Reflection\Reflection|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $reflector\Roave\BetterReflection\Reflector\Reflector-
            $identifier\Roave\BetterReflection\Identifier\Identifier-
            - -Return value: \Roave\BetterReflection\Reflection\Reflection | null - - -Throws: - - -
            -
            -
            - - - -```php -public function locateIdentifiersByType(\Roave\BetterReflection\Reflector\Reflector $reflector, \Roave\BetterReflection\Identifier\IdentifierType $identifierType): array; -``` - -
            Find all identifiers of a type
            - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $reflector\Roave\BetterReflection\Reflector\Reflector-
            $identifierType\Roave\BetterReflection\Identifier\IdentifierType-
            - -Return value: array - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/ClassEntity.md b/docs/tech/classes/ClassEntity.md deleted file mode 100644 index 937dc33a..00000000 --- a/docs/tech/classes/ClassEntity.md +++ /dev/null @@ -1,3174 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ClassEntity
            - -

            - ClassEntity class: -

            - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; - -class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity implements \BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface -``` - -
            Class entity
            - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - cursorToDocAttributeLinkFragment -
            2. -
            3. - documentCreationAllowed -
            4. -
            5. - entityCacheIsOutdated -
            6. -
            7. - entityDataCanBeLoaded -
            8. -
            9. - getAbsoluteFileName - - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            10. -
            11. - getCacheKey -
            12. -
            13. - getCachedEntityDependencies -
            14. -
            15. - getCasesNames -
            16. -
            17. - getConstant -
            18. -
            19. - getConstantEntity -
            20. -
            21. - getConstantEntityCollection -
            22. -
            23. - getConstants -
            24. -
            25. - getConstantsData -
            26. -
            27. - getDescription -
            28. -
            29. - getDescriptionLinks - - Get parsed links from description and doc blocks `see` and `link`
            30. -
            31. - getDocBlock -
            32. -
            33. - getDocComment - - Get the doc comment of an entity
            34. -
            35. - getDocCommentEntity -
            36. -
            37. - getDocNote -
            38. -
            39. - getDocRender -
            40. -
            41. - getEndLine -
            42. -
            43. - getEntityDependencies -
            44. -
            45. - getExamples - - Get parsed examples from `examples` doc block
            46. -
            47. - getExtends -
            48. -
            49. - getFileContent -
            50. -
            51. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
            52. -
            53. - getFileSourceLink -
            54. -
            55. - getFirstExample - - Get first example from @examples doc block
            56. -
            57. - getFullFileName -
            58. -
            59. - getImplementingReflectionClass -
            60. -
            61. - getInterfaceNames -
            62. -
            63. - getInterfacesEntities -
            64. -
            65. - getInterfacesString -
            66. -
            67. - getMethodEntity -
            68. -
            69. - getMethodEntityCollection -
            70. -
            71. - getMethodsData -
            72. -
            73. - getModifiersString -
            74. -
            75. - getName -
            76. -
            77. - getNamespaceName -
            78. -
            79. - getObjectId - - Get entity unique ID
            80. -
            81. - getParentClass -
            82. -
            83. - getParentClassName -
            84. -
            85. - getParentClassNames -
            86. -
            87. - getPhpHandlerSettings -
            88. -
            89. - getPluginData -
            90. -
            91. - getPropertiesData -
            92. -
            93. - getPropertyEntity -
            94. -
            95. - getPropertyEntityCollection -
            96. -
            97. - getReflector -
            98. -
            99. - getRelativeFileName -
            100. -
            101. - getRootEntityCollection - - Get parent collection of entities
            102. -
            103. - getShortName -
            104. -
            105. - getStartLine -
            106. -
            107. - getThrows - - Get parsed throws from `throws` doc block
            108. -
            109. - getTraitsNames -
            110. -
            111. - hasAnnotationKey -
            112. -
            113. - hasConstant -
            114. -
            115. - hasDescriptionLinks -
            116. -
            117. - hasExamples -
            118. -
            119. - hasMethod -
            120. -
            121. - hasParentClass -
            122. -
            123. - hasProperty -
            124. -
            125. - hasThrows -
            126. -
            127. - hasTraits -
            128. -
            129. - implementsInterface -
            130. -
            131. - isAbstract -
            132. -
            133. - isClassLoad -
            134. -
            135. - isDeprecated -
            136. -
            137. - isEntityDataCacheOutdated -
            138. -
            139. - isEntityFileCanBeLoad -
            140. -
            141. - isEntityNameValid - - Check if entity name is valid
            142. -
            143. - isEnum -
            144. -
            145. - isExternalLibraryEntity - - The entity is loaded from a third party library and should not be treated the same as a standard one
            146. -
            147. - isInGit - - Checking if class file is in git repository
            148. -
            149. - isInstantiable -
            150. -
            151. - isInterface -
            152. -
            153. - isInternal -
            154. -
            155. - isSubclassOf -
            156. -
            157. - isTrait -
            158. -
            159. - loadPluginData -
            160. -
            161. - reloadEntityDependenciesCache -
            162. -
            163. - removeEntityValueFromCache -
            164. -
            165. - removeNotUsedEntityDataCache -
            166. -
            167. - setReflectionClass -
            168. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper $reflector, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser $composerParser, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger, string $className, string|null $relativeFileName); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $configuration\BumbleDocGen\Core\Configuration\Configuration-
            $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
            $reflector\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper-
            $classEntityCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection-
            $parserHelper\BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper-
            $composerParser\BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser-
            $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
            $logger\Psr\Log\LoggerInterface-
            $classNamestring-
            $relativeFileNamestring | null-
            - - - -
            -
            -
            - - - -```php -public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $cursorstring-
            $isForDocumentbool-
            - -Return value: string - - -Throws: - - -
            -
            -
            - - - -```php -public function documentCreationAllowed(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function entityDataCanBeLoaded(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getAbsoluteFileName(): string|null; -``` - -
            Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            - -Parameters: not specified - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function getCacheKey(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getCachedEntityDependencies(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getCasesNames(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getConstant(string $name): string|array|int|bool|null|float; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $namestring-
            - -Return value: string | array | int | bool | null | float - - -Throws: - - -
            -
            -
            - - - -```php -public function getConstantEntity(string $constantName, bool $unsafe = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $constantNamestring-
            $unsafebool-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getConstantEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntityCollection - - -Throws: - - -
            -
            -
            - - - -```php -public function getConstants(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getConstantsData(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getDescription(): string; -``` - - - -Parameters: not specified - -Return value: string - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getDescriptionLinks(): array; -``` - -
            Get parsed links from description and doc blocks `see` and `link`
            - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; -``` - - - -Parameters: not specified - -Return value: \phpDocumentor\Reflection\DocBlock - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getDocComment(): string; -``` - -
            Get the doc comment of an entity
            - -Parameters: not specified - -Return value: string - - -Throws: - - -
            -
            -
            - - - -```php -public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getDocNote(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface - - -Throws: - - -
            -
            -
            - - - -```php -public function getEndLine(): int; -``` - - - -Parameters: not specified - -Return value: int - - -Throws: - - -
            -
            -
            - - - -```php -public function getEntityDependencies(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getExamples(): array; -``` - -
            Get parsed examples from `examples` doc block
            - -Parameters: not specified - -Return value: array - - -
            -
            -
            - - - -```php -public function getExtends(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getFileContent(): string; -``` - - - -Parameters: not specified - -Return value: string - - -Throws: - - -
            -
            -
            - - - -```php -public function getFileName(): string|null; -``` - -
            Returns the relative path to a file if it can be retrieved and if the file is in the project directory
            - -Parameters: not specified - -Return value: string | null - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getFileSourceLink(bool $withLine = true): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $withLinebool-
            - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getFirstExample(): string; -``` - -
            Get first example from @examples doc block
            - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getFullFileName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: not specified - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: - - -
            -
            -
            - - - -```php -public function getInterfaceNames(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getInterfacesEntities(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getInterfacesString(): string; -``` - - - -Parameters: not specified - -Return value: string - - -Throws: - - -
            -
            -
            - - - -```php -public function getMethodEntity(string $methodName, bool $unsafe = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $methodNamestring-
            $unsafebool-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getMethodEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntityCollection - - -Throws: - - -
            -
            -
            - - - -```php -public function getMethodsData(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getModifiersString(): string; -``` - - - -Parameters: not specified - -Return value: string - - -Throws: - - -
            -
            -
            - - - -```php -public function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getNamespaceName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -Throws: - - -
            -
            -
            - - - -```php -public function getObjectId(): string; -``` - -
            Get entity unique ID
            - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getParentClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity|null; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getParentClassName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getParentClassNames(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings - - -
            -
            -
            - - - -```php -public function getPluginData(string $pluginKey): array|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $pluginKeystring-
            - -Return value: array | null - - -
            -
            -
            - - - -```php -public function getPropertiesData(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getPropertyEntity(string $propertyName, bool $unsafe = true): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $propertyNamestring-
            $unsafebool-
            - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getPropertyEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntityCollection - - -Throws: - - -
            -
            -
            - - - -```php -public function getReflector(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper - - -
            -
            -
            - - - -```php -public function getRelativeFileName(bool $loadIfEmpty = true): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $loadIfEmptybool-
            - -Return value: string | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -``` - -
            Get parent collection of entities
            - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection - - -
            -
            -
            - - - -```php -public function getShortName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getStartLine(): int; -``` - - - -Parameters: not specified - -Return value: int - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function getThrows(): array; -``` - -
            Get parsed throws from `throws` doc block
            - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function getTraitsNames(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -public function hasAnnotationKey(string $annotationKey): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $annotationKeystring-
            - -Return value: bool - - -
            -
            -
            - - - -```php -public function hasConstant(string $constant): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $constantstring-
            - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function hasDescriptionLinks(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function hasExamples(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function hasMethod(string $method): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $methodstring-
            - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function hasParentClass(string $parentClassName): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $parentClassNamestring-
            - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function hasProperty(string $property): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $propertystring-
            - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function hasThrows(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function hasTraits(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function implementsInterface(string $interfaceName): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $interfaceNamestring-
            - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function isAbstract(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function isClassLoad(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function isDeprecated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function isEntityDataCacheOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function isEntityFileCanBeLoad(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public static function isEntityNameValid(string $entityName): bool; -``` - -
            Check if entity name is valid
            - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $entityNamestring-
            - -Return value: bool - - -
            -
            -
            - - - -```php -public function isEnum(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function isExternalLibraryEntity(): bool; -``` - -
            The entity is loaded from a third party library and should not be treated the same as a standard one
            - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function isInGit(): bool; -``` - -
            Checking if class file is in git repository
            - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function isInstantiable(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function isInterface(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function isInternal(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function isSubclassOf(string $className): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $classNamestring-
            - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function isTrait(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -Throws: - - -
            -
            -
            - - - -```php -public function loadPluginData(string $pluginKey, array $data): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $pluginKeystring-
            $dataarray-
            - -Return value: void - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity - -public function reloadEntityDependenciesCache(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function removeEntityValueFromCache(string $key): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $keystring-
            - -Return value: void - - -
            -
            -
            - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait - -public function removeNotUsedEntityDataCache(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
            -
            -
            - - - -```php -public function setReflectionClass(\Roave\BetterReflection\Reflection\ReflectionClass $reflectionClass): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $reflectionClass\Roave\BetterReflection\Reflection\ReflectionClass-
            - -Return value: void - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/CloneOperation.md b/docs/tech/classes/CloneOperation.md deleted file mode 100644 index a1d104b0..00000000 --- a/docs/tech/classes/CloneOperation.md +++ /dev/null @@ -1,207 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CloneOperation
            - -

            - CloneOperation class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\CollectionLogOperation; - -final class CloneOperation implements \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationInterface -``` - - - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - call -
            2. -
            3. - getKey -
            4. -
            5. - getOperationsCollection -
            6. -
            7. - incrementUsageCount -
            8. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(string $functionName, array $args, \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection $operationsCollection); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $functionNamestring-
            $argsarray-
            $operationsCollection\BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection-
            - - - -
            -
            -
            - - - -```php -public function call(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $rootEntityCollection\BumbleDocGen\Core\Parser\Entity\RootEntityCollection-
            - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection - - -
            -
            -
            - - - -```php -public function getKey(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getOperationsCollection(): \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection - - -
            -
            -
            - - - -```php -public function incrementUsageCount(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/ComposerParser.md b/docs/tech/classes/ComposerParser.md deleted file mode 100644 index fd9b98ed..00000000 --- a/docs/tech/classes/ComposerParser.md +++ /dev/null @@ -1,163 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ComposerParser
            - -

            - ComposerParser class: -

            - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser; - -final class ComposerParser -``` - - - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - getComposerPackageDataByClassName -
            2. -
            3. - getComposerPackages -
            4. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $configuration\BumbleDocGen\Core\Configuration\Configuration-
            - - - -
            -
            -
            - - - -```php -public function getComposerPackageDataByClassName(string $className): array|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $classNamestring-
            - -Return value: array | null - - -Throws: - - -
            -
            -
            - - - -```php -public function getComposerPackages(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/ConditionGroupTypeEnum.md b/docs/tech/classes/ConditionGroupTypeEnum.md deleted file mode 100644 index 6be4dc28..00000000 --- a/docs/tech/classes/ConditionGroupTypeEnum.md +++ /dev/null @@ -1,45 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ConditionGroupTypeEnum
            - -

            - ConditionGroupTypeEnum class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Parser\FilterCondition; - -final class ConditionGroupTypeEnum -``` - - - - - - - - - - - -

            Constants:

            - - - - - - - - \ No newline at end of file diff --git a/docs/tech/classes/Configuration.md b/docs/tech/classes/Configuration.md index f3c41b3e..e8777dd1 100644 --- a/docs/tech/classes/Configuration.md +++ b/docs/tech/classes/Configuration.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / Configuration
            + BumbleDocGen / Technical description of the project / Console app / Configuration

            Configuration class: @@ -87,6 +86,9 @@ final class Configuration
          124. isCheckFileInGitBeforeCreatingDocEnabled
          125. +
          126. + renderWithFrontMatter +
          127. useSharedCache
          128. @@ -159,7 +161,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParame ```php @@ -182,7 +184,7 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad \DI\NotFoundException
          129. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          130. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -193,24 +195,24 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad ```php -public function getCacheDir(): string|null; +public function getCacheDir(): null|string; ``` Parameters: not specified -Return value: string | null +Return value: null | string Throws: @@ -242,7 +244,7 @@ public function getConfigurationVersion(): string; ```php @@ -263,7 +265,7 @@ public function getDocGenLibDir(): string; ```php @@ -280,7 +282,7 @@ public function getGitClientPath(): string; Throws: @@ -291,11 +293,11 @@ public function getGitClientPath(): string; ```php -public function getIfExists(mixed $key): string|null; +public function getIfExists(mixed $key): null|string; ``` @@ -319,13 +321,13 @@ public function getIfExists(mixed $key): string|null; -Return value: string | null +Return value: null | string Throws: @@ -336,7 +338,7 @@ public function getIfExists(mixed $key): string|null; ```php @@ -359,7 +361,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L \DI\NotFoundException
          131. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          132. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -370,7 +372,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L ```php @@ -387,7 +389,7 @@ public function getOutputDir(): string; Throws: @@ -398,7 +400,7 @@ public function getOutputDir(): string; ```php @@ -415,7 +417,7 @@ public function getOutputDirBaseUrl(): string; Throws: @@ -426,7 +428,7 @@ public function getOutputDirBaseUrl(): string; ```php @@ -446,7 +448,7 @@ public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProc \DI\DependencyException
          133. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          134. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          135. \DI\NotFoundException
          136. @@ -460,7 +462,7 @@ public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProc ```php @@ -480,7 +482,7 @@ public function getPlugins(): \BumbleDocGen\Core\Plugin\PluginsCollection; \DI\DependencyException
          137. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          138. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          139. \DI\NotFoundException
          140. @@ -511,7 +513,7 @@ public function getProjectRoot(): string; Throws: @@ -542,7 +544,7 @@ public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\Sou \DI\DependencyException
          141. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          142. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          143. \DI\NotFoundException
          144. @@ -573,7 +575,7 @@ public function getTemplatesDir(): string; Throws: @@ -584,7 +586,7 @@ public function getTemplatesDir(): string; ```php @@ -607,7 +609,7 @@ public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\Custom \DI\NotFoundException
          145. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          146. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -618,7 +620,7 @@ public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\Custom ```php @@ -638,7 +640,7 @@ public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\Cu \DI\DependencyException
          147. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          148. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
          149. \DI\NotFoundException
          150. @@ -652,7 +654,7 @@ public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\Cu ```php @@ -680,7 +682,7 @@ public function getWorkingDir(): string; ```php @@ -697,7 +699,35 @@ public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; Throws: + +

            +
            +
            + + + +```php +public function renderWithFrontMatter(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + @@ -708,7 +738,7 @@ public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; ```php @@ -725,11 +755,9 @@ public function useSharedCache(): bool; Throws:

            - - \ No newline at end of file diff --git a/docs/tech/classes/ConfigurationCommand.md b/docs/tech/classes/ConfigurationCommand.md index eaa07bbd..d398575c 100644 --- a/docs/tech/classes/ConfigurationCommand.md +++ b/docs/tech/classes/ConfigurationCommand.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / ConfigurationCommand
            + BumbleDocGen / Technical description of the project / Console app / ConfigurationCommand

            ConfigurationCommand class: @@ -15,7 +14,7 @@ namespace BumbleDocGen\Console\Command; final class ConfigurationCommand extends \BumbleDocGen\Console\Command\BaseCommand ``` -
            Base class for all commands.
            + @@ -30,126 +29,8 @@ final class ConfigurationCommand extends \BumbleDocGen\Console\Command\BaseComma

          -

          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. -
          -

          Constants:

          - @@ -187,1198 +68,12 @@ public function __construct(string $name = null); $name string - The 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/ConfigurationKey.md b/docs/tech/classes/ConfigurationKey.md deleted file mode 100644 index dd30d878..00000000 --- a/docs/tech/classes/ConfigurationKey.md +++ /dev/null @@ -1,127 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ConfigurationKey
          - -

          - ConfigurationKey class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Configuration; - -final class ConfigurationKey -``` - - - - - - - - - -

          Methods:

          - -
            -
          1. - all -
          2. -
          - - -

          Constants:

          - - - - - - -

          Method details:

          - -
          - - - -```php -public static function all(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/ConfigurationParameterBag.md b/docs/tech/classes/ConfigurationParameterBag.md deleted file mode 100644 index fbdbf4c5..00000000 --- a/docs/tech/classes/ConfigurationParameterBag.md +++ /dev/null @@ -1,926 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ConfigurationParameterBag
          - -

          - ConfigurationParameterBag class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Configuration; - -final class ConfigurationParameterBag -``` - -
          Wrapper for getting raw configuration file data
          - - - - - - -

          Initialization methods:

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

          Methods:

          - -
            -
          1. - addValueFromFileIfNotExists -
          2. -
          3. - addValueIfNotExists -
          4. -
          5. - get -
          6. -
          7. - getAll -
          8. -
          9. - getConfigValues -
          10. -
          11. - getConfigVersion -
          12. -
          13. - getSubConfigurationParameterBag -
          14. -
          15. - has -
          16. -
          17. - loadFromArray -
          18. -
          19. - loadFromFiles -
          20. -
          21. - resolveValue -
          22. -
          23. - set -
          24. -
          25. - validateAndGetBooleanValue -
          26. -
          27. - validateAndGetClassListValue -
          28. -
          29. - validateAndGetClassValue -
          30. -
          31. - validateAndGetDirectoryPathValue -
          32. -
          33. - validateAndGetFilePathValue -
          34. -
          35. - validateAndGetStringValue -
          36. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\ValueTransformer\ValueToClassTransformer $valueToClassTransformer, array $resolvers); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $valueToClassTransformer\BumbleDocGen\Core\Configuration\ValueTransformer\ValueToClassTransformer-
          $resolversarray-
          - - - -
          -
          -
          - - - -```php -public function addValueFromFileIfNotExists(string $name, string ...$fileNames): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $namestring-
          $fileNames (variadic)string-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function addValueIfNotExists(string $name, mixed $value): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $namestring-
          $valuemixed-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function get(string $name, bool $useResolvers = true): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $namestring-
          $useResolversbool-
          - -Return value: mixed - - -Throws: - - -
          -
          -
          - - - -```php -public function getAll(bool $useResolvers = true): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $useResolversbool-
          - -Return value: array - - -
          -
          -
          - - - -```php -public function getConfigValues(string ...$configurationFiles): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $configurationFiles (variadic)string-
          - -Return value: array - - -
          -
          -
          - - - -```php -public function getConfigVersion(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
          -
          -
          - - - -```php -public function getSubConfigurationParameterBag(string $parentKey): \BumbleDocGen\Core\Configuration\ConfigurationParameterBag; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $parentKeystring-
          - -Return value: \BumbleDocGen\Core\Configuration\ConfigurationParameterBag - - -
          -
          -
          - - - -```php -public function has(mixed $name): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $namemixed-
          - -Return value: bool - - -
          -
          -
          - - - -```php -public function loadFromArray(array $parameters): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $parametersarray-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function loadFromFiles(string ...$fileNames): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $fileNames (variadic)string-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function resolveValue(mixed $value): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $valuemixed-
          - -Return value: mixed - - -
          -
          -
          - - - -```php -public function set(string $name, mixed $value): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $namestring-
          $valuemixed-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function validateAndGetBooleanValue(string $parameterName): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $parameterNamestring-
          - -Return value: bool - - -Throws: - - -
          -
          -
          - - - -```php -public function validateAndGetClassListValue(string $parameterName, string $classInterfaceName, bool $nullable = true): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $parameterNamestring-
          $classInterfaceNamestring-
          $nullablebool-
          - -Return value: array - - -Throws: - - -
          -
          -
          - - - -```php -public function validateAndGetClassValue(string $parameterName, string $classInterfaceName): object; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $parameterNamestring-
          $classInterfaceNamestring-
          - -Return value: object - - -Throws: - - -
          -
          -
          - - - -```php -public function validateAndGetDirectoryPathValue(string $parameterName, bool $nullable = true): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $parameterNamestring-
          $nullablebool-
          - -Return value: string | null - - -Throws: - - -
          -
          -
          - - - -```php -public function validateAndGetFilePathValue(string $parameterName, array $fileExtensions, bool $nullable = true): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $parameterNamestring-
          $fileExtensionsstring[]-
          $nullablebool-
          - -Return value: string | null - - -Throws: - - -
          -
          -
          - - - -```php -public function validateAndGetStringValue(string $parameterName, bool $nullable = true): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $parameterNamestring-
          $nullablebool-
          - -Return value: string | null - - -Throws: - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/CustomFilterInterface.md b/docs/tech/classes/CustomFilterInterface.md deleted file mode 100644 index 8f04c4ce..00000000 --- a/docs/tech/classes/CustomFilterInterface.md +++ /dev/null @@ -1,88 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CustomFilterInterface
          - -

          - CustomFilterInterface class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Filter; - -interface CustomFilterInterface -``` - - - - - - - - - -

          Methods:

          - -
            -
          1. - getName -
          2. -
          3. - getOptions -
          4. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public static function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
          -
          -
          - - - -```php -public static function getOptions(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/CustomFiltersCollection.md b/docs/tech/classes/CustomFiltersCollection.md deleted file mode 100644 index 61de64a6..00000000 --- a/docs/tech/classes/CustomFiltersCollection.md +++ /dev/null @@ -1,224 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CustomFiltersCollection
          - -

          - CustomFiltersCollection class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Filter; - -final class CustomFiltersCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

          Methods:

          - -
            -
          1. - add -
          2. -
          3. - create -
          4. -
          5. - get -
          6. -
          7. - getIterator - - Retrieve an external iterator
          8. -
          9. - getTwigFilters -
          10. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function add(\BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface ...$filters): \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $filters (variadic)\BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface-
          - -Return value: \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection - - -
          -
          -
          - - - -```php -public static function create(\BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface ...$filters): \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $filters (variadic)\BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface-
          - -Return value: \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection - - -
          -
          -
          - - - -```php -public function get(string $key): \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $keystring-
          - -Return value: \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface | null - - -
          -
          -
          - - - -```php -public function getIterator(): \Generator; -``` - -
          Retrieve an external iterator
          - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
          -
          -
          - - - -```php -public function getTwigFilters(): \Generator; -``` - - - -Parameters: not specified - -Return value: \Generator - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/CustomFunctionsCollection.md b/docs/tech/classes/CustomFunctionsCollection.md deleted file mode 100644 index 9e1f5ba8..00000000 --- a/docs/tech/classes/CustomFunctionsCollection.md +++ /dev/null @@ -1,265 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CustomFunctionsCollection
          - -

          - CustomFunctionsCollection class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig\Function; - -final class CustomFunctionsCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

          Methods:

          - -
            -
          1. - add -
          2. -
          3. - create -
          4. -
          5. - get -
          6. -
          7. - getIterator - - Retrieve an external iterator
          8. -
          9. - getTwigFunctions -
          10. -
          11. - has -
          12. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function add(\BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface ...$filters): \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $filters (variadic)\BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface-
          - -Return value: \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection - - -
          -
          -
          - - - -```php -public static function create(\BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface ...$filters): \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $filters (variadic)\BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface-
          - -Return value: \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection - - -
          -
          -
          - - - -```php -public function get(string $key): \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $keystring-
          - -Return value: \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface | null - - -
          -
          -
          - - - -```php -public function getIterator(): \Generator; -``` - -
          Retrieve an external iterator
          - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
          -
          -
          - - - -```php -public function getTwigFunctions(): \Generator; -``` - - - -Parameters: not specified - -Return value: \Generator - - -
          -
          -
          - - - -```php -public function has(string $key): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $keystring-
          - -Return value: bool - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/CustomSourceLocatorInterface.md b/docs/tech/classes/CustomSourceLocatorInterface.md deleted file mode 100644 index b0387917..00000000 --- a/docs/tech/classes/CustomSourceLocatorInterface.md +++ /dev/null @@ -1,81 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / CustomSourceLocatorInterface
          - -

          - CustomSourceLocatorInterface class: -

          - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator; - -interface CustomSourceLocatorInterface -``` - - - - - - - - - -

          Methods:

          - -
            -
          1. - getSourceLocator -
          2. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function getSourceLocator(\Roave\BetterReflection\SourceLocator\Ast\Locator $astLocator): \Roave\BetterReflection\SourceLocator\Type\SourceLocator; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $astLocator\Roave\BetterReflection\SourceLocator\Ast\Locator-
          - -Return value: \Roave\BetterReflection\SourceLocator\Type\SourceLocator - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/Daux.md b/docs/tech/classes/Daux.md new file mode 100644 index 00000000..9f6f0b59 --- /dev/null +++ b/docs/tech/classes/Daux.md @@ -0,0 +1,319 @@ + BumbleDocGen / Technical description of the project / Plugin system / Daux
          + +

          + Daux class: +

          + + + + +:warning: Is internal +```php +namespace BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\Daux; + +final class Daux implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface +``` + + + + + + + + +

          Initialization methods:

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

          Methods:

          + +
            +
          1. + afterRenderingEntities +
          2. +
          3. + beforeCreatingDocFile +
          4. +
          5. + getSubscribedEvents +
          6. +
          7. + onCreateDocumentedEntityWrapper +
          8. +
          9. + onGetProjectTemplatesDirs +
          10. +
          11. + onGetTemplatePathByRelativeDocPath +
          12. +
          + + +

          Constants:

          + + + + + + +

          Method details:

          + +
          + + + +```php +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper $breadcrumbsHelper); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $configuration\BumbleDocGen\Core\Configuration\Configuration-
          $breadcrumbsHelper\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper-
          + + + +
          +
          +
          + + + +```php +public function afterRenderingEntities(): void; +``` + + + +Parameters: not specified + +Return value: void + + +Throws: + + +
          +
          +
          + + + +```php +public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile|\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingEntityDocFile $event): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $event\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile | \BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingEntityDocFile-
          + +Return value: void + + +Throws: + + +
          +
          +
          + + + +```php +public static function getSubscribedEvents(): array; +``` + + + +Parameters: not specified + +Return value: array + + +
          +
          +
          + + + +```php +public function onCreateDocumentedEntityWrapper(\BumbleDocGen\Core\Plugin\Event\Renderer\OnCreateDocumentedEntityWrapper $event): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $event\BumbleDocGen\Core\Plugin\Event\Renderer\OnCreateDocumentedEntityWrapper-
          + +Return value: void + + +
          +
          +
          + + + +```php +public function onGetProjectTemplatesDirs(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetProjectTemplatesDirs $event): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $event\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetProjectTemplatesDirs-
          + +Return value: void + + +
          +
          +
          + + + +```php +public function onGetTemplatePathByRelativeDocPath(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetTemplatePathByRelativeDocPath $event): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $event\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetTemplatePathByRelativeDocPath-
          + +Return value: void + + +
          +
          diff --git a/docs/tech/classes/DefaultCacheKeyGenerator.md b/docs/tech/classes/DefaultCacheKeyGenerator.md deleted file mode 100644 index c1b6a6d9..00000000 --- a/docs/tech/classes/DefaultCacheKeyGenerator.md +++ /dev/null @@ -1,91 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / DefaultCacheKeyGenerator
          - -

          - DefaultCacheKeyGenerator class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\Cache\CacheKey; - -final class DefaultCacheKeyGenerator implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheKey\CacheKeyGeneratorInterface -``` - - - - - - - - - -

          Methods:

          - -
            -
          1. - generateKey -
          2. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public static function generateKey(string $cacheNamespace, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface $entity, array $args): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $cacheNamespacestring-
          $entity\BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface-
          $argsarray-
          - -Return value: string - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/DirectoryDependency.md b/docs/tech/classes/DirectoryDependency.md deleted file mode 100644 index 36aae44d..00000000 --- a/docs/tech/classes/DirectoryDependency.md +++ /dev/null @@ -1,190 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / DirectoryDependency
          - -

          - DirectoryDependency class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Context\Dependency; - -final class DirectoryDependency implements \BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyInterface -``` - - - - - - - - -

          Initialization methods:

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

          Methods:

          - -
            -
          1. - create -
          2. -
          3. - isChanged -
          4. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(string $dirInternalLink, string $hash); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $dirInternalLinkstring-
          $hashstring-
          - - - -
          -
          -
          - - - -```php -public static function create(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper, string $dirPath): \BumbleDocGen\Core\Renderer\Context\Dependency\DirectoryDependency; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $rendererHelper\BumbleDocGen\Core\Renderer\RendererHelper-
          $dirPathstring-
          - -Return value: \BumbleDocGen\Core\Renderer\Context\Dependency\DirectoryDependency - - -Throws: - - -
          -
          -
          - - - -```php -public function isChanged(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $rendererHelper\BumbleDocGen\Core\Renderer\RendererHelper-
          - -Return value: bool - - -Throws: - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/DocBlocksGenerator.md b/docs/tech/classes/DocBlocksGenerator.md deleted file mode 100644 index d1f9a760..00000000 --- a/docs/tech/classes/DocBlocksGenerator.md +++ /dev/null @@ -1,219 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / DocBlocksGenerator
          - -

          - DocBlocksGenerator class: -

          - - - - - -```php -namespace BumbleDocGen\AI\Generators; - -final class DocBlocksGenerator -``` - - - - - - - - -

          Initialization methods:

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

          Methods:

          - -
            -
          1. - generateDocBlocksForMethodsWithoutIt -
          2. -
          3. - hasMethodsWithoutDocBlocks -
          4. -
          - - -

          Constants:

          - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(\BumbleDocGen\AI\ProviderInterface $aiProvider, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $aiProvider\BumbleDocGen\AI\ProviderInterface-
          $parserHelper\BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper-
          - - - -
          -
          -
          - -
            -
          • # - generateDocBlocksForMethodsWithoutIt - | source code
          • -
          - -```php -public function generateDocBlocksForMethodsWithoutIt(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $rootEntity, int $mode = self::MODE_READ_ONLY_SIGNATURES): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $rootEntity\BumbleDocGen\Core\Parser\Entity\RootEntityInterface-
          $modeint-
          - -Return value: array - - -Throws: - - -
          -
          -
          - - - -```php -public function hasMethodsWithoutDocBlocks(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $rootEntity): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $rootEntity\BumbleDocGen\Core\Parser\Entity\RootEntityInterface-
          - -Return value: bool - - -Throws: - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/DocGenerator.md b/docs/tech/classes/DocGenerator.md index 51981535..9fb2b361 100644 --- a/docs/tech/classes/DocGenerator.md +++ b/docs/tech/classes/DocGenerator.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / DocGenerator
          + BumbleDocGen / Technical description of the project / Output formats / DocGenerator

          - DocGenerator class: + DocGenerator class:

          @@ -35,16 +34,31 @@ final class DocGenerator
          1. addDocBlocks - - Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
          2. + - Generate missing docBlocks with LLM for project class methods that are available for documentation +
          3. + addPlugin +
          4. generate - Generates documentation using configuration
          5. generateReadmeTemplate + - Creates a `README.md` template filled with basic information using LLM
          6. +
          7. + getConfiguration +
          8. +
          9. + getConfigurationKey +
          10. +
          11. + getConfigurationKeys
          12. parseAndGetRootEntityCollectionsGroup
          13. +
          14. + serve + - Serve documentation
          @@ -52,11 +66,11 @@ final class DocGenerator @@ -71,11 +85,11 @@ final class DocGenerator ```php -public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfony\Component\Console\Style\OutputStyle $io, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\Core\Parser\ProjectParser $parser, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Renderer\Renderer $renderer, \BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler $generationErrorsHandler, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \Monolog\Logger $logger); +public function __construct(\Symfony\Component\Console\Style\OutputStyle $io, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\Core\Parser\ProjectParser $parser, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, \BumbleDocGen\Core\Renderer\Renderer $renderer, \BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler $generationErrorsHandler, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \BumbleDocGen\Console\ProgressBar\ProgressBarFactory $progressBarFactory, \DI\Container $diContainer, \BumbleDocGen\Core\Cache\SharedCompressedDocumentFileCache $sharedCompressedDocumentFileCache, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Monolog\Logger $logger); ``` @@ -91,11 +105,6 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo - - $fs - \Symfony\Component\Filesystem\Filesystem - - - $io \Symfony\Component\Console\Style\OutputStyle @@ -135,6 +144,26 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo $rootEntityCollectionsGroup \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup - + + + $progressBarFactory + \BumbleDocGen\Console\ProgressBar\ProgressBarFactory + - + + + $diContainer + \DI\Container + - + + + $sharedCompressedDocumentFileCache + \BumbleDocGen\Core\Cache\SharedCompressedDocumentFileCache + - + + + $localObjectCache + \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache + - $logger @@ -146,6 +175,19 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo +Throws: + +
          @@ -153,14 +195,14 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo ```php public function addDocBlocks(\BumbleDocGen\AI\ProviderInterface $aiProvider): void; ``` -
          Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
          +
          Generate missing docBlocks with LLM for project class methods that are available for documentation
          Parameters: @@ -193,10 +235,61 @@ public function addDocBlocks(\BumbleDocGen\AI\ProviderInterface $aiProvider): vo \DI\DependencyException
        38. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
        39. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
        40. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
        41. + \JsonException + + + +
          +
          +
          + + + +```php +public function addPlugin(\BumbleDocGen\Core\Plugin\PluginInterface|string $plugin): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $plugin\BumbleDocGen\Core\Plugin\PluginInterface | string-
          + +Return value: void + + +Throws: + @@ -207,7 +300,7 @@ public function addDocBlocks(\BumbleDocGen\AI\ProviderInterface $aiProvider): vo ```php @@ -238,14 +331,14 @@ public function generate(): void; ```php public function generateReadmeTemplate(\BumbleDocGen\AI\ProviderInterface $aiProvider): void; ``` - +
          Creates a `README.md` template filled with basic information using LLM
          Parameters: @@ -272,8 +365,111 @@ public function generateReadmeTemplate(\BumbleDocGen\AI\ProviderInterface $aiPro Throws: + +
          +
          +
          + + + +```php +public function getConfiguration(): \BumbleDocGen\Core\Configuration\Configuration; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Configuration\Configuration + + +
          +
          +
          + + + +```php +public function getConfigurationKey(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $keystring-
          + +Return value: void + + +Throws: + + +
          +
          +
          + + + +```php +public function getConfigurationKeys(): void; +``` + + + +Parameters: not specified + +Return value: void + + +Throws: + @@ -292,7 +488,7 @@ public function generateReadmeTemplate(\BumbleDocGen\AI\ProviderInterface $aiPro ```php @@ -315,11 +511,67 @@ public function parseAndGetRootEntityCollectionsGroup(): \BumbleDocGen\Core\Pars \DI\NotFoundException
        42. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
        43. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException

          +
          + + + +```php +public function serve(callable|null $afterPreparation = null, callable|null $afterDocChanged = null, int $timeout = 1000000): void; +``` - \ No newline at end of file +
          Serve documentation
          + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + +
          NameTypeDescription
          $afterPreparationcallable | null-
          $afterDocChangedcallable | null-
          $timeoutint-
          + +Return value: void + + +Throws: + + +
          +
          diff --git a/docs/tech/classes/DocGeneratorFactory.md b/docs/tech/classes/DocGeneratorFactory.md deleted file mode 100644 index cf8dbf0d..00000000 --- a/docs/tech/classes/DocGeneratorFactory.md +++ /dev/null @@ -1,328 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / DocGeneratorFactory
          - -

          - DocGeneratorFactory class: -

          - - - - - -```php -namespace BumbleDocGen; - -final class DocGeneratorFactory -``` - - - - - - - - -

          Initialization methods:

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

          Methods:

          - -
            -
          1. - create -
          2. -
          3. - createByConfigArray -
          4. -
          5. - createConfiguration -
          6. -
          7. - setCustomConfigurationParameters -
          8. -
          9. - setCustomDiDefinitions -
          10. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(string $diConfig = __DIR__ . '/di-config.php'); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $diConfigstring-
          - - - -
          -
          -
          - - - -```php -public function create(string|null ...$configurationFiles): \BumbleDocGen\DocGenerator; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $configurationFiles (variadic)string | null-
          - -Return value: \BumbleDocGen\DocGenerator - - -Throws: - - -
          -
          -
          - - - -```php -public function createByConfigArray(array $config): \BumbleDocGen\DocGenerator; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $configarray-
          - -Return value: \BumbleDocGen\DocGenerator - - -Throws: - - -
          -
          -
          - - - -```php -public function createConfiguration(string ...$configurationFiles): \BumbleDocGen\Core\Configuration\Configuration; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $configurationFiles (variadic)string-
          - -Return value: \BumbleDocGen\Core\Configuration\Configuration - - -Throws: - - -
          -
          -
          - - - -```php -public function setCustomConfigurationParameters(array $customConfigurationParameters): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $customConfigurationParametersarray-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function setCustomDiDefinitions(array $definitions): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $definitionsarray-
          - -Return value: void - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/DocumentTransformableEntityInterface.md b/docs/tech/classes/DocumentTransformableEntityInterface.md deleted file mode 100644 index e593a47e..00000000 --- a/docs/tech/classes/DocumentTransformableEntityInterface.md +++ /dev/null @@ -1,230 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / DocumentTransformableEntityInterface
          - -

          - DocumentTransformableEntityInterface class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Context; - -interface DocumentTransformableEntityInterface -``` - -
          Interface for entities that can be generated into documents
          - - - - - - - -

          Methods:

          - -
            -
          1. - cursorToDocAttributeLinkFragment -
          2. -
          3. - documentCreationAllowed -
          4. -
          5. - entityCacheIsOutdated -
          6. -
          7. - getDocRender -
          8. -
          9. - getName -
          10. -
          11. - getRootEntityCollection -
          12. -
          13. - getShortName -
          14. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $cursorstring-
          $isForDocumentbool-
          - -Return value: string - - -
          -
          -
          - - - -```php -public function documentCreationAllowed(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
          -
          -
          - - - -```php -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
          -
          -
          - - - -```php -public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface - - -
          -
          -
          - - - -```php -public function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
          -
          -
          - - - -```php -public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection - - -
          -
          -
          - - - -```php -public function getShortName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/DocumentedEntityWrapper.md b/docs/tech/classes/DocumentedEntityWrapper.md index 0ef5de59..fa9c1245 100644 --- a/docs/tech/classes/DocumentedEntityWrapper.md +++ b/docs/tech/classes/DocumentedEntityWrapper.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / DocumentedEntityWrapper
          + BumbleDocGen / Technical description of the project / DocumentedEntityWrapper

          DocumentedEntityWrapper class: @@ -299,5 +298,3 @@ public function setParentDocFilePath(string $parentDocFilePath): void;
          - - \ No newline at end of file diff --git a/docs/tech/classes/DocumentedEntityWrappersCollection.md b/docs/tech/classes/DocumentedEntityWrappersCollection.md index 63cdd40e..e592e977 100644 --- a/docs/tech/classes/DocumentedEntityWrappersCollection.md +++ b/docs/tech/classes/DocumentedEntityWrappersCollection.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / DocumentedEntityWrappersCollection
          + BumbleDocGen / Technical description of the project / DocumentedEntityWrappersCollection

          DocumentedEntityWrappersCollection class: @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Renderer\Context; -final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \Traversable, \Countable +final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \Countable ``` @@ -35,7 +34,7 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T
          1. count - - Count elements of an object
          2. +
          3. createAndAddDocumentedEntityWrapper
          4. @@ -44,7 +43,7 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T
          5. getIterator - - Retrieve an external iterator
          6. +
          @@ -119,19 +118,13 @@ public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext public function count(): int; ``` -
          Count elements of an object
          + Parameters: not specified Return value: int - -See: -
          @@ -173,7 +166,7 @@ public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\En Throws: @@ -212,27 +205,12 @@ public function getDocumentedEntitiesRelations(): array; public function getIterator(): \Generator; ``` -
          Retrieve an external iterator
          + Parameters: not specified Return value: \Generator -Throws: - - - -See: -

          - - \ No newline at end of file diff --git a/docs/tech/classes/DrawDocumentationMenu.md b/docs/tech/classes/DrawDocumentationMenu.md index c322dbcb..fa98e83c 100644 --- a/docs/tech/classes/DrawDocumentationMenu.md +++ b/docs/tech/classes/DrawDocumentationMenu.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / DrawDocumentationMenu
          + BumbleDocGen / Technical description of the project / Configuration / DrawDocumentationMenu

          DrawDocumentationMenu class: @@ -196,7 +195,7 @@ public function __invoke(string|null $startPageKey = null, int|null $maxDeep = n \DI\DependencyException
        44. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
        45. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -244,5 +243,3 @@ public static function getOptions(): array;
          - - \ No newline at end of file diff --git a/docs/tech/classes/DrawDocumentedEntityLink.md b/docs/tech/classes/DrawDocumentedEntityLink.md index 085b28a6..ea1f469a 100644 --- a/docs/tech/classes/DrawDocumentedEntityLink.md +++ b/docs/tech/classes/DrawDocumentedEntityLink.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / DrawDocumentedEntityLink
          + BumbleDocGen / Technical description of the project / Configuration / DrawDocumentedEntityLink

          - DrawDocumentedEntityLink class: + DrawDocumentedEntityLink class:

          @@ -85,7 +84,7 @@ final class DrawDocumentedEntityLink implements \BumbleDocGen\Core\Renderer\Twig ```php @@ -122,7 +121,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumen ```php @@ -168,14 +167,11 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $e
        46. \DI\NotFoundException
        47. -
        48. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
        49. -
        50. \DI\DependencyException
        51. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
        52. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -186,7 +182,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $e ```php @@ -207,7 +203,7 @@ public static function getName(): string; ```php @@ -223,5 +219,3 @@ public static function getOptions(): array;
          - - \ No newline at end of file diff --git a/docs/tech/classes/EntityCacheItemPool.md b/docs/tech/classes/EntityCacheItemPool.md deleted file mode 100644 index 62a896b1..00000000 --- a/docs/tech/classes/EntityCacheItemPool.md +++ /dev/null @@ -1,461 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / EntityCacheItemPool
          - -

          - EntityCacheItemPool class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Cache; - -final class EntityCacheItemPool implements \Psr\Cache\CacheItemPoolInterface -``` - - - - - - - - -

          Initialization methods:

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

          Methods:

          - -
            -
          1. - clear - - Deletes all items in the pool.
          2. -
          3. - commit - - Persists any deferred cache items.
          4. -
          5. - deleteItem - - Removes the item from the pool.
          6. -
          7. - deleteItems - - Removes multiple items from the pool.
          8. -
          9. - getItem - - Returns a Cache Item representing the specified key.
          10. -
          11. - getItems - - Returns a traversable set of cache items.
          12. -
          13. - hasItem - - Confirms if the cache contains specified cache item.
          14. -
          15. - save - - Persists a cache item immediately.
          16. -
          17. - saveDeferred - - Sets a cache item to be persisted later.
          18. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $configuration\BumbleDocGen\Core\Configuration\Configuration-
          - - - -Throws: - - -
          -
          -
          - - - -```php -public function clear(): bool; -``` - -
          Deletes all items in the pool.
          - -Parameters: not specified - -Return value: bool - - -
          -
          -
          - - - -```php -public function commit(): bool; -``` - -
          Persists any deferred cache items.
          - -Parameters: not specified - -Return value: bool - - -
          -
          -
          - - - -```php -public function deleteItem(string $key): bool; -``` - -
          Removes the item from the pool.
          - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $keystringThe key to delete.
          - -Return value: bool - - -Throws: - - -
          -
          -
          - - - -```php -public function deleteItems(array $keys): bool; -``` - -
          Removes multiple items from the pool.
          - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $keysstring[]An array of keys that should be removed from the pool.
          - -Return value: bool - - -Throws: - - -
          -
          -
          - - - -```php -public function getItem(string $key): \Psr\Cache\CacheItemInterface; -``` - -
          Returns a Cache Item representing the specified key.
          - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $keystringThe key for which to return the corresponding Cache Item.
          - -Return value: \Psr\Cache\CacheItemInterface - - -Throws: - - -
          -
          -
          - - - -```php -public function getItems(array $keys = []): iterable; -``` - -
          Returns a traversable set of cache items.
          - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $keysstring[]An indexed array of keys of items to retrieve.
          - -Return value: iterable - - -Throws: - - -
          -
          -
          - - - -```php -public function hasItem(string $key): bool; -``` - -
          Confirms if the cache contains specified cache item.
          - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $keystringThe key for which to check existence.
          - -Return value: bool - - -Throws: - - -
          -
          -
          - - - -```php -public function save(\Psr\Cache\CacheItemInterface $item): bool; -``` - -
          Persists a cache item immediately.
          - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $item\Psr\Cache\CacheItemInterfaceThe cache item to save.
          - -Return value: bool - - -
          -
          -
          - - - -```php -public function saveDeferred(\Psr\Cache\CacheItemInterface $item): bool; -``` - -
          Sets a cache item to be persisted later.
          - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $item\Psr\Cache\CacheItemInterfaceThe cache item to save.
          - -Return value: bool - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/EntityCacheStorageHelper.md b/docs/tech/classes/EntityCacheStorageHelper.md deleted file mode 100644 index c2dea98a..00000000 --- a/docs/tech/classes/EntityCacheStorageHelper.md +++ /dev/null @@ -1,366 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / EntityCacheStorageHelper
          - -

          - EntityCacheStorageHelper class: -

          - - - - -:warning: Is internal -```php -namespace BumbleDocGen\Core\Parser\Entity\Cache; - -final class EntityCacheStorageHelper -``` - - - - - - - - -

          Initialization methods:

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

          Methods:

          - -
            -
          1. - addItemValueToCache -
          2. -
          3. - getItemValueFromCache -
          4. -
          5. - getItemValues -
          6. -
          7. - getUsedCacheItemsKeys -
          8. -
          9. - removeItemValueFromCache -
          10. -
          11. - saveCache -
          12. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(\BumbleDocGen\Core\Cache\EntityCacheItemPool $cacheItemPool); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $cacheItemPool\BumbleDocGen\Core\Cache\EntityCacheItemPool-
          - - - -
          -
          -
          - - - -```php -public function addItemValueToCache(string $cacheKey, string $itemKey, mixed $value, int $expiresAfter): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $cacheKeystring-
          $itemKeystring-
          $valuemixed-
          $expiresAfterint-
          - -Return value: void - - -Throws: - - -
          -
          -
          - - - -```php -public function getItemValueFromCache(string $cacheKey, string $itemKey): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $cacheKeystring-
          $itemKeystring-
          - -Return value: mixed - - -Throws: - - -
          -
          -
          - - - -```php -public function getItemValues(string $cacheKey): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $cacheKeystring-
          - -Return value: array - - -Throws: - - -
          -
          -
          - - - -```php -public function getUsedCacheItemsKeys(string $cacheKey): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $cacheKeystring-
          - -Return value: array - - -
          -
          -
          - - - -```php -public function removeItemValueFromCache(string $cacheKey, string $itemKey): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $cacheKeystring-
          $itemKeystring-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function saveCache(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/EntityDocRendererHelper.md b/docs/tech/classes/EntityDocRendererHelper.md deleted file mode 100644 index e38d5521..00000000 --- a/docs/tech/classes/EntityDocRendererHelper.md +++ /dev/null @@ -1,231 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / EntityDocRendererHelper
          - -

          - EntityDocRendererHelper class: -

          - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer; - -final class EntityDocRendererHelper -``` - - - - - - - - -

          Initialization methods:

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

          Methods:

          - -
            -
          1. - getEntityDataByLink -
          2. -
          3. - getEntityUrlDataByLink -
          4. -
          - - -

          Constants:

          - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $rootEntityCollectionsGroup\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup-
          $getDocumentedEntityUrlFunction\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl-
          - - - -
          -
          -
          - - - -```php -public function getEntityDataByLink(string $linkString, \BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, string|null $defaultEntityName = null, bool $useUnsafeKeys = true): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $linkStringstring-
          $rootEntityCollection\BumbleDocGen\Core\Parser\Entity\RootEntityCollection-
          $defaultEntityNamestring | null-
          $useUnsafeKeysbool-
          - -Return value: array - - -Throws: - - -
          -
          -
          - - - -```php -public function getEntityUrlDataByLink(string $linkString, string|null $defaultEntityClassName = null, bool $createDocument = true): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $linkStringstring-
          $defaultEntityClassNamestring | null-
          $createDocumentbool-
          - -Return value: array - - -Throws: - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/EntityDocRendererInterface.md b/docs/tech/classes/EntityDocRendererInterface.md deleted file mode 100644 index c882bbcc..00000000 --- a/docs/tech/classes/EntityDocRendererInterface.md +++ /dev/null @@ -1,170 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / EntityDocRendererInterface
          - -

          - EntityDocRendererInterface class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Renderer\EntityDocRenderer; - -interface EntityDocRendererInterface -``` - -
          Entity documentation renderer interface
          - - - - - - - -

          Methods:

          - -
            -
          1. - getDocFileExtension -
          2. -
          3. - getDocFileNamespace -
          4. -
          5. - getRenderedText - - Get rendered documentation for an entity
          6. -
          7. - isAvailableForEntity - - Can this render be used to create entity documentation
          8. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function getDocFileExtension(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
          -
          -
          - - - -```php -public function getDocFileNamespace(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
          -
          -
          - - - -```php -public function getRenderedText(\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper $entityWrapper): string; -``` - -
          Get rendered documentation for an entity
          - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $entityWrapper\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapperThe entity whose documentation was requested
          - -Return value: string - - -
          -
          -
          - - - -```php -public function isAvailableForEntity(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity): bool; -``` - -
          Can this render be used to create entity documentation
          - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $entity\BumbleDocGen\Core\Parser\Entity\RootEntityInterfaceThe entity whose documentation was requested
          - -Return value: bool - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/EntityDocRenderersCollection.md b/docs/tech/classes/EntityDocRenderersCollection.md deleted file mode 100644 index 19496562..00000000 --- a/docs/tech/classes/EntityDocRenderersCollection.md +++ /dev/null @@ -1,159 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / EntityDocRenderersCollection
          - -

          - EntityDocRenderersCollection class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Renderer\EntityDocRenderer; - -final class EntityDocRenderersCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

          Methods:

          - -
            -
          1. - add -
          2. -
          3. - getFirstMatchingRender -
          4. -
          5. - getIterator - - Retrieve an external iterator
          6. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function add(\BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface $entityDocRenderer): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRenderersCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $entityDocRenderer\BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface-
          - -Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRenderersCollection - - -
          -
          -
          - - - -```php -public function getFirstMatchingRender(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity): \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $entity\BumbleDocGen\Core\Parser\Entity\RootEntityInterface-
          - -Return value: \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface | null - - -
          -
          -
          - - - -```php -public function getIterator(): \Generator; -``` - -
          Retrieve an external iterator
          - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/EntityDocUnifiedPlacePlugin.md b/docs/tech/classes/EntityDocUnifiedPlacePlugin.md index d4b0f3d0..f382d939 100644 --- a/docs/tech/classes/EntityDocUnifiedPlacePlugin.md +++ b/docs/tech/classes/EntityDocUnifiedPlacePlugin.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / EntityDocUnifiedPlacePlugin
          + BumbleDocGen / Technical description of the project / Plugin system / EntityDocUnifiedPlacePlugin

          EntityDocUnifiedPlacePlugin class: @@ -30,7 +29,7 @@ in a separate directory structure, so they are not duplicated.
          1. getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
          2. +
          3. onCreateDocumentedEntityWrapper
          4. @@ -69,7 +68,7 @@ in a separate directory structure, so they are not duplicated. public static function getSubscribedEvents(): array; ``` -
            Returns an array of event names this subscriber wants to listen to.
            + Parameters: not specified @@ -192,5 +191,3 @@ public function onGetTemplatePathByRelativeDocPath(\BumbleDocGen\Core\Plugin\Eve
            - - \ No newline at end of file diff --git a/docs/tech/classes/EntityInterface.md b/docs/tech/classes/EntityInterface.md deleted file mode 100644 index 85ff66e9..00000000 --- a/docs/tech/classes/EntityInterface.md +++ /dev/null @@ -1,208 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / EntityInterface
            - -

            - EntityInterface class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity; - -interface EntityInterface -``` - - - - - - - - - -

            Methods:

            - -
              -
            1. - entityCacheIsOutdated -
            2. -
            3. - getAbsoluteFileName - - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            4. -
            5. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
            6. -
            7. - getName -
            8. -
            9. - getObjectId -
            10. -
            11. - getRootEntityCollection - - Get parent collection of entities
            12. -
            13. - getShortName -
            14. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
            -
            -
            - - - -```php -public function getAbsoluteFileName(): string|null; -``` - -
            Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
            - -Parameters: not specified - -Return value: string | null - - -
            -
            -
            - - - -```php -public function getFileName(): string|null; -``` - -
            Returns the relative path to a file if it can be retrieved and if the file is in the project directory
            - -Parameters: not specified - -Return value: string | null - - -
            -
            -
            - - - -```php -public function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getObjectId(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            -
            - - - -```php -public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection; -``` - -
            Get parent collection of entities
            - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection - - -
            -
            -
            - - - -```php -public function getShortName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/FileDependency.md b/docs/tech/classes/FileDependency.md deleted file mode 100644 index 1175a15f..00000000 --- a/docs/tech/classes/FileDependency.md +++ /dev/null @@ -1,275 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / FileDependency
            - -

            - FileDependency class: -

            - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Context\Dependency; - -final class FileDependency implements \BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyInterface -``` - - - - - - - - -

            Initialization methods:

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

            Methods:

            - -
              -
            1. - __serialize -
            2. -
            3. - __unserialize -
            4. -
            5. - create -
            6. -
            7. - isChanged -
            8. -
            - - - - - - - -

            Method details:

            - -
            - - - -```php -public function __construct(string $fileInternalLink, string $hash, string|null $contentFilterRegex, int|null $matchIndex); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $fileInternalLinkstring-
            $hashstring-
            $contentFilterRegexstring | null-
            $matchIndexint | null-
            - - - -
            -
            -
            - - - -```php -public function __serialize(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
            -
            -
            - - - -```php -public function __unserialize(array $data): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $dataarray-
            - -Return value: void - - -
            -
            -
            - - - -```php -public static function create(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper, string $filePath, string|null $contentFilterRegex, int|null $matchIndex): \BumbleDocGen\Core\Renderer\Context\Dependency\FileDependency; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $rendererHelper\BumbleDocGen\Core\Renderer\RendererHelper-
            $filePathstring-
            $contentFilterRegexstring | null-
            $matchIndexint | null-
            - -Return value: \BumbleDocGen\Core\Renderer\Context\Dependency\FileDependency - - -Throws: - - -
            -
            -
            - - - -```php -public function isChanged(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
            NameTypeDescription
            $rendererHelper\BumbleDocGen\Core\Renderer\RendererHelper-
            - -Return value: bool - - -Throws: - - -
            -
            - - \ No newline at end of file diff --git a/docs/tech/classes/FileGetContents.md b/docs/tech/classes/FileGetContents.md index e7151d18..2a0337f8 100644 --- a/docs/tech/classes/FileGetContents.md +++ b/docs/tech/classes/FileGetContents.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / FileGetContents
            + BumbleDocGen / Technical description of the project / Configuration / FileGetContents

            FileGetContents class: @@ -199,5 +198,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/classes/FixStrSize.md b/docs/tech/classes/FixStrSize.md index 3459be87..4592ad8c 100644 --- a/docs/tech/classes/FixStrSize.md +++ b/docs/tech/classes/FixStrSize.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / FixStrSize
            + BumbleDocGen / Technical description of the project / Configuration / FixStrSize

            FixStrSize class: @@ -149,5 +148,3 @@ public static function getOptions(): array;
            - - \ No newline at end of file diff --git a/docs/tech/classes/GenerateCommand.md b/docs/tech/classes/GenerateCommand.md index ba689bbf..a4a8406b 100644 --- a/docs/tech/classes/GenerateCommand.md +++ b/docs/tech/classes/GenerateCommand.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / GenerateCommand
            + BumbleDocGen / Technical description of the project / Console app / GenerateCommand

            - GenerateCommand class: + GenerateCommand class:

            @@ -15,7 +14,7 @@ namespace BumbleDocGen\Console\Command; final class GenerateCommand extends \BumbleDocGen\Console\Command\BaseCommand ``` -
            Base class for all commands.
            + @@ -30,126 +29,8 @@ final class GenerateCommand extends \BumbleDocGen\Console\Command\BaseCommand
          -

          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. -
          -

          Constants:

          - @@ -187,1198 +68,12 @@ public function __construct(string $name = null); $name string - The 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/GeneratePageBreadcrumbs.md b/docs/tech/classes/GeneratePageBreadcrumbs.md index ade4f717..9eab4df2 100644 --- a/docs/tech/classes/GeneratePageBreadcrumbs.md +++ b/docs/tech/classes/GeneratePageBreadcrumbs.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / GeneratePageBreadcrumbs
          + BumbleDocGen / Technical description of the project / Configuration / GeneratePageBreadcrumbs

          GeneratePageBreadcrumbs class: @@ -175,7 +174,7 @@ public function __invoke(string $currentPageTitle, string $templatePath, bool $s \DI\NotFoundException
        53. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
        54. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -223,5 +222,3 @@ public static function getOptions(): array;
          - - \ No newline at end of file diff --git a/docs/tech/classes/GenerateReadMeTemplateCommand.md b/docs/tech/classes/GenerateReadMeTemplateCommand.md index 1c839113..590d8ba4 100644 --- a/docs/tech/classes/GenerateReadMeTemplateCommand.md +++ b/docs/tech/classes/GenerateReadMeTemplateCommand.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / GenerateReadMeTemplateCommand
          + BumbleDocGen / Technical description of the project / Console app / GenerateReadMeTemplateCommand

          - GenerateReadMeTemplateCommand class: + GenerateReadMeTemplateCommand class:

          @@ -15,7 +14,7 @@ namespace BumbleDocGen\AI\Console; final class GenerateReadMeTemplateCommand extends \BumbleDocGen\Console\Command\BaseCommand ``` -
          Base class for all commands.
          + @@ -30,109 +29,6 @@ final class GenerateReadMeTemplateCommand extends \BumbleDocGen\Console\Command\
        -

        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:

        @@ -142,21 +38,9 @@ final class GenerateReadMeTemplateCommand extends \BumbleDocGen\Console\Command\

        Constants:

        @@ -196,1198 +80,12 @@ public function __construct(string $name = null); $name string - The 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/GenerationErrorsHandler.md b/docs/tech/classes/GenerationErrorsHandler.md deleted file mode 100644 index 61c91bbb..00000000 --- a/docs/tech/classes/GenerationErrorsHandler.md +++ /dev/null @@ -1,669 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / GenerationErrorsHandler
        - -

        - GenerationErrorsHandler class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Logger\Handler; - -final class GenerationErrorsHandler extends \Monolog\Handler\AbstractProcessingHandler -``` - -
        Base Handler class providing the Handler structure, including processors and formatters
        - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - __destruct -
        2. -
        3. - __sleep -
        4. -
        5. - addRecords -
        6. -
        7. - close - - Closes the handler.
        8. -
        9. - getBubble - - Gets the bubbling behavior.
        10. -
        11. - getFormatter - - {@inheritDoc}
        12. -
        13. - getLevel - - Gets minimum logging level at which this handler will be triggered.
        14. -
        15. - getRecords -
        16. -
        17. - handle - - Handles a record.
        18. -
        19. - handleBatch - - Handles a set of records at once.
        20. -
        21. - isHandling - - Checks whether the given record will be handled by this handler.
        22. -
        23. - popProcessor - - {@inheritDoc}
        24. -
        25. - pushProcessor - - {@inheritDoc}
        26. -
        27. - reset -
        28. -
        29. - setBubble - - Sets the bubbling behavior.
        30. -
        31. - setFormatter - - {@inheritDoc}
        32. -
        33. - setLevel - - Sets minimum logging level at which this handler will be triggered.
        34. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $rendererContext, int|string $level = \Monolog\Logger::WARNING, bool $bubble = true); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $rendererContext\BumbleDocGen\Core\Renderer\Context\RendererContext-
        $levelint | stringThe minimum logging level at which this handler will be triggered
        $bubbleboolWhether the messages that are handled can bubble up the stack or not
        - - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\Handler - -public function __destruct(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\Handler - -public function __sleep(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
        -
        -
        - - - -```php -public function addRecords(array $records): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $recordsarray-
        - -Return value: void - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\Handler - -public function close(): void; -``` - -
        Closes the handler.
        - -Parameters: not specified - -Return value: void - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\AbstractHandler - -public function getBubble(): bool; -``` - -
        Gets the bubbling behavior.
        - -Parameters: not specified - -Return value: bool - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\FormattableHandlerTrait - -public function getFormatter(): \Monolog\Formatter\FormatterInterface; -``` - -
        {@inheritDoc}
        - -Parameters: not specified - -Return value: \Monolog\Formatter\FormatterInterface - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\AbstractHandler - -public function getLevel(): int; -``` - -
        Gets minimum logging level at which this handler will be triggered.
        - -Parameters: not specified - -Return value: int - - -
        -
        -
        - - - -```php -public function getRecords(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\AbstractProcessingHandler - -public function handle(array $record): bool; -``` - -
        Handles a record.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $recordarrayThe record to handle
        - -Return value: bool - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\Handler - -public function handleBatch(array $records): void; -``` - -
        Handles a set of records at once.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $recordsarrayThe records to handle (an array of record arrays)
        - -Return value: void - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\AbstractHandler - -public function isHandling(array $record): bool; -``` - -
        Checks whether the given record will be handled by this handler.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $recordarrayPartial log record containing only a level key
        - -Return value: bool - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\ProcessableHandlerTrait - -public function popProcessor(): callable; -``` - -
        {@inheritDoc}
        - -Parameters: not specified - -Return value: callable - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\ProcessableHandlerTrait - -public function pushProcessor(callable $callback): \Monolog\Handler\HandlerInterface; -``` - -
        {@inheritDoc}
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $callbackcallable-
        - -Return value: \Monolog\Handler\HandlerInterface - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\AbstractProcessingHandler - -public function reset(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\AbstractHandler - -public function setBubble(bool $bubble): self; -``` - -
        Sets the bubbling behavior.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $bubblebooltrue means that this handler allows bubbling. - false means that bubbling is not permitted.
        - -Return value: self - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\FormattableHandlerTrait - -public function setFormatter(\Monolog\Formatter\FormatterInterface $formatter): \Monolog\Handler\HandlerInterface; -``` - -
        {@inheritDoc}
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $formatter\Monolog\Formatter\FormatterInterface-
        - -Return value: \Monolog\Handler\HandlerInterface - - -
        -
        -
        - - - -```php -// Implemented in Monolog\Handler\AbstractHandler - -public function setLevel(\Monolog\Handler\Level|\Monolog\Handler\LevelName|\Psr\Log\LogLevel::* $level): self; -``` - -
        Sets minimum logging level at which this handler will be triggered.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $level\Monolog\Handler\Level | \Monolog\Handler\LevelName | \Psr\Log\LogLevel::*Level or level name
        - -Return value: self - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/GetDocumentationPageUrl.md b/docs/tech/classes/GetDocumentationPageUrl.md index f2bbb34c..54a9df97 100644 --- a/docs/tech/classes/GetDocumentationPageUrl.md +++ b/docs/tech/classes/GetDocumentationPageUrl.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / GetDocumentationPageUrl
        + BumbleDocGen / Technical description of the project / Configuration / GetDocumentationPageUrl

        GetDocumentationPageUrl class: @@ -177,7 +176,7 @@ public function __invoke(string $key): string; \DI\DependencyException
      101. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      102. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      103. \DI\NotFoundException
      104. @@ -228,5 +227,3 @@ public static function getOptions(): array;
        - - \ No newline at end of file diff --git a/docs/tech/classes/GetDocumentedEntityUrl.md b/docs/tech/classes/GetDocumentedEntityUrl.md index daf1f88f..7dffaff6 100644 --- a/docs/tech/classes/GetDocumentedEntityUrl.md +++ b/docs/tech/classes/GetDocumentedEntityUrl.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Class map / GetDocumentedEntityUrl
        + BumbleDocGen / Technical description of the project / Configuration / GetDocumentedEntityUrl

        - GetDocumentedEntityUrl class: + GetDocumentedEntityUrl class:

        @@ -21,30 +20,30 @@ the `EntityDocRendererInterface::getDocFileExtension()` directory will be create See: Examples of using: ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} The function returns a reference to the documented entity, anchored to the getFunctions method ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} The function returns a reference to the documented entity MainExtension ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} The function returns a link to the file MainExtension ``` @@ -91,7 +90,7 @@ The function returns a link to the file MainExtension @@ -106,7 +105,7 @@ The function returns a link to the file MainExtension ```php @@ -158,7 +157,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $renderer ```php @@ -211,14 +210,11 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ \DI\DependencyException
      105. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      106. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      107. \DI\NotFoundException
      108. -
      109. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
      110. - @@ -228,7 +224,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ ```php @@ -249,7 +245,7 @@ public static function getName(): string; ```php @@ -265,5 +261,3 @@ public static function getOptions(): array;
        - - \ No newline at end of file diff --git a/docs/tech/classes/GetDocumentedEntityUrl_2.md b/docs/tech/classes/GetDocumentedEntityUrl_2.md index 738c5993..d7de8173 100644 --- a/docs/tech/classes/GetDocumentedEntityUrl_2.md +++ b/docs/tech/classes/GetDocumentedEntityUrl_2.md @@ -1,8 +1,7 @@ - BumbleDocGen / Technical description of the project / GetDocumentedEntityUrl

        - GetDocumentedEntityUrl class: + GetDocumentedEntityUrl class:

        @@ -21,30 +20,30 @@ the `EntityDocRendererInterface::getDocFileExtension()` directory will be create See: Examples of using: ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} The function returns a reference to the documented entity, anchored to the getFunctions method ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} The function returns a reference to the documented entity MainExtension ``` ```php -{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} +{{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} The function returns a link to the file MainExtension ``` @@ -91,7 +90,7 @@ The function returns a link to the file MainExtension @@ -106,7 +105,7 @@ The function returns a link to the file MainExtension ```php @@ -158,7 +157,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $renderer ```php @@ -211,14 +210,11 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ \DI\DependencyException
      111. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      112. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
      113. \DI\NotFoundException
      114. -
      115. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
      116. - @@ -228,7 +224,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ ```php @@ -249,7 +245,7 @@ public static function getName(): string; ```php @@ -265,5 +261,3 @@ public static function getOptions(): array;
        - - \ No newline at end of file diff --git a/docs/tech/classes/GithubPagesLinkProcessor.md b/docs/tech/classes/GithubPagesLinkProcessor.md deleted file mode 100644 index 00b899d8..00000000 --- a/docs/tech/classes/GithubPagesLinkProcessor.md +++ /dev/null @@ -1,130 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / GithubPagesLinkProcessor
        - -

        - GithubPagesLinkProcessor class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Renderer\PageLinkProcessor; - -class GithubPagesLinkProcessor implements \BumbleDocGen\Core\Renderer\PageLinkProcessor\PageLinkProcessorInterface -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - getAbsoluteUrl -
        2. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, array $docFilesExtensions = ['md', 'html']); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $configuration\BumbleDocGen\Core\Configuration\Configuration-
        $docFilesExtensionsarray-
        - - - -
        -
        -
        - - - -```php -public function getAbsoluteUrl(string $relativeUrl): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $relativeUrlstring-
        - -Return value: string - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/TextToHeading.md b/docs/tech/classes/Implode.md similarity index 67% rename from docs/tech/3.renderer/classes/TextToHeading.md rename to docs/tech/classes/Implode.md index 503e117a..5e6494a8 100644 --- a/docs/tech/3.renderer/classes/TextToHeading.md +++ b/docs/tech/classes/Implode.md @@ -1,8 +1,7 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / TextToHeading
        + BumbleDocGen / Technical description of the project / Configuration / Implode

        - TextToHeading class: + Implode class:

        @@ -12,10 +11,16 @@ ```php namespace BumbleDocGen\Core\Renderer\Twig\Filter; -final class TextToHeading implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface +final class Implode implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface ``` -
        Convert text to html header
        +
        Join array elements with a string
        + +See: + @@ -29,7 +34,7 @@ final class TextToHeading implements \BumbleDocGen\Core\Renderer\Twig\Filter\Cus Filter name: - textToHeading + implode @@ -64,11 +69,11 @@ final class TextToHeading implements \BumbleDocGen\Core\Renderer\Twig\Filter\Cus ```php -public function __invoke(string $text, string $headingType): string; +public function __invoke(array $elements, string $separator = ', '): string; ``` @@ -85,14 +90,14 @@ public function __invoke(string $text, string $headingType): string; - $text - string - - + $elements + array + The array to implode - $headingType + $separator string - Choose heading type: H1, H2, H3 + Element separator in result string @@ -107,7 +112,7 @@ public function __invoke(string $text, string $headingType): string; ```php @@ -128,7 +133,7 @@ public static function getName(): string; ```php @@ -144,5 +149,3 @@ public static function getOptions(): array;
        - - \ No newline at end of file diff --git a/docs/tech/classes/InternalValueResolver.md b/docs/tech/classes/InternalValueResolver.md deleted file mode 100644 index 06ee3a6a..00000000 --- a/docs/tech/classes/InternalValueResolver.md +++ /dev/null @@ -1,142 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / InternalValueResolver
        - -

        - InternalValueResolver class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Configuration\ValueResolver; - -final class InternalValueResolver implements \BumbleDocGen\Core\Configuration\ValueResolver\ValueResolverInterface -``` - -
        We supplement the values by replacing the shortcodes with real values by internalValuesMap
        - - -Examples of using: - -```php -# Configuration processing example. -# $internalValuesMap = ['WORKING_DIR' => 'someValue']; -output_dir: "%WORKING_DIR%/docs" - -# After the value processing procedure, output_dir => "someValue/docs" - -``` - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - resolveValue -
        2. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(array $internalValuesMap); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $internalValuesMaparraysee BumbleDocGen/di-config.php
        - - - -
        -
        -
        - - - -```php -public function resolveValue(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, mixed $value): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
        $valuemixed-
        - -Return value: mixed - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/InvalidConfigurationParameterException.md b/docs/tech/classes/InvalidConfigurationParameterException.md index 96600ae0..cc00b206 100644 --- a/docs/tech/classes/InvalidConfigurationParameterException.md +++ b/docs/tech/classes/InvalidConfigurationParameterException.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / InvalidConfigurationParameterException
        + BumbleDocGen / Technical description of the project / InvalidConfigurationParameterException

        InvalidConfigurationParameterException class: @@ -12,380 +11,21 @@ ```php namespace BumbleDocGen\Core\Configuration\Exception; -final class InvalidConfigurationParameterException extends \Exception implements \Throwable, \Stringable +final class InvalidConfigurationParameterException extends \Exception ``` -
        Exception is the base class for -all Exceptions.
        -See: - -

        Initialization methods:

        -
          -
        1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
        2. -
        -

        Methods:

        -
          -
        1. - __toString - - String representation of the exception
        2. -
        3. - __wakeup -
        4. -
        5. - getCode - - Gets the Exception code
        6. -
        7. - getFile - - Gets the file in which the exception occurred
        8. -
        9. - getLine - - Gets the line in which the exception occurred
        10. -
        11. - getMessage - - Gets the Exception message
        12. -
        13. - getPrevious - - Returns previous Exception
        14. -
        15. - getTrace - - Gets the stack trace
        16. -
        17. - getTraceAsString - - Gets the stack trace as a string
        18. -
        - - -

        Method details:

        - -
        - -
          -
        • # - __construct -
        • -
        - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
        Construct the exception. Note: The message is NOT binary safe.
        - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $messagestring[optional] The Exception message to throw.
        $codeint[optional] The Exception code.
        $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
        - - - - -See: - -
        -
        -
        - -
          -
        • # - __toString -
        • -
        - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
        String representation of the exception
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - __wakeup -
        • -
        - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
        -
        -
        - -
          -
        • # - getCode -
        • -
        - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
        Gets the Exception code
        - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
        -
        -
        - -
          -
        • # - getFile -
        • -
        - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
        Gets the file in which the exception occurred
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - getLine -
        • -
        - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
        Gets the line in which the exception occurred
        - -Parameters: not specified - -Return value: int - - - -See: - -
        -
        -
        - -
          -
        • # - getMessage -
        • -
        - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
        Gets the Exception message
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - getPrevious -
        • -
        - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
        Returns previous Exception
        - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
        -
        -
        - -
          -
        • # - getTrace -
        • -
        - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
        Gets the stack trace
        - -Parameters: not specified - -Return value: array - - - -See: - -
        -
        -
        - -
          -
        • # - getTraceAsString -
        • -
        - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
        Gets the stack trace as a string
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/InvalidConfigurationParameterException_2.md b/docs/tech/classes/InvalidConfigurationParameterException_2.md deleted file mode 100644 index 6f1165dc..00000000 --- a/docs/tech/classes/InvalidConfigurationParameterException_2.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / InvalidConfigurationParameterException
        - -

        - InvalidConfigurationParameterException class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Configuration\Exception; - -final class InvalidConfigurationParameterException extends \Exception implements \Throwable, \Stringable -``` - -
        Exception is the base class for -all Exceptions.
        - -See: - - - - - - - -

        Initialization methods:

        - -
          -
        1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
        2. -
        - -

        Methods:

        - -
          -
        1. - __toString - - String representation of the exception
        2. -
        3. - __wakeup -
        4. -
        5. - getCode - - Gets the Exception code
        6. -
        7. - getFile - - Gets the file in which the exception occurred
        8. -
        9. - getLine - - Gets the line in which the exception occurred
        10. -
        11. - getMessage - - Gets the Exception message
        12. -
        13. - getPrevious - - Returns previous Exception
        14. -
        15. - getTrace - - Gets the stack trace
        16. -
        17. - getTraceAsString - - Gets the stack trace as a string
        18. -
        - - - - - - - -

        Method details:

        - -
        - -
          -
        • # - __construct -
        • -
        - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
        Construct the exception. Note: The message is NOT binary safe.
        - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $messagestring[optional] The Exception message to throw.
        $codeint[optional] The Exception code.
        $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
        - - - - -See: - -
        -
        -
        - -
          -
        • # - __toString -
        • -
        - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
        String representation of the exception
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - __wakeup -
        • -
        - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
        -
        -
        - -
          -
        • # - getCode -
        • -
        - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
        Gets the Exception code
        - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
        -
        -
        - -
          -
        • # - getFile -
        • -
        - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
        Gets the file in which the exception occurred
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - getLine -
        • -
        - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
        Gets the line in which the exception occurred
        - -Parameters: not specified - -Return value: int - - - -See: - -
        -
        -
        - -
          -
        • # - getMessage -
        • -
        - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
        Gets the Exception message
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - getPrevious -
        • -
        - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
        Returns previous Exception
        - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
        -
        -
        - -
          -
        • # - getTrace -
        • -
        - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
        Gets the stack trace
        - -Parameters: not specified - -Return value: array - - - -See: - -
        -
        -
        - -
          -
        • # - getTraceAsString -
        • -
        - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
        Gets the stack trace as a string
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/IterateEntitiesOperation.md b/docs/tech/classes/IterateEntitiesOperation.md deleted file mode 100644 index 6ce745be..00000000 --- a/docs/tech/classes/IterateEntitiesOperation.md +++ /dev/null @@ -1,238 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / IterateEntitiesOperation
        - -

        - IterateEntitiesOperation class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\CollectionLogOperation; - -final class IterateEntitiesOperation implements \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationInterface -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - call -
        2. -
        3. - getEntitiesData -
        4. -
        5. - getKey -
        6. -
        7. - hasEntity -
        8. -
        9. - incrementUsageCount -
        10. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(array $entities); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $entitiesarray-
        - - - -
        -
        -
        - - - -```php -public function call(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $rootEntityCollection\BumbleDocGen\Core\Parser\Entity\RootEntityCollection-
        - -Return value: array - - -
        -
        -
        - - - -```php -public function getEntitiesData(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
        -
        -
        - - - -```php -public function getKey(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - - -```php -public function hasEntity(string $entityName): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $entityNamestring-
        - -Return value: bool - - -
        -
        -
        - - - -```php -public function incrementUsageCount(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/LanguageHandlerInterface.md b/docs/tech/classes/LanguageHandlerInterface.md deleted file mode 100644 index d418c29a..00000000 --- a/docs/tech/classes/LanguageHandlerInterface.md +++ /dev/null @@ -1,170 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / LanguageHandlerInterface
        - -

        - LanguageHandlerInterface class: -

        - - - - - -```php -namespace BumbleDocGen\LanguageHandler; - -interface LanguageHandlerInterface -``` - - - - - - - - - -

        Methods:

        - -
          -
        1. - getCustomTwigFilters - - Additional twig filters that are added to the built-in ones when a language handler is included
        2. -
        3. - getCustomTwigFunctions - - Additional twig functions that are added to the built-in ones when a language handler is included
        4. -
        5. - getEntityCollection -
        6. -
        7. - getLanguageKey - - Unique language handler key
        8. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function getCustomTwigFilters(\BumbleDocGen\Core\Renderer\Context\RendererContext $context): \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection; -``` - -
        Additional twig filters that are added to the built-in ones when a language handler is included
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $context\BumbleDocGen\Core\Renderer\Context\RendererContext-
        - -Return value: \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection - - -
        -
        -
        - - - -```php -public function getCustomTwigFunctions(\BumbleDocGen\Core\Renderer\Context\RendererContext $context): \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection; -``` - -
        Additional twig functions that are added to the built-in ones when a language handler is included
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $context\BumbleDocGen\Core\Renderer\Context\RendererContext-
        - -Return value: \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection - - -
        -
        -
        - - - -```php -public function getEntityCollection(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection - - -
        -
        -
        - - - -```php -public static function getLanguageKey(): string; -``` - -
        Unique language handler key
        - -Parameters: not specified - -Return value: string - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/LanguageHandlersCollection.md b/docs/tech/classes/LanguageHandlersCollection.md deleted file mode 100644 index 476628ec..00000000 --- a/docs/tech/classes/LanguageHandlersCollection.md +++ /dev/null @@ -1,200 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / LanguageHandlersCollection
        - -

        - LanguageHandlersCollection class: -

        - - - - - -```php -namespace BumbleDocGen\LanguageHandler; - -final class LanguageHandlersCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

        Methods:

        - -
          -
        1. - add -
        2. -
        3. - create -
        4. -
        5. - get -
        6. -
        7. - getIterator - - Retrieve an external iterator
        8. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function add(\BumbleDocGen\LanguageHandler\LanguageHandlerInterface $languageHandler): \BumbleDocGen\LanguageHandler\LanguageHandlersCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $languageHandler\BumbleDocGen\LanguageHandler\LanguageHandlerInterface-
        - -Return value: \BumbleDocGen\LanguageHandler\LanguageHandlersCollection - - -
        -
        -
        - - - -```php -public static function create(\BumbleDocGen\LanguageHandler\LanguageHandlerInterface ...$languageHandlers): \BumbleDocGen\LanguageHandler\LanguageHandlersCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $languageHandlers (variadic)\BumbleDocGen\LanguageHandler\LanguageHandlerInterface-
        - -Return value: \BumbleDocGen\LanguageHandler\LanguageHandlersCollection - - -
        -
        -
        - - - -```php -public function get(string $key): \BumbleDocGen\LanguageHandler\LanguageHandlerInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $keystring-
        - -Return value: \BumbleDocGen\LanguageHandler\LanguageHandlerInterface | null - - -
        -
        -
        - - - -```php -public function getIterator(): \Generator; -``` - -
        Retrieve an external iterator
        - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/LastPageCommitter.md b/docs/tech/classes/LastPageCommitter.md index 616a0ad5..94264247 100644 --- a/docs/tech/classes/LastPageCommitter.md +++ b/docs/tech/classes/LastPageCommitter.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / LastPageCommitter
        + BumbleDocGen / Technical description of the project / Plugin system / LastPageCommitter

        LastPageCommitter class: @@ -38,7 +37,7 @@ final class LastPageCommitter implements \BumbleDocGen\Core\Plugin\PluginInterfa
      117. getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
      118. +

      @@ -141,7 +140,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B public static function getSubscribedEvents(): array; ``` -
      Returns an array of event names this subscriber wants to listen to.
      + Parameters: not specified @@ -150,5 +149,3 @@ public static function getSubscribedEvents(): array;
      - - \ No newline at end of file diff --git a/docs/tech/classes/LoadPluginsContent.md b/docs/tech/classes/LoadPluginsContent.md index 4ca2e164..a40c7e0d 100644 --- a/docs/tech/classes/LoadPluginsContent.md +++ b/docs/tech/classes/LoadPluginsContent.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / LoadPluginsContent
      + BumbleDocGen / Technical description of the project / Configuration / LoadPluginsContent

      LoadPluginsContent class: @@ -197,5 +196,3 @@ public static function getOptions(): array;
      - - \ No newline at end of file diff --git a/docs/tech/classes/LoadPluginsContent_2.md b/docs/tech/classes/LoadPluginsContent_2.md index c6a8a8d9..8ac665ef 100644 --- a/docs/tech/classes/LoadPluginsContent_2.md +++ b/docs/tech/classes/LoadPluginsContent_2.md @@ -1,4 +1,3 @@ - BumbleDocGen / Technical description of the project / LoadPluginsContent

      @@ -197,5 +196,3 @@ public static function getOptions(): array;
      - - \ No newline at end of file diff --git a/docs/tech/classes/LocalObjectCache.md b/docs/tech/classes/LocalObjectCache.md deleted file mode 100644 index 55533ee7..00000000 --- a/docs/tech/classes/LocalObjectCache.md +++ /dev/null @@ -1,144 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / LocalObjectCache
      - -

      - LocalObjectCache class: -

      - - - - - -```php -namespace BumbleDocGen\Core\Cache\LocalCache; - -final class LocalObjectCache -``` - - - - - - - - - -

      Methods:

      - -
        -
      1. - cacheMethodResult -
      2. -
      3. - getMethodCachedResult -
      4. -
      - - - - - - - -

      Method details:

      - -
      - - - -```php -public function cacheMethodResult(string $methodKey, string $objectId, mixed $methodResult): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $methodKeystring-
      $objectIdstring-
      $methodResultmixed-
      - -Return value: void - - -
      -
      -
      - - - -```php -public function getMethodCachedResult(string $methodKey, string $objectId): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $methodKeystring-
      $objectIdstring-
      - -Return value: mixed - - -Throws: - - -
      -
      - - \ No newline at end of file diff --git a/docs/tech/classes/MainExtension.md b/docs/tech/classes/MainExtension.md deleted file mode 100644 index 4db33a6d..00000000 --- a/docs/tech/classes/MainExtension.md +++ /dev/null @@ -1,341 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / MainExtension
      - -

      - MainExtension class: -

      - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig; - -final class MainExtension extends \Twig\Extension\AbstractExtension -``` - -
      This is an extension that is used to generate documents from templates
      - - - - - - -

      Initialization methods:

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

      Methods:

      - -
        -
      1. - getFilters - - List of twig filters
      2. -
      3. - getFunctions - - List of twig functions
      4. -
      5. - getLanguageHandlersCollection -
      6. -
      7. - getNodeVisitors - - Returns the node visitor instances to add to the existing list.
      8. -
      9. - getOperators - - Returns a list of operators to add to the existing list.
      10. -
      11. - getTests - - Returns a list of tests to add to the existing list.
      12. -
      13. - getTokenParsers - - Returns the token parser instances to add to the existing list.
      14. -
      15. - setDefaultFilters -
      16. -
      17. - setDefaultFunctions -
      18. -
      - - - - - - - -

      Method details:

      - -
      - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $context, \BumbleDocGen\Core\Configuration\Configuration $configuration); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $context\BumbleDocGen\Core\Renderer\Context\RendererContext-
      $configuration\BumbleDocGen\Core\Configuration\Configuration-
      - - - -Throws: - - -
      -
      -
      - - - -```php -public function getFilters(): \Generator; -``` - -
      List of twig filters
      - -Parameters: not specified - -Return value: \Generator - - -
      -
      -
      - - - -```php -public function getFunctions(): \Generator; -``` - -
      List of twig functions
      - -Parameters: not specified - -Return value: \Generator - - -
      -
      -
      - - - -```php -public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\LanguageHandlersCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\LanguageHandlersCollection - - -Throws: - - -
      -
      -
      - - - -```php -// Implemented in Twig\Extension\AbstractExtension - -public function getNodeVisitors(): \Twig\NodeVisitor\NodeVisitorInterface[]; -``` - -
      Returns the node visitor instances to add to the existing list.
      - -Parameters: not specified - -Return value: \Twig\NodeVisitor\NodeVisitorInterface[] - - -
      -
      -
      - - - -```php -// Implemented in Twig\Extension\AbstractExtension - -public function getOperators(): array[]; -``` - -
      Returns a list of operators to add to the existing list.
      - -Parameters: not specified - -Return value: array[] - - -
      -
      -
      - - - -```php -// Implemented in Twig\Extension\AbstractExtension - -public function getTests(): \Twig\TwigTest[]; -``` - -
      Returns a list of tests to add to the existing list.
      - -Parameters: not specified - -Return value: \Twig\TwigTest[] - - -
      -
      -
      - - - -```php -// Implemented in Twig\Extension\AbstractExtension - -public function getTokenParsers(): \Twig\TokenParser\TokenParserInterface[]; -``` - -
      Returns the token parser instances to add to the existing list.
      - -Parameters: not specified - -Return value: \Twig\TokenParser\TokenParserInterface[] - - -
      -
      -
      - - - -```php -public function setDefaultFilters(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
      -
      -
      - - - -```php -public function setDefaultFunctions(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
      -
      - - \ No newline at end of file diff --git a/docs/tech/classes/MainTwigEnvironment.md b/docs/tech/classes/MainTwigEnvironment.md deleted file mode 100644 index c0a946fa..00000000 --- a/docs/tech/classes/MainTwigEnvironment.md +++ /dev/null @@ -1,156 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / MainTwigEnvironment
      - -

      - MainTwigEnvironment class: -

      - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Twig; - -final class MainTwigEnvironment -``` - - - - - - - - -

      Initialization methods:

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

      Methods:

      - -
        -
      1. - render -
      2. -
      - - - - - - - -

      Method details:

      - -
      - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Renderer\Twig\MainExtension $mainExtension, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $configuration\BumbleDocGen\Core\Configuration\Configuration-
      $mainExtension\BumbleDocGen\Core\Renderer\Twig\MainExtension-
      $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
      - - - -
      -
      -
      - - - -```php -public function render(mixed $name, array $context = []): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $namemixed-
      $contextarray-
      - -Return value: string - - -Throws: - - -
      -
      - - \ No newline at end of file diff --git a/docs/tech/classes/MethodEntityInterface.md b/docs/tech/classes/MethodEntityInterface.md deleted file mode 100644 index bb73ee87..00000000 --- a/docs/tech/classes/MethodEntityInterface.md +++ /dev/null @@ -1,626 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / MethodEntityInterface
      - -

      - MethodEntityInterface class: -

      - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; - -interface MethodEntityInterface extends \\BumbleDocGen\Core\Parser\Entity\EntityInterface implements \BumbleDocGen\Core\Parser\Entity\EntityInterface -``` - - - - - - - - - -

      Methods:

      - -
        -
      1. - entityCacheIsOutdated -
      2. -
      3. - getAbsoluteFileName - - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      4. -
      5. - getBodyCode -
      6. -
      7. - getDescription -
      8. -
      9. - getEndLine -
      10. -
      11. - getFileName - - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
      12. -
      13. - getFirstReturnValue -
      14. -
      15. - getImplementingClass -
      16. -
      17. - getImplementingClassName -
      18. -
      19. - getModifiersString -
      20. -
      21. - getName -
      22. -
      23. - getObjectId -
      24. -
      25. - getParameters -
      26. -
      27. - getParametersString -
      28. -
      29. - getReturnType -
      30. -
      31. - getRootEntityCollection - - Get parent collection of entities
      32. -
      33. - getShortName -
      34. -
      35. - getStartColumn -
      36. -
      37. - getStartLine -
      38. -
      39. - isDynamic -
      40. -
      41. - isInitialization -
      42. -
      43. - isPrivate -
      44. -
      45. - isProtected -
      46. -
      47. - isPublic -
      48. -
      - - - - - - - -

      Method details:

      - -
      - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function entityCacheIsOutdated(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
      -
      -
      - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getAbsoluteFileName(): string|null; -``` - -
      Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
      - -Parameters: not specified - -Return value: string | null - - -
      -
      -
      - - - -```php -public function getBodyCode(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
      -
      -
      - - - -```php -public function getDescription(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
      -
      -
      - - - -```php -public function getEndLine(): int; -``` - - - -Parameters: not specified - -Return value: int - - -
      -
      -
      - - - -```php -public function getFileName(): string|null; -``` - -
      Returns the relative path to a file if it can be retrieved and if the file is in the project directory
      - -Parameters: not specified - -Return value: string | null - - -
      -
      -
      - - - -```php -public function getFirstReturnValue(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
      -
      -
      - - - -```php -public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -
      -
      -
      - - - -```php -public function getImplementingClassName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
      -
      -
      - - - -```php -public function getModifiersString(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
      -
      -
      - - - -```php -public function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
      -
      -
      - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getObjectId(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
      -
      -
      - - - -```php -public function getParameters(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
      -
      -
      - - - -```php -public function getParametersString(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
      -
      -
      - - - -```php -public function getReturnType(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
      -
      -
      - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getRootEntityCollection(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection; -``` - -
      Get parent collection of entities
      - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection - - -
      -
      -
      - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface - -public function getShortName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
      -
      -
      - - - -```php -public function getStartColumn(): int; -``` - - - -Parameters: not specified - -Return value: int - - -
      -
      -
      - - - -```php -public function getStartLine(): int; -``` - - - -Parameters: not specified - -Return value: int - - -
      -
      -
      - - - -```php -public function isDynamic(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
      -
      -
      - - - -```php -public function isInitialization(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
      -
      -
      - - - -```php -public function isPrivate(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
      -
      -
      - - - -```php -public function isProtected(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
      -
      -
      - - - -```php -public function isPublic(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
      -
      - - \ No newline at end of file diff --git a/docs/tech/classes/ObjectNotFoundException.md b/docs/tech/classes/ObjectNotFoundException.md deleted file mode 100644 index 0c7b664c..00000000 --- a/docs/tech/classes/ObjectNotFoundException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ObjectNotFoundException
      - -

      - ObjectNotFoundException class: -

      - - - - - -```php -namespace BumbleDocGen\Core\Cache\LocalCache\Exception; - -final class ObjectNotFoundException extends \Exception implements \Throwable, \Stringable -``` - -
      Exception is the base class for -all Exceptions.
      - -See: - - - - - - - -

      Initialization methods:

      - -
        -
      1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
      2. -
      - -

      Methods:

      - -
        -
      1. - __toString - - String representation of the exception
      2. -
      3. - __wakeup -
      4. -
      5. - getCode - - Gets the Exception code
      6. -
      7. - getFile - - Gets the file in which the exception occurred
      8. -
      9. - getLine - - Gets the line in which the exception occurred
      10. -
      11. - getMessage - - Gets the Exception message
      12. -
      13. - getPrevious - - Returns previous Exception
      14. -
      15. - getTrace - - Gets the stack trace
      16. -
      17. - getTraceAsString - - Gets the stack trace as a string
      18. -
      - - - - - - - -

      Method details:

      - -
      - - - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
      Construct the exception. Note: The message is NOT binary safe.
      - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $messagestring[optional] The Exception message to throw.
      $codeint[optional] The Exception code.
      $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
      - - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
      String representation of the exception
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
      Gets the Exception code
      - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
      Gets the file in which the exception occurred
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
      Gets the line in which the exception occurred
      - -Parameters: not specified - -Return value: int - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
      Gets the Exception message
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
      Returns previous Exception
      - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
      Gets the stack trace
      - -Parameters: not specified - -Return value: array - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
      Gets the stack trace as a string
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      - - \ No newline at end of file diff --git a/docs/tech/classes/ObjectNotFoundException_2.md b/docs/tech/classes/ObjectNotFoundException_2.md deleted file mode 100644 index 675bfc47..00000000 --- a/docs/tech/classes/ObjectNotFoundException_2.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / ObjectNotFoundException
      - -

      - ObjectNotFoundException class: -

      - - - - - -```php -namespace BumbleDocGen\Core\Cache\LocalCache\Exception; - -final class ObjectNotFoundException extends \Exception implements \Throwable, \Stringable -``` - -
      Exception is the base class for -all Exceptions.
      - -See: - - - - - - - -

      Initialization methods:

      - -
        -
      1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
      2. -
      - -

      Methods:

      - -
        -
      1. - __toString - - String representation of the exception
      2. -
      3. - __wakeup -
      4. -
      5. - getCode - - Gets the Exception code
      6. -
      7. - getFile - - Gets the file in which the exception occurred
      8. -
      9. - getLine - - Gets the line in which the exception occurred
      10. -
      11. - getMessage - - Gets the Exception message
      12. -
      13. - getPrevious - - Returns previous Exception
      14. -
      15. - getTrace - - Gets the stack trace
      16. -
      17. - getTraceAsString - - Gets the stack trace as a string
      18. -
      - - - - - - - -

      Method details:

      - -
      - - - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
      Construct the exception. Note: The message is NOT binary safe.
      - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $messagestring[optional] The Exception message to throw.
      $codeint[optional] The Exception code.
      $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
      - - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
      String representation of the exception
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
      Gets the Exception code
      - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
      Gets the file in which the exception occurred
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
      Gets the line in which the exception occurred
      - -Parameters: not specified - -Return value: int - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
      Gets the Exception message
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
      Returns previous Exception
      - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
      Gets the stack trace
      - -Parameters: not specified - -Return value: array - - - -See: - -
      -
      -
      - - - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
      Gets the stack trace as a string
      - -Parameters: not specified - -Return value: string - - - -See: - -
      -
      - - \ No newline at end of file diff --git a/docs/tech/classes/OnAddClassEntityToCollection.md b/docs/tech/classes/OnAddClassEntityToCollection.md index 3b252cc8..9af8d0dd 100644 --- a/docs/tech/classes/OnAddClassEntityToCollection.md +++ b/docs/tech/classes/OnAddClassEntityToCollection.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / OnAddClassEntityToCollection
      + BumbleDocGen / Technical description of the project / Plugin system / OnAddClassEntityToCollection

      OnAddClassEntityToCollection class: @@ -42,12 +41,6 @@ final class OnAddClassEntityToCollection extends \Symfony\Contracts\EventDispatc
    98. getUniqueExecutionId
    99. -
    100. - isPropagationStopped - - Is propagation stopped?
    101. -
    102. - stopPropagation - - Stops the propagation of the event to further event listeners.
    @@ -67,7 +60,7 @@ final class OnAddClassEntityToCollection extends \Symfony\Contracts\EventDispatc ```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection); +public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection $entitiesCollection); ``` @@ -85,12 +78,12 @@ public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Clas $classEntity - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity - - $classEntityCollection - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection + $entitiesCollection + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection - @@ -109,14 +102,14 @@ public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Clas ```php -public function getClassEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +public function getClassEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; ``` Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection @@ -130,14 +123,14 @@ public function getClassEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Pa ```php -public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +public function getRootEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; ``` Parameters: not specified -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity +Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity @@ -163,51 +156,3 @@ public function getUniqueExecutionId(): string;
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
    Is propagation stopped?
    - -Parameters: not specified - -Return value: bool - - -
    -
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
    Stops the propagation of the event to further event listeners.
    - -Parameters: not specified - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/OnCheckIsClassEntityCanBeLoad.md b/docs/tech/classes/OnCheckIsClassEntityCanBeLoad.md deleted file mode 100644 index 806ad056..00000000 --- a/docs/tech/classes/OnCheckIsClassEntityCanBeLoad.md +++ /dev/null @@ -1,227 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / OnCheckIsClassEntityCanBeLoad
    - -

    - OnCheckIsClassEntityCanBeLoad class: -

    - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity; - -final class OnCheckIsClassEntityCanBeLoad extends \Symfony\Contracts\EventDispatcher\Event -``` - -
    Event is the base class for classes containing event data.
    - - - - - - -

    Initialization methods:

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

    Methods:

    - -
      -
    1. - disableClassLoading -
    2. -
    3. - getEntity -
    4. -
    5. - isClassCanBeLoad -
    6. -
    7. - isPropagationStopped - - Is propagation stopped?
    8. -
    9. - stopPropagation - - Stops the propagation of the event to further event listeners.
    10. -
    - - - -

    Properties:

    - -
      -
    1. - classCanBeLoad
    2. -
    - - - -

    Property details:

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

    Method details:

    - -
    - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $entity); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $entity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
    - - - -
    -
    -
    - - - -```php -public function disableClassLoading(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
    -
    -
    - - - -```php -public function getEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity - - -
    -
    -
    - - - -```php -public function isClassCanBeLoad(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
    -
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
    Is propagation stopped?
    - -Parameters: not specified - -Return value: bool - - -
    -
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
    Stops the propagation of the event to further event listeners.
    - -Parameters: not specified - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/OnCheckIsEntityCanBeLoaded.md b/docs/tech/classes/OnCheckIsEntityCanBeLoaded.md new file mode 100644 index 00000000..a4728fee --- /dev/null +++ b/docs/tech/classes/OnCheckIsEntityCanBeLoaded.md @@ -0,0 +1,172 @@ + BumbleDocGen / Technical description of the project / Plugin system / OnCheckIsEntityCanBeLoaded
    + +

    + OnCheckIsEntityCanBeLoaded class: +

    + + + + + +```php +namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity; + +final class OnCheckIsEntityCanBeLoaded extends \Symfony\Contracts\EventDispatcher\Event +``` + + + + + + + + +

    Initialization methods:

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

    Methods:

    + +
      +
    1. + disableEntityLoading +
    2. +
    3. + getEntity +
    4. +
    5. + isEntityCanBeLoaded +
    6. +
    + + + +

    Properties:

    + +
      +
    1. + isEntityCanBeLoaded
    2. +
    + + + +

    Property details:

    + + +* # + $isEntityCanBeLoaded + **|** source code +```php +public bool $isEntityCanBeLoaded; + +``` + + + + +

    Method details:

    + +
    + + + +```php +public function __construct(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity); +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $entity\BumbleDocGen\Core\Parser\Entity\RootEntityInterface-
    + + + +
    +
    +
    + + + +```php +public function disableEntityLoading(): void; +``` + + + +Parameters: not specified + +Return value: void + + +
    +
    +
    + + + +```php +public function getEntity(): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface + + +
    +
    +
    + + + +```php +public function isEntityCanBeLoaded(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +
    +
    diff --git a/docs/tech/classes/OnCreateDocumentedEntityWrapper.md b/docs/tech/classes/OnCreateDocumentedEntityWrapper.md index 0e8cdba4..7e9dea4d 100644 --- a/docs/tech/classes/OnCreateDocumentedEntityWrapper.md +++ b/docs/tech/classes/OnCreateDocumentedEntityWrapper.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / OnCreateDocumentedEntityWrapper
    + BumbleDocGen / Technical description of the project / Plugin system / OnCreateDocumentedEntityWrapper

    OnCreateDocumentedEntityWrapper class: @@ -36,12 +35,6 @@ final class OnCreateDocumentedEntityWrapper extends \Symfony\Contracts\EventDisp
  • getDocumentedEntityWrapper
  • -
  • - isPropagationStopped - - Is propagation stopped?
  • -
  • - stopPropagation - - Stops the propagation of the event to further event listeners.
  • @@ -110,51 +103,3 @@ public function getDocumentedEntityWrapper(): \BumbleDocGen\Core\Renderer\Contex
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
    Is propagation stopped?
    - -Parameters: not specified - -Return value: bool - - -
    -
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
    Stops the propagation of the event to further event listeners.
    - -Parameters: not specified - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/OnGetProjectTemplatesDirs.md b/docs/tech/classes/OnGetProjectTemplatesDirs.md index 1a3e4e7a..db1c1275 100644 --- a/docs/tech/classes/OnGetProjectTemplatesDirs.md +++ b/docs/tech/classes/OnGetProjectTemplatesDirs.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / OnGetProjectTemplatesDirs
    + BumbleDocGen / Technical description of the project / Plugin system / OnGetProjectTemplatesDirs

    OnGetProjectTemplatesDirs class: @@ -39,12 +38,6 @@ final class OnGetProjectTemplatesDirs extends \Symfony\Contracts\EventDispatcher
  • getTemplatesDirs
  • -
  • - isPropagationStopped - - Is propagation stopped?
  • -
  • - stopPropagation - - Stops the propagation of the event to further event listeners.
  • @@ -151,51 +144,3 @@ public function getTemplatesDirs(): array;
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
    Is propagation stopped?
    - -Parameters: not specified - -Return value: bool - - -
    -
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
    Stops the propagation of the event to further event listeners.
    - -Parameters: not specified - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/OnGetTemplatePathByRelativeDocPath.md b/docs/tech/classes/OnGetTemplatePathByRelativeDocPath.md index 289c6f8a..0ee6845a 100644 --- a/docs/tech/classes/OnGetTemplatePathByRelativeDocPath.md +++ b/docs/tech/classes/OnGetTemplatePathByRelativeDocPath.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / OnGetTemplatePathByRelativeDocPath
    + BumbleDocGen / Technical description of the project / Plugin system / OnGetTemplatePathByRelativeDocPath

    OnGetTemplatePathByRelativeDocPath class: @@ -39,15 +38,9 @@ final class OnGetTemplatePathByRelativeDocPath extends \Symfony\Contracts\EventD
  • getTemplateName
  • -
  • - isPropagationStopped - - Is propagation stopped?
  • setCustomTemplateFilePath
  • -
  • - stopPropagation - - Stops the propagation of the event to further event listeners.
  • @@ -104,14 +97,14 @@ public function __construct(string $templateName); ```php -public function getCustomTemplateFilePath(): string|null; +public function getCustomTemplateFilePath(): null|string; ``` Parameters: not specified -Return value: string | null +Return value: null | string @@ -135,29 +128,6 @@ public function getTemplateName(): string; Return value: string - -
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
    Is propagation stopped?
    - -Parameters: not specified - -Return value: bool - -

    @@ -198,28 +168,3 @@ public function setCustomTemplateFilePath(string|null $customTemplateFilePath):

    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
    Stops the propagation of the event to further event listeners.
    - -Parameters: not specified - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/OnGettingResourceLink.md b/docs/tech/classes/OnGettingResourceLink.md index 62eccd7b..a11b45e7 100644 --- a/docs/tech/classes/OnGettingResourceLink.md +++ b/docs/tech/classes/OnGettingResourceLink.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / OnGettingResourceLink
    + BumbleDocGen / Technical description of the project / Plugin system / OnGettingResourceLink

    OnGettingResourceLink class: @@ -39,15 +38,9 @@ final class OnGettingResourceLink extends \Symfony\Contracts\EventDispatcher\Eve
  • getResourceUrl
  • -
  • - isPropagationStopped - - Is propagation stopped?
  • setResourceUrl
  • -
  • - stopPropagation - - Stops the propagation of the event to further event listeners.
  • @@ -125,37 +118,14 @@ public function getResourceName(): string; ```php -public function getResourceUrl(): string|null; +public function getResourceUrl(): null|string; ``` Parameters: not specified -Return value: string | null - - - -
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
    Is propagation stopped?
    - -Parameters: not specified - -Return value: bool +Return value: null | string
    @@ -198,28 +168,3 @@ public function setResourceUrl(string|null $resourceUrl): void;
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
    Stops the propagation of the event to further event listeners.
    - -Parameters: not specified - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/OnLoadEntityDocPluginContent.md b/docs/tech/classes/OnLoadEntityDocPluginContent.md index 7ac5ca98..9cb57f4d 100644 --- a/docs/tech/classes/OnLoadEntityDocPluginContent.md +++ b/docs/tech/classes/OnLoadEntityDocPluginContent.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / OnLoadEntityDocPluginContent
    + BumbleDocGen / Technical description of the project / Plugin system / OnLoadEntityDocPluginContent

    OnLoadEntityDocPluginContent class: @@ -54,12 +53,6 @@ See:
  • getEntity
  • -
  • - isPropagationStopped - - Is propagation stopped?
  • -
  • - stopPropagation - - Stops the propagation of the event to further event listeners.
  • @@ -239,51 +232,3 @@ public function getEntity(): \BumbleDocGen\Core\Parser\Entity\RootEntityInterfac
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
    Is propagation stopped?
    - -Parameters: not specified - -Return value: bool - - -
    -
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
    Stops the propagation of the event to further event listeners.
    - -Parameters: not specified - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/OnLoadSourceLocatorsCollection.md b/docs/tech/classes/OnLoadSourceLocatorsCollection.md deleted file mode 100644 index 35f2157d..00000000 --- a/docs/tech/classes/OnLoadSourceLocatorsCollection.md +++ /dev/null @@ -1,160 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / OnLoadSourceLocatorsCollection
    - -

    - OnLoadSourceLocatorsCollection class: -

    - - - - - -```php -namespace BumbleDocGen\Core\Plugin\Event\Parser; - -final class OnLoadSourceLocatorsCollection extends \Symfony\Contracts\EventDispatcher\Event -``` - -
    Called when source locators are loaded
    - - - - - - -

    Initialization methods:

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

    Methods:

    - -
      -
    1. - getSourceLocatorsCollection -
    2. -
    3. - isPropagationStopped - - Is propagation stopped?
    4. -
    5. - stopPropagation - - Stops the propagation of the event to further event listeners.
    6. -
    - - - - - - - -

    Method details:

    - -
    - - - -```php -public function __construct(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection $sourceLocatorsCollection); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $sourceLocatorsCollection\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection-
    - - - -
    -
    -
    - - - -```php -public function getSourceLocatorsCollection(): \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection - - -
    -
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function isPropagationStopped(): bool; -``` - -
    Is propagation stopped?
    - -Parameters: not specified - -Return value: bool - - -
    -
    -
    - - - -```php -// Implemented in Symfony\Contracts\EventDispatcher\Event - -public function stopPropagation(): void; -``` - -
    Stops the propagation of the event to further event listeners.
    - -Parameters: not specified - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/OnlySingleExecutionEvent.md b/docs/tech/classes/OnlySingleExecutionEvent.md deleted file mode 100644 index 8331bc82..00000000 --- a/docs/tech/classes/OnlySingleExecutionEvent.md +++ /dev/null @@ -1,64 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / OnlySingleExecutionEvent
    - -

    - OnlySingleExecutionEvent class: -

    - - - - - -```php -namespace BumbleDocGen\Core\Plugin; - -interface OnlySingleExecutionEvent -``` - - - - - - - - - -

    Methods:

    - -
      -
    1. - getUniqueExecutionId -
    2. -
    - - - - - - - -

    Method details:

    - -
    - - - -```php -public function getUniqueExecutionId(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/OperationInterface.md b/docs/tech/classes/OperationInterface.md deleted file mode 100644 index d55d761c..00000000 --- a/docs/tech/classes/OperationInterface.md +++ /dev/null @@ -1,88 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / OperationInterface
    - -

    - OperationInterface class: -

    - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\CollectionLogOperation; - -interface OperationInterface -``` - - - - - - - - - -

    Methods:

    - -
      -
    1. - getKey -
    2. -
    3. - incrementUsageCount -
    4. -
    - - - - - - - -

    Method details:

    - -
    - - - -```php -public function getKey(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
    -
    -
    - - - -```php -public function incrementUsageCount(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/OperationsCollection.md b/docs/tech/classes/OperationsCollection.md deleted file mode 100644 index 60732bab..00000000 --- a/docs/tech/classes/OperationsCollection.md +++ /dev/null @@ -1,248 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / OperationsCollection
    - -

    - OperationsCollection class: -

    - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\CollectionLogOperation; - -final class OperationsCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

    Methods:

    - -
      -
    1. - __serialize -
    2. -
    3. - __unserialize -
    4. -
    5. - add -
    6. -
    7. - getIterator - - Retrieve an external iterator
    8. -
    9. - isFoundEntitiesCacheOutdated -
    10. -
    11. - removeSearchDuplicates -
    12. -
    - - - - - - - -

    Method details:

    - -
    - - - -```php -public function __serialize(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
    -
    -
    - - - -```php -public function __unserialize(array $data): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $dataarray-
    - -Return value: void - - -
    -
    -
    - - - -```php -public function add(\BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationInterface $operation): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $operation\BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationInterface-
    - -Return value: void - - -
    -
    -
    - - - -```php -public function getIterator(): \Traversable; -``` - -
    Retrieve an external iterator
    - -Parameters: not specified - -Return value: \Traversable - - -Throws: - - - -See: - -
    -
    -
    - - - -```php -public function isFoundEntitiesCacheOutdated(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $rootEntityCollection\BumbleDocGen\Core\Parser\Entity\RootEntityCollection-
    - -Return value: bool - - -
    -
    -
    - - - -```php -public function removeSearchDuplicates(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/PageHtmlLinkerPlugin.md b/docs/tech/classes/PageHtmlLinkerPlugin.md index 7b41425e..c1d8724f 100644 --- a/docs/tech/classes/PageHtmlLinkerPlugin.md +++ b/docs/tech/classes/PageHtmlLinkerPlugin.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / PageHtmlLinkerPlugin
    + BumbleDocGen / Technical description of the project / Plugin system / PageHtmlLinkerPlugin

    PageHtmlLinkerPlugin class: @@ -68,7 +67,7 @@ final class PageHtmlLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\Pa
  • getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
  • + @@ -84,7 +83,7 @@ final class PageHtmlLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\Pa ```php @@ -138,7 +137,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsH ```php @@ -180,10 +179,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - -
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -194,7 +190,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B ```php @@ -203,7 +199,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B public static function getSubscribedEvents(): array; ``` -
    Returns an array of event names this subscriber wants to listen to.
    + Parameters: not specified @@ -212,5 +208,3 @@ public static function getSubscribedEvents(): array;
    - - \ No newline at end of file diff --git a/docs/tech/1.configuration/classes/PageHtmlLinkerPlugin.md b/docs/tech/classes/PageHtmlLinkerPlugin_2.md similarity index 87% rename from docs/tech/1.configuration/classes/PageHtmlLinkerPlugin.md rename to docs/tech/classes/PageHtmlLinkerPlugin_2.md index ea63e2c6..a9550bf2 100644 --- a/docs/tech/1.configuration/classes/PageHtmlLinkerPlugin.md +++ b/docs/tech/classes/PageHtmlLinkerPlugin_2.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Configuration files / PageHtmlLinkerPlugin
    + BumbleDocGen / Technical description of the project / Configuration / PageHtmlLinkerPlugin

    PageHtmlLinkerPlugin class: @@ -68,7 +67,7 @@ final class PageHtmlLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\Pa
  • getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
  • + @@ -84,7 +83,7 @@ final class PageHtmlLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\Pa ```php @@ -138,7 +137,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsH ```php @@ -180,10 +179,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - -
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -194,7 +190,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B ```php @@ -203,7 +199,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B public static function getSubscribedEvents(): array; ``` -
    Returns an array of event names this subscriber wants to listen to.
    + Parameters: not specified @@ -212,5 +208,3 @@ public static function getSubscribedEvents(): array;
    - - \ No newline at end of file diff --git a/docs/tech/classes/PageLinkProcessorInterface.md b/docs/tech/classes/PageLinkProcessorInterface.md deleted file mode 100644 index db6775fa..00000000 --- a/docs/tech/classes/PageLinkProcessorInterface.md +++ /dev/null @@ -1,81 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / PageLinkProcessorInterface
    - -

    - PageLinkProcessorInterface class: -

    - - - - - -```php -namespace BumbleDocGen\Core\Renderer\PageLinkProcessor; - -interface PageLinkProcessorInterface -``` - - - - - - - - - -

    Methods:

    - -
      -
    1. - getAbsoluteUrl -
    2. -
    - - - - - - - -

    Method details:

    - -
    - - - -```php -public function getAbsoluteUrl(string $relativeUrl): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $relativeUrlstring-
    - -Return value: string - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/PageLinkerPlugin.md b/docs/tech/classes/PageLinkerPlugin.md index b09021e6..94884832 100644 --- a/docs/tech/classes/PageLinkerPlugin.md +++ b/docs/tech/classes/PageLinkerPlugin.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / PageLinkerPlugin
    + BumbleDocGen / Technical description of the project / Plugin system / PageLinkerPlugin

    PageLinkerPlugin class: @@ -68,7 +67,7 @@ final class PageLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\PageLi
  • getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
  • + @@ -84,7 +83,7 @@ final class PageLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\PageLi ```php @@ -138,7 +137,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsH ```php @@ -180,10 +179,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - -
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -194,7 +190,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B ```php @@ -203,7 +199,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B public static function getSubscribedEvents(): array; ``` -
    Returns an array of event names this subscriber wants to listen to.
    + Parameters: not specified @@ -212,5 +208,3 @@ public static function getSubscribedEvents(): array;
    - - \ No newline at end of file diff --git a/docs/tech/4.pluginSystem/classes/PageLinkerPlugin.md b/docs/tech/classes/PageLinkerPlugin_2.md similarity index 87% rename from docs/tech/4.pluginSystem/classes/PageLinkerPlugin.md rename to docs/tech/classes/PageLinkerPlugin_2.md index 6bd972dc..6806c5aa 100644 --- a/docs/tech/4.pluginSystem/classes/PageLinkerPlugin.md +++ b/docs/tech/classes/PageLinkerPlugin_2.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Plugin system / PageLinkerPlugin
    + BumbleDocGen / Technical description of the project / Configuration / PageLinkerPlugin

    PageLinkerPlugin class: @@ -68,7 +67,7 @@ final class PageLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\PageLi
  • getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
  • + @@ -84,7 +83,7 @@ final class PageLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\PageLi ```php @@ -138,7 +137,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsH ```php @@ -180,10 +179,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - -
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -194,7 +190,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B ```php @@ -203,7 +199,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B public static function getSubscribedEvents(): array; ``` -
    Returns an array of event names this subscriber wants to listen to.
    + Parameters: not specified @@ -212,5 +208,3 @@ public static function getSubscribedEvents(): array;
    - - \ No newline at end of file diff --git a/docs/tech/classes/PageRstLinkerPlugin.md b/docs/tech/classes/PageRstLinkerPlugin.md index 02047850..db29a47c 100644 --- a/docs/tech/classes/PageRstLinkerPlugin.md +++ b/docs/tech/classes/PageRstLinkerPlugin.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / PageRstLinkerPlugin
    + BumbleDocGen / Technical description of the project / Plugin system / PageRstLinkerPlugin

    PageRstLinkerPlugin class: @@ -58,7 +57,7 @@ final class PageRstLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\Pag
  • getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
  • + @@ -74,7 +73,7 @@ final class PageRstLinkerPlugin extends \BumbleDocGen\Core\Plugin\CorePlugin\Pag ```php @@ -128,7 +127,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsH ```php @@ -170,10 +169,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - -
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -184,7 +180,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B ```php @@ -193,7 +189,7 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B public static function getSubscribedEvents(): array; ``` -
    Returns an array of event names this subscriber wants to listen to.
    + Parameters: not specified @@ -202,5 +198,3 @@ public static function getSubscribedEvents(): array;
    - - \ No newline at end of file diff --git a/docs/tech/classes/ParserHelper.md b/docs/tech/classes/ParserHelper.md deleted file mode 100644 index c0bea1a4..00000000 --- a/docs/tech/classes/ParserHelper.md +++ /dev/null @@ -1,639 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ParserHelper
    - -

    - ParserHelper class: -

    - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser; - -final class ParserHelper -``` - - - - - - - - -

    Initialization methods:

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

    Methods:

    - -
      -
    1. - getBuiltInClassNames -
    2. -
    3. - getClassFromFile -
    4. -
    5. - getDocBlock -
    6. -
    7. - getDocBlockContext -
    8. -
    9. - getFilesInGit -
    10. -
    11. - getMethodReturnValue -
    12. -
    13. - getUsesListByClassEntity -
    14. -
    15. - isBuiltInClass -
    16. -
    17. - isBuiltInType -
    18. -
    19. - isClassLoaded -
    20. -
    21. - isCorrectClassName -
    22. -
    23. - parseFullClassName -
    24. -
    - - - - - - - -

    Method details:

    - -
    - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper $reflector, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Monolog\Logger $logger); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $configuration\BumbleDocGen\Core\Configuration\Configuration-
    $reflector\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper-
    $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
    $logger\Monolog\Logger-
    - - - -
    -
    -
    - - - -```php -public static function getBuiltInClassNames(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
    -
    -
    - - - -```php -public function getClassFromFile(mixed $file): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $filemixed-
    - -Return value: string | null - - -
    -
    -
    - - - -```php -public function getDocBlock(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, string $docComment, int|null $lineNumber = null): \phpDocumentor\Reflection\DocBlock; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
    $docCommentstring-
    $lineNumberint | null-
    - -Return value: \phpDocumentor\Reflection\DocBlock - - -Throws: - - -
    -
    -
    - - - -```php -public function getDocBlockContext(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity): \phpDocumentor\Reflection\Types\Context; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
    - -Return value: \phpDocumentor\Reflection\Types\Context - - -Throws: - - -
    -
    -
    - - - -```php -public function getFilesInGit(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
    -
    -
    - - - -```php -public function getMethodReturnValue(\Roave\BetterReflection\Reflection\ReflectionClass $reflectionClass, \Roave\BetterReflection\Reflection\ReflectionMethod $reflectionMethod): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $reflectionClass\Roave\BetterReflection\Reflection\ReflectionClass-
    $reflectionMethod\Roave\BetterReflection\Reflection\ReflectionMethod-
    - -Return value: mixed - - -
    -
    -
    - - - -```php -public function getUsesListByClassEntity(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, bool $extended = true): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $classEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
    $extendedbool-
    - -Return value: array - - -Throws: - - -
    -
    -
    - - - -```php -public static function isBuiltInClass(string $className): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $classNamestring-
    - -Return value: bool - - -
    -
    -
    - - - -```php -public static function isBuiltInType(string $name): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $namestring-
    - -Return value: bool - - -
    -
    -
    - - - -```php -public function isClassLoaded(string $className): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $classNamestring-
    - -Return value: bool - - -
    -
    -
    - - - -```php -public static function isCorrectClassName(string $className, bool $checkBuiltIns = true): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $classNamestring-
    $checkBuiltInsbool-
    - -Return value: bool - - -
    -
    -
    - - - -```php -public function parseFullClassName(string $searchClassName, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $parentClassEntity, bool $extended = true): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $searchClassNamestring-
    $parentClassEntity\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity-
    $extendedbool-
    - -Return value: string - - -Throws: - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/PhpClassRendererTwigEnvironment.md b/docs/tech/classes/PhpClassRendererTwigEnvironment.md deleted file mode 100644 index 69a3c240..00000000 --- a/docs/tech/classes/PhpClassRendererTwigEnvironment.md +++ /dev/null @@ -1,143 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / PhpClassRendererTwigEnvironment
    - -

    - PhpClassRendererTwigEnvironment class: -

    - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\PhpClassToMd; - -final class PhpClassRendererTwigEnvironment -``` - - - - - - - - -

    Initialization methods:

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

    Methods:

    - -
      -
    1. - render -
    2. -
    - - - - - - - -

    Method details:

    - -
    - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Twig\MainExtension $mainExtension); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $mainExtension\BumbleDocGen\Core\Renderer\Twig\MainExtension-
    - - - -
    -
    -
    - - - -```php -public function render(mixed $name, array $context = []): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $namemixed-
    $contextarray-
    - -Return value: string - - -Throws: - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/PhpClassToMdDocRenderer.md b/docs/tech/classes/PhpClassToMdDocRenderer.md deleted file mode 100644 index 458dd2b7..00000000 --- a/docs/tech/classes/PhpClassToMdDocRenderer.md +++ /dev/null @@ -1,242 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / PhpClassToMdDocRenderer
    - -

    - PhpClassToMdDocRenderer class: -

    - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\PhpClassToMd; - -class PhpClassToMdDocRenderer implements \BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface -``` - -
    Rendering PHP classes into md format documents (for display on GitHub)
    - - - - - - -

    Initialization methods:

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

    Methods:

    - -
      -
    1. - getDocFileExtension -
    2. -
    3. - getDocFileNamespace -
    4. -
    5. - getRenderedText -
    6. -
    7. - isAvailableForEntity - - Can this render be used to create entity documentation
    8. -
    - - -

    Constants:

    - - - - - - -

    Method details:

    - -
    - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\PhpClassToMd\PhpClassRendererTwigEnvironment $classRendererTwig); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $classRendererTwig\BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\PhpClassToMd\PhpClassRendererTwigEnvironment-
    - - - -
    -
    -
    - - - -```php -public function getDocFileExtension(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
    -
    -
    - - - -```php -public function getDocFileNamespace(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
    -
    -
    - - - -```php -public function getRenderedText(\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper $entityWrapper): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $entityWrapper\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper-
    - -Return value: string - - -Throws: - - -
    -
    -
    - - - -```php -public function isAvailableForEntity(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity): bool; -``` - -
    Can this render be used to create entity documentation
    - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $entity\BumbleDocGen\Core\Parser\Entity\RootEntityInterfaceThe entity whose documentation was requested
    - -Return value: bool - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/classes/PhpDocumentorStubberPlugin.md b/docs/tech/classes/PhpDocumentorStubberPlugin.md index bb92f01e..41917541 100644 --- a/docs/tech/classes/PhpDocumentorStubberPlugin.md +++ b/docs/tech/classes/PhpDocumentorStubberPlugin.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / PhpDocumentorStubberPlugin
    + BumbleDocGen / Technical description of the project / Plugin system / PhpDocumentorStubberPlugin

    PhpDocumentorStubberPlugin class: @@ -28,9 +27,9 @@ final class PhpDocumentorStubberPlugin implements \BumbleDocGen\Core\Plugin\Plug
    1. getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
    2. +
    3. - onCheckIsClassEntityCanBeLoad + onCheckIsEntityCanBeLoaded
    4. onGettingResourceLink @@ -57,7 +56,7 @@ final class PhpDocumentorStubberPlugin implements \BumbleDocGen\Core\Plugin\Plug public static function getSubscribedEvents(): array; ``` -
      Returns an array of event names this subscriber wants to listen to.
      + Parameters: not specified @@ -69,13 +68,13 @@ public static function getSubscribedEvents(): array;
        -
      • # - onCheckIsClassEntityCanBeLoad +
      • # + onCheckIsEntityCanBeLoaded | source code
      ```php -public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad $event): void; +public function onCheckIsEntityCanBeLoaded(\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded $event): void; ``` @@ -93,7 +92,7 @@ public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\ $event - \BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad + \BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded - @@ -142,5 +141,3 @@ public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\O

      - - \ No newline at end of file diff --git a/docs/tech/classes/PhpHandler.md b/docs/tech/classes/PhpHandler.md deleted file mode 100644 index 4931dd39..00000000 --- a/docs/tech/classes/PhpHandler.md +++ /dev/null @@ -1,261 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / PhpHandler
      - -

      - PhpHandler class: -

      - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php; - -final class PhpHandler implements \BumbleDocGen\LanguageHandler\LanguageHandlerInterface -``` - - - - - - - - -

      Initialization methods:

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

      Methods:

      - -
        -
      1. - getCustomTwigFilters -
      2. -
      3. - getCustomTwigFunctions -
      4. -
      5. - getEntityCollection -
      6. -
      7. - getLanguageKey - - Unique language handler key
      8. -
      - - - - - - - -

      Method details:

      - -
      - - - -```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $classEntityCollection\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection-
      $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
      - - - -
      -
      -
      - - - -```php -public function getCustomTwigFilters(\BumbleDocGen\Core\Renderer\Context\RendererContext $context): \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $context\BumbleDocGen\Core\Renderer\Context\RendererContext-
      - -Return value: \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection - - -Throws: - - -
      -
      -
      - - - -```php -public function getCustomTwigFunctions(\BumbleDocGen\Core\Renderer\Context\RendererContext $context): \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
      NameTypeDescription
      $context\BumbleDocGen\Core\Renderer\Context\RendererContext-
      - -Return value: \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection - - -Throws: - - -
      -
      -
      - - - -```php -public function getEntityCollection(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection - - -Throws: - - -
      -
      -
      - - - -```php -public static function getLanguageKey(): string; -``` - -
      Unique language handler key
      - -Parameters: not specified - -Return value: string - - -
      -
      - - \ No newline at end of file diff --git a/docs/tech/classes/PhpUnitStubberPlugin.md b/docs/tech/classes/PhpUnitStubberPlugin.md index 23f6ab62..baaea168 100644 --- a/docs/tech/classes/PhpUnitStubberPlugin.md +++ b/docs/tech/classes/PhpUnitStubberPlugin.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / PhpUnitStubberPlugin
      + BumbleDocGen / Technical description of the project / Plugin system / PhpUnitStubberPlugin

      PhpUnitStubberPlugin class: @@ -28,9 +27,9 @@ final class PhpUnitStubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInte
      1. getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
      2. +
      3. - onCheckIsClassEntityCanBeLoad + onCheckIsEntityCanBeLoaded
      4. onGettingResourceLink @@ -57,7 +56,7 @@ final class PhpUnitStubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInte public static function getSubscribedEvents(): array; ``` -
        Returns an array of event names this subscriber wants to listen to.
        + Parameters: not specified @@ -69,13 +68,13 @@ public static function getSubscribedEvents(): array;
          -
        • # - onCheckIsClassEntityCanBeLoad +
        • # + onCheckIsEntityCanBeLoaded | source code
        ```php -public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad $event): void; +public function onCheckIsEntityCanBeLoaded(\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded $event): void; ``` @@ -93,7 +92,7 @@ public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\ $event - \BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad + \BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded - @@ -142,5 +141,3 @@ public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\O

        - - \ No newline at end of file diff --git a/docs/tech/classes/PluginEventDispatcher.md b/docs/tech/classes/PluginEventDispatcher.md deleted file mode 100644 index b626564f..00000000 --- a/docs/tech/classes/PluginEventDispatcher.md +++ /dev/null @@ -1,453 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / PluginEventDispatcher
        - -

        - PluginEventDispatcher class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Plugin; - -class PluginEventDispatcher extends \Symfony\Component\EventDispatcher\EventDispatcher -``` - -
        The EventDispatcherInterface is the central point of Symfony's event listener system.
        - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - addListener - - Adds an event listener that listens on the specified events.
        2. -
        3. - addSubscriber - - Adds an event subscriber.
        4. -
        5. - dispatch - - Dispatches an event to all registered listeners.
        6. -
        7. - getListenerPriority - - Gets the listener priority for a specific event.
        8. -
        9. - getListeners - - Gets the listeners of a specific event or all listeners sorted by descending priority.
        10. -
        11. - hasListeners - - Checks whether an event has any registered listeners.
        12. -
        13. - removeListener - - Removes an event listener from the specified events.
        14. -
        15. - removeSubscriber -
        16. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\Monolog\Logger $logger); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $logger\Monolog\Logger-
        - - - -
        -
        -
        - - - -```php -// Implemented in Symfony\Component\EventDispatcher\EventDispatcher - -public function addListener(string $eventName, callable|array $listener, int $priority): mixed; -``` - -
        Adds an event listener that listens on the specified events.
        - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $eventNamestring-
        $listenercallable | array-
        $priorityintThe higher this value, the earlier an event - listener will be triggered in the chain (defaults to 0)
        - -Return value: mixed - - -
        -
        -
        - - - -```php -// Implemented in Symfony\Component\EventDispatcher\EventDispatcher - -public function addSubscriber(\Symfony\Component\EventDispatcher\EventSubscriberInterface $subscriber): mixed; -``` - -
        Adds an event subscriber.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $subscriber\Symfony\Component\EventDispatcher\EventSubscriberInterface-
        - -Return value: mixed - - -
        -
        -
        - - - -```php -public function dispatch(object $event, string $eventName = null): object; -``` - -
        Dispatches an event to all registered listeners.
        - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $eventobjectThe event to pass to the event handlers/listeners
        $eventNamestringThe name of the event to dispatch. If not supplied, - the class of $event should be used instead.
        - -Return value: object - - -
        -
        -
        - - - -```php -// Implemented in Symfony\Component\EventDispatcher\EventDispatcher - -public function getListenerPriority(string $eventName, callable|array $listener): int|null; -``` - -
        Gets the listener priority for a specific event.
        - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $eventNamestring-
        $listenercallable | array-
        - -Return value: int | null - - -
        -
        -
        - - - -```php -// Implemented in Symfony\Component\EventDispatcher\EventDispatcher - -public function getListeners(string $eventName = null): array; -``` - -
        Gets the listeners of a specific event or all listeners sorted by descending priority.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $eventNamestring-
        - -Return value: array - - -
        -
        -
        - - - -```php -// Implemented in Symfony\Component\EventDispatcher\EventDispatcher - -public function hasListeners(string $eventName = null): bool; -``` - -
        Checks whether an event has any registered listeners.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $eventNamestring-
        - -Return value: bool - - -
        -
        -
        - - - -```php -// Implemented in Symfony\Component\EventDispatcher\EventDispatcher - -public function removeListener(string $eventName, callable|array $listener): mixed; -``` - -
        Removes an event listener from the specified events.
        - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $eventNamestring-
        $listenercallable | array-
        - -Return value: mixed - - -
        -
        -
        - - - -```php -// Implemented in Symfony\Component\EventDispatcher\EventDispatcher - -public function removeSubscriber(\Symfony\Component\EventDispatcher\EventSubscriberInterface $subscriber): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $subscriber\Symfony\Component\EventDispatcher\EventSubscriberInterface-
        - -Return value: mixed - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/PluginInterface.md b/docs/tech/classes/PluginInterface.md index f96c7dd7..f940bb33 100644 --- a/docs/tech/classes/PluginInterface.md +++ b/docs/tech/classes/PluginInterface.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / PluginInterface
        + BumbleDocGen / Technical description of the project / Plugin system / PluginInterface

        PluginInterface class: @@ -12,7 +11,7 @@ ```php namespace BumbleDocGen\Core\Plugin; -interface PluginInterface extends \\Symfony\Component\EventDispatcher\EventSubscriberInterface implements \Symfony\Component\EventDispatcher\EventSubscriberInterface +interface PluginInterface extends \Symfony\Component\EventDispatcher\EventSubscriberInterface ``` @@ -23,44 +22,10 @@ interface PluginInterface extends \\Symfony\Component\EventDispatcher\EventSubsc -

        Methods:

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

        Method details:

        - -
        - - - -```php -// Implemented in Symfony\Component\EventDispatcher\EventSubscriberInterface - -public static function getSubscribedEvents(): array>; -``` - -
        Returns an array of event names this subscriber wants to listen to.
        - -Parameters: not specified - -Return value: array | array{0:string,1:int} | list> - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/PluginsCollection.md b/docs/tech/classes/PluginsCollection.md deleted file mode 100644 index 706080fd..00000000 --- a/docs/tech/classes/PluginsCollection.md +++ /dev/null @@ -1,200 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / PluginsCollection
        - -

        - PluginsCollection class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Plugin; - -final class PluginsCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

        Methods:

        - -
          -
        1. - add -
        2. -
        3. - create -
        4. -
        5. - get -
        6. -
        7. - getIterator - - Retrieve an external iterator
        8. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function add(\BumbleDocGen\Core\Plugin\PluginInterface ...$plugins): \BumbleDocGen\Core\Plugin\PluginsCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $plugins (variadic)\BumbleDocGen\Core\Plugin\PluginInterface-
        - -Return value: \BumbleDocGen\Core\Plugin\PluginsCollection - - -
        -
        -
        - - - -```php -public static function create(\BumbleDocGen\Core\Plugin\PluginInterface ...$plugins): \BumbleDocGen\Core\Plugin\PluginsCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $plugins (variadic)\BumbleDocGen\Core\Plugin\PluginInterface-
        - -Return value: \BumbleDocGen\Core\Plugin\PluginsCollection - - -
        -
        -
        - - - -```php -public function get(string $key): \BumbleDocGen\Core\Plugin\PluginInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $keystring-
        - -Return value: \BumbleDocGen\Core\Plugin\PluginInterface | null - - -
        -
        -
        - - - -```php -public function getIterator(): \Generator; -``` - -
        Retrieve an external iterator
        - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/PregMatch.md b/docs/tech/classes/PregMatch.md index ca5699ee..18159999 100644 --- a/docs/tech/classes/PregMatch.md +++ b/docs/tech/classes/PregMatch.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / PregMatch
        + BumbleDocGen / Technical description of the project / Configuration / PregMatch

        PregMatch class: @@ -150,5 +149,3 @@ public static function getOptions(): array;
        - - \ No newline at end of file diff --git a/docs/tech/classes/PrepareSourceLink.md b/docs/tech/classes/PrepareSourceLink.md index 54fa8d78..9e834b34 100644 --- a/docs/tech/classes/PrepareSourceLink.md +++ b/docs/tech/classes/PrepareSourceLink.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / PrepareSourceLink
        + BumbleDocGen / Technical description of the project / Configuration / PrepareSourceLink

        PrepareSourceLink class: @@ -139,5 +138,3 @@ public static function getOptions(): array;
        - - \ No newline at end of file diff --git a/docs/tech/classes/PrintEntityCollectionAsList.md b/docs/tech/classes/PrintEntityCollectionAsList.md index fae8c861..46347db8 100644 --- a/docs/tech/classes/PrintEntityCollectionAsList.md +++ b/docs/tech/classes/PrintEntityCollectionAsList.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / PrintEntityCollectionAsList
        + BumbleDocGen / Technical description of the project / Configuration / PrintEntityCollectionAsList

        PrintEntityCollectionAsList class: @@ -21,13 +20,13 @@ final class PrintEntityCollectionAsList implements \BumbleDocGen\Core\Renderer\T Examples of using: ```php -{{ printEntityCollectionAsList(phpClassEntityCollection.filterByInterfaces(['ScriptFramework\\ScriptInterface', 'ScriptFramework\\TestScriptInterface'])) }} +{{ printEntityCollectionAsList(phpEntities.filterByInterfaces(['ScriptFramework\\ScriptInterface', 'ScriptFramework\\TestScriptInterface'])) }} The function will output a list of PHP classes that match the ScriptFramework\ScriptInterface and ScriptFramework\TestScriptInterface interfaces ``` ```php -{{ printEntityCollectionAsList(phpClassEntityCollection) }} +{{ printEntityCollectionAsList(phpEntities) }} The function will list all documented PHP classes ``` @@ -168,7 +167,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ Throws: @@ -216,5 +215,3 @@ public static function getOptions(): array;
        - - \ No newline at end of file diff --git a/docs/tech/classes/ProgressBarFactory.md b/docs/tech/classes/ProgressBarFactory.md deleted file mode 100644 index 40b8c933..00000000 --- a/docs/tech/classes/ProgressBarFactory.md +++ /dev/null @@ -1,108 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ProgressBarFactory
        - -

        - ProgressBarFactory class: -

        - - - - - -```php -namespace BumbleDocGen\Console\ProgressBar; - -final class ProgressBarFactory -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - createStylizedProgressBar -
        2. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\Symfony\Component\Console\Style\OutputStyle $io); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $io\Symfony\Component\Console\Style\OutputStyle-
        - - - -
        -
        -
        - - - -```php -public function createStylizedProgressBar(): \BumbleDocGen\Console\ProgressBar\StylizedProgressBar; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Console\ProgressBar\StylizedProgressBar - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/ProjectParser.md b/docs/tech/classes/ProjectParser.md deleted file mode 100644 index d4ec5ed0..00000000 --- a/docs/tech/classes/ProjectParser.md +++ /dev/null @@ -1,126 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ProjectParser
        - -

        - ProjectParser class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Parser; - -final class ProjectParser -``` - -
        Entity for project parsing using source locators
        - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - parse -
        2. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $configuration\BumbleDocGen\Core\Configuration\Configuration-
        $rootEntityCollectionsGroup\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup-
        - - - -
        -
        -
        - - - -```php -public function parse(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup - - -Throws: - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/Provider.md b/docs/tech/classes/Provider.md deleted file mode 100644 index 140ee025..00000000 --- a/docs/tech/classes/Provider.md +++ /dev/null @@ -1,287 +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. - formatDataPrompt -
        2. -
        3. - getAvailableModels -
        4. -
        5. - getName -
        6. -
        7. - getSystemPrompt -
        8. -
        9. - sendPrompts -
        10. -
        - - -

        Constants:

        - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(string $bearerToken, string|null $model); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $bearerTokenstring-
        $modelstring | null-
        - - - -
        -
        -
        - - - -```php -public function formatDataPrompt(string $title, string $content): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $titlestring-
        $contentstring-
        - -Return value: string - - -
        -
        -
        - - - -```php -public function getAvailableModels(): array; -``` - - - -Parameters: not specified - -Return value: array - - -Throws: - - -
        -
        -
        - - - -```php -public function getName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - - -```php -public function getSystemPrompt(string $fileName): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $fileNamestring-
        - -Return value: string - - -
        -
        -
        - - - -```php -public function sendPrompts(array $prompts, string $system): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $promptsarray-
        $systemstring-
        - -Return value: string - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/ProviderFactory.md b/docs/tech/classes/ProviderFactory.md deleted file mode 100644 index 7e4b91dc..00000000 --- a/docs/tech/classes/ProviderFactory.md +++ /dev/null @@ -1,98 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ProviderFactory
        - -

        - ProviderFactory class: -

        - - - - - -```php -namespace BumbleDocGen\AI; - -final class ProviderFactory -``` - - - - - - - - - -

        Methods:

        - -
          -
        1. - create -
        2. -
        - - -

        Constants:

        - - - - - - -

        Method details:

        - -
        - - - -```php -public static function create(string $provider, string $apiKey, string|null $model = null): \BumbleDocGen\AI\ProviderInterface; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $providerstring-
        $apiKeystring-
        $modelstring | null-
        - -Return value: \BumbleDocGen\AI\ProviderInterface - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/Quotemeta.md b/docs/tech/classes/Quotemeta.md index 7c0fd891..34599b99 100644 --- a/docs/tech/classes/Quotemeta.md +++ b/docs/tech/classes/Quotemeta.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / Quotemeta
        + BumbleDocGen / Technical description of the project / Configuration / Quotemeta

        Quotemeta class: @@ -145,5 +144,3 @@ public static function getOptions(): array;
        - - \ No newline at end of file diff --git a/docs/tech/classes/ReadmeTemplateGenerator.md b/docs/tech/classes/ReadmeTemplateGenerator.md deleted file mode 100644 index c151085b..00000000 --- a/docs/tech/classes/ReadmeTemplateGenerator.md +++ /dev/null @@ -1,156 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ReadmeTemplateGenerator
        - -

        - ReadmeTemplateGenerator class: -

        - - - - - -```php -namespace BumbleDocGen\AI\Generators; - -final class ReadmeTemplateGenerator -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - generateReadmeFileContent -
        2. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\AI\ProviderInterface $aiProvider); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $aiProvider\BumbleDocGen\AI\ProviderInterface-
        - - - -
        -
        -
        - - - -```php -public function generateReadmeFileContent(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, array $entryPoints = [], string|null $composerJsonFile = null, string|null $additionalPrompt = null): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $rootEntityCollection\BumbleDocGen\Core\Parser\Entity\RootEntityCollection-
        $entryPointsarray-
        $composerJsonFilestring | null-
        $additionalPromptstring | null-
        - -Return value: string - - -Throws: - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/RefValueResolver.md b/docs/tech/classes/RefValueResolver.md deleted file mode 100644 index 532619f8..00000000 --- a/docs/tech/classes/RefValueResolver.md +++ /dev/null @@ -1,98 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / RefValueResolver
        - -

        - RefValueResolver class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Configuration\ValueResolver; - -final class RefValueResolver implements \BumbleDocGen\Core\Configuration\ValueResolver\ValueResolverInterface -``` - -
        We supplement the values by replacing the shortcodes with real values by the configuration key
        - - -Examples of using: - -```php -# Configuration processing example -project_root: "test" -output_dir: "%project_root%/docs" - -# After the value processing procedure, output_dir => "test/docs" - -``` - - - - - - - -

        Methods:

        - -
          -
        1. - resolveValue -
        2. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function resolveValue(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, mixed $value): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
        $valuemixed-
        - -Return value: mixed - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/ReflectionException.md b/docs/tech/classes/ReflectionException.md deleted file mode 100644 index 23ed1b09..00000000 --- a/docs/tech/classes/ReflectionException.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ReflectionException
        - -

        - ReflectionException class: -

        - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception; - -final class ReflectionException extends \Exception implements \Throwable, \Stringable -``` - -
        Exception is the base class for -all Exceptions.
        - -See: - - - - - - - -

        Initialization methods:

        - -
          -
        1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
        2. -
        - -

        Methods:

        - -
          -
        1. - __toString - - String representation of the exception
        2. -
        3. - __wakeup -
        4. -
        5. - getCode - - Gets the Exception code
        6. -
        7. - getFile - - Gets the file in which the exception occurred
        8. -
        9. - getLine - - Gets the line in which the exception occurred
        10. -
        11. - getMessage - - Gets the Exception message
        12. -
        13. - getPrevious - - Returns previous Exception
        14. -
        15. - getTrace - - Gets the stack trace
        16. -
        17. - getTraceAsString - - Gets the stack trace as a string
        18. -
        - - - - - - - -

        Method details:

        - -
        - -
          -
        • # - __construct -
        • -
        - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
        Construct the exception. Note: The message is NOT binary safe.
        - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $messagestring[optional] The Exception message to throw.
        $codeint[optional] The Exception code.
        $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
        - - - - -See: - -
        -
        -
        - -
          -
        • # - __toString -
        • -
        - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
        String representation of the exception
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - __wakeup -
        • -
        - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
        -
        -
        - -
          -
        • # - getCode -
        • -
        - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
        Gets the Exception code
        - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
        -
        -
        - -
          -
        • # - getFile -
        • -
        - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
        Gets the file in which the exception occurred
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - getLine -
        • -
        - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
        Gets the line in which the exception occurred
        - -Parameters: not specified - -Return value: int - - - -See: - -
        -
        -
        - -
          -
        • # - getMessage -
        • -
        - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
        Gets the Exception message
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - getPrevious -
        • -
        - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
        Returns previous Exception
        - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
        -
        -
        - -
          -
        • # - getTrace -
        • -
        - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
        Gets the stack trace
        - -Parameters: not specified - -Return value: array - - - -See: - -
        -
        -
        - -
          -
        • # - getTraceAsString -
        • -
        - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
        Gets the stack trace as a string
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/ReflectionException_2.md b/docs/tech/classes/ReflectionException_2.md deleted file mode 100644 index 2c6379e1..00000000 --- a/docs/tech/classes/ReflectionException_2.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / ReflectionException
        - -

        - ReflectionException class: -

        - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception; - -final class ReflectionException extends \Exception implements \Throwable, \Stringable -``` - -
        Exception is the base class for -all Exceptions.
        - -See: - - - - - - - -

        Initialization methods:

        - -
          -
        1. - __construct - - Construct the exception. Note: The message is NOT binary safe.
        2. -
        - -

        Methods:

        - -
          -
        1. - __toString - - String representation of the exception
        2. -
        3. - __wakeup -
        4. -
        5. - getCode - - Gets the Exception code
        6. -
        7. - getFile - - Gets the file in which the exception occurred
        8. -
        9. - getLine - - Gets the line in which the exception occurred
        10. -
        11. - getMessage - - Gets the Exception message
        12. -
        13. - getPrevious - - Returns previous Exception
        14. -
        15. - getTrace - - Gets the stack trace
        16. -
        17. - getTraceAsString - - Gets the stack trace as a string
        18. -
        - - - - - - - -

        Method details:

        - -
        - -
          -
        • # - __construct -
        • -
        - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
        Construct the exception. Note: The message is NOT binary safe.
        - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $messagestring[optional] The Exception message to throw.
        $codeint[optional] The Exception code.
        $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
        - - - - -See: - -
        -
        -
        - -
          -
        • # - __toString -
        • -
        - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
        String representation of the exception
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - __wakeup -
        • -
        - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
        -
        -
        - -
          -
        • # - getCode -
        • -
        - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
        Gets the Exception code
        - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
        -
        -
        - -
          -
        • # - getFile -
        • -
        - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
        Gets the file in which the exception occurred
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - getLine -
        • -
        - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
        Gets the line in which the exception occurred
        - -Parameters: not specified - -Return value: int - - - -See: - -
        -
        -
        - -
          -
        • # - getMessage -
        • -
        - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
        Gets the Exception message
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        -
        - -
          -
        • # - getPrevious -
        • -
        - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
        Returns previous Exception
        - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
        -
        -
        - -
          -
        • # - getTrace -
        • -
        - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
        Gets the stack trace
        - -Parameters: not specified - -Return value: array - - - -See: - -
        -
        -
        - -
          -
        • # - getTraceAsString -
        • -
        - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
        Gets the stack trace as a string
        - -Parameters: not specified - -Return value: string - - - -See: - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/ReflectorWrapper.md b/docs/tech/classes/ReflectorWrapper.md deleted file mode 100644 index 2050c50d..00000000 --- a/docs/tech/classes/ReflectorWrapper.md +++ /dev/null @@ -1,377 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ReflectorWrapper
        - -

        - ReflectorWrapper class: -

        - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection; - -final class ReflectorWrapper implements \Roave\BetterReflection\Reflector\Reflector -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - reflectAllClasses -
        2. -
        3. - reflectAllConstants -
        4. -
        5. - reflectAllFunctions -
        6. -
        7. - reflectClass -
        8. -
        9. - reflectConstant -
        10. -
        11. - reflectFunction -
        12. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \Roave\BetterReflection\BetterReflection $betterReflection, \BumbleDocGen\Core\Cache\SourceLocatorCacheItemPool $sourceLocatorCache); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $configuration\BumbleDocGen\Core\Configuration\Configuration-
        $phpHandlerSettings\BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings-
        $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
        $betterReflection\Roave\BetterReflection\BetterReflection-
        $sourceLocatorCache\BumbleDocGen\Core\Cache\SourceLocatorCacheItemPool-
        - - - -
        -
        -
        - - - -```php -public function reflectAllClasses(): iterable; -``` - - - -Parameters: not specified - -Return value: iterable - - -Throws: - - -
        -
        -
        - - - -```php -public function reflectAllConstants(): iterable; -``` - - - -Parameters: not specified - -Return value: iterable - - -Throws: - - -
        -
        -
        - - - -```php -public function reflectAllFunctions(): iterable; -``` - - - -Parameters: not specified - -Return value: iterable - - -Throws: - - -
        -
        -
        - - - -```php -public function reflectClass(string $identifierName): \Roave\BetterReflection\Reflection\ReflectionClass; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $identifierNamestring-
        - -Return value: \Roave\BetterReflection\Reflection\ReflectionClass - - -Throws: - - -
        -
        -
        - - - -```php -public function reflectConstant(string $identifierName): \Roave\BetterReflection\Reflection\ReflectionConstant; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $identifierNamestring-
        - -Return value: \Roave\BetterReflection\Reflection\ReflectionConstant - - -Throws: - - -
        -
        -
        - - - -```php -public function reflectFunction(string $identifierName): \Roave\BetterReflection\Reflection\ReflectionFunction; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $identifierNamestring-
        - -Return value: \Roave\BetterReflection\Reflection\ReflectionFunction - - -Throws: - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/RemoveLineBrakes.md b/docs/tech/classes/RemoveLineBrakes.md index 99ff30fc..d7191502 100644 --- a/docs/tech/classes/RemoveLineBrakes.md +++ b/docs/tech/classes/RemoveLineBrakes.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / RemoveLineBrakes
        + BumbleDocGen / Technical description of the project / Configuration / RemoveLineBrakes

        RemoveLineBrakes class: @@ -139,5 +138,3 @@ public static function getOptions(): array;
        - - \ No newline at end of file diff --git a/docs/tech/classes/Renderer.md b/docs/tech/classes/Renderer.md deleted file mode 100644 index 463791c8..00000000 --- a/docs/tech/classes/Renderer.md +++ /dev/null @@ -1,181 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / Renderer
        - -

        - Renderer class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Renderer; - -final class Renderer -``` - -
        Generates and processes files from directory TemplatesDir saving them to directory OutputDir
        - -See: - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - run - - Starting the rendering process
        2. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\Core\Renderer\Context\RendererContext $rendererContext, \BumbleDocGen\Core\Renderer\Twig\MainTwigEnvironment $twig, \BumbleDocGen\Core\Renderer\RendererIteratorFactory $renderIteratorFactory, \BumbleDocGen\Core\Cache\SharedCompressedDocumentFileCache $sharedCompressedDocumentFileCache, \Symfony\Component\Filesystem\Filesystem $fs, \Psr\Log\LoggerInterface $logger); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $configuration\BumbleDocGen\Core\Configuration\Configuration-
        $rootEntityCollectionsGroup\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup-
        $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
        $rendererContext\BumbleDocGen\Core\Renderer\Context\RendererContext-
        $twig\BumbleDocGen\Core\Renderer\Twig\MainTwigEnvironment-
        $renderIteratorFactory\BumbleDocGen\Core\Renderer\RendererIteratorFactory-
        $sharedCompressedDocumentFileCache\BumbleDocGen\Core\Cache\SharedCompressedDocumentFileCache-
        $fs\Symfony\Component\Filesystem\Filesystem-
        $logger\Psr\Log\LoggerInterface-
        - - - -
        -
        -
        - - - -```php -public function run(): void; -``` - -
        Starting the rendering process
        - -Parameters: not specified - -Return value: void - - -Throws: - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/RendererContext.md b/docs/tech/classes/RendererContext.md index 98fc97cb..b0f4450e 100644 --- a/docs/tech/classes/RendererContext.md +++ b/docs/tech/classes/RendererContext.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / RendererContext
        + BumbleDocGen / Technical description of the project / RendererContext

        RendererContext class: @@ -125,14 +124,14 @@ public function clearDependencies(): void; ```php -public function getCurrentDocumentedEntityWrapper(): \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper|null; +public function getCurrentDocumentedEntityWrapper(): null|\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper; ``` Parameters: not specified -Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper | null +Return value: null | \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper @@ -255,5 +254,3 @@ public function setCurrentTemplateFilePatch(string $currentTemplateFilePath): vo
        - - \ No newline at end of file diff --git a/docs/tech/classes/RendererContextCacheKeyGenerator.md b/docs/tech/classes/RendererContextCacheKeyGenerator.md deleted file mode 100644 index c53040c5..00000000 --- a/docs/tech/classes/RendererContextCacheKeyGenerator.md +++ /dev/null @@ -1,91 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / RendererContextCacheKeyGenerator
        - -

        - RendererContextCacheKeyGenerator class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\Cache\CacheKey; - -final class RendererContextCacheKeyGenerator implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheKey\CacheKeyGeneratorInterface -``` - - - - - - - - - -

        Methods:

        - -
          -
        1. - generateKey -
        2. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public static function generateKey(string $cacheNamespace, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface $entity, array $args): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $cacheNamespacestring-
        $entity\BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface-
        $argsarray-
        - -Return value: string - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/RendererDependencyFactory.md b/docs/tech/classes/RendererDependencyFactory.md deleted file mode 100644 index 5f9a2866..00000000 --- a/docs/tech/classes/RendererDependencyFactory.md +++ /dev/null @@ -1,190 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / RendererDependencyFactory
        - -

        - RendererDependencyFactory class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Context\Dependency; - -final class RendererDependencyFactory -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - createDirectoryDependency -
        2. -
        3. - createFileDependency -
        4. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $rendererHelper\BumbleDocGen\Core\Renderer\RendererHelper-
        - - - -
        -
        -
        - - - -```php -public function createDirectoryDependency(string $dirPath): \BumbleDocGen\Core\Renderer\Context\Dependency\DirectoryDependency; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $dirPathstring-
        - -Return value: \BumbleDocGen\Core\Renderer\Context\Dependency\DirectoryDependency - - -Throws: - - -
        -
        -
        - - - -```php -public function createFileDependency(string $filePath, string|null $contentFilterRegex = null, int|null $matchIndex = null): \BumbleDocGen\Core\Renderer\Context\Dependency\FileDependency; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $filePathstring-
        $contentFilterRegexstring | null-
        $matchIndexint | null-
        - -Return value: \BumbleDocGen\Core\Renderer\Context\Dependency\FileDependency - - -Throws: - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/RendererDependencyInterface.md b/docs/tech/classes/RendererDependencyInterface.md deleted file mode 100644 index 4a83c70c..00000000 --- a/docs/tech/classes/RendererDependencyInterface.md +++ /dev/null @@ -1,81 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / RendererDependencyInterface
        - -

        - RendererDependencyInterface class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Renderer\Context\Dependency; - -interface RendererDependencyInterface -``` - - - - - - - - - -

        Methods:

        - -
          -
        1. - isChanged -
        2. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function isChanged(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $rendererHelper\BumbleDocGen\Core\Renderer\RendererHelper-
        - -Return value: bool - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/RendererHelper.md b/docs/tech/classes/RendererHelper.md deleted file mode 100644 index 6b734c00..00000000 --- a/docs/tech/classes/RendererHelper.md +++ /dev/null @@ -1,232 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / RendererHelper
        - -

        - RendererHelper class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Renderer; - -final class RendererHelper -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - fileInternalLinkToFilePath -
        2. -
        3. - filePathToFileInternalLink -
        4. -
        5. - getPreloadResourceLink -
        6. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\Core\Configuration\Configuration $configuration); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
        $configuration\BumbleDocGen\Core\Configuration\Configuration-
        - - - -
        -
        -
        - - - -```php -public function fileInternalLinkToFilePath(string $fileInternalLink): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $fileInternalLinkstring-
        - -Return value: string - - -Throws: - - -
        -
        -
        - - - -```php -public function filePathToFileInternalLink(string $fileName): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $fileNamestring-
        - -Return value: string - - -Throws: - - -
        -
        -
        - - - -```php -public function getPreloadResourceLink(string $resourceName): string|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $resourceNamestring-
        - -Return value: string | null - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/RendererIteratorFactory.md b/docs/tech/classes/RendererIteratorFactory.md deleted file mode 100644 index e6896e06..00000000 --- a/docs/tech/classes/RendererIteratorFactory.md +++ /dev/null @@ -1,242 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / RendererIteratorFactory
        - -

        - RendererIteratorFactory class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Renderer; - -final class RendererIteratorFactory -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - getDocumentedEntityWrappersWithOutdatedCache -
        2. -
        3. - getFilesToRemove -
        4. -
        5. - getTemplatesWithOutdatedCache -
        6. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $rendererContext, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrappersCollection $documentedEntityWrappersCollection, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Configuration\ConfigurationParameterBag $configurationParameterBag, \BumbleDocGen\Core\Cache\SharedCompressedDocumentFileCache $sharedCompressedDocumentFileCache, \BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper, \BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyFactory $dependencyFactory, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Console\ProgressBar\ProgressBarFactory $progressBarFactory, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \Symfony\Component\Console\Style\OutputStyle $io, \Monolog\Logger $logger, \BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler $generationErrorsHandler); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $rendererContext\BumbleDocGen\Core\Renderer\Context\RendererContext-
        $rootEntityCollectionsGroup\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup-
        $documentedEntityWrappersCollection\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrappersCollection-
        $configuration\BumbleDocGen\Core\Configuration\Configuration-
        $configurationParameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
        $sharedCompressedDocumentFileCache\BumbleDocGen\Core\Cache\SharedCompressedDocumentFileCache-
        $rendererHelper\BumbleDocGen\Core\Renderer\RendererHelper-
        $dependencyFactory\BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyFactory-
        $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
        $progressBarFactory\BumbleDocGen\Console\ProgressBar\ProgressBarFactory-
        $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
        $io\Symfony\Component\Console\Style\OutputStyle-
        $logger\Monolog\Logger-
        $generationErrorsHandler\BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler-
        - - - -
        -
        -
        - -
          -
        • # - getDocumentedEntityWrappersWithOutdatedCache - | source code
        • -
        - -```php -public function getDocumentedEntityWrappersWithOutdatedCache(): \Generator; -``` - - - -Parameters: not specified - -Return value: \Generator - - -Throws: - - -
        -
        -
        - - - -```php -public function getFilesToRemove(): \Generator; -``` - - - -Parameters: not specified - -Return value: \Generator - - -Throws: - - -
        -
        -
        - - - -```php -public function getTemplatesWithOutdatedCache(): \Generator; -``` - - - -Parameters: not specified - -Return value: \Generator - - -Throws: - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/RootEntityCollection.md b/docs/tech/classes/RootEntityCollection.md deleted file mode 100644 index afa60373..00000000 --- a/docs/tech/classes/RootEntityCollection.md +++ /dev/null @@ -1,437 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / RootEntityCollection
        - -

        - RootEntityCollection class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity; - -abstract class RootEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

        Methods:

        - -
          -
        1. - findEntity -
        2. -
        3. - get -
        4. -
        5. - getEntityCollectionName -
        6. -
        7. - getEntityLinkData -
        8. -
        9. - getIterator - - Retrieve an external iterator
        10. -
        11. - getLoadedOrCreateNew -
        12. -
        13. - has -
        14. -
        15. - isEmpty -
        16. -
        17. - remove -
        18. -
        19. - updateEntitiesCache -
        20. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $searchstring-
        $useUnsafeKeysbool-
        - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null - - -
        -
        -
        - - - -```php -public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $objectNamestring-
        - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null - - -
        -
        -
        - - - -```php -public function getEntityCollectionName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - - -```php -public function getEntityLinkData(string $rawLink, string|null $defaultEntityName = null, bool $useUnsafeKeys = true): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $rawLinkstringRaw link to an entity or entity element
        $defaultEntityNamestring | nullEntity name to use if the link does not contain a valid or existing entity name, - but only a cursor on an entity element
        $useUnsafeKeysbool-
        - -Return value: array - - -
        -
        -
        - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function getIterator(): \Generator; -``` - -
        Retrieve an external iterator
        - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
        -
        -
        - - - -```php -public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $objectNamestring-
        $withAddClassEntityToCollectionEventbool-
        - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface - - - -See: - -
        -
        -
        - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function has(string $objectName): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $objectNamestring-
        - -Return value: bool - - -
        -
        -
        - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function isEmpty(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
        -
        -
        - - - -```php -// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection - -public function remove(string $objectName): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $objectNamestring-
        - -Return value: void - - -
        -
        -
        - - - -```php -public function updateEntitiesCache(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/ServeCommand.md b/docs/tech/classes/ServeCommand.md new file mode 100644 index 00000000..690c7964 --- /dev/null +++ b/docs/tech/classes/ServeCommand.md @@ -0,0 +1,79 @@ + BumbleDocGen / Technical description of the project / Console app / ServeCommand
        + +

        + ServeCommand class: +

        + + + + + +```php +namespace BumbleDocGen\Console\Command; + +final class ServeCommand extends \BumbleDocGen\Console\Command\BaseCommand +``` + + + + + + + + +

        Initialization methods:

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

        Method details:

        + +
        + + + +```php +// Implemented in BumbleDocGen\Console\Command\BaseCommand + +public function __construct(string $name = null); +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
        NameTypeDescription
        $namestring-
        + + + +
        +
        diff --git a/docs/tech/classes/SharedCommandLogicTrait.md b/docs/tech/classes/SharedCommandLogicTrait.md deleted file mode 100644 index de7e9de7..00000000 --- a/docs/tech/classes/SharedCommandLogicTrait.md +++ /dev/null @@ -1,34 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / SharedCommandLogicTrait
        - -

        - SharedCommandLogicTrait class: -

        - - - - - -```php -namespace BumbleDocGen\AI\Traits; - -trait SharedCommandLogicTrait -``` - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/tech/classes/SharedCompressedDocumentFileCache.md b/docs/tech/classes/SharedCompressedDocumentFileCache.md deleted file mode 100644 index e5a8aa08..00000000 --- a/docs/tech/classes/SharedCompressedDocumentFileCache.md +++ /dev/null @@ -1,262 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / SharedCompressedDocumentFileCache
        - -

        - SharedCompressedDocumentFileCache class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Cache; - -final class SharedCompressedDocumentFileCache -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - get -
        2. -
        3. - getCacheFileName -
        4. -
        5. - removeNotUsedKeys -
        6. -
        7. - saveChanges -
        8. -
        9. - set -
        10. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $configuration\BumbleDocGen\Core\Configuration\Configuration-
        - - - -Throws: - - -
        -
        -
        - - - -```php -public function get(string $key, mixed $defaultValue = null): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $keystring-
        $defaultValuemixed-
        - -Return value: mixed - - -
        -
        -
        - - - -```php -public function getCacheFileName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - - -```php -public function removeNotUsedKeys(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
        -
        -
        - - - -```php -public function saveChanges(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: - - -
        -
        -
        - - - -```php -public function set(string $key, mixed $data): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $keystring-
        $datamixed-
        - -Return value: void - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/SingleEntitySearchOperation.md b/docs/tech/classes/SingleEntitySearchOperation.md deleted file mode 100644 index 0b785460..00000000 --- a/docs/tech/classes/SingleEntitySearchOperation.md +++ /dev/null @@ -1,303 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / SingleEntitySearchOperation
        - -

        - SingleEntitySearchOperation class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Parser\Entity\CollectionLogOperation; - -final class SingleEntitySearchOperation implements \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationInterface -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - call -
        2. -
        3. - getArgs -
        4. -
        5. - getArgsHash -
        6. -
        7. - getEntityName -
        8. -
        9. - getFunctionName -
        10. -
        11. - getKey -
        12. -
        13. - getRequestedEntityName -
        14. -
        15. - incrementUsageCount -
        16. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(string $functionName, array $args, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null $entity); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $functionNamestring-
        $argsarray-
        $entity\BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null-
        - - - -
        -
        -
        - - - -```php -public function call(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $rootEntityCollection\BumbleDocGen\Core\Parser\Entity\RootEntityCollection-
        - -Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface | null - - -
        -
        -
        - - - -```php -public function getArgs(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
        -
        -
        - - - -```php -public function getArgsHash(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - - -```php -public function getEntityName(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - -
        -
        -
        - - - -```php -public function getFunctionName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - - -```php -public function getKey(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - - -```php -public function getRequestedEntityName(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
        -
        -
        - - - -```php -public function incrementUsageCount(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/SourceLocatorCacheItemPool.md b/docs/tech/classes/SourceLocatorCacheItemPool.md deleted file mode 100644 index 702f80cb..00000000 --- a/docs/tech/classes/SourceLocatorCacheItemPool.md +++ /dev/null @@ -1,461 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / SourceLocatorCacheItemPool
        - -

        - SourceLocatorCacheItemPool class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Cache; - -final class SourceLocatorCacheItemPool implements \Psr\Cache\CacheItemPoolInterface -``` - - - - - - - - -

        Initialization methods:

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

        Methods:

        - -
          -
        1. - clear - - Deletes all items in the pool.
        2. -
        3. - commit - - Persists any deferred cache items.
        4. -
        5. - deleteItem - - Removes the item from the pool.
        6. -
        7. - deleteItems - - Removes multiple items from the pool.
        8. -
        9. - getItem - - Returns a Cache Item representing the specified key.
        10. -
        11. - getItems - - Returns a traversable set of cache items.
        12. -
        13. - hasItem - - Confirms if the cache contains specified cache item.
        14. -
        15. - save - - Persists a cache item immediately.
        16. -
        17. - saveDeferred - - Sets a cache item to be persisted later.
        18. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $configuration\BumbleDocGen\Core\Configuration\Configuration-
        - - - -Throws: - - -
        -
        -
        - - - -```php -public function clear(): bool; -``` - -
        Deletes all items in the pool.
        - -Parameters: not specified - -Return value: bool - - -
        -
        -
        - - - -```php -public function commit(): bool; -``` - -
        Persists any deferred cache items.
        - -Parameters: not specified - -Return value: bool - - -
        -
        -
        - - - -```php -public function deleteItem(string $key): bool; -``` - -
        Removes the item from the pool.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $keystringThe key to delete.
        - -Return value: bool - - -Throws: - - -
        -
        -
        - - - -```php -public function deleteItems(array $keys): bool; -``` - -
        Removes multiple items from the pool.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $keysstring[]An array of keys that should be removed from the pool.
        - -Return value: bool - - -Throws: - - -
        -
        -
        - - - -```php -public function getItem(string $key): \Psr\Cache\CacheItemInterface; -``` - -
        Returns a Cache Item representing the specified key.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $keystringThe key for which to return the corresponding Cache Item.
        - -Return value: \Psr\Cache\CacheItemInterface - - -Throws: - - -
        -
        -
        - - - -```php -public function getItems(array $keys = []): iterable; -``` - -
        Returns a traversable set of cache items.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $keysstring[]An indexed array of keys of items to retrieve.
        - -Return value: iterable - - -Throws: - - -
        -
        -
        - - - -```php -public function hasItem(string $key): bool; -``` - -
        Confirms if the cache contains specified cache item.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $keystringThe key for which to check existence.
        - -Return value: bool - - -Throws: - - -
        -
        -
        - - - -```php -public function save(\Psr\Cache\CacheItemInterface $item): bool; -``` - -
        Persists a cache item immediately.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $item\Psr\Cache\CacheItemInterfaceThe cache item to save.
        - -Return value: bool - - -
        -
        -
        - - - -```php -public function saveDeferred(\Psr\Cache\CacheItemInterface $item): bool; -``` - -
        Sets a cache item to be persisted later.
        - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $item\Psr\Cache\CacheItemInterfaceThe cache item to save.
        - -Return value: bool - - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/SourceLocatorsCollection.md b/docs/tech/classes/SourceLocatorsCollection.md deleted file mode 100644 index 7583eaf1..00000000 --- a/docs/tech/classes/SourceLocatorsCollection.md +++ /dev/null @@ -1,183 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / SourceLocatorsCollection
        - -

        - SourceLocatorsCollection class: -

        - - - - - -```php -namespace BumbleDocGen\Core\Parser\SourceLocator; - -final class SourceLocatorsCollection implements \IteratorAggregate, \Traversable -``` - - - - - - - - - -

        Methods:

        - -
          -
        1. - add -
        2. -
        3. - create -
        4. -
        5. - getCommonFinder -
        6. -
        7. - getIterator - - Retrieve an external iterator
        8. -
        - - - - - - - -

        Method details:

        - -
        - - - -```php -public function add(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface $sourceLocator): \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $sourceLocator\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface-
        - -Return value: \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection - - -
        -
        -
        - - - -```php -public static function create(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface ...$sourceLocators): \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
        NameTypeDescription
        $sourceLocators (variadic)\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface-
        - -Return value: \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection - - -
        -
        -
        - - - -```php -public function getCommonFinder(): \Symfony\Component\Finder\Finder; -``` - - - -Parameters: not specified - -Return value: \Symfony\Component\Finder\Finder - - -
        -
        -
        - - - -```php -public function getIterator(): \Generator; -``` - -
        Retrieve an external iterator
        - -Parameters: not specified - -Return value: \Generator - - -Throws: - - - -See: - -
        -
        - - \ No newline at end of file diff --git a/docs/tech/classes/StrTypeToUrl.md b/docs/tech/classes/StrTypeToUrl.md index 83d9592e..d4f1dc39 100644 --- a/docs/tech/classes/StrTypeToUrl.md +++ b/docs/tech/classes/StrTypeToUrl.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / StrTypeToUrl
        + BumbleDocGen / Technical description of the project / Configuration / StrTypeToUrl

        StrTypeToUrl class: @@ -214,5 +213,3 @@ public static function getOptions(): array;
        - - \ No newline at end of file diff --git a/docs/tech/classes/StubberPlugin.md b/docs/tech/classes/StubberPlugin.md index 115ce876..17e5683d 100644 --- a/docs/tech/classes/StubberPlugin.md +++ b/docs/tech/classes/StubberPlugin.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / StubberPlugin
        + BumbleDocGen / Technical description of the project / Plugin system / StubberPlugin

        StubberPlugin class: @@ -35,9 +34,9 @@ final class StubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInterface,
        1. getSubscribedEvents - - Returns an array of event names this subscriber wants to listen to.
        2. +
        3. - onCheckIsClassEntityCanBeLoad + onCheckIsEntityCanBeLoaded
        4. onGettingResourceLink @@ -57,11 +56,11 @@ final class StubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInterface, ```php -public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser $composerParser); +public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper $composerHelper); ``` @@ -78,8 +77,8 @@ public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\ComposerPar - $composerParser - \BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser + $composerHelper + \BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper - @@ -94,14 +93,14 @@ public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\ComposerPar ```php public static function getSubscribedEvents(): array; ``` -
          Returns an array of event names this subscriber wants to listen to.
          + Parameters: not specified @@ -113,13 +112,13 @@ public static function getSubscribedEvents(): array;
          ```php -public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad $event): void; +public function onCheckIsEntityCanBeLoaded(\BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded $event): void; ``` @@ -137,7 +136,7 @@ public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\ $event - \BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad + \BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded - @@ -160,7 +159,7 @@ public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\ ```php @@ -200,5 +199,3 @@ public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\O

          - - \ No newline at end of file diff --git a/docs/tech/classes/StylizedProgressBar.md b/docs/tech/classes/StylizedProgressBar.md deleted file mode 100644 index f5c9ccba..00000000 --- a/docs/tech/classes/StylizedProgressBar.md +++ /dev/null @@ -1,359 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / StylizedProgressBar
          - -

          - StylizedProgressBar class: -

          - - - - - -```php -namespace BumbleDocGen\Console\ProgressBar; - -final class StylizedProgressBar -``` - - - - - - - - -

          Initialization methods:

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

          Methods:

          - -
            -
          1. - advance -
          2. -
          3. - finish -
          4. -
          5. - iterate -
          6. -
          7. - setMaxSteps -
          8. -
          9. - setName -
          10. -
          11. - setStepDescription -
          12. -
          13. - start -
          14. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(\Symfony\Component\Console\Style\OutputStyle $io); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $io\Symfony\Component\Console\Style\OutputStyle-
          - - - -
          -
          -
          - - - -```php -public function advance(int $step): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $stepint-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function finish(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
          -
          -
          - - - -```php -public function iterate(iterable $iterable, int|null $max = null): \Generator; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $iterableiterable-
          $maxint | null-
          - -Return value: \Generator - - -
          -
          -
          - - - -```php -public function setMaxSteps(int $maxSteps): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $maxStepsint-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function setName(string $name): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $namestring-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function setStepDescription(string $stepDescription): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $stepDescriptionstring-
          - -Return value: void - - -
          -
          -
          - - - -```php -public function start(int|null $max = null): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $maxint | null-
          - -Return value: void - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/SystemAsyncSourceLocator.md b/docs/tech/classes/SystemAsyncSourceLocator.md deleted file mode 100644 index c7417701..00000000 --- a/docs/tech/classes/SystemAsyncSourceLocator.md +++ /dev/null @@ -1,282 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / SystemAsyncSourceLocator
          - -

          - SystemAsyncSourceLocator class: -

          - - - - -:warning: Is internal -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\Internal; - -final class SystemAsyncSourceLocator extends \Roave\BetterReflection\SourceLocator\Type\AbstractSourceLocator -``` - - - - - - - - -

          Initialization methods:

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

          Methods:

          - -
            -
          1. - getClassLoader -
          2. -
          3. - getLocatedSource -
          4. -
          5. - locateIdentifier - - Locate some source code.
          6. -
          7. - locateIdentifiersByType - - Find all identifiers of a type
          8. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(\Roave\BetterReflection\SourceLocator\Ast\Locator $astLocator, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, array $psr4FileMap, array $classMap); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $astLocator\Roave\BetterReflection\SourceLocator\Ast\Locator-
          $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
          $psr4FileMaparray-
          $classMaparray-
          - - - -
          -
          -
          - - - -```php -public function getClassLoader(array $psr4FileMap, array $classMap): \Composer\Autoload\ClassLoader; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $psr4FileMaparray-
          $classMaparray-
          - -Return value: \Composer\Autoload\ClassLoader - - -
          -
          -
          - - - -```php -public function getLocatedSource(string $className): \Roave\BetterReflection\SourceLocator\Located\LocatedSource|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $classNamestring-
          - -Return value: \Roave\BetterReflection\SourceLocator\Located\LocatedSource | null - - -
          -
          -
          - - - -```php -// Implemented in Roave\BetterReflection\SourceLocator\Type\AbstractSourceLocator - -public function locateIdentifier(\Roave\BetterReflection\Reflector\Reflector $reflector, \Roave\BetterReflection\Identifier\Identifier $identifier): \Roave\BetterReflection\Reflection\Reflection|null; -``` - -
          Locate some source code.
          - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $reflector\Roave\BetterReflection\Reflector\Reflector-
          $identifier\Roave\BetterReflection\Identifier\Identifier-
          - -Return value: \Roave\BetterReflection\Reflection\Reflection | null - - -
          -
          -
          - - - -```php -// Implemented in Roave\BetterReflection\SourceLocator\Type\AbstractSourceLocator - -public function locateIdentifiersByType(\Roave\BetterReflection\Reflector\Reflector $reflector, \Roave\BetterReflection\Identifier\IdentifierType $identifierType): array; -``` - -
          Find all identifiers of a type
          - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $reflector\Roave\BetterReflection\Reflector\Reflector-
          $identifierType\Roave\BetterReflection\Identifier\IdentifierType-
          - -Return value: array - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/TemplateFile.md b/docs/tech/classes/TemplateFile.md deleted file mode 100644 index 7e6b0fe3..00000000 --- a/docs/tech/classes/TemplateFile.md +++ /dev/null @@ -1,359 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / TemplateFile
          - -

          - TemplateFile class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Renderer; - -final class TemplateFile -``` - - - - - - - - -

          Initialization methods:

          - -
            -
          1. - __construct -
          2. -
          3. - create -
          4. -
          - -

          Methods:

          - -
            -
          1. - getRealPath -
          2. -
          3. - getRelativeDocPath -
          4. -
          5. - getRelativeDocPathByTemplatePath -
          6. -
          7. - getRelativeTemplatePath -
          8. -
          9. - getTemplatePathByRelativeDocPath -
          10. -
          11. - isTemplate -
          12. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(string $realPath, string $relativeDocPath); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $realPathstring-
          $relativeDocPathstring-
          - - - -
          -
          -
          - - - -```php -public static function create(\Symfony\Component\Finder\SplFileInfo $fileInfo, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher): self; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $fileInfo\Symfony\Component\Finder\SplFileInfo-
          $configuration\BumbleDocGen\Core\Configuration\Configuration-
          $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
          - -Return value: self - - -Throws: - - -
          -
          -
          - - - -```php -public function getRealPath(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
          -
          -
          - - - -```php -public function getRelativeDocPath(): string; -``` - - - -Parameters: not specified - -Return value: string - - -
          -
          -
          - - - -```php -public static function getRelativeDocPathByTemplatePath(string $templatePath, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $templatePathstring-
          $configuration\BumbleDocGen\Core\Configuration\Configuration-
          $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
          - -Return value: string - - -Throws: - - -
          -
          -
          - - - -```php -public function getRelativeTemplatePath(): string|null; -``` - - - -Parameters: not specified - -Return value: string | null - - -
          -
          -
          - - - -```php -public static function getTemplatePathByRelativeDocPath(string $relativeDocPath, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher): string; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $relativeDocPathstring-
          $configuration\BumbleDocGen\Core\Configuration\Configuration-
          $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
          - -Return value: string - - -Throws: - - -
          -
          -
          - - - -```php -public function isTemplate(): bool; -``` - - - -Parameters: not specified - -Return value: bool - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/TextToCodeBlock.md b/docs/tech/classes/TextToCodeBlock.md index 6eb6b88b..195e471b 100644 --- a/docs/tech/classes/TextToCodeBlock.md +++ b/docs/tech/classes/TextToCodeBlock.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / TextToCodeBlock
          + BumbleDocGen / Technical description of the project / Configuration / TextToCodeBlock

          TextToCodeBlock class: @@ -144,5 +143,3 @@ public static function getOptions(): array;
          - - \ No newline at end of file diff --git a/docs/tech/classes/TextToHeading.md b/docs/tech/classes/TextToHeading.md index c4503270..285a8efc 100644 --- a/docs/tech/classes/TextToHeading.md +++ b/docs/tech/classes/TextToHeading.md @@ -1,5 +1,4 @@ - - BumbleDocGen / Technical description of the project / Class map / TextToHeading
          + BumbleDocGen / Technical description of the project / Configuration / TextToHeading

          TextToHeading class: @@ -144,5 +143,3 @@ public static function getOptions(): array;
          - - \ No newline at end of file diff --git a/docs/tech/classes/ValueResolverInterface.md b/docs/tech/classes/ValueResolverInterface.md deleted file mode 100644 index a76cafb4..00000000 --- a/docs/tech/classes/ValueResolverInterface.md +++ /dev/null @@ -1,86 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ValueResolverInterface
          - -

          - ValueResolverInterface class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Configuration\ValueResolver; - -interface ValueResolverInterface -``` - -
          Class interface to resolve value from config file
          - - - - - - - -

          Methods:

          - -
            -
          1. - resolveValue -
          2. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function resolveValue(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, mixed $value): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
          $valuemixed-
          - -Return value: mixed - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/ValueToClassTransformer.md b/docs/tech/classes/ValueToClassTransformer.md deleted file mode 100644 index 2b1b2fce..00000000 --- a/docs/tech/classes/ValueToClassTransformer.md +++ /dev/null @@ -1,204 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ValueToClassTransformer
          - -

          - ValueToClassTransformer class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Configuration\ValueTransformer; - -final class ValueToClassTransformer implements \BumbleDocGen\Core\Configuration\ValueTransformer\ValueTransformerInterface -``` - -
          Standard text-to-class transformer
          - - -Examples of using: - -```php -# The list of class names will be converted to an array of objects -someKey: - - class: \Namespace\ClassName - - class: \Namespace\ClassName2 - -``` - -```php -# One class in configuration will be converted to one object -someKey: - class: \Namespace\ClassName - -``` - -```php -# One class in configuration will be converted to one object. The constructor takes arguments to be passed (not via DI) -someKey: - class: \Namespace\ClassName - arguments: - - arg1: value1 - - arg2: value2 - -``` - - - - - - -

          Initialization methods:

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

          Methods:

          - -
            -
          1. - canTransform -
          2. -
          3. - transform -
          4. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function __construct(\DI\Container $diContainer); -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $diContainer\DI\Container-
          - - - -
          -
          -
          - - - -```php -public function canTransform(mixed $value): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $valuemixed-
          - -Return value: bool - - -
          -
          -
          - - - -```php -public function transform(mixed $value): object|null; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $valuemixed-
          - -Return value: object | null - - -Throws: - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/ValueTransformerInterface.md b/docs/tech/classes/ValueTransformerInterface.md deleted file mode 100644 index 4c6575d8..00000000 --- a/docs/tech/classes/ValueTransformerInterface.md +++ /dev/null @@ -1,122 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / ValueTransformerInterface
          - -

          - ValueTransformerInterface class: -

          - - - - - -```php -namespace BumbleDocGen\Core\Configuration\ValueTransformer; - -interface ValueTransformerInterface -``` - -
          Interface defining classes that transform text configuration values into objects
          - - - - - - - -

          Methods:

          - -
            -
          1. - canTransform -
          2. -
          3. - transform -
          4. -
          - - - - - - - -

          Method details:

          - -
          - - - -```php -public function canTransform(mixed $value): bool; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $valuemixed-
          - -Return value: bool - - -
          -
          -
          - - - -```php -public function transform(mixed $value): mixed; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
          NameTypeDescription
          $valuemixed-
          - -Return value: mixed - - -
          -
          - - \ No newline at end of file diff --git a/docs/tech/classes/VisibilityConditionModifier.md b/docs/tech/classes/VisibilityConditionModifier.md deleted file mode 100644 index 7d959cab..00000000 --- a/docs/tech/classes/VisibilityConditionModifier.md +++ /dev/null @@ -1,53 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / VisibilityConditionModifier
          - -

          - VisibilityConditionModifier class: -

          - - - - - -```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassFilterCondition; - -final class VisibilityConditionModifier -``` - - - - - - - - - - - -

          Constants:

          - - - - - - - - \ No newline at end of file diff --git a/docs/tech/map.md b/docs/tech/map.md deleted file mode 100644 index aadba6fa..00000000 --- a/docs/tech/map.md +++ /dev/null @@ -1,262 +0,0 @@ - BumbleDocGen / Technical description of the project / Class map
          - -Directory layout ( only documented files shown ): - -
          └──src/
          -│  ├──AI/
          -│  │  ├──Console/
          -│  │  │  ├── AddDocBlocksCommand.php Base class for all commands.
          -│  │  │  └── GenerateReadMeTemplateCommand.php Base class for all commands.
          -│  │  ├──Generators/
          -│  │  │  ├── DocBlocksGenerator.php 
          -│  │  │  └── ReadmeTemplateGenerator.php 
          -│  │  ├──Providers/
          -│  │  │  └──OpenAI/
          -│  │  │  │  └── Provider.php 
          -│  │  ├──Traits/
          -│  │  │  └── SharedCommandLogicTrait.php 
          -│  │  ├── ProviderFactory.php 
          -│  │  └── ProviderInterface.php 
          -│  ├──Console/
          -│  │  ├──Command/
          -│  │  │  ├── AdditionalCommandCollection.php 
          -│  │  │  ├── BaseCommand.php Base class for all commands.
          -│  │  │  ├── ConfigurationCommand.php Base class for all commands.
          -│  │  │  └── GenerateCommand.php Base class for all commands.
          -│  │  ├──ProgressBar/
          -│  │  │  ├── ProgressBarFactory.php 
          -│  │  │  └── StylizedProgressBar.php 
          -│  │  └── App.php An Application is the container for a collection of commands.
          -│  ├──Core/
          -│  │  ├──Cache/
          -│  │  │  ├──LocalCache/
          -│  │  │  │  ├──Exception/
          -│  │  │  │  │  └── ObjectNotFoundException.php Exception is the base class for all Exceptions.
          -│  │  │  │  └── LocalObjectCache.php 
          -│  │  │  ├── EntityCacheItemPool.php 
          -│  │  │  ├── SharedCompressedDocumentFileCache.php 
          -│  │  │  └── SourceLocatorCacheItemPool.php 
          -│  │  ├──Configuration/
          -│  │  │  ├──Exception/
          -│  │  │  │  └── InvalidConfigurationParameterException.php Exception is the base class for all Exceptions.
          -│  │  │  ├──ValueResolver/
          -│  │  │  │  ├── ArgvValueResolver.php We supplement the values by replacing the shortcodes with real values by the arguments passed to ...
          -│  │  │  │  ├── InternalValueResolver.php We supplement the values by replacing the shortcodes with real values by internalValuesMap
          -│  │  │  │  ├── RefValueResolver.php We supplement the values by replacing the shortcodes with real values by the configuration key
          -│  │  │  │  └── ValueResolverInterface.php Class interface to resolve value from config file
          -│  │  │  ├──ValueTransformer/
          -│  │  │  │  ├── ValueToClassTransformer.php Standard text-to-class transformer
          -│  │  │  │  └── ValueTransformerInterface.php Interface defining classes that transform text configuration values into objects
          -│  │  │  ├── Configuration.php Configuration project documentation
          -│  │  │  ├── ConfigurationKey.php 
          -│  │  │  └── ConfigurationParameterBag.php Wrapper for getting raw configuration file data
          -│  │  ├──Logger/
          -│  │  │  └──Handler/
          -│  │  │  │  └── GenerationErrorsHandler.php Base Handler class providing the Handler structure, including processors and formatters
          -│  │  ├──Parser/
          -│  │  │  ├──Entity/
          -│  │  │  │  ├──Cache/
          -│  │  │  │  │  ├──CacheKey/
          -│  │  │  │  │  │  ├── CacheKeyGeneratorInterface.php 
          -│  │  │  │  │  │  ├── DefaultCacheKeyGenerator.php 
          -│  │  │  │  │  │  └── RendererContextCacheKeyGenerator.php 
          -│  │  │  │  │  ├── CacheableEntityInterface.php 
          -│  │  │  │  │  ├── CacheableEntityTrait.php 
          -│  │  │  │  │  ├── CacheableEntityWrapperFactory.php 
          -│  │  │  │  │  ├── CacheableEntityWrapperTrait.php 
          -│  │  │  │  │  ├── CacheableMethod.php 
          -│  │  │  │  │  └── EntityCacheStorageHelper.php 
          -│  │  │  │  ├──CollectionLogOperation/
          -│  │  │  │  │  ├── CloneOperation.php 
          -│  │  │  │  │  ├── IterateEntitiesOperation.php 
          -│  │  │  │  │  ├── OperationInterface.php 
          -│  │  │  │  │  ├── OperationsCollection.php 
          -│  │  │  │  │  └── SingleEntitySearchOperation.php 
          -│  │  │  │  ├── BaseEntityCollection.php 
          -│  │  │  │  ├── EntityInterface.php 
          -│  │  │  │  ├── LoggableRootEntityCollection.php 
          -│  │  │  │  ├── RootEntityCollection.php 
          -│  │  │  │  ├── RootEntityCollectionsGroup.php 
          -│  │  │  │  └── RootEntityInterface.php Since the documentation generator supports several programming languages, their entities need to ...
          -│  │  │  ├──FilterCondition/
          -│  │  │  │  ├──CommonFilterCondition/
          -│  │  │  │  │  ├── FalseCondition.php False conditions, any object is not available
          -│  │  │  │  │  ├── FileTextContainsCondition.php Checking if a file contains a substring
          -│  │  │  │  │  ├── LocatedInCondition.php Checking the existence of an entity in the specified directories
          -│  │  │  │  │  ├── LocatedNotInCondition.php Checking the existence of an entity not in the specified directories
          -│  │  │  │  │  └── TrueCondition.php True conditions, any object is available
          -│  │  │  │  ├── ConditionGroup.php Filter condition to group other filter conditions. A group can have an OR/AND condition test; In ...
          -│  │  │  │  ├── ConditionGroupTypeEnum.php 
          -│  │  │  │  └── ConditionInterface.php 
          -│  │  │  ├──SourceLocator/
          -│  │  │  │  ├── BaseSourceLocator.php 
          -│  │  │  │  ├── DirectoriesSourceLocator.php Loads all files from the specified directory
          -│  │  │  │  ├── FileIteratorSourceLocator.php Loads all files using an iterator
          -│  │  │  │  ├── RecursiveDirectoriesSourceLocator.php Loads all files from the specified directories, which are traversed recursively
          -│  │  │  │  ├── SingleFileSourceLocator.php Loads one specific file by its path
          -│  │  │  │  ├── SourceLocatorInterface.php 
          -│  │  │  │  └── SourceLocatorsCollection.php 
          -│  │  │  └── ProjectParser.php Entity for project parsing using source locators
          -│  │  ├──Plugin/
          -│  │  │  ├──CorePlugin/
          -│  │  │  │  ├──LastPageCommitter/
          -│  │  │  │  │  └── LastPageCommitter.php Plugin for adding a block with information about the last commit and date of page update to the g...
          -│  │  │  │  └──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/
          -│  │  │  │  │  └── OnLoadSourceLocatorsCollection.php Called when source locators are loaded
          -│  │  │  │  └──Renderer/
          -│  │  │  │  │  ├── AfterRenderingEntities.php Event is the base class for classes containing event data.
          -│  │  │  │  │  ├── BeforeCreatingDocFile.php Called before the content of the documentation document is saved to a file
          -│  │  │  │  │  ├── BeforeRenderingDocFiles.php The event occurs before the main documents begin rendering
          -│  │  │  │  │  ├── BeforeRenderingEntities.php The event occurs before the rendering of entity documents begins, after the main documents have b...
          -│  │  │  │  │  ├── OnCreateDocumentedEntityWrapper.php The event occurs when an entity is added to the list for documentation
          -│  │  │  │  │  ├── OnGetProjectTemplatesDirs.php This event occurs when all directories containing document templates are retrieved
          -│  │  │  │  │  ├── OnGetTemplatePathByRelativeDocPath.php The event occurs when the path to the template file is obtained relative to the path to the document
          -│  │  │  │  │  ├── OnGettingResourceLink.php Event occurs when a reference to an entity (resource) is received
          -│  │  │  │  │  └── OnLoadEntityDocPluginContent.php Called when entity documentation is generated (plugin content loading)
          -│  │  │  ├── OnlySingleExecutionEvent.php 
          -│  │  │  ├── PluginEventDispatcher.php The EventDispatcherInterface is the central point of Symfony's event listener system.
          -│  │  │  ├── PluginInterface.php 
          -│  │  │  └── PluginsCollection.php 
          -│  │  └──Renderer/
          -│  │  │  ├──Breadcrumbs/
          -│  │  │  │  ├── BreadcrumbsHelper.php Helper entity for working with breadcrumbs
          -│  │  │  │  └── BreadcrumbsTwigEnvironment.php 
          -│  │  │  ├──Context/
          -│  │  │  │  ├──Dependency/
          -│  │  │  │  │  ├── DirectoryDependency.php 
          -│  │  │  │  │  ├── FileDependency.php 
          -│  │  │  │  │  ├── RendererDependencyFactory.php 
          -│  │  │  │  │  └── RendererDependencyInterface.php 
          -│  │  │  │  ├── DocumentTransformableEntityInterface.php Interface for entities that can be generated into documents
          -│  │  │  │  ├── DocumentedEntityWrapper.php Wrapper for the entity that was requested for documentation
          -│  │  │  │  ├── DocumentedEntityWrappersCollection.php 
          -│  │  │  │  └── RendererContext.php Document rendering context
          -│  │  │  ├──EntityDocRenderer/
          -│  │  │  │  ├── EntityDocRendererInterface.php Entity documentation renderer interface
          -│  │  │  │  └── EntityDocRenderersCollection.php 
          -│  │  │  ├──PageLinkProcessor/
          -│  │  │  │  ├── BasePageLinkProcessor.php 
          -│  │  │  │  ├── GithubPagesLinkProcessor.php 
          -│  │  │  │  └── PageLinkProcessorInterface.php 
          -│  │  │  ├──Twig/
          -│  │  │  │  ├──Filter/
          -│  │  │  │  │  ├── AddIndentFromLeft.php Filter adds indent from left
          -│  │  │  │  │  ├── CustomFilterInterface.php 
          -│  │  │  │  │  ├── CustomFiltersCollection.php 
          -│  │  │  │  │  ├── FixStrSize.php The filter pads the string with the specified characters on the right to the specified size
          -│  │  │  │  │  ├── PregMatch.php Perform a regular expression match
          -│  │  │  │  │  ├── PrepareSourceLink.php The filter converts the string into an anchor that can be used in a GitHub document link
          -│  │  │  │  │  ├── Quotemeta.php Quote meta characters
          -│  │  │  │  │  ├── RemoveLineBrakes.php The filter replaces all line breaks with a space
          -│  │  │  │  │  ├── StrTypeToUrl.php The filter converts the string with the data type into a link to the documented entity, if possible.
          -│  │  │  │  │  ├── TextToCodeBlock.php Convert text to code block
          -│  │  │  │  │  └── TextToHeading.php Convert text to html header
          -│  │  │  │  ├──Function/
          -│  │  │  │  │  ├── CustomFunctionInterface.php 
          -│  │  │  │  │  ├── CustomFunctionsCollection.php 
          -│  │  │  │  │  ├── DrawDocumentationMenu.php Generate documentation menu in HTML format. To generate the menu, the start page is taken, and al...
          -│  │  │  │  │  ├── DrawDocumentedEntityLink.php Creates an entity link by object
          -│  │  │  │  │  ├── FileGetContents.php Displaying the content of a file or web resource
          -│  │  │  │  │  ├── GeneratePageBreadcrumbs.php Function to generate breadcrumbs on the page
          -│  │  │  │  │  ├── GetDocumentationPageUrl.php Creates an entity link by object
          -│  │  │  │  │  ├── GetDocumentedEntityUrl.php Get the URL of a documented entity by its name. If the entity is found, next to the file where th...
          -│  │  │  │  │  ├── LoadPluginsContent.php Process entity template blocks with plugins. The method returns the content processed by plugins.
          -│  │  │  │  │  └── PrintEntityCollectionAsList.php Outputting entity data as HTML list
          -│  │  │  │  ├── MainExtension.php This is an extension that is used to generate documents from templates
          -│  │  │  │  └── MainTwigEnvironment.php 
          -│  │  │  ├── Renderer.php Generates and processes files from directory TemplatesDir saving them to directory OutputDir
          -│  │  │  ├── RendererHelper.php 
          -│  │  │  ├── RendererIteratorFactory.php 
          -│  │  │  └── TemplateFile.php 
          -│  ├──LanguageHandler/
          -│  │  ├──Php/
          -│  │  │  ├──Parser/
          -│  │  │  │  ├──Entity/
          -│  │  │  │  │  ├──Cache/
          -│  │  │  │  │  │  └── CacheablePhpEntityFactory.php 
          -│  │  │  │  │  ├──Exception/
          -│  │  │  │  │  │  └── ReflectionException.php Exception is the base class for all Exceptions.
          -│  │  │  │  │  ├──Reflection/
          -│  │  │  │  │  │  └── ReflectorWrapper.php 
          -│  │  │  │  │  ├── BaseEntity.php 
          -│  │  │  │  │  ├── ClassEntity.php Class entity
          -│  │  │  │  │  ├── ClassEntityCollection.php Collection of PHP class entities
          -│  │  │  │  │  ├── ConstantEntity.php Class constant entity
          -│  │  │  │  │  ├── ConstantEntityCollection.php 
          -│  │  │  │  │  ├── DynamicMethodEntity.php Method obtained by parsing the "method" annotation
          -│  │  │  │  │  ├── MethodEntity.php Class method entity
          -│  │  │  │  │  ├── MethodEntityCollection.php 
          -│  │  │  │  │  ├── MethodEntityInterface.php 
          -│  │  │  │  │  ├── PropertyEntity.php Class property entity
          -│  │  │  │  │  └── PropertyEntityCollection.php 
          -│  │  │  │  ├──FilterCondition/
          -│  │  │  │  │  ├──ClassConstantFilterCondition/
          -│  │  │  │  │  │  ├── IsPrivateCondition.php Check is a private constant or not
          -│  │  │  │  │  │  ├── IsProtectedCondition.php Check is a protected constant or not
          -│  │  │  │  │  │  ├── IsPublicCondition.php Check is a public constant or not
          -│  │  │  │  │  │  └── VisibilityCondition.php Constant access modifier check
          -│  │  │  │  │  ├──ClassFilterCondition/
          -│  │  │  │  │  │  └── VisibilityConditionModifier.php 
          -│  │  │  │  │  ├──MethodFilterCondition/
          -│  │  │  │  │  │  ├── IsPrivateCondition.php Check is a private method or not
          -│  │  │  │  │  │  ├── IsProtectedCondition.php Check is a protected method or not
          -│  │  │  │  │  │  ├── IsPublicCondition.php Check is a public method or not
          -│  │  │  │  │  │  ├── OnlyFromCurrentClassCondition.php Only methods that belong to the current class (not parent)
          -│  │  │  │  │  │  └── VisibilityCondition.php Method access modifier check
          -│  │  │  │  │  └──PropertyFilterCondition/
          -│  │  │  │  │  │  ├── IsPrivateCondition.php Check is a private property or not
          -│  │  │  │  │  │  ├── IsProtectedCondition.php Check is a protected property or not
          -│  │  │  │  │  │  ├── IsPublicCondition.php Check is a public property or not
          -│  │  │  │  │  │  ├── OnlyFromCurrentClassCondition.php Only properties that belong to the current class (not parent)
          -│  │  │  │  │  │  └── VisibilityCondition.php Property access modifier check
          -│  │  │  │  ├──SourceLocator/
          -│  │  │  │  │  ├──Internal/
          -│  │  │  │  │  │  ├── CachedSourceLocator.php 
          -│  │  │  │  │  │  └── SystemAsyncSourceLocator.php 
          -│  │  │  │  │  ├── AsyncSourceLocator.php Lazy loading classes. Cannot be used for initial parsing of files, only for getting specific docu...
          -│  │  │  │  │  └── CustomSourceLocatorInterface.php 
          -│  │  │  │  ├── ComposerParser.php 
          -│  │  │  │  └── ParserHelper.php 
          -│  │  │  ├──Plugin/
          -│  │  │  │  ├──CorePlugin/
          -│  │  │  │  │  ├──BasePhpStubber/
          -│  │  │  │  │  │  ├── BasePhpStubberPlugin.php Adding links to type documentation and documentation of built-in PHP classes
          -│  │  │  │  │  │  ├── PhpDocumentorStubberPlugin.php Adding links to the documentation of PHP classes in the \phpDocumentor namespace
          -│  │  │  │  │  │  └── PhpUnitStubberPlugin.php Adding links to the documentation of PHP classes in the \PHPUnit namespace
          -│  │  │  │  │  ├──ComposerPackagesStubber/
          -│  │  │  │  │  │  └── StubberPlugin.php The plugin allows you to automatically provide links to github repositories for documented classe...
          -│  │  │  │  │  └──EntityDocUnifiedPlace/
          -│  │  │  │  │  │  └── EntityDocUnifiedPlacePlugin.php This plugin changes the algorithm for saving entity documents. The standard system stores each fi...
          -│  │  │  │  └──Event/
          -│  │  │  │  │  ├──Entity/
          -│  │  │  │  │  │  └── OnCheckIsClassEntityCanBeLoad.php Event is the base class for classes containing event data.
          -│  │  │  │  │  └──Parser/
          -│  │  │  │  │  │  ├── AfterLoadingClassEntityCollection.php The event is called after the initial creation of a collection of class entities
          -│  │  │  │  │  │  └── OnAddClassEntityToCollection.php Called when each class entity is added to the entity collection
          -│  │  │  ├──Renderer/
          -│  │  │  │  ├──EntityDocRenderer/
          -│  │  │  │  │  ├──PhpClassToMd/
          -│  │  │  │  │  │  ├── PhpClassRendererTwigEnvironment.php 
          -│  │  │  │  │  │  └── PhpClassToMdDocRenderer.php Rendering PHP classes into md format documents (for display on GitHub)
          -│  │  │  │  │  └── EntityDocRendererHelper.php 
          -│  │  │  │  └──Twig/
          -│  │  │  │  │  └──Function/
          -│  │  │  │  │  │  ├── DrawClassMap.php Generate class map in HTML format
          -│  │  │  │  │  │  └── GetClassMethodsBodyCode.php Get the code of the specified class methods as a formatted string
          -│  │  │  ├── PhpHandler.php 
          -│  │  │  └── PhpHandlerSettings.php 
          -│  │  ├── LanguageHandlerInterface.php 
          -│  │  └── LanguageHandlersCollection.php 
          -│  ├── DocGenerator.php Class for generating documentation.
          -│  └── DocGeneratorFactory.php 
          -
          - -
          -
          -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 Nov 14 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 79334796..48729cc9 100644 --- a/docs/tech/readme.md +++ b/docs/tech/readme.md @@ -6,7 +6,7 @@ This documentation generator is a library that allows you to create handwritten

          Documentation sections

          - +

          How it works

          @@ -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: Mon Nov 06 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 Dec 23 23:00:37 2023 +0300
          Page content update date: Mon Jan 15 2024
          Made with Bumble Documentation Generator \ No newline at end of file diff --git a/selfdoc/Plugin/TwigFilterClassParser/TwigFilterClassParserPlugin.php b/selfdoc/Plugin/TwigFilterClassParser/TwigFilterClassParserPlugin.php index edb43e63..e3c2b723 100644 --- a/selfdoc/Plugin/TwigFilterClassParser/TwigFilterClassParserPlugin.php +++ b/selfdoc/Plugin/TwigFilterClassParser/TwigFilterClassParserPlugin.php @@ -10,10 +10,9 @@ use BumbleDocGen\Core\Plugin\PluginInterface; use BumbleDocGen\Core\Renderer\Context\RendererContext; use BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; -use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser\AfterLoadingClassEntityCollection; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser\AfterLoadingPhpEntitiesCollection; use BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\PhpClassToMd\PhpClassToMdDocRenderer; use DI\DependencyException; use DI\NotFoundException; @@ -36,13 +35,12 @@ public function __construct( public static function getSubscribedEvents(): array { return [ - AfterLoadingClassEntityCollection::class => 'afterLoadingClassEntityCollection', + AfterLoadingPhpEntitiesCollection::class => 'afterLoadingClassEntityCollection', OnLoadEntityDocPluginContent::class => 'onLoadEntityDocPluginContentEvent', ]; } /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ public function onLoadEntityDocPluginContentEvent(OnLoadEntityDocPluginContent $event): void @@ -54,7 +52,7 @@ public function onLoadEntityDocPluginContentEvent(OnLoadEntityDocPluginContent $ } $entity = $event->getEntity(); - if (!is_a($entity, ClassEntity::class) || !$this->isCustomTwigFilter($event->getEntity())) { + if (!is_a($entity, ClassLikeEntity::class) || !$this->isCustomTwigFilter($event->getEntity())) { return; } @@ -71,30 +69,31 @@ public function onLoadEntityDocPluginContentEvent(OnLoadEntityDocPluginContent $ /** * @throws NotFoundException - * @throws ReflectionException * @throws DependencyException * @throws InvalidConfigurationParameterException */ - public function afterLoadingClassEntityCollection(AfterLoadingClassEntityCollection $event): void + public function afterLoadingClassEntityCollection(AfterLoadingPhpEntitiesCollection $event): void { - foreach ($event->getClassEntityCollection() as $classEntity) { + foreach ($event->getPhpEntitiesCollection() as $classEntity) { if ($this->isCustomTwigFilter($classEntity)) { - $classEntity->loadPluginData( + $classEntity->addPluginData( self::PLUGIN_KEY, - $this->getFilterData($event->getClassEntityCollection(), $classEntity->getName()) ?? [] + $this->getFilterData($event->getPhpEntitiesCollection(), $classEntity->getName()) ?? [] ); } } } /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ - private function isCustomTwigFilter(ClassEntity $classEntity): bool + private function isCustomTwigFilter(ClassLikeEntity $classEntity): bool { foreach (self::TWIG_FILTER_DIR_NAMES as $dirName) { - if (str_starts_with($classEntity->getFileName(), $dirName) && $classEntity->implementsInterface(CustomFilterInterface::class)) { + if (!$classEntity->isEntityDataCanBeLoaded()) { + continue; + } + if (str_starts_with($classEntity->getRelativeFileName(), $dirName) && $classEntity->implementsInterface(CustomFilterInterface::class)) { return true; } } @@ -104,7 +103,6 @@ private function isCustomTwigFilter(ClassEntity $classEntity): bool /** * @throws NotFoundException * @throws DependencyException - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ private function getAllUsedFilters(): array @@ -125,11 +123,10 @@ private function getAllUsedFilters(): array /** * @throws DependencyException - * @throws ReflectionException * @throws NotFoundException * @throws InvalidConfigurationParameterException */ - private function getFilterData(ClassEntityCollection $classEntityCollection, string $className): ?array + private function getFilterData(PhpEntitiesCollection $entitiesCollection, string $className): ?array { static $filtersData = []; if (!array_key_exists($className, $filtersData)) { @@ -139,8 +136,8 @@ private function getFilterData(ClassEntityCollection $classEntityCollection, str } $functionData['name'] = $filters[$className]; - $entity = $classEntityCollection->getEntityByClassName($className); - $method = $entity->getMethodEntityCollection()->get('__invoke'); + $entity = $entitiesCollection->getLoadedOrCreateNew($className); + $method = $entity->getMethodEntitiesCollection()->get('__invoke'); $functionData['parameters'] = $method->getParameters(); $filtersData[$className] = $functionData; } diff --git a/selfdoc/Plugin/TwigFunctionClassParser/TwigFunctionClassParserPlugin.php b/selfdoc/Plugin/TwigFunctionClassParser/TwigFunctionClassParserPlugin.php index 0ae14e07..a49754cc 100644 --- a/selfdoc/Plugin/TwigFunctionClassParser/TwigFunctionClassParserPlugin.php +++ b/selfdoc/Plugin/TwigFunctionClassParser/TwigFunctionClassParserPlugin.php @@ -10,10 +10,9 @@ use BumbleDocGen\Core\Plugin\PluginInterface; use BumbleDocGen\Core\Renderer\Context\RendererContext; use BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; -use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser\AfterLoadingClassEntityCollection; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser\AfterLoadingPhpEntitiesCollection; use BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\PhpClassToMd\PhpClassToMdDocRenderer; use DI\DependencyException; use DI\NotFoundException; @@ -36,13 +35,12 @@ public function __construct( public static function getSubscribedEvents(): array { return [ - AfterLoadingClassEntityCollection::class => 'afterLoadingClassEntityCollection', + AfterLoadingPhpEntitiesCollection::class => 'afterLoadingClassEntityCollection', OnLoadEntityDocPluginContent::class => 'onLoadEntityDocPluginContentEvent', ]; } /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ public function onLoadEntityDocPluginContentEvent(OnLoadEntityDocPluginContent $event): void @@ -52,7 +50,7 @@ public function onLoadEntityDocPluginContentEvent(OnLoadEntityDocPluginContent $ } $entity = $event->getEntity(); - if (!is_a($entity, ClassEntity::class) || !$this->isCustomTwigFunction($event->getEntity())) { + if (!is_a($entity, ClassLikeEntity::class) || !$this->isCustomTwigFunction($event->getEntity())) { return; } @@ -70,29 +68,27 @@ public function onLoadEntityDocPluginContentEvent(OnLoadEntityDocPluginContent $ /** * @throws NotFoundException * @throws DependencyException - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ - public function afterLoadingClassEntityCollection(AfterLoadingClassEntityCollection $event): void + public function afterLoadingClassEntityCollection(AfterLoadingPhpEntitiesCollection $event): void { - foreach ($event->getClassEntityCollection() as $classEntity) { + foreach ($event->getPhpEntitiesCollection() as $classEntity) { if ($this->isCustomTwigFunction($classEntity) && $classEntity->isInstantiable()) { - $classEntity->loadPluginData( + $classEntity->addPluginData( self::PLUGIN_KEY, - $this->getFunctionData($event->getClassEntityCollection(), $classEntity->getName()) ?? [] + $this->getFunctionData($event->getPhpEntitiesCollection(), $classEntity->getName()) ?? [] ); } } } /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ - private function isCustomTwigFunction(ClassEntity $classEntity): bool + private function isCustomTwigFunction(ClassLikeEntity $classEntity): bool { foreach (self::TWIG_FUNCTION_DIR_NAMES as $dirName) { - if ($classEntity->implementsInterface(CustomFunctionInterface::class) && str_starts_with($classEntity->getFileName(), $dirName)) { + if ($classEntity->implementsInterface(CustomFunctionInterface::class) && str_starts_with($classEntity->getRelativeFileName(), $dirName)) { return true; } } @@ -102,7 +98,6 @@ private function isCustomTwigFunction(ClassEntity $classEntity): bool /** * @throws NotFoundException * @throws DependencyException - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ private function getAllUsedFunctions(): array @@ -122,12 +117,11 @@ private function getAllUsedFunctions(): array } /** - * @throws ReflectionException * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException */ - private function getFunctionData(ClassEntityCollection $classEntityCollection, string $className): ?array + private function getFunctionData(PhpEntitiesCollection $entitiesCollection, string $className): ?array { static $functionsData = []; if (!array_key_exists($className, $functionsData)) { @@ -135,13 +129,13 @@ private function getFunctionData(ClassEntityCollection $classEntityCollection, s if (!isset($functions[$className])) { return null; } - $entity = $classEntityCollection->getEntityByClassName($className); - if (str_starts_with($entity->getFileName(), '/selfdoc')) { + $entity = $entitiesCollection->getLoadedOrCreateNew($className); + if (str_starts_with($entity->getRelativeFileName(), '/selfdoc')) { return null; } $functionData['name'] = $functions[$className]; - $method = $entity->getMethodEntityCollection()->get('__invoke'); + $method = $entity->getMethodEntitiesCollection()->get('__invoke'); $functionData['parameters'] = $method->getParameters(); $functionsData[$className] = $functionData; } diff --git a/selfdoc/Twig/CustomFunction/FindEntitiesClassesByCollectionClassName.php b/selfdoc/Twig/CustomFunction/FindEntitiesClassesByCollectionClassName.php index 4d99893d..11edd934 100644 --- a/selfdoc/Twig/CustomFunction/FindEntitiesClassesByCollectionClassName.php +++ b/selfdoc/Twig/CustomFunction/FindEntitiesClassesByCollectionClassName.php @@ -7,9 +7,8 @@ use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; use BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; use DI\DependencyException; use DI\NotFoundException; @@ -20,33 +19,35 @@ public function __construct(private RootEntityCollectionsGroup $rootEntityCollec } /** - * @return ClassEntity[] - * @throws ReflectionException + * @return ClassLikeEntity[] * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException */ public function __invoke(string $collectionName): array { - $classEntityCollection = $this->rootEntityCollectionsGroup->get(ClassEntityCollection::NAME); + $entitiesCollection = $this->rootEntityCollectionsGroup->get(PhpEntitiesCollection::NAME); /** - * @var ClassEntity $findCollectionEntity + * @var ClassLikeEntity $findCollectionEntity */ - $findCollectionEntity = $classEntityCollection->findEntity($collectionName); - $addMethodEntity = $findCollectionEntity->getMethodEntity('add'); + $findCollectionEntity = $entitiesCollection->findEntity($collectionName); + $addMethodEntity = $findCollectionEntity->getMethod('add', true); + if (!$addMethodEntity) { + return []; + } $firstParam = $addMethodEntity->getParameters()[0]; /** - * @var ClassEntity $firstParamEntity + * @var ClassLikeEntity $firstParamEntity */ - $firstParamEntity = $classEntityCollection->findEntity($firstParam['type']); + $firstParamEntity = $entitiesCollection->findEntity($firstParam['type']); if ($firstParamEntity->isInterface()) { - return iterator_to_array($classEntityCollection->filterByInterfaces([$firstParamEntity->getName()])); + return iterator_to_array($entitiesCollection->filterByInterfaces([$firstParamEntity->getName()])); } elseif ($firstParamEntity->isInstantiable()) { return [$firstParamEntity]; } - return iterator_to_array($classEntityCollection->filterByParentClassNames([$firstParamEntity->getName()])); + return iterator_to_array($entitiesCollection->filterByParentClassNames([$firstParamEntity->getName()])); } public static function getName(): string diff --git a/selfdoc/Twig/CustomFunction/GetConsoleCommands.php b/selfdoc/Twig/CustomFunction/GetConsoleCommands.php new file mode 100644 index 00000000..11ea327d --- /dev/null +++ b/selfdoc/Twig/CustomFunction/GetConsoleCommands.php @@ -0,0 +1,51 @@ +all(); + + foreach ($commands as $command) { + $synopsis = $command->getSynopsis(); + $synopsis = htmlspecialchars($synopsis); + $commandParts = explode(' ', $synopsis); + $name = array_shift($commandParts); + if (str_starts_with($name, '_')) { + continue; + } + $synopsis = str_replace('] [', "]
          [", implode(' ', $commandParts)); + $synopsis = str_replace("
          [--]
          ", "
          ", $synopsis); + $result[] = [ + 'name' => $name, + 'class' => get_class($command), + 'description' => $command->getDescription(), + 'synopsis' => $synopsis + ]; + } + + return $result; + } + + public static function getOptions(): array + { + return [ + 'is_safe' => ['html'], + ]; + } +} diff --git a/selfdoc/Twig/CustomFunction/PrintClassCollectionAsGroupedTable.php b/selfdoc/Twig/CustomFunction/PrintClassCollectionAsGroupedTable.php index 1023f39e..165ee93c 100644 --- a/selfdoc/Twig/CustomFunction/PrintClassCollectionAsGroupedTable.php +++ b/selfdoc/Twig/CustomFunction/PrintClassCollectionAsGroupedTable.php @@ -7,8 +7,7 @@ use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface; use BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; use DI\DependencyException; use DI\NotFoundException; @@ -32,11 +31,10 @@ public static function getOptions(): array /** * @throws NotFoundException - * @throws ReflectionException * @throws DependencyException * @throws InvalidConfigurationParameterException */ - public function __invoke(ClassEntityCollection $rootEntityCollection): string + public function __invoke(PhpEntitiesCollection $rootEntityCollection): string { $groups = $this->groupEntities($rootEntityCollection); $getDocumentedEntityUrlFunction = $this->getDocumentedEntityUrlFunction; @@ -57,7 +55,7 @@ public function __invoke(ClassEntityCollection $rootEntityCollection): string return " {$table} "; } - private function groupEntities(ClassEntityCollection $rootEntityCollection): array + private function groupEntities(PhpEntitiesCollection $rootEntityCollection): array { $notUniquePart = null; foreach ($rootEntityCollection as $entity) { diff --git a/selfdoc/templates/README.md.twig b/selfdoc/templates/README.md.twig index f715be6f..99921573 100644 --- a/selfdoc/templates/README.md.twig +++ b/selfdoc/templates/README.md.twig @@ -1,4 +1,6 @@ -{% set title = 'BumbleDocGen' %} +--- +title: BumbleDocGen +--- {{ "BumbleDocGen: A Documentation Generator for PHP projects 🐝" | textToHeading('H1') }} BumbleDocGen is a robust library for generating and maintaining documentation next to the code of large and small PHP projects. @@ -18,7 +20,7 @@ Add the BumbleDocGen to the `composer.json` file of your project using the follo {{ "Core Features" | textToHeading('H2') }} - 🔍 [a x-title="Parsing"]Parser[/a]: - BumbleDocGen scans your project by parsing PHP files, extracting comments, and providing detailed models of your code. + BumbleDocGen analyzes your code and provides a convenient [a]Reflection API[/a]. - ✍️ [a x-title="Rendering"]Renderer[/a]: BumbleDocGen generates markdown content using templates and fills them with data obtained from parsing your code. @@ -34,16 +36,11 @@ BumbleDocGen's interface consists of mainly two classes: [a]DocGenerator[/a] and - [a]DocGenerator[/a] provides main operations for generating the documents. - - `addMissingDocBlocks()`: This method creates missing docBlocks in your code. - - `fillInReadmeMdTemplate()`: This method prepares the `README.md` file using a predefined template. - - `generate()`: This method produces all necessary documentation. - - `generateProjectTemplatesStructure()`: This method creates a structure for project templates. - - `parseAndGetRootEntityCollectionsGroup()`: This method parses your project's files and collects information for the documentation. +{{ displayClassApiMethods('\\BumbleDocGen\\DocGenerator') | addIndentFromLeft}} - [a]DocGeneratorFactory[/a] provides a method for creating `DocGenerator` instance. - - `create(configurationFiles: string)`: This method creates a `DocGenerator` instance using provided configuration files. - - `setCustomConfigurationParameters(customConfigurationParameters: array)`: This method sets custom configuration parameters for the `DocGenerator` creation. +{{ displayClassApiMethods('\\BumbleDocGen\\DocGeneratorFactory') | addIndentFromLeft }} {{ "Examples of usage" | textToHeading('H3') }} diff --git a/selfdoc/templates/assets/error_example.png b/selfdoc/templates/assets/error_example.png new file mode 100644 index 00000000..c070254f Binary files /dev/null and b/selfdoc/templates/assets/error_example.png differ diff --git a/selfdoc/templates/tech/1.configuration/readme.md.twig b/selfdoc/templates/tech/01_configuration.md.twig similarity index 89% rename from selfdoc/templates/tech/1.configuration/readme.md.twig rename to selfdoc/templates/tech/01_configuration.md.twig index 74618163..ff3ad1be 100644 --- a/selfdoc/templates/tech/1.configuration/readme.md.twig +++ b/selfdoc/templates/tech/01_configuration.md.twig @@ -1,4 +1,7 @@ -{% set title = 'Configuration files' %} +--- +title: Configuration +prevPage: Technical description of the project +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Configuration" | textToHeading('H1') }} @@ -25,6 +28,9 @@ $docGenerator = (new DocGeneratorFactory())->create('config.yaml'); // Multiple files $docGenerator = (new DocGeneratorFactory())->create('config.yaml', 'config2.yaml', 'config3.xml'); + +// Passing configuration as an array +$docGenerator = (new DocGeneratorFactory())->createByConfigArray($configArray); " | textToCodeBlock('php') }} {{ "Handling and inheritance of configuration files" | textToHeading('H2') }} @@ -37,7 +43,7 @@ The inheritance algorithm is as follows: scalar types can be overwritten by each {{ "Configuration parameters" | textToHeading('H2') }} -{% set parameters = getConfigParametersDescription(phpClassEntityCollection, '%WORKING_DIR%/src/Core/Configuration/defaultConfiguration.yaml') %} +{% set parameters = getConfigParametersDescription(phpEntities, '%WORKING_DIR%/src/Core/Configuration/defaultConfiguration.yaml') %} diff --git a/selfdoc/templates/tech/2.parser/entity.md.twig b/selfdoc/templates/tech/02_parser/entity.md.twig similarity index 67% rename from selfdoc/templates/tech/2.parser/entity.md.twig rename to selfdoc/templates/tech/02_parser/entity.md.twig index a992b09b..90d69ba7 100644 --- a/selfdoc/templates/tech/2.parser/entity.md.twig +++ b/selfdoc/templates/tech/02_parser/entity.md.twig @@ -1,5 +1,7 @@ -{% set title = 'Entities and entities collections' %} -{% set prevPage = 'Parser' %} +--- +title: Entities and entities collections +prevPage: Parser +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Entities and entities collections" | textToHeading('H1') }} @@ -13,26 +15,26 @@ Entities are always handled through collections. Collections are the result of t * Passing a collection to a function: -{{ "{{ printEntityCollectionAsList(phpClassEntityCollection) }}" | textToCodeBlock('twig') }} +{{ "{{ printEntityCollectionAsList(phpEntities) }}" | textToCodeBlock('twig') }} * Filtering a collection and passing it to a function: -{{ "{{ printEntityCollectionAsList(phpClassEntityCollection.filterByInterfaces(['BumbleDocGen\\Core\\Parser\\Entity\\EntityInterface'])) }}" | textToCodeBlock('twig') }} +{{ "{{ printEntityCollectionAsList(phpEntities.filterByInterfaces(['BumbleDocGen\\Core\\Parser\\Entity\\EntityInterface'])) }}" | textToCodeBlock('twig') }} * Saving a filtered collection to a variable: -{{ "{{ {% set filteredCollection = phpClassEntityCollection.getOnlyInstantiable() %} }}" | textToCodeBlock('twig') }} +{{ "{{ {% set filteredCollection = phpEntities.getOnlyInstantiable() %} }}" | textToCodeBlock('twig') }} * Using a collection in a for loop: -{{ "{% for someClassEntity in phpClassEntityCollection %} +{{ "{% for someClassEntity in phpEntities %} * {{ someClassEntity.getName() }} {% endfor %}" | textToCodeBlock('twig') }} * Output of all methods of all found entities in `className::methodName()` format: -{{ "{% for someClassEntity in phpClassEntityCollection %} - {% for methodEntity in someClassEntity.getMethodEntityCollection() %} +{{ "{% for someClassEntity in phpEntities %} + {% for methodEntity in someClassEntity.getMethodEntitiesCollection() %} * {{ someClassEntity.getName() }}::{{ methodEntity.getName() }}() {% endfor %} {% endfor %}" | textToCodeBlock('twig') }} @@ -50,16 +52,16 @@ The root collections ([a]RootEntityCollection[/a]), which are directly accessibl - {% for entityCollection in phpClassEntityCollection + {% for entitiesCollection in phpEntities .filterByParentClassNames(['BumbleDocGen\\Core\\Parser\\Entity\\RootEntityCollection']) .getOnlyInstantiable() %} - {% set match = entityCollection.getFileName() | preg_match('/(\\/LanguageHandler\\/)([\\s\\S]*?)(?=\\/)/i') %} + {% set match = entitiesCollection.getRelativeFileName() | preg_match('/(\\/LanguageHandler\\/)([\\s\\S]*?)(?=\\/)/i') %} - - + + - + {% endfor %}
          PL Description
          {{ drawDocumentedEntityLink(entityCollection) }}{{ entityCollection.getMethodEntity('getEntityCollectionName').getFirstReturnValue() }}{{ drawDocumentedEntityLink(entitiesCollection) }}{{ entitiesCollection.getMethod('getEntityCollectionName', true).getFirstReturnValue() }} {{ match[2] | upper }}{{ entityCollection.getDescription() }}{{ entitiesCollection.getDescription() }}
          @@ -77,16 +79,16 @@ These classes are a convenient wrapper for accessing data in templates: PL Description -{% for entityCollection in phpClassEntityCollection +{% for entitiesCollection in phpEntities .filterByParentClassNames(['BumbleDocGen\\Core\\Parser\\Entity\\BaseEntityCollection']) .getOnlyInstantiable() %} - {% set match = entityCollection.getFileName() | preg_match('/(\\/LanguageHandler\\/)([\\s\\S]*?)(?=\\/)/i') %} - {% set entitiesClasses = findEntitiesClassesByCollectionClassName(entityCollection.getName()) %} + {% set match = entitiesCollection.getRelativeFileName() | preg_match('/(\\/LanguageHandler\\/)([\\s\\S]*?)(?=\\/)/i') %} + {% set entitiesClasses = findEntitiesClassesByCollectionClassName(entitiesCollection.getName()) %} {% for entityClass in entitiesClasses %} {{ drawDocumentedEntityLink(entityClass) }} - {{ drawDocumentedEntityLink(entityCollection) }} + {{ drawDocumentedEntityLink(entitiesCollection) }} {% if entityClass.implementsInterface('BumbleDocGen\\Core\\Parser\\Entity\\RootEntityInterface') %}yes{% else %}no{% endif %} {{ match[2] | upper }} {{ entityClass.getDescription() }} diff --git a/selfdoc/templates/tech/2.parser/entityFilterCondition.md.twig b/selfdoc/templates/tech/02_parser/entityFilterCondition.md.twig similarity index 94% rename from selfdoc/templates/tech/2.parser/entityFilterCondition.md.twig rename to selfdoc/templates/tech/02_parser/entityFilterCondition.md.twig index 61ebe320..d10019a4 100644 --- a/selfdoc/templates/tech/2.parser/entityFilterCondition.md.twig +++ b/selfdoc/templates/tech/02_parser/entityFilterCondition.md.twig @@ -1,5 +1,7 @@ -{% set title = 'Entity filter conditions' %} -{% set prevPage = 'Parser' %} +--- +title: Entity filter conditions +prevPage: Parser +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Entity filter conditions" | textToHeading('H1') }} @@ -67,7 +69,7 @@ language_handlers: {{ "Available filters" | textToHeading('H2') }} -{% set filterConditions = phpClassEntityCollection.filterByInterfaces(['BumbleDocGen\\Core\\Parser\\FilterCondition\\ConditionInterface']).getOnlyInstantiable() %} +{% set filterConditions = phpEntities.filterByInterfaces(['BumbleDocGen\\Core\\Parser\\FilterCondition\\ConditionInterface']).getOnlyInstantiable() %} Common filtering conditions that are available for any entity: diff --git a/selfdoc/templates/tech/2.parser/readme.md.twig b/selfdoc/templates/tech/02_parser/readme.md.twig similarity index 92% rename from selfdoc/templates/tech/2.parser/readme.md.twig rename to selfdoc/templates/tech/02_parser/readme.md.twig index 76ee1214..eeb8d0c6 100644 --- a/selfdoc/templates/tech/2.parser/readme.md.twig +++ b/selfdoc/templates/tech/02_parser/readme.md.twig @@ -1,4 +1,6 @@ -{% set title = 'Parser' %} +--- +title: Parser +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Documentation parser" | textToHeading('H1') }} @@ -19,7 +21,8 @@ In this section, we show how the parser works and what components it consists of {{ "$parser = new ProjectParser($configuration, $rootEntityCollectionsGroup); // Parsing the project and filling RootEntityCollectionsGroup with data -$rootEntityCollectionsGroup = $this->parser->parse();" | textToCodeBlock('php') }} +$this->parser->parse(); +$rootEntityCollectionsGroup = $this->parser->getRootEntityCollectionsGroup();" | textToCodeBlock('php') }} {{ "How it works" | textToHeading('H2') }} diff --git a/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassConstantReflectionApi.md.twig b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassConstantReflectionApi.md.twig new file mode 100644 index 00000000..ac76af5f --- /dev/null +++ b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassConstantReflectionApi.md.twig @@ -0,0 +1,23 @@ +--- +title: PHP class constant reflection API +prevPage: Reflection API for PHP +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "PHP class constant reflection API" | textToHeading('H1') }} + +Class constant reflection entity class: [a]ClassConstantEntity[/a]. + +**Example of creating class constant reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); + +$constantReflection = $classReflection->getConstant('constantName'); +``` + +**Class constant reflection API methods:** + +{{ displayClassApiMethods('\\BumbleDocGen\\LanguageHandler\\Php\\Parser\\Entity\\SubEntity\\ClassConstant\\ClassConstantEntity') }} \ No newline at end of file diff --git a/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassMethodReflectionApi.md.twig b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassMethodReflectionApi.md.twig new file mode 100644 index 00000000..0a3c253b --- /dev/null +++ b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassMethodReflectionApi.md.twig @@ -0,0 +1,23 @@ +--- +title: PHP class method reflection API +prevPage: Reflection API for PHP +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "PHP class method reflection API" | textToHeading('H1') }} + +Method reflection entity class: [a]MethodEntity[/a]. + +**Example of creating class method reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); + +$methodReflection = $classReflection->getMethod('methodName'); +``` + +**Class method reflection API methods:** + +{{ displayClassApiMethods('\\BumbleDocGen\\LanguageHandler\\Php\\Parser\\Entity\\SubEntity\\Method\\MethodEntity') }} \ No newline at end of file diff --git a/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassPropertyReflectionApi.md.twig b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassPropertyReflectionApi.md.twig new file mode 100644 index 00000000..a82dbea3 --- /dev/null +++ b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassPropertyReflectionApi.md.twig @@ -0,0 +1,23 @@ +--- +title: PHP class property reflection API +prevPage: Reflection API for PHP +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "PHP class property reflection API" | textToHeading('H1') }} + +Property reflection entity class: [a]PropertyEntity[/a]. + +**Example of creating class property reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); + +$propertyReflection = $classReflection->getProperty('propertyName'); +``` + +**Class property reflection API methods:** + +{{ displayClassApiMethods('\\BumbleDocGen\\LanguageHandler\\Php\\Parser\\Entity\\SubEntity\\Property\\PropertyEntity') }} \ No newline at end of file diff --git a/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassReflectionApi.md.twig b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassReflectionApi.md.twig new file mode 100644 index 00000000..e57df6db --- /dev/null +++ b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpClassReflectionApi.md.twig @@ -0,0 +1,27 @@ +--- +title: PHP class reflection API +prevPage: Reflection API for PHP +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "PHP class reflection API" | textToHeading('H1') }} + +PHP class reflection [a]ClassEntity[/a] inherits from [a]ClassLikeEntity[/a]. + +**Source class formats:** + +1) `class ` +2) `abstract class ` +3) `final class ` + +**Example of creating class reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); // or get() +``` + +**Class reflection API methods:** + +{{ displayClassApiMethods('\\BumbleDocGen\\LanguageHandler\\Php\\Parser\\Entity\\ClassEntity') }} diff --git a/selfdoc/templates/tech/02_parser/reflectionApi/php/phpEntitiesCollection.md.twig b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpEntitiesCollection.md.twig new file mode 100644 index 00000000..05ee72f4 --- /dev/null +++ b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpEntitiesCollection.md.twig @@ -0,0 +1,11 @@ +--- +title: PHP entities collection +prevPage: Reflection API for PHP +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "PHP entities collection" | textToHeading('H1') }} + +**PHP entities collection API methods:** + +{{ displayClassApiMethods('\\BumbleDocGen\\LanguageHandler\\Php\\Parser\\Entity\\PhpEntitiesCollection') }} \ No newline at end of file diff --git a/selfdoc/templates/tech/02_parser/reflectionApi/php/phpEnumReflectionApi.md.twig b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpEnumReflectionApi.md.twig new file mode 100644 index 00000000..3a062d29 --- /dev/null +++ b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpEnumReflectionApi.md.twig @@ -0,0 +1,25 @@ +--- +title: PHP enum reflection API +prevPage: Reflection API for PHP +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "PHP enum reflection API" | textToHeading('H1') }} + +PHP enum reflection [a]EnumEntity[/a] inherits from [a]ClassLikeEntity[/a]. + +**Source enum formats:** + +1) `enum ` + +**Example of creating enum reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$enumReflection = $entitiesCollection->getLoadedOrCreateNew('SomeEnumName'); // or get() +``` + +**Enum reflection API methods:** + +{{ displayClassApiMethods('\\BumbleDocGen\\LanguageHandler\\Php\\Parser\\Entity\\EnumEntity') }} \ No newline at end of file diff --git a/selfdoc/templates/tech/02_parser/reflectionApi/php/phpInterfaceReflectionApi.md.twig b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpInterfaceReflectionApi.md.twig new file mode 100644 index 00000000..dfe79126 --- /dev/null +++ b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpInterfaceReflectionApi.md.twig @@ -0,0 +1,25 @@ +--- +title: PHP interface reflection API +prevPage: Reflection API for PHP +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "PHP interface reflection API" | textToHeading('H1') }} + +PHP interface reflection [a]InterfaceEntity[/a] inherits from [a]ClassLikeEntity[/a]. + +**Source interface formats:** + +1) `interface ` + +**Example of creating interface reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$interfaceReflection = $entitiesCollection->getLoadedOrCreateNew('SomeInterfaceName'); // or get() +``` + +**Interface reflection API methods:** + +{{ displayClassApiMethods('\\BumbleDocGen\\LanguageHandler\\Php\\Parser\\Entity\\InterfaceEntity') }} \ No newline at end of file diff --git a/selfdoc/templates/tech/02_parser/reflectionApi/php/phpTraitReflectionApi.md.twig b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpTraitReflectionApi.md.twig new file mode 100644 index 00000000..bb8c7001 --- /dev/null +++ b/selfdoc/templates/tech/02_parser/reflectionApi/php/phpTraitReflectionApi.md.twig @@ -0,0 +1,25 @@ +--- +title: PHP trait reflection API +prevPage: Reflection API for PHP +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "PHP trait reflection API" | textToHeading('H1') }} + +PHP trait reflection [a]TraitEntity[/a] inherits from [a]ClassLikeEntity[/a]. + +**Source trait formats:** + +1) `trait ` + +**Example of creating trait reflection:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$traitReflection = $entitiesCollection->getLoadedOrCreateNew('SomeTraitName'); // or get() +``` + +**Trait reflection API methods:** + +{{ displayClassApiMethods('\\BumbleDocGen\\LanguageHandler\\Php\\Parser\\Entity\\TraitEntity') }} \ No newline at end of file diff --git a/selfdoc/templates/tech/02_parser/reflectionApi/php/readme.md.twig b/selfdoc/templates/tech/02_parser/reflectionApi/php/readme.md.twig new file mode 100644 index 00000000..ff9657fa --- /dev/null +++ b/selfdoc/templates/tech/02_parser/reflectionApi/php/readme.md.twig @@ -0,0 +1,90 @@ +--- +title: Reflection API for PHP +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Reflection API for PHP" | textToHeading('H1') }} + +The tool we implemented partially replicates the [standard PHP reflection API](https://www.php.net/manual/en/book.reflection.php), but it has some additional capabilities. +In addition, our Reflection API is available for use in every documentation template, plugin, twig function, etc. at `BumbleDocGen`. + +{{ "Class like reflections" | textToHeading('H2') }} + +Using our PHP reflection API you can get information about project entities. +Below is information about the available methods for working with each entity type: + +1) [a x-title="Class reflection"]PHP class reflection API[/a] +2) [a x-title="Trait reflection"]PHP trait reflection API[/a] +3) [a x-title="Interface reflection"]PHP interface reflection API[/a] +4) [a x-title="Enum reflection"]PHP enum reflection API[/a] + +**Usage example:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +// In this example, the collection is empty, so we use a method that will create an entity by its name +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); + +$entityName = $classReflection->getName(); +$entityDescription = $classReflection->getDescription(); +$entityClassCodeStartLine = $classReflection->getStartLine(); + +// ... etc. +``` + +{{ "Entities collection" | textToHeading('H2') }} + +Class reflections are stored in collections. The collection is filled either before documents are generated, +if the Reflection API is used to generate documentation, or when special methods are called that, under certain conditions, fill them with the required reflections. + +You can perform a number of filtering and searching operations on a collection of entities. +The collections API is presented on this page: [a]PHP entities collection[/a] + +**Usage example:** + +```php +// Create an empty collection +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +// Fill the collection with entities +$entitiesCollection->loadEntities( + $sourceLocators, // Source locators are needed so that we can determine all the files that will be traversed to fill the collection with data + $filters // We can define special filters according to which entities will be loaded +); + +$classReflection = $entitiesCollection->get('SomeClassName'); + +$entitiesCollection = $entitiesCollection + ->filterByInterfaces(['SomeNamespace\Interface1', 'SomeNamespace\Interface2']) + ->filterByParentClassNames(['SomeNamespace\ParentClass']); + +foreach($entitiesCollection as $classReflection) { + $name = $classReflection->getName(); +} +``` + +{{ "Class like sub entities reflections" | textToHeading('H2') }} + +PHP classes contain methods, properties and constants. Below is information about these child entities: + +1) [a x-title="Class method reflection"]PHP class method reflection API[/a] +2) [a x-title="Class property reflection"]PHP class property reflection API[/a] +3) [a x-title="Class constant reflection"]PHP class constant reflection API[/a] + +**Usage example:** + +```php +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +$classReflection = $entitiesCollection->getLoadedOrCreateNew('SomeClassName'); + +$propertyReflection = $classReflection->getProperty('propertyName'); +$propertyName = $methodReflection->getName(); + +$methodReflection = $classReflection->getMethod('methodName'); +$methodName = $methodReflection->getName(); +$firstMethodReturnValue = $methodReflection->getFirstReturnValue(); + +// ... etc. +``` \ No newline at end of file diff --git a/selfdoc/templates/tech/02_parser/reflectionApi/readme.md.twig b/selfdoc/templates/tech/02_parser/reflectionApi/readme.md.twig new file mode 100644 index 00000000..7f4be448 --- /dev/null +++ b/selfdoc/templates/tech/02_parser/reflectionApi/readme.md.twig @@ -0,0 +1,59 @@ +--- +title: Reflection API +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Reflection API" | textToHeading('H1') }} + +The documentation generator has a convenient Reflection API for analyzing the source code of the project being documented. +You can use the Reflection API both in documentation templates and simply in your code where necessary. + +**See:** +1) **[a]Reflection API for PHP[/a]** +2) **[Demo](/demo/demo6-reflection-api/demoScript.php)** + +{{ "Example" | textToHeading('H3') }} + +{{ '// Create a Reflection API config object. This example shows the config for parsing PHP code +$reflectionApiConfig = PhpReflectionApiConfig::create(); + +/** @var PhpEntitiesCollection $entitiesCollection*/ +$entitiesCollection = (new \BumbleDocGen\DocGeneratorFactory())->createRootEntitiesCollection($reflectionApiConfig); + +// Source locators are needed so that we can determine all the files that will be traversed to fill the collection with data +$sourceLocators = SourceLocatorsCollection::create(new DirectoriesSourceLocator([__DIR__])); + +// We can define special filters according to which entities will be loaded +$filter = new TrueCondition(); + +// By default the collection is empty. You can populate the collection with data +$entitiesCollection->loadEntities( + $sourceLocators, + $filter +); + +// And now you can use Reflection API +$filename = $entitiesCollection->get(\'SomeClassName\')?->getAbsoluteFileName(); +' | textToCodeBlock('php') }} + +{{ "Example 2 - Working with the Reflection API through a default parsing mechanism" | textToHeading('H3') }} + +{{ '// Create a documentation generator object +$docGen = (new \BumbleDocGen\DocGeneratorFactory())->create($configFile); + +// Next we get a group of entity collections (according to the configuration) +$entityCollectionsGroup = $docGen->parseAndGetRootEntityCollectionsGroup(); + +// Next, we can get a specific collection, for example for PHP entities +$entitiesCollection = $entityCollectionsGroup->get(PhpEntitiesCollection::class); + +// And now you can use Reflection API +$filename = $entitiesCollection->get(\'SomeClassName\')?->getAbsoluteFileName(); +' | textToCodeBlock('php') }} + +This method is used in the documentation generation process. +The only difference with the first example is that the first option is more convenient to use as a separate tool. + +The settings for which entities will be available to the reflector in this case are taken from the configuration file or configuration array, depending on the method of creating the documentation generator instance. + +In addition, [a]RootEntityCollectionsGroup[/a] is always available through DI, for example when you implement some twig function or plugin. diff --git a/selfdoc/templates/tech/2.parser/sourceLocator.md.twig b/selfdoc/templates/tech/02_parser/sourceLocator.md.twig similarity index 69% rename from selfdoc/templates/tech/2.parser/sourceLocator.md.twig rename to selfdoc/templates/tech/02_parser/sourceLocator.md.twig index 0957a20e..1abd1872 100644 --- a/selfdoc/templates/tech/2.parser/sourceLocator.md.twig +++ b/selfdoc/templates/tech/02_parser/sourceLocator.md.twig @@ -1,5 +1,7 @@ -{% set title = 'Source locators' %} -{% set prevPage = 'Parser' %} +--- +title: Source locators +prevPage: Parser +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Source locators" | textToHeading('H1') }} @@ -19,20 +21,9 @@ You can create your own source locators or use any existing ones. All source loc {{ "Built-in source locators" | textToHeading('H2') }} -**Common source locators:** - {{ printEntityCollectionAsList( - phpClassEntityCollection + phpEntities .filterByInterfaces(['BumbleDocGen\\Core\\Parser\\SourceLocator\\SourceLocatorInterface']) .filterByPaths(['/src/Core/Parser']) .getOnlyInstantiable() ) }} - -**PHP source locators:** - -{{ printEntityCollectionAsList( - phpClassEntityCollection - .filterByInterfaces(['BumbleDocGen\\Core\\Parser\\SourceLocator\\SourceLocatorInterface']) - .filterByPaths(['/src/LanguageHandler/Php/Parser']) - .getOnlyInstantiable() -) }} \ No newline at end of file diff --git a/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/frontMatter.md.twig b/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/frontMatter.md.twig new file mode 100644 index 00000000..264f45a3 --- /dev/null +++ b/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/frontMatter.md.twig @@ -0,0 +1,29 @@ +--- +title: Front Matter +prevPage: How to create documentation templates? +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Front Matter" | textToHeading('H1') }} + +Front Matter is a special block at the top of a document template or generated document that contains certain important meta information. + +This block must be located strictly at the top of the template, its beginning and end are indicated by a combination of symbols `---`: + +```twig +--- +title: Front Matter +prevPage: How to create documentation templates? +someVariable: 123 +--- + +some template content ... +``` + +The content of this block must be in YAML format. +During the template generation process, this block is parsed, and all values become available in the form of twig variables. +By default, this block is hidden from generated MD files, but it can be displayed by enabling the special option [a x-title="render_with_front_matter"]Configuration::renderWithFrontMatter()[/a] in the configuration + +Some Front Matter block variables are used internally in our system, for example `title` and `prevPage` are used to generate [a x-title="breadcrumbs"]Documentation structure and breadcrumbs[/a] and [a x-title="documentation menus"]DrawDocumentationMenu[/a]. + +This block is also used when generating HTML documentation. You can learn about the variables used in this block when generating HTML content [in the documentation of the library](https://daux.io/Features/Front_Matter.html) that we use to create HTML pages. diff --git a/selfdoc/templates/tech/3.renderer/01_templates.md.twig b/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/readme.md.twig similarity index 87% rename from selfdoc/templates/tech/3.renderer/01_templates.md.twig rename to selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/readme.md.twig index 40e1adf1..d7db5360 100644 --- a/selfdoc/templates/tech/3.renderer/01_templates.md.twig +++ b/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/readme.md.twig @@ -1,5 +1,6 @@ -{% set title = 'How to create documentation templates?' %} -{% set prevPage = 'Renderer' %} +--- +title: How to create documentation templates? +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "How to create documentation templates?" | textToHeading('H1') }} @@ -20,15 +21,17 @@ After generating the documentation, this page will look exactly like a template. {{ "2) An example of a template with static text and dynamic blocks:" | textToHeading('H3') }} -{{ "{% set title = 'Some page' %\} -{% set prevPage = 'Technical description of the project' %\} +{{ "--- +title: Some page +prevPage: Technical description of the project +--- {{ generatePageBreadcrumbs(title, _self) }\} Some static text... Dynamic block: -{\{ printEntityCollectionAsList(phpClassEntityCollection.filterByInterfaces(['\\\\BumbleDocGen\\\\Core\\\\Parser\\\\SourceLocator\\\\SourceLocatorInterface']).getOnlyInstantiable()) }\} +{\{ printEntityCollectionAsList(phpEntities.filterByInterfaces(['\\\\BumbleDocGen\\\\Core\\\\Parser\\\\SourceLocator\\\\SourceLocatorInterface']).getOnlyInstantiable()) }\} More static text... " | textToCodeBlock('twig') }} @@ -63,9 +66,9 @@ Output method description as a dynamic block: Dynamic block: -{\{ phpClassEntityCollection +{\{ phpEntities .get('\\\\BumbleDocGen\\\\LanguageHandler\\\\LanguageHandlerInterface') - .getMethodEntity('getLanguageKey') + .getMethod('getLanguageKey') .getDescription() }\} diff --git a/selfdoc/templates/tech/3.renderer/templatesDynamicBlocks.md.twig b/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/templatesDynamicBlocks.md.twig similarity index 62% rename from selfdoc/templates/tech/3.renderer/templatesDynamicBlocks.md.twig rename to selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/templatesDynamicBlocks.md.twig index b11b96f7..3923b06b 100644 --- a/selfdoc/templates/tech/3.renderer/templatesDynamicBlocks.md.twig +++ b/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/templatesDynamicBlocks.md.twig @@ -1,5 +1,7 @@ -{% set title = 'Templates dynamic blocks' %} -{% set prevPage = 'How to create documentation templates?' %} +--- +title: Templates dynamic blocks +prevPage: How to create documentation templates? +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Templates dynamic blocks" | textToHeading('H1') }} @@ -9,11 +11,11 @@ There are several ways to create dynamic blocks in templates. * First of all, these are custom twig functions and filters. You can use the built-in functions and filters or add your own, so you can implement any logic for generating dynamically changing content. -{{ "{\{ printEntityCollectionAsList(phpClassEntityCollection.filterByInterfaces(['\\\\BumbleDocGen\\\\Core\\\\Parser\\\\SourceLocator\\\\SourceLocatorInterface']).getOnlyInstantiable()) }\}" | textToCodeBlock('twig') }} +{{ "{\{ printEntityCollectionAsList(phpEntities.filterByInterfaces(['\\\\BumbleDocGen\\\\Core\\\\Parser\\\\SourceLocator\\\\SourceLocatorInterface']).getOnlyInstantiable()) }\}" | textToCodeBlock('twig') }} * The second way is to output data from variables directly to the template. For example, you can display a list of classes or methods of documented code according to certain rules. -{{ "{% for entity in phpClassEntityCollection.filterByInterfaces(['\\\\BumbleDocGen\\\\Core\\\\Parser\\\\SourceLocator\\\\SourceLocatorInterface']).getOnlyInstantiable() %} +{{ "{% for entity in phpEntities.filterByInterfaces(['\\\\BumbleDocGen\\\\Core\\\\Parser\\\\SourceLocator\\\\SourceLocatorInterface']).getOnlyInstantiable() %} * {{ entity.getName() }} {% endfor %} " | textToCodeBlock('twig') }} diff --git a/selfdoc/templates/tech/3.renderer/templatesLinking.md.twig b/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/templatesLinking.md.twig similarity index 63% rename from selfdoc/templates/tech/3.renderer/templatesLinking.md.twig rename to selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/templatesLinking.md.twig index 3387e7fc..d3b7a65f 100644 --- a/selfdoc/templates/tech/3.renderer/templatesLinking.md.twig +++ b/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/templatesLinking.md.twig @@ -1,5 +1,7 @@ -{% set title = 'Linking templates' %} -{% set prevPage = 'How to create documentation templates?' %} +--- +title: Linking templates +prevPage: How to create documentation templates? +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Linking templates" | textToHeading('H1') }} @@ -20,6 +22,17 @@ will be replaced with this link: {{ '
          <a href="/docs/some/page/targetPage.md">Existent page name</a>
          ' }} +Sometimes the use of standard empty links is not entirely obvious or has insufficient capabilities. For example, in standard empty links it is not obvious which link text will be used in the end. + +To fix this, we implemented a special mechanism with link tags: {{ '
          [a][/a]
          ' }} + +Examples: + +{{ '
          [a]Existent page name[/a] => <a href="/docs/some/page/targetPage.md">Existent page name</a>
          ' }} + +{{ '
          [a x-title="test"]Existent page name[/a] => <a href="/docs/some/page/targetPage.md">test</a>
          ' }} + + {{ "Generating links through functions" | textToHeading('H2') }} The second way to relink templates is to generate links through functions. diff --git a/selfdoc/templates/tech/3.renderer/templatesVariables.md.twig b/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/templatesVariables.md.twig similarity index 58% rename from selfdoc/templates/tech/3.renderer/templatesVariables.md.twig rename to selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/templatesVariables.md.twig index 6094aa13..af9addba 100644 --- a/selfdoc/templates/tech/3.renderer/templatesVariables.md.twig +++ b/selfdoc/templates/tech/03_renderer/01_howToCreateTemplates/templatesVariables.md.twig @@ -1,5 +1,7 @@ -{% set title = 'Templates variables' %} -{% set prevPage = 'How to create documentation templates?' %} +--- +title: Templates variables +prevPage: How to create documentation templates? +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Templates variables" | textToHeading('H1') }} @@ -8,4 +10,6 @@ There are several variables available in each processed template. 1) Firstly, these are built-in twig variables, for example `_self`, which returns the path to the processed template. -2) Secondly, variables with collections of processed programming languages are available in the template (see [a]LanguageHandlerInterface[/a]). For example, when processing a PHP project collection, a collection [a]ClassEntityCollection[/a] will be available in the template under the name phpClassEntityCollection +2) Secondly, variables with collections of processed programming languages are available in the template (see [a]LanguageHandlerInterface[/a]). For example, when processing a PHP project collection, a collection [a]PhpEntitiesCollection[/a] will be available in the template under the name phpEntities + +3) Thirdly, all variables specified in **Front Matter** are automatically converted into template variables and are available in it diff --git a/selfdoc/templates/tech/3.renderer/02_breadcrumbs.md.twig b/selfdoc/templates/tech/03_renderer/02_breadcrumbs.md.twig similarity index 79% rename from selfdoc/templates/tech/3.renderer/02_breadcrumbs.md.twig rename to selfdoc/templates/tech/03_renderer/02_breadcrumbs.md.twig index d815b3a4..eb418465 100644 --- a/selfdoc/templates/tech/3.renderer/02_breadcrumbs.md.twig +++ b/selfdoc/templates/tech/03_renderer/02_breadcrumbs.md.twig @@ -1,5 +1,7 @@ -{% set title = 'Documentation structure and breadcrumbs' %} -{% set prevPage = 'Renderer' %} +--- +title: Documentation structure and breadcrumbs +prevPage: Renderer +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Documentation structure and breadcrumbs" | textToHeading('H1') }} @@ -15,9 +17,11 @@ For each directory there is an index file ( readme.md or index.md But in addition to building the documentation structure using the actual location of template files in directories, -you can explicitly specify the parent page in each template using the special variable `prevPage`: +you can explicitly specify the parent page in each template using the special front matter variable `prevPage`: -{{ "{% set prevPage = 'Prev page name' %\}" | textToCodeBlock('twig') }} +{{ "--- +prevPage: Prev page name +---" | textToCodeBlock('markdown') }} In this way, complex documentation structures can be created with less file nesting: @@ -31,10 +35,12 @@ Here is how it is used in twig templates: {{ '{{ generatePageBreadcrumbs(title, _self) }\}' | textToCodeBlock('twig') }} To build breadcrumbs, the previously compiled project structure and the names of each template are used. -The template name can be specified using the `title` variable: +The template name can be specified using the `title` front matter variable: -{{ "{% set title = 'Some page title' %\}" | textToCodeBlock('twig') }} +{{ "--- +title: Some page title +---" | textToCodeBlock('markdown') }} Here is an example of the result of the `generatePageBreadcrumbs` function: -{{ ' BumbleDocGen / Technical description of the project / Renderer / Documentation structure and breadcrumbs
          ' | textToCodeBlock('twig') }} \ No newline at end of file +{{ ' BumbleDocGen / Technical description of the project / Renderer / Some page title
          ' | textToCodeBlock('twig') }} \ No newline at end of file diff --git a/selfdoc/templates/tech/3.renderer/03_documentStructure.md.twig b/selfdoc/templates/tech/03_renderer/03_documentStructure.md.twig similarity index 91% rename from selfdoc/templates/tech/3.renderer/03_documentStructure.md.twig rename to selfdoc/templates/tech/03_renderer/03_documentStructure.md.twig index e5047268..0e841568 100644 --- a/selfdoc/templates/tech/3.renderer/03_documentStructure.md.twig +++ b/selfdoc/templates/tech/03_renderer/03_documentStructure.md.twig @@ -1,5 +1,7 @@ -{% set title = 'Document structure of generated entities' %} -{% set prevPage = 'Renderer' %} +--- +title: Document structure of generated entities +prevPage: Renderer +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Document structure of generated entities" | textToHeading('H1') }} diff --git a/selfdoc/templates/tech/3.renderer/04_twigCustomFilters.md.twig b/selfdoc/templates/tech/03_renderer/04_twigCustomFilters.md.twig similarity index 81% rename from selfdoc/templates/tech/3.renderer/04_twigCustomFilters.md.twig rename to selfdoc/templates/tech/03_renderer/04_twigCustomFilters.md.twig index b01ab5df..d628d61f 100644 --- a/selfdoc/templates/tech/3.renderer/04_twigCustomFilters.md.twig +++ b/selfdoc/templates/tech/03_renderer/04_twigCustomFilters.md.twig @@ -1,11 +1,13 @@ -{% set title = 'Template filters' %} -{% set prevPage = 'Renderer' %} +--- +title: Template filters +prevPage: Renderer +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Template filters" | textToHeading('H1') }} When generating pages, you can use filters that allow you to modify the content. -Filters available during page generation are defined in the configuration ( `twig_filters` parameter ) +Filters available during page generation are defined in the configuration ( `twig_filters` parameter ) We use the twig template engine, you can get more information about working with filters here: https://twig.symfony.com/doc/1.x/advanced.html#filters @@ -30,7 +32,7 @@ twig_filters: ``` It is important to remember that when a template is inherited, custom filters are not overridden and augmented. -This information is detailed on page [a]Configuration files[/a]. +This information is detailed on page [a]01_configuration.md[/a]. {{ "Defautl template filters" | textToHeading('H2') }} @@ -55,7 +57,7 @@ Here is a list of filters available by default: - {% for filter in phpClassEntityCollection.filterByPaths([ + {% for filter in phpEntities.filterByPaths([ '/src/Core/Renderer/Twig/Filter', '/src/LanguageHandler/Php/Renderer/Twig/Filter' ]) @@ -69,10 +71,8 @@ Here is a list of filters available by default: {% if loop.index == 1 %} {% set rowspan = paramsCount * 2 - 1 %} 1 %}rowspan="{{ rowspan }}"{% endif %}> - {{ twigFilterData.name }}
          - {% if filter.isInternal() %}:warning: For internal use
          {% endif %} - {{ filter.getDescription() | removeLineBrakes }} - {% if filter.getDocNote() %}
          :warning: {{ filter.getDocNote() }}
          {% endif %} + {{ twigFilterData.name }}
          + {% if filter.isInternal() %}:warning: For internal use
          {% endif %}{{ filter.getDescription() | removeLineBrakes }}{% if filter.getDocNote() %}
          :warning: {{ filter.getDocNote() }}
          {% endif %} {% if rowspan == 1 %} The filter does not accept any additional parameters @@ -82,7 +82,7 @@ Here is a list of filters available by default: ${{ parameter.name }} - {{ parameter.type | strTypeToUrl(phpClassEntityCollection, true) }} + {{ parameter.type | strTypeToUrl(phpEntities, true) }} {{ parameter.description | removeLineBrakes }} {% endif %} diff --git a/selfdoc/templates/tech/3.renderer/05_twigCustomFunctions.md.twig b/selfdoc/templates/tech/03_renderer/05_twigCustomFunctions.md.twig similarity index 87% rename from selfdoc/templates/tech/3.renderer/05_twigCustomFunctions.md.twig rename to selfdoc/templates/tech/03_renderer/05_twigCustomFunctions.md.twig index e4807e11..9da7d28c 100644 --- a/selfdoc/templates/tech/3.renderer/05_twigCustomFunctions.md.twig +++ b/selfdoc/templates/tech/03_renderer/05_twigCustomFunctions.md.twig @@ -1,11 +1,13 @@ -{% set title = 'Template functions' %} -{% set prevPage = 'Renderer' %} +--- +title: Template functions +prevPage: Renderer +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Template functions" | textToHeading('H1') }} When generating pages, you can use functions that allow you to modify the content. -Functions available during page generation are defined in the configuration ( `twig_functions` parameter ) +Functions available during page generation are defined in the configuration ( `twig_functions` parameter ) We use the twig template engine, you can get more information about working with functions here: https://twig.symfony.com/doc/1.x/advanced.html#functions @@ -28,7 +30,7 @@ twig_functions: ``` It is important to remember that when a template is inherited, custom functions are not overridden and augmented. -This information is detailed on page [a]Configuration files[/a]. +This information is detailed on page [a]01_configuration.md[/a]. {{ "Defautl template functions" | textToHeading('H2') }} @@ -53,7 +55,7 @@ Here is a list of functions available by default: - {% for function in phpClassEntityCollection.filterByPaths([ + {% for function in phpEntities.filterByPaths([ '/src/Core/Renderer/Twig/Function', '/src/LanguageHandler/Php/Renderer/Twig/Function' ]) @@ -67,7 +69,7 @@ Here is a list of functions available by default: {% if loop.index == 1 %} - {{ twigFunctionData.name }}
          + {{ twigFunctionData.name }}
          {% if function.isInternal() %}:warning: For internal use
          {% endif %} {{ function.getDescription() | removeLineBrakes }} {% if function.getDocNote() %}
          :warning: {{ function.getDocNote() }}
          {% endif %} @@ -77,7 +79,7 @@ Here is a list of functions available by default: ${{ parameter.name }} - {{ parameter.type | strTypeToUrl(phpClassEntityCollection, true, true) }} + {{ parameter.type | strTypeToUrl(phpEntities, true, true) }} {{ parameter.description | removeLineBrakes }} diff --git a/selfdoc/templates/tech/3.renderer/readme.md.twig b/selfdoc/templates/tech/03_renderer/readme.md.twig similarity index 97% rename from selfdoc/templates/tech/3.renderer/readme.md.twig rename to selfdoc/templates/tech/03_renderer/readme.md.twig index 0a3bd7fb..5f1411b8 100644 --- a/selfdoc/templates/tech/3.renderer/readme.md.twig +++ b/selfdoc/templates/tech/03_renderer/readme.md.twig @@ -1,4 +1,6 @@ -{% set title = 'Renderer' %} +--- +title: Renderer +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Documentation renderer" | textToHeading('H1') }} @@ -11,7 +13,7 @@ We use twig to process templates. {{ "More detailed description of renderer components" | textToHeading('H2') }} -{{ drawDocumentationMenu(_self, 1) }} +{{ drawDocumentationMenu(_self) }} {{ "Starting the rendering process" | textToHeading('H2') }} diff --git a/selfdoc/templates/tech/4.pluginSystem/readme.md.twig b/selfdoc/templates/tech/04_pluginSystem.md.twig similarity index 86% rename from selfdoc/templates/tech/4.pluginSystem/readme.md.twig rename to selfdoc/templates/tech/04_pluginSystem.md.twig index acce6f40..b69e12ca 100644 --- a/selfdoc/templates/tech/4.pluginSystem/readme.md.twig +++ b/selfdoc/templates/tech/04_pluginSystem.md.twig @@ -1,4 +1,7 @@ -{% set title = 'Plugin system' %} +--- +title: Plugin system +prevPage: Technical description of the project +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Plugin system" | textToHeading('H1') }} @@ -13,7 +16,6 @@ You can add your plugins to the configuration like this: ```yaml plugins: - - class: \SelfDocConfig\Plugin\RoaveStubber\BetterReflectionStubberPlugin - class: \SelfDocConfig\Plugin\TwigFilterClassParser\TwigFilterClassParserPlugin - class: \SelfDocConfig\Plugin\TwigFunctionClassParser\TwigFunctionClassParserPlugin ``` @@ -30,7 +32,7 @@ Plugins for any programming languages work regardless of which language handler Handles events Description -{% for pluginEntity in phpClassEntityCollection +{% for pluginEntity in phpEntities .filterByPaths([ '/src/Core', '/src/LanguageHandler', @@ -38,13 +40,13 @@ Plugins for any programming languages work regardless of which language handler .filterByInterfaces(['BumbleDocGen\\Core\\Plugin\\PluginInterface']) .getOnlyInstantiable() %} -{% set match = pluginEntity.getFileName() | preg_match('/(\\/LanguageHandler\\/)([\\s\\S]*?)(?=\\/)/i') %} +{% set match = pluginEntity.getRelativeFileName() | preg_match('/(\\/LanguageHandler\\/)([\\s\\S]*?)(?=\\/)/i') %} {{ drawDocumentedEntityLink(pluginEntity) }} {% if match[2] %}{{ match[2] | upper }}{% else %}any{% endif %}
            - {% for key in pluginEntity.getMethodEntity('getSubscribedEvents').getFirstReturnValue() | eval | keys %} + {% for key in pluginEntity.getMethod('getSubscribedEvents', true).getFirstReturnValue() | keys %}
          • [a]{{ key }}|short_form[/a]
          • {% endfor %}
          @@ -56,7 +58,7 @@ Plugins for any programming languages work regardless of which language handler {{ "Default events" | textToHeading('H2') }} -{{ printEntityCollectionAsList( phpClassEntityCollection +{{ printEntityCollectionAsList( phpEntities .filterByPaths([ '/src/Core', '/src/LanguageHandler', diff --git a/selfdoc/templates/tech/05_console.md.twig b/selfdoc/templates/tech/05_console.md.twig new file mode 100644 index 00000000..ee27c1d3 --- /dev/null +++ b/selfdoc/templates/tech/05_console.md.twig @@ -0,0 +1,39 @@ +--- +title: Console app +prevPage: Technical description of the project +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Console app" | textToHeading('H1') }} + +The documentation generator provides the ability to work through a built-in [a x-title="console application"]App[/a]. +It is available via composer: +```console +vendor/bin/bumbleDocGen list +``` + +We use [Symfony Console](https://github.com/symfony/console) as the basis of the console application. + +{{ "Built-in console commands" | textToHeading('H2') }} + + + + + + + +{% for consoleCommandData in getConsoleCommands() %} + + + + + +{% endfor %} +
          CommandParametersDescription
          {{ consoleCommandData.name }}{{ consoleCommandData.synopsis|raw }}{{ consoleCommandData.description }}
          + +{{ "Adding a custom command" | textToHeading('H2') }} + +The system allows you to add custom commands to a standard console application. +This can be done using a special configuration option [a x-title="additional_console_commands"]Configuration::getAdditionalConsoleCommands()[/a] (see [a]Configuration[/a] page). + +After adding a new command to the configuration, it will be available in the application. Each added command must inherit the `\Symfony\Component\Console\Command\Command` class \ No newline at end of file diff --git a/selfdoc/templates/tech/06_debugging.md.twig b/selfdoc/templates/tech/06_debugging.md.twig new file mode 100644 index 00000000..80c64f51 --- /dev/null +++ b/selfdoc/templates/tech/06_debugging.md.twig @@ -0,0 +1,24 @@ +--- +title: Debug documents +prevPage: Technical description of the project +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Debug documents" | textToHeading('H1') }} + +Our tool provides several options for debugging documentation. + +1) Firstly, after each generation of documents, you can make sure that the linking of documents was normal and no problems arose: after completing the documentation generation process, we display a list of all errors that occurred in the console: + + **Here is an example of error output:** + + + +2) To track exactly how documentation is generated, you can use the interactive mode: + + `vendor/bin/bumbleDocGen serve` - So that the generated documentation changes automatically with changes in templates + + **or** + + `vendor/bin/bumbleDocGen serve --as-html` - So that the generated documentation changes automatically with changes in templates and is displayed as HTML on the local development server +3) Logs are saved to a special file `last_run.log` which is located in the working directory diff --git a/selfdoc/templates/tech/07_outputFormat.md.twig b/selfdoc/templates/tech/07_outputFormat.md.twig new file mode 100644 index 00000000..4feabc66 --- /dev/null +++ b/selfdoc/templates/tech/07_outputFormat.md.twig @@ -0,0 +1,39 @@ +--- +title: Output formats +prevPage: Technical description of the project +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Output formats" | textToHeading('H1') }} + +At the moment, the documentation generator is focused on creating documentation in two formats: [GitHub Flavored Markdown](https://github.github.com/gfm/) and HTML. +However, it is possible to create other files with some restrictions. + +1) Creating **GFM** documentation is possible both using a [a x-title="console application"]Console app[/a] and using the [a x-title="built-in commands"]DocGenerator::generate()[/a] of the documentation generator. + + * Generate GFM doc by console command: + ```bash + # Generate GFM files ( see {output_dir}) + vendor/bin/bumbleDocGen generate + + # Serve GFM documentation ( see {output_dir}) + vendor/bin/bumbleDocGen serve + ``` + * Generate GFM doc by docGen PHP API: + ```php + # Generate GFM files ( see {output_dir}) + (new DocGeneratorFactory())->create($configFile)->generate(); + + # Serve GFM documentation ( see {output_dir}) + (new DocGeneratorFactory())->create($configFile)->serve(); + ``` + +2) Creating **HTML** documentation is only possible through a [a x-title="console application"]Console app[/a]. The [Daux.io](https://daux.io/) library is used to generate HTML pages. + * Generate HTML doc by console command: + ```bash + # Generate static HTML files ( see {output_dir}/html) + vendor/bin/bumbleDocGen generate --as-html + + # Serve HTML documentation (see generated content in browser) + vendor/bin/bumbleDocGen serve --as-html + ``` diff --git a/selfdoc/templates/tech/map.md.twig b/selfdoc/templates/tech/map.md.twig deleted file mode 100644 index ff9ed9a4..00000000 --- a/selfdoc/templates/tech/map.md.twig +++ /dev/null @@ -1,7 +0,0 @@ -{% set title = 'Class map' %} -{% set prevPage = 'Technical description of the project' %} -{{ generatePageBreadcrumbs(title, _self) }} - -Directory layout ( only documented files shown ): - -{{ drawClassMap( phpClassEntityCollection.filterByPaths(['/src']) ) }} \ No newline at end of file diff --git a/selfdoc/templates/tech/readme.md.twig b/selfdoc/templates/tech/readme.md.twig index 858ce1c2..7e3efb2c 100644 --- a/selfdoc/templates/tech/readme.md.twig +++ b/selfdoc/templates/tech/readme.md.twig @@ -1,4 +1,6 @@ -{% set title = 'Technical description of the project' %} +--- +title: Technical description of the project +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Technical description of the project" | textToHeading('H1') }} diff --git a/src/AI/Console/AddDocBlocksCommand.php b/src/AI/Console/AddDocBlocksCommand.php index 1826f010..e336d965 100644 --- a/src/AI/Console/AddDocBlocksCommand.php +++ b/src/AI/Console/AddDocBlocksCommand.php @@ -7,7 +7,6 @@ use BumbleDocGen\AI\Traits\SharedCommandLogicTrait; use BumbleDocGen\Console\Command\BaseCommand; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; use DI\DependencyException; use DI\NotFoundException; use GuzzleHttp\Exception\GuzzleException; @@ -46,7 +45,6 @@ protected function configure(): void * @throws DependencyException * @throws InvalidConfigurationParameterException * @throws NotFoundException - * @throws ReflectionException * @throws GuzzleException * @throws JsonException */ diff --git a/src/AI/Console/GenerateReadMeTemplateCommand.php b/src/AI/Console/GenerateReadMeTemplateCommand.php index 909dd60a..b5a1d18a 100644 --- a/src/AI/Console/GenerateReadMeTemplateCommand.php +++ b/src/AI/Console/GenerateReadMeTemplateCommand.php @@ -7,7 +7,6 @@ use BumbleDocGen\AI\Traits\SharedCommandLogicTrait; use BumbleDocGen\Console\Command\BaseCommand; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; use DI\DependencyException; use DI\NotFoundException; use GuzzleHttp\Exception\GuzzleException; @@ -43,7 +42,6 @@ protected function configure(): void /** * @throws NotFoundException * @throws GuzzleException - * @throws ReflectionException * @throws DependencyException * @throws InvalidConfigurationParameterException * @throws JsonException diff --git a/src/AI/Generators/DocBlocksGenerator.php b/src/AI/Generators/DocBlocksGenerator.php index 49174426..c88a54c7 100644 --- a/src/AI/Generators/DocBlocksGenerator.php +++ b/src/AI/Generators/DocBlocksGenerator.php @@ -7,9 +7,8 @@ use BumbleDocGen\AI\ProviderInterface; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\RootEntityInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; use DI\DependencyException; use DI\NotFoundException; @@ -28,15 +27,14 @@ public function __construct( /** * @throws NotFoundException * @throws DependencyException - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ public function hasMethodsWithoutDocBlocks(RootEntityInterface $rootEntity): bool { - if (!is_a($rootEntity, ClassEntity::class)) { + if (!is_a($rootEntity, ClassLikeEntity::class)) { throw new \InvalidArgumentException('Currently we can only work PHP class entities'); } - foreach ($rootEntity->getMethodEntityCollection() as $method) { + foreach ($rootEntity->getMethodEntitiesCollection() as $method) { /** @var MethodEntity $method */ if ($method->getDocComment() || $method->isConstructor()) { continue; @@ -47,16 +45,16 @@ public function hasMethodsWithoutDocBlocks(RootEntityInterface $rootEntity): boo } /** - * @throws ReflectionException * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException + * @throws \JsonException */ public function generateDocBlocksForMethodsWithoutIt( RootEntityInterface $rootEntity, int $mode = self::MODE_READ_ONLY_SIGNATURES, ): array { - if (!is_a($rootEntity, ClassEntity::class)) { + if (!is_a($rootEntity, ClassLikeEntity::class)) { throw new \InvalidArgumentException('Currently we can only work PHP class entities'); } @@ -64,7 +62,7 @@ public function generateDocBlocksForMethodsWithoutIt( $newThrowsDockBlocks = []; $toRequest = []; - foreach ($rootEntity->getMethodEntityCollection() as $method) { + foreach ($rootEntity->getMethodEntitiesCollection() as $method) { /** @var MethodEntity $method */ if ($method->isConstructor() || $method->isImplementedInParentClass()) { continue; @@ -89,8 +87,8 @@ public function generateDocBlocksForMethodsWithoutIt( } if ($method->getDocComment() && $method->getDescription()) { - $prototype = $method->getPrototype(); - $prototypeDocComment = $prototype?->getDocComment(); + $parentMethod = $method->getParentMethod(); + $prototypeDocComment = $parentMethod?->getDocComment(); if ($prototypeDocComment && !str_contains(strtolower($method->getDocComment()), '@inheritdoc')) { if (isset($newThrowsDockBlocks[$method->getName()])) { $methodsDockBlocks[$method->getName()] = str_replace( @@ -121,7 +119,7 @@ public function generateDocBlocksForMethodsWithoutIt( "/**\n * [insert]", $method->getDocComment() ); - } elseif (strlen($method->getDocCommentRecursive()) > 1) { + } elseif (strlen($method->getDescription()) > 1) { if ($method->getDescription()) { if (isset($newThrowsDockBlocks[$method->getName()])) { $methodsDockBlocks[$method->getName()] = $this->createDocBlockText(['[throws]', '{@inheritDoc}']); diff --git a/src/AI/Generators/ReadmeTemplateGenerator.php b/src/AI/Generators/ReadmeTemplateGenerator.php index f6af61a9..0873626a 100644 --- a/src/AI/Generators/ReadmeTemplateGenerator.php +++ b/src/AI/Generators/ReadmeTemplateGenerator.php @@ -7,9 +7,8 @@ use BumbleDocGen\AI\ProviderInterface; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\RootEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; use DI\DependencyException; use DI\NotFoundException; @@ -23,14 +22,13 @@ public function __construct( /** * @param RootEntityCollection $rootEntityCollection - * @param ClassEntity[] $entryPoints + * @param ClassLikeEntity[] $entryPoints * @param string|null $composerJsonFile * @param string|null $additionalPrompt * @return string * @throws DependencyException * @throws InvalidConfigurationParameterException * @throws NotFoundException - * @throws ReflectionException */ public function generateReadmeFileContent( RootEntityCollection $rootEntityCollection, @@ -38,12 +36,12 @@ public function generateReadmeFileContent( ?string $composerJsonFile = null, ?string $additionalPrompt = null, ): string { - if (!is_a($rootEntityCollection, ClassEntityCollection::class)) { + if (!is_a($rootEntityCollection, PhpEntitiesCollection::class)) { throw new \InvalidArgumentException('Currently we can only work with collections of PHP entities'); } $namespacesList = array_map( - fn(ClassEntity $e) => $e->getNamespaceName(), + fn(ClassLikeEntity $e) => $e->getNamespaceName(), iterator_to_array($rootEntityCollection) ); @@ -58,7 +56,7 @@ public function generateReadmeFileContent( $entryPointsSignatures = []; foreach ($entryPoints as $entryPoint) { $methodsSignatures = []; - foreach ($entryPoint->getMethodEntityCollection() as $method) { + foreach ($entryPoint->getMethodEntitiesCollection() as $method) { $methodsSignatures[] = $method->getSignature(); } diff --git a/src/Console/App.php b/src/Console/App.php index 5f7819db..af90d2e9 100644 --- a/src/Console/App.php +++ b/src/Console/App.php @@ -8,6 +8,7 @@ use BumbleDocGen\AI\Console\GenerateReadMeTemplateCommand; use BumbleDocGen\Console\Command\ConfigurationCommand; use BumbleDocGen\Console\Command\GenerateCommand; +use BumbleDocGen\Console\Command\ServeCommand; use BumbleDocGen\DocGeneratorFactory; use Symfony\Component\Console\Application; use Symfony\Component\Console\Command\CompleteCommand; @@ -33,6 +34,7 @@ public function __construct() ); $this->setDefinition($inputDefinition); $this->add(new GenerateCommand()); + $this->add(new ServeCommand()); $this->add(new GenerateReadMeTemplateCommand()); $this->add(new AddDocBlocksCommand()); $this->add(new ConfigurationCommand()); diff --git a/src/Console/Command/BaseCommand.php b/src/Console/Command/BaseCommand.php index 19979257..6a09c00e 100644 --- a/src/Console/Command/BaseCommand.php +++ b/src/Console/Command/BaseCommand.php @@ -38,11 +38,12 @@ public function __construct(string $name = null) */ protected function createDocGenInstance( InputInterface $input, - OutputInterface $output + OutputInterface $output, + array $customConfigurationParameters = [] ): DocGenerator { $docGeneratorFactory = (new DocGeneratorFactory()); $docGeneratorFactory->setCustomConfigurationParameters( - $this->getCustomConfigurationParameters($input) + array_merge($this->getCustomConfigurationParameters($input), $customConfigurationParameters) ); $docGeneratorFactory->setCustomDiDefinitions([ OutputStyle::class => new SymfonyStyle($input, $output), diff --git a/src/Console/Command/ConfigurationCommand.php b/src/Console/Command/ConfigurationCommand.php index 76236fe1..4ca16759 100644 --- a/src/Console/Command/ConfigurationCommand.php +++ b/src/Console/Command/ConfigurationCommand.php @@ -18,8 +18,7 @@ protected function configure(): void $this ->setName('configuration') ->setDescription('Display list of configured plugins, programming language handlers, etc') - ->addArgument('key', InputArgument::OPTIONAL, 'Configuration key to display') - ; + ->addArgument('key', InputArgument::OPTIONAL, 'Configuration key to display'); } /** diff --git a/src/Console/Command/GenerateCommand.php b/src/Console/Command/GenerateCommand.php index 35046669..92c4840d 100644 --- a/src/Console/Command/GenerateCommand.php +++ b/src/Console/Command/GenerateCommand.php @@ -4,11 +4,16 @@ namespace BumbleDocGen\Console\Command; +use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; +use BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\Daux\Daux; use DI\DependencyException; use DI\NotFoundException; use Psr\Cache\InvalidArgumentException; use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Filesystem\Filesystem; +use Symfony\Component\Process\Process; final class GenerateCommand extends BaseCommand { @@ -25,19 +30,53 @@ protected function getCustomConfigOptionsMap(): array protected function configure(): void { - $this->setName('generate')->setDescription('Generate documentation'); + $this->setName('generate') + ->setDescription('Generate documentation') + ->addOption( + name: 'as-html', + mode: InputOption::VALUE_NONE, + description: 'Generate documentation in HTML format', + ); } /** * @throws NotFoundException * @throws DependencyException * @throws InvalidArgumentException + * @throws InvalidConfigurationParameterException */ protected function execute( InputInterface $input, OutputInterface $output ): int { - $this->createDocGenInstance($input, $output)->generate(); + + $asHtml = $input->getOption('as-html'); + if ($asHtml) { + $tmpDir = sys_get_temp_dir() . '/~bumbleDocGen'; + $filesystem = new Filesystem(); + $filesystem->remove($tmpDir); + + $docGen = $this->createDocGenInstance($input, $output, [ + 'output_dir' => $tmpDir, + 'render_with_front_matter' => true + ]); + $docGen->addPlugin(Daux::class); + $docGen->generate(); + + $docGen = $this->createDocGenInstance($input, $output)->getConfiguration(); + $process = new Process([ + PHP_BINARY, + dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'vendor/bin/daux', + 'generate', + "--source={$tmpDir}", + "--destination={$docGen->getOutputDir()}/html" + ]); + $process->setTty(true); + $process->run(); + } else { + $this->createDocGenInstance($input, $output)->generate(); + } + return self::SUCCESS; } } diff --git a/src/Console/Command/ServeCommand.php b/src/Console/Command/ServeCommand.php new file mode 100644 index 00000000..77603660 --- /dev/null +++ b/src/Console/Command/ServeCommand.php @@ -0,0 +1,134 @@ + 'Path to the directory of the documented project', + 'templates_dir' => 'Path to directory with documentation templates', + 'use_shared_cache' => 'Enable/disable shared cache when generating documentation (true/false)', + ]; + } + + protected function configure(): void + { + $this->setName('serve') + ->setDescription('Serve documentation') + ->addOption( + name: 'as-html', + mode: InputOption::VALUE_NONE, + description: 'Display HTML documentation on dev server. Otherwise update files in output_dir', + ) + ->addOption( + name: 'dev-server-host', + mode: InputOption::VALUE_OPTIONAL, + description: 'Dev server host', + default: 'localhost' + ) + ->addOption( + name: 'dev-server-port', + mode: InputOption::VALUE_OPTIONAL, + description: 'Dev server port', + default: 8085 + ); + } + + /** + * @throws NotFoundException + * @throws DependencyException + * @throws InvalidArgumentException + * @throws InvalidConfigurationParameterException + */ + protected function execute( + InputInterface $input, + OutputInterface $output + ): void { + $asHtml = $input->getOption('as-html'); + if ($asHtml) { + $tmpDir = sys_get_temp_dir(); + $tmpDocDir = "{$tmpDir}/~bumbleDocGen"; + if (!is_dir($tmpDocDir)) { + mkdir($tmpDocDir); + } + $host = $input->getOption('dev-server-host'); + $port = $input->getOption('dev-server-port'); + $process = $this->createDauxProcess($tmpDir, $tmpDocDir, $input, $output); + try { + $filesystem = new Filesystem(); + $filesystem->remove($tmpDocDir); + + $docGen = $this->createDocGenInstance($input, $output, [ + 'output_dir' => $tmpDocDir, + 'render_with_front_matter' => true + ]); + $docGen->addPlugin(Daux::class); + + $docGen->serve(function () use ($process, $output, $host, $port) { + $process->start(); + $output->writeln("Development server started on: http://{$host}:{$port}/"); + }, function () use (&$process, $tmpDir, $tmpDocDir, $input, $output) { + $process->stop(0, 9); + $process = $this->createDauxProcess($tmpDir, $tmpDocDir, $input, $output); + $process->restart(); + }); + } finally { + $process->stop(0, 9); + } + } else { + $docGen = $this->createDocGenInstance($input, $output); + $docGen->serve(); + } + } + + private function createDauxProcess( + string $tmpConfigDir, + string $tmpDocDir, + InputInterface $input, + OutputInterface $output + ): Process { + $builder = ConfigBuilder::withMode(\Todaymade\Daux\Daux::LIVE_MODE); + $builder->withFormat('html'); + $builder->withDocumentationDirectory($tmpDocDir); + $builder->withCache(false); + $daux = new \Todaymade\Daux\Daux($builder->build(), $output); + + $path = "{$tmpConfigDir}/bumbleDocGenDaux.config"; + file_put_contents($path, serialize($daux->getConfig())); + + $host = $input->getOption('dev-server-host'); + $port = $input->getOption('dev-server-port'); + $binary = escapeshellarg((new PhpExecutableFinder())->find(false)); + + $script = << $path, + 'DAUX_VERBOSITY' => $output->getVerbosity() + ]); + $process->setTimeout(3600); + $process->disableOutput(); + return $process; + } +} diff --git a/src/Console/ProgressBar/StylizedProgressBar.php b/src/Console/ProgressBar/StylizedProgressBar.php index 493b6458..a22e004d 100644 --- a/src/Console/ProgressBar/StylizedProgressBar.php +++ b/src/Console/ProgressBar/StylizedProgressBar.php @@ -4,10 +4,11 @@ namespace BumbleDocGen\Console\ProgressBar; +use BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface; use Symfony\Component\Console\Helper\ProgressBar; use Symfony\Component\Console\Style\OutputStyle; -final class StylizedProgressBar +final class StylizedProgressBar implements EntitiesLoaderProgressBarInterface { private ProgressBar $progressBar; private string $name = ''; @@ -56,6 +57,11 @@ public function setStepDescription(string $stepDescription): void public function iterate(iterable $iterable, ?int $max = null): \Generator { + $lastIterationNumber = is_countable($iterable) ? \count($iterable) : 0; + if (!$lastIterationNumber) { + return; + } + $i = 0; foreach ($this->progressBar->iterate($iterable, $max) as $key => $item) { $lastIterationNumber = is_countable($iterable) ? \count($iterable) : 0; diff --git a/src/Core/Cache/EntityCacheItemPool.php b/src/Core/Cache/EntityCacheItemPool.php index 72067175..124b5fc1 100644 --- a/src/Core/Cache/EntityCacheItemPool.php +++ b/src/Core/Cache/EntityCacheItemPool.php @@ -9,10 +9,14 @@ use Psr\Cache\CacheItemInterface; use Psr\Cache\CacheItemPoolInterface; use Symfony\Component\Cache\Adapter\FilesystemAdapter; +use Symfony\Component\Cache\CacheItem; +/** + * @internal + */ final class EntityCacheItemPool implements CacheItemPoolInterface { - private CacheItemPoolInterface $cacheItemPool; + private ?CacheItemPoolInterface $cacheItemPool = null; /** * @throws InvalidConfigurationParameterException @@ -21,55 +25,85 @@ public function __construct( Configuration $configuration ) { $entityNamespaceKey = md5($configuration->getOutputDir()); - $this->cacheItemPool = new FilesystemAdapter( - "entity_{$entityNamespaceKey}", - 604800, - $configuration->getCacheDir() - ); + if ($configuration->getCacheDir()) { + $this->cacheItemPool = new FilesystemAdapter( + "entity_{$entityNamespaceKey}", + 604800, + $configuration->getCacheDir() + ); + } } public function getItem(string $key): CacheItemInterface { + if (!$this->cacheItemPool) { + return new CacheItem(); + } return $this->cacheItemPool->getItem($key); } public function getItems(array $keys = []): iterable { + if (!$this->cacheItemPool) { + return []; + } return $this->cacheItemPool->getItems($keys); } public function hasItem(string $key): bool { + if (!$this->cacheItemPool) { + return false; + } + return $this->cacheItemPool->hasItem($key); } public function clear(): bool { + if (!$this->cacheItemPool) { + return false; + } return $this->cacheItemPool->clear(); } public function deleteItem(string $key): bool { + if (!$this->cacheItemPool) { + return false; + } return $this->cacheItemPool->deleteItem($key); } public function deleteItems(array $keys): bool { + if (!$this->cacheItemPool) { + return false; + } return $this->cacheItemPool->deleteItems($keys); } public function save(CacheItemInterface $item): bool { + if (!$this->cacheItemPool) { + return false; + } return $this->cacheItemPool->save($item); } public function saveDeferred(CacheItemInterface $item): bool { + if (!$this->cacheItemPool) { + return false; + } return $this->cacheItemPool->saveDeferred($item); } public function commit(): bool { + if (!$this->cacheItemPool) { + return false; + } return $this->cacheItemPool->commit(); } } diff --git a/src/Core/Cache/LocalCache/LocalObjectCache.php b/src/Core/Cache/LocalCache/LocalObjectCache.php index 17f76888..040b2543 100644 --- a/src/Core/Cache/LocalCache/LocalObjectCache.php +++ b/src/Core/Cache/LocalCache/LocalObjectCache.php @@ -25,4 +25,9 @@ public function getMethodCachedResult(string $methodKey, string $objectId): mixe } return $this->cache[$methodKey][$objectId]; } + + public function clear(): void + { + $this->cache = []; + } } diff --git a/src/Core/Cache/SharedCompressedDocumentFileCache.php b/src/Core/Cache/SharedCompressedDocumentFileCache.php index e16ecea0..e7fc2ed5 100644 --- a/src/Core/Cache/SharedCompressedDocumentFileCache.php +++ b/src/Core/Cache/SharedCompressedDocumentFileCache.php @@ -15,12 +15,18 @@ final class SharedCompressedDocumentFileCache private array $cacheData = []; private array $usedKeys = []; + public function __construct( + private readonly Configuration $configuration + ) { + } + /** * @throws InvalidConfigurationParameterException */ - public function __construct( - private Configuration $configuration - ) { + public function reloadDataFromFile(): void + { + $this->usedKeys = []; + $this->cacheData = []; $this->cacheFileName = $this->configuration->getOutputDir() . '/' . self::FILE_NAME; if (!$this->configuration->useSharedCache()) { return; @@ -53,28 +59,33 @@ public function set(string $key, mixed $data): void $this->cacheData[$key] = $data; } - public function removeNotUsedKeys(): void - { - $this->cacheData = array_filter( - $this->cacheData, - fn(string $key) => array_key_exists($key, $this->usedKeys), - ARRAY_FILTER_USE_KEY - ); - } - /** * @throws InvalidConfigurationParameterException */ - public function saveChanges(): void + public function saveChanges(bool $clearUsedKeysCounter = true): void { $gitAttributesFile = $this->configuration->getOutputDir() . '/.gitattributes'; file_put_contents($gitAttributesFile, self::FILE_NAME . ' merge=ours'); if (!$this->configuration->useSharedCache()) { - if (file_exists($this->cacheFileName)) { - unlink($this->cacheFileName); - } + $this->removeFile(); return; } - file_put_contents($this->cacheFileName, base64_encode(gzcompress(serialize($this->cacheData)))); + $cacheData = array_filter( + $this->cacheData, + fn(string $key) => array_key_exists($key, $this->usedKeys), + ARRAY_FILTER_USE_KEY + ); + file_put_contents($this->cacheFileName, base64_encode(gzcompress(serialize($cacheData)))); + + if ($clearUsedKeysCounter) { + $this->usedKeys = []; + } + } + + public function removeFile(): void + { + if (file_exists($this->cacheFileName)) { + unlink($this->cacheFileName); + } } } diff --git a/src/Core/Cache/SourceLocatorCacheItemPool.php b/src/Core/Cache/SourceLocatorCacheItemPool.php deleted file mode 100644 index 2bf7a473..00000000 --- a/src/Core/Cache/SourceLocatorCacheItemPool.php +++ /dev/null @@ -1,74 +0,0 @@ -cacheItemPool = new FilesystemAdapter( - 'sourceLocator', - 604800, - $configuration->getCacheDir() - ); - } - - public function getItem(string $key): CacheItemInterface - { - return $this->cacheItemPool->getItem($key); - } - - public function getItems(array $keys = []): iterable - { - return $this->cacheItemPool->getItems($keys); - } - - public function hasItem(string $key): bool - { - return $this->cacheItemPool->hasItem($key); - } - - public function clear(): bool - { - return $this->cacheItemPool->clear(); - } - - public function deleteItem(string $key): bool - { - return $this->cacheItemPool->deleteItem($key); - } - - public function deleteItems(array $keys): bool - { - return $this->cacheItemPool->deleteItems($keys); - } - - public function save(CacheItemInterface $item): bool - { - return $this->cacheItemPool->save($item); - } - - public function saveDeferred(CacheItemInterface $item): bool - { - return $this->cacheItemPool->saveDeferred($item); - } - - public function commit(): bool - { - return $this->cacheItemPool->commit(); - } -} diff --git a/src/Core/Configuration/Configuration.php b/src/Core/Configuration/Configuration.php index 9b843924..610a7d61 100644 --- a/src/Core/Configuration/Configuration.php +++ b/src/Core/Configuration/Configuration.php @@ -210,20 +210,22 @@ public function getCacheDir(): ?string } $cacheDir = $this->parameterBag->validateAndGetStringValue(ConfigurationKey::CACHE_DIR); - $parentDir = dirname($cacheDir); - if (!is_dir($parentDir)) { - throw new InvalidConfigurationParameterException( - sprintf( - "`%s` cannot be created because parent directory `{$parentDir}` does not exist", - ConfigurationKey::CACHE_DIR - ) - ); - } - if (!file_exists($cacheDir)) { - $this->logger->notice("Creating `{$cacheDir}` directory"); - mkdir($cacheDir); + if ($cacheDir) { + $parentDir = dirname($cacheDir); + if (!is_dir($parentDir)) { + throw new InvalidConfigurationParameterException( + sprintf( + "`%s` cannot be created because parent directory `{$parentDir}` does not exist", + ConfigurationKey::CACHE_DIR + ) + ); + } + if (!file_exists($cacheDir)) { + $this->logger->notice("Creating `{$cacheDir}` directory"); + mkdir($cacheDir); + } + $cacheDir = realpath($cacheDir); } - $cacheDir = realpath($cacheDir); $this->localObjectCache->cacheMethodResult(__METHOD__, '', $cacheDir); return $cacheDir; } @@ -322,6 +324,20 @@ public function useSharedCache(): bool return $useSharedCache; } + /** + * @throws InvalidConfigurationParameterException + */ + public function renderWithFrontMatter(): bool + { + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, ''); + } catch (ObjectNotFoundException) { + } + $renderWithFrontMatter = $this->parameterBag->validateAndGetBooleanValue(ConfigurationKey::RENDER_WITH_FRONT_MATTER); + $this->localObjectCache->cacheMethodResult(__METHOD__, '', $renderWithFrontMatter); + return $renderWithFrontMatter; + } + /** * @throws InvalidConfigurationParameterException */ diff --git a/src/Core/Configuration/ConfigurationKey.php b/src/Core/Configuration/ConfigurationKey.php index 74f2314d..76715a14 100644 --- a/src/Core/Configuration/ConfigurationKey.php +++ b/src/Core/Configuration/ConfigurationKey.php @@ -14,6 +14,7 @@ final class ConfigurationKey public const PAGE_LINK_PROCESSOR = 'page_link_processor'; public const GIT_CLIENT_PATH = 'git_client_path'; public const USE_SHARED_CACHE = 'use_shared_cache'; + public const RENDER_WITH_FRONT_MATTER = 'render_with_front_matter'; public const CHECK_FILE_IN_GIT_BEFORE_CREATING_DOC = 'check_file_in_git_before_creating_doc'; public const SOURCE_LOCATORS = 'source_locators'; public const LANGUAGE_HANDLERS = 'language_handlers'; @@ -33,6 +34,7 @@ public static function all(): array self::PAGE_LINK_PROCESSOR, self::GIT_CLIENT_PATH, self::USE_SHARED_CACHE, + self::RENDER_WITH_FRONT_MATTER, self::CHECK_FILE_IN_GIT_BEFORE_CREATING_DOC, self::SOURCE_LOCATORS, self::LANGUAGE_HANDLERS, diff --git a/src/Core/Configuration/ConfigurationParameterBag.php b/src/Core/Configuration/ConfigurationParameterBag.php index 95a0eabc..08e8c793 100644 --- a/src/Core/Configuration/ConfigurationParameterBag.php +++ b/src/Core/Configuration/ConfigurationParameterBag.php @@ -186,7 +186,11 @@ public function validateAndGetClassValue( string $classInterfaceName ): object { $value = $this->get($parameterName); - $valueObject = $this->valueToClassTransformer->transform($value); + if (is_object($value)) { + $valueObject = $value; + } else { + $valueObject = $this->valueToClassTransformer->transform($value); + } if (is_null($valueObject)) { throw new InvalidConfigurationParameterException( "Configuration parameter `{$parameterName}` contains an incorrect value" @@ -219,7 +223,11 @@ public function validateAndGetClassListValue( throw new InvalidConfigurationParameterException("Parameter `{$parameterName}` must be an array"); } foreach ($values as $i => $value) { - $valueObject = $this->valueToClassTransformer->transform($value); + if (is_object($value)) { + $valueObject = $value; + } else { + $valueObject = $this->valueToClassTransformer->transform($value); + } if (is_null($valueObject)) { throw new InvalidConfigurationParameterException( "Configuration parameter `{$parameterName}[{$i}]` contains an incorrect value" @@ -235,6 +243,36 @@ public function validateAndGetClassListValue( return $preparedValues; } + /** + * @throws InvalidConfigurationParameterException + */ + public function validateAndGetStringListValue( + string $parameterName, + bool $associative = true, + bool $nullable = true + ): array { + $values = $this->get($parameterName); + if (is_null($values) && $nullable) { + $values = []; + } + if (!is_array($values)) { + throw new InvalidConfigurationParameterException("Parameter `{$parameterName}` must be an array"); + } + foreach ($values as $i => $value) { + if (($associative && !is_string($i)) || (!$associative && is_string($i))) { + throw new InvalidConfigurationParameterException( + "Configuration parameter `{$parameterName}[\"{$i}\"]` contains an incorrect key value" + ); + } + if (!is_string($value)) { + throw new InvalidConfigurationParameterException( + "Configuration parameter `{$parameterName}[{$i}]` contains an incorrect value" + ); + } + } + return $values; + } + /** * @throws InvalidConfigurationParameterException */ diff --git a/src/Core/Configuration/ReflectionApiConfig.php b/src/Core/Configuration/ReflectionApiConfig.php new file mode 100644 index 00000000..2b655991 --- /dev/null +++ b/src/Core/Configuration/ReflectionApiConfig.php @@ -0,0 +1,40 @@ +cacheDir; + } + + final public function setProjectRoot(string $projectRoot): void + { + $this->projectRoot = $projectRoot; + } + + final public function getProjectRoot(): string + { + return $this->projectRoot; + } + + final public function setCacheDir(?string $cacheDir): void + { + $this->cacheDir = $cacheDir; + } + + /** + * @return class-string + */ + abstract public function getLanguageHandlerClassName(): string; + + abstract public function toConfigArray(): array; +} diff --git a/src/Core/Configuration/defaultConfiguration.yaml b/src/Core/Configuration/defaultConfiguration.yaml index 190b6133..550dfb09 100644 --- a/src/Core/Configuration/defaultConfiguration.yaml +++ b/src/Core/Configuration/defaultConfiguration.yaml @@ -5,6 +5,7 @@ output_dir: "%project_root%/docs" # (string) Path to the directory where the fin cache_dir: '%WORKING_DIR%/.bumbleDocGenCache'# (string|null) Path to the directory where the documentation generator cache will be saved output_dir_base_url: "/docs" # (string) Basic part of url documentation. Used to form links in generated documents. git_client_path: "git" # (string) Path to git client +render_with_front_matter: false # (bool) Do not remove the front matter block from templates when creating documents check_file_in_git_before_creating_doc: true # (bool) Checking if a document exists in GIT before creating a document page_link_processor: # (PageLinkProcessorInterface) Link handler class on documentation pages class: \BumbleDocGen\Core\Renderer\PageLinkProcessor\BasePageLinkProcessor @@ -30,6 +31,7 @@ twig_filters: # (array) Filters that - class: \BumbleDocGen\Core\Renderer\Twig\Filter\TextToCodeBlock - class: \BumbleDocGen\Core\Renderer\Twig\Filter\TextToHeading - class: \BumbleDocGen\Core\Renderer\Twig\Filter\PregMatch + - class: \BumbleDocGen\Core\Renderer\Twig\Filter\Implode plugins: # (array|null) List of plugins - class: \BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\PageHtmlLinkerPlugin - class: \BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\PageLinkerPlugin diff --git a/src/Core/Logger/Handler/GenerationErrorsHandler.php b/src/Core/Logger/Handler/GenerationErrorsHandler.php index b21143af..84fcd2ad 100644 --- a/src/Core/Logger/Handler/GenerationErrorsHandler.php +++ b/src/Core/Logger/Handler/GenerationErrorsHandler.php @@ -6,21 +6,21 @@ use BumbleDocGen\Core\Renderer\Context\RendererContext; use Monolog\Handler\AbstractProcessingHandler; -use Monolog\Logger; +use Monolog\LogRecord; final class GenerationErrorsHandler extends AbstractProcessingHandler { private array $records = []; public function __construct( - private RendererContext $rendererContext, - $level = Logger::WARNING, + private readonly RendererContext $rendererContext, + $level = \Monolog\Level::Warning, bool $bubble = true ) { parent::__construct($level, $bubble); } - protected function write(array $record): void + protected function write(LogRecord $record): void { $initiator = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)[3] ?? []; $fileName = str_replace([ @@ -38,8 +38,8 @@ protected function write(array $record): void } $this->records[] = [ - "type" => $record['level_name'], - "msg" => $record['message'], + "type" => $record->level->getName(), + "msg" => $record->message, 'initiator' => $initiator, 'isRenderingError' => boolval($this->rendererContext->getCurrentTemplateFilePatch()), 'currentDocumentedEntityWrapper' => $this->rendererContext->getCurrentDocumentedEntityWrapper()?->getDocumentTransformableEntity()?->getName() @@ -55,4 +55,9 @@ public function addRecords(array $records): void { $this->records = array_merge($this->records, $records); } + + public function removeRecords(): void + { + $this->records = []; + } } diff --git a/src/Core/Parser/Entity/BaseEntityCollection.php b/src/Core/Parser/Entity/BaseEntityCollection.php index d1d18805..54e00df5 100644 --- a/src/Core/Parser/Entity/BaseEntityCollection.php +++ b/src/Core/Parser/Entity/BaseEntityCollection.php @@ -14,21 +14,41 @@ public function getIterator(): \Generator yield from $this->entities; } + /** + * Get an entity from a collection (only previously added) + * + * @api + */ public function get(string $objectName): ?EntityInterface { return $this->entities[$objectName] ?? null; } + /** + * Remove an entity from a collection + * + * @api + */ public function remove(string $objectName): void { unset($this->entities[$objectName]); } + /** + * Check if an entity has been added to the collection + * + * @api + */ public function has(string $objectName): bool { return array_key_exists($objectName, $this->entities); } + /** + * Check if the collection is empty or not + * + * @api + */ public function isEmpty(): bool { return empty($this->entities); diff --git a/src/Core/Parser/Entity/Cache/CacheableEntityInterface.php b/src/Core/Parser/Entity/Cache/CacheableEntityInterface.php index db46a416..ec4a68c4 100644 --- a/src/Core/Parser/Entity/Cache/CacheableEntityInterface.php +++ b/src/Core/Parser/Entity/Cache/CacheableEntityInterface.php @@ -4,19 +4,49 @@ namespace BumbleDocGen\Core\Parser\Entity\Cache; -interface CacheableEntityInterface -{ - public function getObjectId(): string; +use BumbleDocGen\Core\Parser\Entity\EntityInterface; +interface CacheableEntityInterface extends EntityInterface +{ + /** + * Get the cache key + * + * @internal + */ public function getCacheKey(): string; - public function entityCacheIsOutdated(): bool; - + /** + * Checking if the entity cache is out of date + * + * @internal + */ + public function isEntityCacheOutdated(): bool; + + /** + * Checking if the current entity file can be loaded + * + * @internal + */ public function isEntityFileCanBeLoad(): bool; + /** + * Checking if the local entity cache is out of date + * + * @internal + */ public function isEntityDataCacheOutdated(): bool; + /** + * Update entity dependency cache + * + * @internal + */ public function reloadEntityDependenciesCache(): array; + /** + * Delete current entity cache that was not used the last time documentation was generated + * + * @internal + */ public function removeNotUsedEntityDataCache(): void; } diff --git a/src/Core/Parser/Entity/Cache/CacheableEntityTrait.php b/src/Core/Parser/Entity/Cache/CacheableEntityTrait.php index f09b89fc..2af3d2cf 100644 --- a/src/Core/Parser/Entity/Cache/CacheableEntityTrait.php +++ b/src/Core/Parser/Entity/Cache/CacheableEntityTrait.php @@ -13,10 +13,13 @@ trait CacheableEntityTrait #[Inject] private EntityCacheStorageHelper $entityCacheStorageHelper; #[Inject] private Configuration $configuration; - private string $entityCacheVersion = 'v1'; + private string $entityCacheVersion = 'v2'; private string $entityCacheKey = ''; private bool $isCacheChanged = false; + /** + * @internal + */ public function getCacheKey(): string { if (!$this->entityCacheKey) { @@ -29,9 +32,14 @@ public function getCacheKey(): string return $this->entityCacheKey; } - abstract public function entityCacheIsOutdated(): bool; + /** + * @internal + */ + abstract public function isEntityCacheOutdated(): bool; /** + * @internal + * * @throws InvalidArgumentException */ protected function getEntityCacheValue(string $key): mixed @@ -40,6 +48,8 @@ protected function getEntityCacheValue(string $key): mixed } /** + * @internal + * * @throws InvalidArgumentException */ protected function hasEntityCacheValue(string $key): bool @@ -49,6 +59,8 @@ protected function hasEntityCacheValue(string $key): bool } /** + * @internal + * * @throws InvalidArgumentException */ protected function addEntityValueToCache(string $key, mixed $value, int $cacheExpiresAfter = 604800): void @@ -62,6 +74,9 @@ protected function addEntityValueToCache(string $key, mixed $value, int $cacheEx ); } + /** + * @internal + */ public function removeEntityValueFromCache(string $key): void { $this->isCacheChanged = true; @@ -72,6 +87,8 @@ public function removeEntityValueFromCache(string $key): void } /** + * @internal + * * @throws InvalidArgumentException */ public function isEntityDataCacheOutdated(): bool @@ -92,6 +109,8 @@ public function isEntityDataCacheOutdated(): bool } /** + * @internal + * * @throws InvalidArgumentException */ public function removeNotUsedEntityDataCache(): void diff --git a/src/Core/Parser/Entity/Cache/CacheableEntityWrapperFactory.php b/src/Core/Parser/Entity/Cache/CacheableEntityWrapperFactory.php index ac3c12ad..29491b54 100644 --- a/src/Core/Parser/Entity/Cache/CacheableEntityWrapperFactory.php +++ b/src/Core/Parser/Entity/Cache/CacheableEntityWrapperFactory.php @@ -11,7 +11,7 @@ final class CacheableEntityWrapperFactory { public function __construct( - private LocalObjectCache $localObjectCache + private readonly LocalObjectCache $localObjectCache ) { } @@ -23,6 +23,12 @@ public function createWrappedEntityClass(string $className, string $wrapperName) } $namespaceName = 'BumbleDocGen\\Core\\Parser\\Entity\\Cache'; + $entityWrapperClassName = "{$namespaceName}\\$wrapperName"; + + if (class_exists($entityWrapperClassName)) { + $this->localObjectCache->cacheMethodResult(__METHOD__, $wrapperName, $entityWrapperClassName); + return $entityWrapperClassName; + } $namespace = new \Nette\PhpGenerator\PhpNamespace($namespaceName); $class = $namespace->addClass($wrapperName); @@ -66,7 +72,6 @@ public function createWrappedEntityClass(string $className, string $wrapperName) } eval((string)$namespace); - $entityWrapperClassName = "{$namespaceName}\\$wrapperName"; $this->localObjectCache->cacheMethodResult(__METHOD__, $wrapperName, $entityWrapperClassName); return $entityWrapperClassName; } diff --git a/src/Core/Parser/Entity/Cache/CacheableEntityWrapperTrait.php b/src/Core/Parser/Entity/Cache/CacheableEntityWrapperTrait.php index 03bda662..40ddb172 100644 --- a/src/Core/Parser/Entity/Cache/CacheableEntityWrapperTrait.php +++ b/src/Core/Parser/Entity/Cache/CacheableEntityWrapperTrait.php @@ -39,7 +39,7 @@ final protected function getWrappedMethodResult( $funcArgs ); - if ($this->hasEntityCacheValue($cacheKey) && !$this->entityCacheIsOutdated()) { + if ($this->hasEntityCacheValue($cacheKey) && !$this->isEntityCacheOutdated()) { $methodReturnValue = $this->getEntityCacheValue($cacheKey); } else { $errorsBeforeGenerationCount = count($this->generationErrorsHandler->getRecords()); diff --git a/src/Core/Parser/Entity/CollectionGroupLoadEntitiesResult.php b/src/Core/Parser/Entity/CollectionGroupLoadEntitiesResult.php new file mode 100644 index 00000000..16463f8e --- /dev/null +++ b/src/Core/Parser/Entity/CollectionGroupLoadEntitiesResult.php @@ -0,0 +1,44 @@ +, CollectionLoadEntitiesResult> + */ + private array $collectionLoadEntitiesResults = []; + + public function addResult(string $collectionName, CollectionLoadEntitiesResult $collectionLoadEntitiesResult): void + { + $this->collectionLoadEntitiesResults[$collectionName] = $collectionLoadEntitiesResult; + } + + public function getSummary(): CollectionLoadEntitiesResult + { + $processedFilesCount = 0; + $processedEntitiesCount = 0; + $skippedEntitiesCount = 0; + $entitiesAddedByPluginsCount = 0; + $totalAddedEntities = 0; + foreach ($this->collectionLoadEntitiesResults as $collectionLoadEntitiesResult) { + $processedFilesCount += $collectionLoadEntitiesResult->getProcessedFilesCount(); + $processedEntitiesCount += $collectionLoadEntitiesResult->getProcessedEntitiesCount(); + $skippedEntitiesCount += $collectionLoadEntitiesResult->getSkippedEntitiesCount(); + $entitiesAddedByPluginsCount += $collectionLoadEntitiesResult->getEntitiesAddedByPluginsCount(); + $totalAddedEntities += $collectionLoadEntitiesResult->getTotalAddedEntities(); + } + + return new CollectionLoadEntitiesResult( + $processedFilesCount, + $processedEntitiesCount, + $skippedEntitiesCount, + $entitiesAddedByPluginsCount, + $totalAddedEntities + ); + } +} diff --git a/src/Core/Parser/Entity/CollectionLoadEntitiesResult.php b/src/Core/Parser/Entity/CollectionLoadEntitiesResult.php new file mode 100644 index 00000000..d0a14680 --- /dev/null +++ b/src/Core/Parser/Entity/CollectionLoadEntitiesResult.php @@ -0,0 +1,42 @@ +entitiesAddedByPluginsCount; + } + + public function getProcessedEntitiesCount(): int + { + return $this->processedEntitiesCount; + } + + public function getProcessedFilesCount(): int + { + return $this->processedFilesCount; + } + + public function getSkippedEntitiesCount(): int + { + return $this->skippedEntitiesCount; + } + + public function getTotalAddedEntities(): int + { + return $this->totalAddedEntities; + } +} diff --git a/src/Core/Parser/Entity/CollectionLogOperation/OperationsCollection.php b/src/Core/Parser/Entity/CollectionLogOperation/OperationsCollection.php index 82425637..ad349ac2 100644 --- a/src/Core/Parser/Entity/CollectionLogOperation/OperationsCollection.php +++ b/src/Core/Parser/Entity/CollectionLogOperation/OperationsCollection.php @@ -87,7 +87,7 @@ private function checkIsFoundEntitiesCacheOutdatedRecursive( foreach ($operationsCollection->operations as $operation) { if ($operation instanceof SingleEntitySearchOperation) { $entity = $operation->call($rootEntityCollection); - if (is_null($operation->getEntityName()) && (is_null($entity) || $entity->entityCacheIsOutdated())) { + if (is_null($operation->getEntityName()) && (is_null($entity) || $entity->isEntityCacheOutdated())) { continue; } if ($entity && !$entity::isEntityNameValid($entity?->getName())) { @@ -95,10 +95,11 @@ private function checkIsFoundEntitiesCacheOutdatedRecursive( } $entityName = $entity?->getName(); - $entityName = $entityName && $entity?->entityDataCanBeLoaded() ? $entityName : null; + $entityName = $entityName && $entity?->isEntityDataCanBeLoaded() ? $entityName : null; if ($operation->getEntityName() !== $entityName) { return true; - } elseif ($entity?->entityCacheIsOutdated() && $entity?->entityDataCanBeLoaded()) { + } + if ($entity?->isEntityCacheOutdated() && $entity?->isEntityDataCanBeLoaded()) { return true; } } elseif ($operation instanceof IterateEntitiesOperation) { @@ -108,7 +109,7 @@ private function checkIsFoundEntitiesCacheOutdatedRecursive( return true; } foreach ($entities as $entity) { - if (!array_key_exists($entity->getName(), $entitiesData) || $entity->entityCacheIsOutdated()) { + if (!array_key_exists($entity->getName(), $entitiesData) || $entity->isEntityCacheOutdated()) { return true; } } diff --git a/src/Core/Parser/Entity/CollectionLogOperation/SingleEntitySearchOperation.php b/src/Core/Parser/Entity/CollectionLogOperation/SingleEntitySearchOperation.php index ad8a17df..be2a1c4e 100644 --- a/src/Core/Parser/Entity/CollectionLogOperation/SingleEntitySearchOperation.php +++ b/src/Core/Parser/Entity/CollectionLogOperation/SingleEntitySearchOperation.php @@ -17,7 +17,7 @@ public function __construct( private array $args, ?RootEntityInterface $entity ) { - if ($entity?->entityDataCanBeLoaded()) { + if ($entity?->isEntityDataCanBeLoaded()) { $this->entityName = $entity->getObjectId(); } } diff --git a/src/Core/Parser/Entity/EntitiesLoaderProgressBarInterface.php b/src/Core/Parser/Entity/EntitiesLoaderProgressBarInterface.php new file mode 100644 index 00000000..33c5e2e6 --- /dev/null +++ b/src/Core/Parser/Entity/EntitiesLoaderProgressBarInterface.php @@ -0,0 +1,14 @@ +callerNameToSkipLogging = $backtrace[1]['function']; if ($onlyLoaded) { foreach ($clone->entities as $objectId => $rootEntity) { - if (!$rootEntity->entityDataCanBeLoaded()) { + if (!$rootEntity->isEntityDataCanBeLoaded()) { $clone->remove($objectId); } } diff --git a/src/Core/Parser/Entity/RootEntityCollection.php b/src/Core/Parser/Entity/RootEntityCollection.php index 9d0a45a9..24a04460 100644 --- a/src/Core/Parser/Entity/RootEntityCollection.php +++ b/src/Core/Parser/Entity/RootEntityCollection.php @@ -6,10 +6,15 @@ use BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface; use BumbleDocGen\Core\Parser\Entity\Cache\EntityCacheStorageHelper; +use BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; +use BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection; use DI\Attribute\Inject; use Psr\Cache\InvalidArgumentException; use Psr\Log\LoggerInterface; +/** + * @template T + */ abstract class RootEntityCollection extends BaseEntityCollection { #[Inject] private EntityCacheStorageHelper $entityCacheStorageHelper; @@ -18,19 +23,56 @@ abstract class RootEntityCollection extends BaseEntityCollection /** @var RootEntityInterface[] */ protected array $entities = []; + abstract public function loadEntitiesByConfiguration(?EntitiesLoaderProgressBarInterface $progressBar = null): CollectionLoadEntitiesResult; + + abstract public function loadEntities( + SourceLocatorsCollection $sourceLocatorsCollection, + ?ConditionInterface $filters = null, + ?EntitiesLoaderProgressBarInterface $progressBar = null + ): CollectionLoadEntitiesResult; + + /** + * Get collection name + * + * @api + */ + abstract public function getEntityCollectionName(): string; + + /** + * Get an entity from a collection (only previously added) + * + * @param class-string $objectName + * @return null|T + * + * @api + */ public function get(string $objectName): ?RootEntityInterface { return $this->entities[$objectName] ?? null; } - abstract public function getEntityCollectionName(): string; - /** + * Get an entity from the collection or create a new one if it has not yet been added + * * @warning The entity obtained as a result of executing this method may not be available for loading - * @see RootEntityInterface::entityDataCanBeLoaded() + * + * @see RootEntityInterface::isEntityDataCanBeLoaded() + * + * @param class-string $objectName + * + * @return T + * + * @api */ abstract public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): RootEntityInterface; + /** + * Find an entity in a collection + * + * @return null|T + * + * @api + */ abstract public function findEntity(string $search, bool $useUnsafeKeys = true): ?RootEntityInterface; /** @@ -38,12 +80,18 @@ abstract public function findEntity(string $search, bool $useUnsafeKeys = true): * @param string|null $defaultEntityName Entity name to use if the link does not contain a valid or existing entity name, * but only a cursor on an entity element * @param bool $useUnsafeKeys + * * @return array + * + * @internal + * * @todo return object instead array */ abstract public function getEntityLinkData(string $rawLink, ?string $defaultEntityName = null, bool $useUnsafeKeys = true): array; /** + * @internal + * * @throws InvalidArgumentException */ public function updateEntitiesCache(): void @@ -53,7 +101,7 @@ public function updateEntitiesCache(): void if (!is_a($entity, CacheableEntityInterface::class)) { continue; } - if ($entity->entityDataCanBeLoaded() && $entity->entityCacheIsOutdated()) { + if ($entity->isEntityDataCanBeLoaded() && $entity->isEntityCacheOutdated()) { $this->logger->info("Preparing {$entity->getName()} dependencies cache"); $entity->reloadEntityDependenciesCache(); } @@ -68,4 +116,25 @@ public function updateEntitiesCache(): void $this->entityCacheStorageHelper->saveCache(); } } + + /** + * Convert collection to array + * + * @return RootEntityInterface[] + * + * @api + */ + public function toArray(): array + { + return $this->entities; + } + + public function removeAllNotLoadedEntities(): void + { + foreach ($this->entities as $k => $entity) { + if (!$entity->isEntityDataCanBeLoaded()) { + unset($this->entities[$k]); + } + } + } } diff --git a/src/Core/Parser/Entity/RootEntityCollectionsGroup.php b/src/Core/Parser/Entity/RootEntityCollectionsGroup.php index eb1a9b48..305e7cc5 100644 --- a/src/Core/Parser/Entity/RootEntityCollectionsGroup.php +++ b/src/Core/Parser/Entity/RootEntityCollectionsGroup.php @@ -4,6 +4,7 @@ namespace BumbleDocGen\Core\Parser\Entity; +use BumbleDocGen\LanguageHandler\LanguageHandlersCollection; use Psr\Cache\InvalidArgumentException; final class RootEntityCollectionsGroup implements \IteratorAggregate @@ -18,6 +19,20 @@ public function getIterator(): \Generator yield from $this->rootEntityCollections; } + public function loadByLanguageHandlers( + LanguageHandlersCollection $languageHandlersCollection, + ?EntitiesLoaderProgressBarInterface $progressBar = null + ): CollectionGroupLoadEntitiesResult { + $collectionGroupLoadEntitiesResult = new CollectionGroupLoadEntitiesResult(); + foreach ($languageHandlersCollection as $languageHandler) { + $collection = $languageHandler->getEntityCollection(); + $loadResult = $collection->loadEntitiesByConfiguration($progressBar); + $collectionGroupLoadEntitiesResult->addResult($languageHandler::class, $loadResult); + $this->add($collection); + } + return $collectionGroupLoadEntitiesResult; + } + public function add(RootEntityCollection $rootEntityCollection): void { $this->rootEntityCollections[$rootEntityCollection->getEntityCollectionName()] = $rootEntityCollection; @@ -64,9 +79,9 @@ public function getOperationsLogWithoutDuplicates(): array return $operationsLog; } - public function isFoundEntitiesOperationsLogCacheOutdated(array $classEntityCollectionOperationsLog): bool + public function isFoundEntitiesOperationsLogCacheOutdated(array $entitiesCollectionOperationsLog): bool { - foreach ($classEntityCollectionOperationsLog as $collectionName => $operationsLog) { + foreach ($entitiesCollectionOperationsLog as $collectionName => $operationsLog) { $collection = $this->get($collectionName); if (!$collection || $operationsLog->isFoundEntitiesCacheOutdated($this->get($collectionName))) { return true; diff --git a/src/Core/Parser/Entity/RootEntityInterface.php b/src/Core/Parser/Entity/RootEntityInterface.php index babd4697..0ef42a80 100644 --- a/src/Core/Parser/Entity/RootEntityInterface.php +++ b/src/Core/Parser/Entity/RootEntityInterface.php @@ -10,6 +10,8 @@ */ interface RootEntityInterface extends EntityInterface { + public static function normalizeClassName(string $name): string; + /** * Check if entity name is valid */ @@ -18,7 +20,7 @@ public static function isEntityNameValid(string $entityName): bool; /** * Checking if it is possible to get the entity data */ - public function entityDataCanBeLoaded(): bool; + public function isEntityDataCanBeLoaded(): bool; /** * The entity is loaded from a third party library and should not be treated the same as a standard one diff --git a/src/Core/Parser/ProjectParser.php b/src/Core/Parser/ProjectParser.php index 1956bf68..2d3e6616 100644 --- a/src/Core/Parser/ProjectParser.php +++ b/src/Core/Parser/ProjectParser.php @@ -6,7 +6,12 @@ use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; +use BumbleDocGen\Core\Parser\Entity\CollectionGroupLoadEntitiesResult; +use BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface; +use BumbleDocGen\Core\Parser\Entity\RootEntityCollection; use BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; +use BumbleDocGen\Core\Plugin\Event\Parser\BeforeParsingProcess; +use BumbleDocGen\Core\Plugin\PluginEventDispatcher; use DI\DependencyException; use DI\NotFoundException; @@ -17,20 +22,44 @@ final class ProjectParser { public function __construct( private Configuration $configuration, + private PluginEventDispatcher $pluginEventDispatcher, private RootEntityCollectionsGroup $rootEntityCollectionsGroup ) { } /** + * @api + * * @throws DependencyException * @throws InvalidConfigurationParameterException * @throws NotFoundException */ - public function parse(): RootEntityCollectionsGroup + public function parse(?EntitiesLoaderProgressBarInterface $progressBar = null): CollectionGroupLoadEntitiesResult + { + $this->pluginEventDispatcher->dispatch(new BeforeParsingProcess()); + return $this->rootEntityCollectionsGroup->loadByLanguageHandlers( + $this->configuration->getLanguageHandlersCollection(), + $progressBar + ); + } + + public function getRootEntityCollectionsGroup(): RootEntityCollectionsGroup { - foreach ($this->configuration->getLanguageHandlersCollection() as $languageHandler) { - $this->rootEntityCollectionsGroup->add($languageHandler->getEntityCollection()); - } return $this->rootEntityCollectionsGroup; } + + /** + * @api + * + * @throws DependencyException + * @throws NotFoundException + * @throws InvalidConfigurationParameterException + */ + public function getEntityCollectionForPL(string $plHandlerClassName): ?RootEntityCollection + { + return $this->configuration + ->getLanguageHandlersCollection() + ->get($plHandlerClassName) + ?->getEntityCollection(); + } } diff --git a/src/Core/Plugin/CorePlugin/PageLinker/BasePageLinker.php b/src/Core/Plugin/CorePlugin/PageLinker/BasePageLinker.php index 6aa790d1..6db5f216 100644 --- a/src/Core/Plugin/CorePlugin/PageLinker/BasePageLinker.php +++ b/src/Core/Plugin/CorePlugin/PageLinker/BasePageLinker.php @@ -10,7 +10,6 @@ use BumbleDocGen\Core\Plugin\PluginInterface; use BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper; use BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; use DI\DependencyException; use DI\NotFoundException; use Psr\Log\LoggerInterface; @@ -67,7 +66,6 @@ public static function getSubscribedEvents(): array /** * @throws NotFoundException * @throws DependencyException - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ final public function beforeCreatingDocFile(BeforeCreatingDocFile $event): void diff --git a/src/Core/Plugin/Event/Parser/BeforeParsingProcess.php b/src/Core/Plugin/Event/Parser/BeforeParsingProcess.php new file mode 100644 index 00000000..c53ad3bc --- /dev/null +++ b/src/Core/Plugin/Event/Parser/BeforeParsingProcess.php @@ -0,0 +1,14 @@ +sourceLocatorsCollection; - } -} diff --git a/src/Core/Plugin/Event/Renderer/BeforeCreatingDocFile.php b/src/Core/Plugin/Event/Renderer/BeforeCreatingDocFile.php index 76bc1e89..d45b3d58 100644 --- a/src/Core/Plugin/Event/Renderer/BeforeCreatingDocFile.php +++ b/src/Core/Plugin/Event/Renderer/BeforeCreatingDocFile.php @@ -4,7 +4,6 @@ namespace BumbleDocGen\Core\Plugin\Event\Renderer; -use BumbleDocGen\Core\Renderer\Context\RendererContext; use Symfony\Contracts\EventDispatcher\Event; /** @@ -12,8 +11,10 @@ */ final class BeforeCreatingDocFile extends Event { - public function __construct(private string $content, private RendererContext $context) - { + public function __construct( + private string $content, + private string $outputFilePatch + ) { } public function getContent(): string @@ -26,8 +27,13 @@ public function setContent(string $content): void $this->content = $content; } - public function getContext(): RendererContext + public function getOutputFilePatch(): string + { + return $this->outputFilePatch; + } + + public function setOutputFilePatch(string $outputFilePatch): void { - return $this->context; + $this->outputFilePatch = $outputFilePatch; } } diff --git a/src/Core/Plugin/Event/Renderer/BeforeCreatingEntityDocFile.php b/src/Core/Plugin/Event/Renderer/BeforeCreatingEntityDocFile.php new file mode 100644 index 00000000..4f3391c5 --- /dev/null +++ b/src/Core/Plugin/Event/Renderer/BeforeCreatingEntityDocFile.php @@ -0,0 +1,36 @@ +content; + } + + public function setContent(string $content): void + { + $this->content = $content; + } + + public function getOutputFilePatch(): string + { + return $this->outputFilePatch; + } + + public function setOutputFilePatch(string $outputFilePatch): void + { + $this->outputFilePatch = $outputFilePatch; + } +} diff --git a/src/Core/Renderer/Breadcrumbs/BreadcrumbsHelper.php b/src/Core/Renderer/Breadcrumbs/BreadcrumbsHelper.php index 5dfd37ca..83059873 100644 --- a/src/Core/Renderer/Breadcrumbs/BreadcrumbsHelper.php +++ b/src/Core/Renderer/Breadcrumbs/BreadcrumbsHelper.php @@ -9,11 +9,14 @@ use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Plugin\Event\Renderer\OnGetProjectTemplatesDirs; +use BumbleDocGen\Core\Plugin\Event\Renderer\OnGetTemplatePathByRelativeDocPath; use BumbleDocGen\Core\Plugin\PluginEventDispatcher; use BumbleDocGen\Core\Renderer\TemplateFile; +use BumbleDocGen\Core\Renderer\Twig\MainTwigEnvironment; use DI\DependencyException; use DI\NotFoundException; use Symfony\Component\Finder\Finder; +use Symfony\Component\Yaml\Yaml; use Twig\Error\LoaderError; use Twig\Error\RuntimeError; use Twig\Error\SyntaxError; @@ -34,35 +37,14 @@ final class BreadcrumbsHelper * @param string $prevPageNameTemplate Index page for each child section */ public function __construct( - private Configuration $configuration, - private LocalObjectCache $localObjectCache, - private BreadcrumbsTwigEnvironment $breadcrumbsTwig, - private PluginEventDispatcher $pluginEventDispatcher, - private string $prevPageNameTemplate = self::DEFAULT_PREV_PAGE_NAME_TEMPLATE + private readonly Configuration $configuration, + private readonly LocalObjectCache $localObjectCache, + private readonly BreadcrumbsTwigEnvironment $breadcrumbsTwig, + private readonly PluginEventDispatcher $pluginEventDispatcher, + private readonly string $prevPageNameTemplate = self::DEFAULT_PREV_PAGE_NAME_TEMPLATE ) { } - /** - * @throws InvalidConfigurationParameterException - */ - private function loadTemplateContent(string $templateName): string - { - $filePath = TemplateFile::getTemplatePathByRelativeDocPath( - $templateName, - $this->configuration, - $this->pluginEventDispatcher - ); - - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $filePath); - } catch (ObjectNotFoundException) { - } - - $templateContent = file_get_contents($filePath) ?: ''; - $this->localObjectCache->cacheMethodResult(__METHOD__, $filePath, $templateContent); - return $templateContent; - } - /** * @throws NotFoundException * @throws DependencyException @@ -74,10 +56,9 @@ private function getPrevPage(string $templateName): ?string return $this->localObjectCache->getMethodCachedResult(__METHOD__, $templateName); } catch (ObjectNotFoundException) { } - $code = $this->loadTemplateContent($templateName); - if (preg_match_all('/({%)( ?)(set)( )(prevPage)([ =]+)([\'"])(.*)(\'|")( %})/', $code, $matches)) { - $prevPageKey = array_reverse($matches[8])[0]; - $prevPage = $this->getPageDocFileByKey($prevPageKey); + $frontMatter = $this->getTemplateFrontMatter($templateName); + if (array_key_exists('prevPage', $frontMatter) && $frontMatter['prevPage']) { + $prevPage = $this->getPageDocFileByKey($frontMatter['prevPage']); if ($prevPage) { $this->localObjectCache->cacheMethodResult(__METHOD__, $templateName, $prevPage); return $prevPage; @@ -120,13 +101,16 @@ public function getNearestIndexFile(string $templateName): string */ private function getFindIndexFileByRelativePath(string $relativePath): ?string { + $event = $this->pluginEventDispatcher->dispatch(new OnGetTemplatePathByRelativeDocPath($relativePath)); + $path = $event->getCustomTemplateFilePath() ?: $this->configuration->getTemplatesDir() . '/' . $relativePath; + $finder = Finder::create() ->name('*.twig') ->ignoreVCS(true) ->ignoreDotFiles(true) ->ignoreUnreadableDirs() ->depth(0) - ->in($this->configuration->getTemplatesDir() . '/' . $relativePath); + ->in($path); $indexFile = null; foreach ($finder->files() as $file) { @@ -145,19 +129,17 @@ private function getFindIndexFileByRelativePath(string $relativePath): ?string * * @throws InvalidConfigurationParameterException * @example - * // variable in template: - * // {% set title = 'Some template title' %} + * # Front matter in template: + * # --- + * # title: Some template title + * # --- * * $breadcrumbsHelper->getTemplateTitle() == 'Some template title'; // is true */ public function getTemplateTitle(string $templateName): string { - $code = $this->loadTemplateContent($templateName); - if (preg_match_all('/({%)( ?)(set)( )(title)([ =]+)([\'"])(.*)(\'|")( %})/', $code, $matches)) { - return array_reverse($matches[8])[0]; - } - - return pathinfo($templateName, PATHINFO_FILENAME); + $frontMatter = $this->getTemplateFrontMatter($templateName); + return $frontMatter['title'] ?? pathinfo($templateName, PATHINFO_FILENAME); } /** @@ -165,12 +147,35 @@ public function getTemplateTitle(string $templateName): string */ public function getTemplateLinkKey(string $templateName): ?string { - $code = $this->loadTemplateContent($templateName); - if (preg_match_all('/({%)( ?)(set)( )(linkKey)([ =]+)([\'"])(.*)(\'|")( %})/', $code, $matches)) { - return array_reverse($matches[8])[0]; + $frontMatter = $this->getTemplateFrontMatter($templateName); + return $frontMatter['linkKey'] ?? null; + } + + /** + * @throws InvalidConfigurationParameterException + */ + public function getTemplateFrontMatter(string $templateName): array + { + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $templateName); + } catch (ObjectNotFoundException) { + } + + $filePath = TemplateFile::getTemplatePathByRelativeDocPath( + $templateName, + $this->configuration, + $this->pluginEventDispatcher + ); + $code = file_get_contents($filePath) ?: ''; + + $frontMatter = []; + if (preg_match('/^---([^-]+)(---)/', $code)) { + $frontMatterBlock = explode('---', $code)[1]; + $frontMatter = Yaml::parse($frontMatterBlock); } - return null; + $this->localObjectCache->cacheMethodResult(__METHOD__, $templateName, $frontMatter); + return $frontMatter; } /** @@ -283,6 +288,9 @@ public function getAllPageLinks(): array $addLinkKey($docFilePatch, $value); $addLinkKey($url, $value); $addLinkKey($title, $value); + $templateFileName = array_reverse(explode(DIRECTORY_SEPARATOR, $filePatch))[0]; + $addLinkKey($templateFileName, $value); + $addLinkKey(rtrim($templateFileName, '.twig'), $value); $linkKey = $this->getTemplateLinkKey($filePatch); if ($linkKey) { $addLinkKey($linkKey, $value); diff --git a/src/Core/Renderer/Context/Dependency/FileDependency.php b/src/Core/Renderer/Context/Dependency/FileDependency.php index f1a1e3c8..be177ce8 100644 --- a/src/Core/Renderer/Context/Dependency/FileDependency.php +++ b/src/Core/Renderer/Context/Dependency/FileDependency.php @@ -6,7 +6,6 @@ use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Renderer\RendererHelper; -use Roave\BetterReflection\Util\FileHelper; final class FileDependency implements RendererDependencyInterface { diff --git a/src/Core/Renderer/Context/DocumentTransformableEntityInterface.php b/src/Core/Renderer/Context/DocumentTransformableEntityInterface.php index 4032e497..a964b24e 100644 --- a/src/Core/Renderer/Context/DocumentTransformableEntityInterface.php +++ b/src/Core/Renderer/Context/DocumentTransformableEntityInterface.php @@ -16,11 +16,11 @@ public function getRootEntityCollection(): RootEntityCollection; public function getName(): string; - public function documentCreationAllowed(): bool; + public function isDocumentCreationAllowed(): bool; public function getShortName(): string; - public function entityCacheIsOutdated(): bool; + public function isEntityCacheOutdated(): bool; public function getDocRender(): EntityDocRendererInterface; diff --git a/src/Core/Renderer/Renderer.php b/src/Core/Renderer/Renderer.php index 5fa7c683..2d8dfd8c 100644 --- a/src/Core/Renderer/Renderer.php +++ b/src/Core/Renderer/Renderer.php @@ -10,14 +10,13 @@ use BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; use BumbleDocGen\Core\Plugin\Event\Renderer\AfterRenderingEntities; use BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile; +use BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingEntityDocFile; use BumbleDocGen\Core\Plugin\Event\Renderer\BeforeRenderingDocFiles; use BumbleDocGen\Core\Plugin\Event\Renderer\BeforeRenderingEntities; use BumbleDocGen\Core\Plugin\PluginEventDispatcher; use BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper; use BumbleDocGen\Core\Renderer\Context\RendererContext; use BumbleDocGen\Core\Renderer\Twig\MainTwigEnvironment; -use DI\DependencyException; -use DI\NotFoundException; use Psr\Cache\InvalidArgumentException; use Psr\Log\LoggerInterface; use Symfony\Component\Filesystem\Filesystem; @@ -34,15 +33,15 @@ final class Renderer { public function __construct( - private Configuration $configuration, - private RootEntityCollectionsGroup $rootEntityCollectionsGroup, - private PluginEventDispatcher $pluginEventDispatcher, - private RendererContext $rendererContext, - private MainTwigEnvironment $twig, - private RendererIteratorFactory $renderIteratorFactory, - private SharedCompressedDocumentFileCache $sharedCompressedDocumentFileCache, - private Filesystem $fs, - private LoggerInterface $logger + private readonly Configuration $configuration, + private readonly RootEntityCollectionsGroup $rootEntityCollectionsGroup, + private readonly PluginEventDispatcher $pluginEventDispatcher, + private readonly RendererContext $rendererContext, + private readonly MainTwigEnvironment $twig, + private readonly RendererIteratorFactory $renderIteratorFactory, + private readonly SharedCompressedDocumentFileCache $sharedCompressedDocumentFileCache, + private readonly Filesystem $fs, + private readonly LoggerInterface $logger ) { } @@ -52,13 +51,13 @@ public function __construct( * @throws InvalidArgumentException * @throws RuntimeError * @throws LoaderError - * @throws DependencyException * @throws SyntaxError - * @throws NotFoundException * @throws InvalidConfigurationParameterException */ public function run(): void { + $this->sharedCompressedDocumentFileCache->reloadDataFromFile(); + $this->twig->reloadTemplates(); $outputDir = $this->configuration->getOutputDir(); $templateParams = []; @@ -69,18 +68,20 @@ public function run(): void $this->pluginEventDispatcher->dispatch(new BeforeRenderingDocFiles()); foreach ($this->renderIteratorFactory->getTemplatesWithOutdatedCache() as $templateFile) { + $filePatch = "{$outputDir}{$templateFile->getRelativeDocPath()}"; if ($templateFile->isTemplate()) { $this->rendererContext->setCurrentTemplateFilePatch($templateFile->getRelativeTemplatePath()); $content = $this->twig->render($templateFile->getRelativeTemplatePath(), $templateParams); - $content = $this->pluginEventDispatcher->dispatch( - new BeforeCreatingDocFile($content, $this->rendererContext) - )->getContent(); + $handledEvent = $this->pluginEventDispatcher->dispatch( + new BeforeCreatingDocFile($content, $filePatch) + ); + $content = $handledEvent->getContent(); + $filePatch = $handledEvent->getOutputFilePatch(); } else { $content = file_get_contents($templateFile->getRealPath()); } - $filePatch = "{$outputDir}{$templateFile->getRelativeDocPath()}"; $newDirName = dirname($filePatch); if (!is_dir($newDirName)) { $this->fs->mkdir($newDirName, 0755); @@ -104,8 +105,13 @@ public function run(): void if (!is_dir($newDirName)) { $this->fs->mkdir($newDirName, 0755); } - // tmp hack to fix gitHub pages - $this->fs->dumpFile($filePatch, "\n{$content}\n"); + $handledEvent = $this->pluginEventDispatcher->dispatch( + new BeforeCreatingEntityDocFile($content, $filePatch) + ); + + $content = $handledEvent->getContent(); + $filePatch = $handledEvent->getOutputFilePatch(); + $this->fs->dumpFile($filePatch, $content); $this->logger->info("Saving `{$filePatch}`"); } @@ -121,7 +127,7 @@ public function run(): void } $this->rootEntityCollectionsGroup->updateAllEntitiesCache(); - $this->sharedCompressedDocumentFileCache->removeNotUsedKeys(); $this->sharedCompressedDocumentFileCache->saveChanges(); + $this->renderIteratorFactory->clearCounters(); } } diff --git a/src/Core/Renderer/RendererIteratorFactory.php b/src/Core/Renderer/RendererIteratorFactory.php index 61a176f7..c4933e70 100644 --- a/src/Core/Renderer/RendererIteratorFactory.php +++ b/src/Core/Renderer/RendererIteratorFactory.php @@ -9,10 +9,10 @@ use BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache; use BumbleDocGen\Core\Cache\SharedCompressedDocumentFileCache; use BumbleDocGen\Core\Configuration\Configuration; -use BumbleDocGen\Core\Configuration\ConfigurationParameterBag; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler; use BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; +use BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingEntityDocFile; use BumbleDocGen\Core\Plugin\Event\Renderer\OnGetProjectTemplatesDirs; use BumbleDocGen\Core\Plugin\PluginEventDispatcher; use BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyFactory; @@ -30,20 +30,19 @@ final class RendererIteratorFactory private array $renderedFileNames = []; public function __construct( - private RendererContext $rendererContext, - private RootEntityCollectionsGroup $rootEntityCollectionsGroup, - private DocumentedEntityWrappersCollection $documentedEntityWrappersCollection, - private Configuration $configuration, - private ConfigurationParameterBag $configurationParameterBag, - private SharedCompressedDocumentFileCache $sharedCompressedDocumentFileCache, + private readonly RendererContext $rendererContext, + private readonly RootEntityCollectionsGroup $rootEntityCollectionsGroup, + private readonly DocumentedEntityWrappersCollection $documentedEntityWrappersCollection, + private readonly Configuration $configuration, + private readonly SharedCompressedDocumentFileCache $sharedCompressedDocumentFileCache, private RendererHelper $rendererHelper, - private RendererDependencyFactory $dependencyFactory, - private LocalObjectCache $localObjectCache, - private ProgressBarFactory $progressBarFactory, - private PluginEventDispatcher $pluginEventDispatcher, - private OutputStyle $io, - private Logger $logger, - private GenerationErrorsHandler $generationErrorsHandler, + private readonly RendererDependencyFactory $dependencyFactory, + private readonly LocalObjectCache $localObjectCache, + private readonly ProgressBarFactory $progressBarFactory, + private readonly PluginEventDispatcher $pluginEventDispatcher, + private readonly OutputStyle $io, + private readonly Logger $logger, + private readonly GenerationErrorsHandler $generationErrorsHandler, ) { } @@ -149,7 +148,7 @@ public function getDocumentedEntityWrappersWithOutdatedCache(): \Generator $skippedCount = 0; foreach ($pb->iterate($this->documentedEntityWrappersCollection) as $entityWrapper) { $pb->setStepDescription("Processing `{$entityWrapper->getEntityName()}` entity"); - if (!$entityWrapper->getDocumentTransformableEntity()->entityDataCanBeLoaded()) { + if (!$entityWrapper->getDocumentTransformableEntity()->isEntityDataCanBeLoaded()) { continue; } @@ -167,7 +166,7 @@ public function getDocumentedEntityWrappersWithOutdatedCache(): \Generator !$this->isGeneratedEntityDocumentExists($entityWrapper) || $this->isInternalCachingVersionChanged() || $this->isConfigurationVersionChanged() || - $entityWrapper->getDocumentTransformableEntity()->entityCacheIsOutdated() || + $entityWrapper->getDocumentTransformableEntity()->isEntityCacheOutdated() || $this->isFilesDependenciesCacheOutdated($filesDependenciesKey) || $this->isEntityRelationsCacheOutdated($entityWrapper) || $this->isEntitiesOperationsLogCacheOutdated($entityWrapper->getEntityName()) @@ -270,10 +269,11 @@ private function isInternalCachingVersionChanged(): bool */ private function markFileNameAsRendered(string $docFileName): void { - $docFileName = str_replace([ - '.twig', - $this->configuration->getOutputDir() - ], '', $docFileName); + $docFileName = str_replace('.twig', '', $docFileName); + $handledEvent = $this->pluginEventDispatcher->dispatch( + new BeforeCreatingEntityDocFile('', $docFileName) + ); + $docFileName = str_replace($this->configuration->getOutputDir(), '', $handledEvent->getOutputFilePatch()); $this->renderedFileNames[$docFileName] = $docFileName; } @@ -358,6 +358,9 @@ private function isFilesDependenciesCacheOutdated(string $templateFileName): boo return false; } + /** + * @throws InvalidConfigurationParameterException + */ private function moveCachedDataToCurrentData(string $templateFileName, ?string $entityName = null): void { $cachedEntitiesRelations = $this->sharedCompressedDocumentFileCache->get('entities_relations', []); @@ -393,4 +396,9 @@ private function getFilesDependenciesCacheKey(string $key): string { return "files_dependencies_{$key}"; } + + public function clearCounters(): void + { + $this->renderedFileNames = []; + } } diff --git a/src/Core/Renderer/Twig/Filter/Implode.php b/src/Core/Renderer/Twig/Filter/Implode.php new file mode 100644 index 00000000..33a91fb2 --- /dev/null +++ b/src/Core/Renderer/Twig/Filter/Implode.php @@ -0,0 +1,31 @@ +rendererHelper->getPreloadResourceLink($type); if ($preloadResourceLink) { + if ($useShortLinkVersion) { + $type = array_reverse(explode('\\', $type))[0]; + } $preparedTypes[] = "{$type}"; continue; } try { $entityOfLink = $rootEntityCollection->getLoadedOrCreateNew($type); - if (!$entityOfLink->isExternalLibraryEntity() && $entityOfLink->entityDataCanBeLoaded()) { + if (!$entityOfLink->isExternalLibraryEntity() && $entityOfLink->isEntityDataCanBeLoaded()) { if ($entityOfLink->getAbsoluteFileName()) { $link = $getDocumentedEntityUrlFunction($rootEntityCollection, $type, '', $createDocument); diff --git a/src/Core/Renderer/Twig/FrontMatterLoader.php b/src/Core/Renderer/Twig/FrontMatterLoader.php new file mode 100644 index 00000000..99b96290 --- /dev/null +++ b/src/Core/Renderer/Twig/FrontMatterLoader.php @@ -0,0 +1,60 @@ +loader->getSourceContext($name); + $code = $source->getCode(); + $data = $this->breadcrumbsHelper->getTemplateFrontMatter($name); + if ($data) { + $vars = ''; + foreach ($data as $name => $val) { + $val = (string)json_encode($val, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + $vars .= "{% set {$name} = {$val} %}"; + } + $code = preg_replace( + '/^---([^-]+)(---)/', + $this->removeFrontMatterFromTemplate ? $vars : "$0\n{$vars}", + $code + ); + } + return new Source($code, $source->getName(), $source->getPath()); + } + + public function getCacheKey(string $name): string + { + return $this->loader->getCacheKey($name); + } + + public function isFresh(string $name, int $time): bool + { + return $this->loader->isFresh($name, $time); + } + + public function exists(string $name): bool + { + return $this->loader->exists($name); + } +} diff --git a/src/Core/Renderer/Twig/Function/DrawDocumentedEntityLink.php b/src/Core/Renderer/Twig/Function/DrawDocumentedEntityLink.php index 35a4e3ee..88eec3a2 100644 --- a/src/Core/Renderer/Twig/Function/DrawDocumentedEntityLink.php +++ b/src/Core/Renderer/Twig/Function/DrawDocumentedEntityLink.php @@ -6,7 +6,6 @@ use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\RootEntityInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; use DI\DependencyException; use DI\NotFoundException; @@ -45,7 +44,6 @@ public static function getOptions(): array * @return string Entity document HTML link * * @throws NotFoundException - * @throws ReflectionException * @throws DependencyException * @throws InvalidConfigurationParameterException */ diff --git a/src/Core/Renderer/Twig/Function/GeneratePageBreadcrumbs.php b/src/Core/Renderer/Twig/Function/GeneratePageBreadcrumbs.php index da2aa43f..4b499068 100644 --- a/src/Core/Renderer/Twig/Function/GeneratePageBreadcrumbs.php +++ b/src/Core/Renderer/Twig/Function/GeneratePageBreadcrumbs.php @@ -69,8 +69,8 @@ public function __invoke( foreach ($templatesBreadcrumbs as $templateBreadcrumb) { $fileDependency = $this->dependencyFactory->createFileDependency( filePath: $templateBreadcrumb['template'], - contentFilterRegex: '/({%)( ?)(set)( )(title)([ =]+)([\'"])(.*)(\'|")( %})/', - matchIndex: 8 + contentFilterRegex: '/^---([^-]+)(---)/', + matchIndex: 1 ); $this->rendererContext->addDependency($fileDependency); } diff --git a/src/Core/Renderer/Twig/Function/GetDocumentedEntityUrl.php b/src/Core/Renderer/Twig/Function/GetDocumentedEntityUrl.php index 1155b666..925b6e5f 100644 --- a/src/Core/Renderer/Twig/Function/GetDocumentedEntityUrl.php +++ b/src/Core/Renderer/Twig/Function/GetDocumentedEntityUrl.php @@ -12,7 +12,6 @@ use BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrappersCollection; use BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface; use BumbleDocGen\Core\Renderer\RendererHelper; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; use DI\DependencyException; use DI\NotFoundException; use Monolog\Logger; @@ -26,13 +25,13 @@ * @see DocumentedEntityWrappersCollection * @see RendererContext::$entityWrappersCollection * - * @example {{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} + * @example {{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', 'getFunctions') }} * The function returns a reference to the documented entity, anchored to the getFunctions method * - * @example {{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} + * @example {{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension') }} * The function returns a reference to the documented entity MainExtension * - * @example {{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} + * @example {{ getDocumentedEntityUrl(phpEntities, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} * The function returns a link to the file MainExtension */ final class GetDocumentedEntityUrl implements CustomFunctionInterface @@ -73,7 +72,6 @@ public static function getOptions(): array * @throws DependencyException * @throws InvalidConfigurationParameterException * @throws NotFoundException - * @throws ReflectionException */ public function __invoke(RootEntityCollection $rootEntityCollection, string $entityName, string $cursor = '', bool $createDocument = true): string { @@ -85,8 +83,8 @@ public function __invoke(RootEntityCollection $rootEntityCollection, string $ent return $preloadResourceLink; } $entity = $rootEntityCollection->getLoadedOrCreateNew($entityName); - if ($entity->entityDataCanBeLoaded()) { - if (!$entity->documentCreationAllowed()) { + if ($entity->isEntityDataCanBeLoaded()) { + if (!$entity->isDocumentCreationAllowed()) { return self::DEFAULT_URL; } elseif ($createDocument && is_a($entity, DocumentTransformableEntityInterface::class)) { $documentedEntity = $this->documentedEntityWrappersCollection->createAndAddDocumentedEntityWrapper($entity); diff --git a/src/Core/Renderer/Twig/Function/PrintEntityCollectionAsList.php b/src/Core/Renderer/Twig/Function/PrintEntityCollectionAsList.php index d97dd85a..6b0a70ed 100644 --- a/src/Core/Renderer/Twig/Function/PrintEntityCollectionAsList.php +++ b/src/Core/Renderer/Twig/Function/PrintEntityCollectionAsList.php @@ -12,10 +12,10 @@ * * @note This function initiates the creation of documents for the displayed entities * - * @example {{ printEntityCollectionAsList(phpClassEntityCollection.filterByInterfaces(['ScriptFramework\\ScriptInterface', 'ScriptFramework\\TestScriptInterface'])) }} + * @example {{ printEntityCollectionAsList(phpEntities.filterByInterfaces(['ScriptFramework\\ScriptInterface', 'ScriptFramework\\TestScriptInterface'])) }} * The function will output a list of PHP classes that match the ScriptFramework\ScriptInterface and ScriptFramework\TestScriptInterface interfaces * - * @example {{ printEntityCollectionAsList(phpClassEntityCollection) }} + * @example {{ printEntityCollectionAsList(phpEntities) }} * The function will list all documented PHP classes */ final class PrintEntityCollectionAsList implements CustomFunctionInterface diff --git a/src/Core/Renderer/Twig/MainExtension.php b/src/Core/Renderer/Twig/MainExtension.php index 5ab249e9..39b95999 100644 --- a/src/Core/Renderer/Twig/MainExtension.php +++ b/src/Core/Renderer/Twig/MainExtension.php @@ -11,6 +11,8 @@ use BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection; use BumbleDocGen\LanguageHandler\LanguageHandlerInterface; use BumbleDocGen\LanguageHandler\LanguageHandlersCollection; +use DI\DependencyException; +use DI\NotFoundException; /** * This is an extension that is used to generate documents from templates @@ -21,18 +23,22 @@ final class MainExtension extends \Twig\Extension\AbstractExtension private CustomFiltersCollection $filters; /** + * @throws NotFoundException + * @throws DependencyException * @throws InvalidConfigurationParameterException */ public function __construct( - private RendererContext $context, - private Configuration $configuration + private readonly RendererContext $context, + private readonly Configuration $configuration ) { $this->setDefaultFunctions(); $this->setDefaultFilters(); } /** + * @throws DependencyException * @throws InvalidConfigurationParameterException + * @throws NotFoundException */ public function getLanguageHandlersCollection(): LanguageHandlersCollection { @@ -40,6 +46,8 @@ public function getLanguageHandlersCollection(): LanguageHandlersCollection } /** + * @throws NotFoundException + * @throws DependencyException * @throws InvalidConfigurationParameterException */ public function setDefaultFunctions(): void @@ -54,6 +62,8 @@ public function setDefaultFunctions(): void } /** + * @throws NotFoundException + * @throws DependencyException * @throws InvalidConfigurationParameterException */ public function setDefaultFilters(): void diff --git a/src/Core/Renderer/Twig/MainTwigEnvironment.php b/src/Core/Renderer/Twig/MainTwigEnvironment.php index b57f5e0d..e691f8f9 100644 --- a/src/Core/Renderer/Twig/MainTwigEnvironment.php +++ b/src/Core/Renderer/Twig/MainTwigEnvironment.php @@ -8,6 +8,7 @@ use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Plugin\Event\Renderer\OnGetProjectTemplatesDirs; use BumbleDocGen\Core\Plugin\PluginEventDispatcher; +use BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper; use Twig\Environment; use Twig\Error\LoaderError; use Twig\Error\RuntimeError; @@ -16,13 +17,18 @@ final class MainTwigEnvironment { + public const TMP_TEMPLATE_PREFIX = '~bumbleDocGen'; + private Environment $twig; private bool $isEnvLoaded = false; + private ?string $twigTemplatePrefixKey = null; + private bool $prefixChanged = false; public function __construct( - private Configuration $configuration, - private MainExtension $mainExtension, - private PluginEventDispatcher $pluginEventDispatcher, + private readonly Configuration $configuration, + private readonly MainExtension $mainExtension, + private readonly PluginEventDispatcher $pluginEventDispatcher, + private readonly BreadcrumbsHelper $breadcrumbsHelper ) { } @@ -35,13 +41,27 @@ private function loadMainTwigEnvironment(): void $templatesDir = $this->configuration->getTemplatesDir(); $event = $this->pluginEventDispatcher->dispatch(new OnGetProjectTemplatesDirs([$templatesDir])); $templatesDirs = $event->getTemplatesDirs(); - $loader = new FilesystemLoader($templatesDirs); - $this->twig = new Environment($loader); + $removeFrontMatterFromTemplate = !$this->configuration->renderWithFrontMatter(); + $loader = new FrontMatterLoader( + new FilesystemLoader($templatesDirs), + $this->breadcrumbsHelper, + $removeFrontMatterFromTemplate + ); + $this->twig = new Environment($loader, ['auto_reload' => true, 'cache' => false]); $this->twig->addExtension($this->mainExtension); $this->isEnvLoaded = true; } } + /** + * @internal + */ + public function reloadTemplates(): void + { + $this->twigTemplatePrefixKey = uniqid(); + $this->prefixChanged = true; + } + /** * @throws SyntaxError * @throws RuntimeError @@ -51,6 +71,13 @@ private function loadMainTwigEnvironment(): void public function render($name, array $context = []): string { $this->loadMainTwigEnvironment(); + if ($this->twigTemplatePrefixKey && $this->prefixChanged) { + $this->prefixChanged = false; + $reflection = new \ReflectionClass($this->twig); + $reflectionProperty = $reflection->getProperty('templateClassPrefix'); + $reflectionProperty->setValue($this->twig, "__TwigTemplate_" . md5($this->twigTemplatePrefixKey)); + } + return $this->twig->render($name, $context); } } diff --git a/src/DocGenerator.php b/src/DocGenerator.php index ac55e76a..65ff92c4 100644 --- a/src/DocGenerator.php +++ b/src/DocGenerator.php @@ -7,19 +7,25 @@ use BumbleDocGen\AI\Generators\DocBlocksGenerator; use BumbleDocGen\AI\Generators\ReadmeTemplateGenerator; use BumbleDocGen\AI\ProviderInterface; +use BumbleDocGen\Console\ProgressBar\ProgressBarFactory; +use BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache; +use BumbleDocGen\Core\Cache\SharedCompressedDocumentFileCache; use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\ConfigurationKey; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler; use BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; use BumbleDocGen\Core\Parser\ProjectParser; +use BumbleDocGen\Core\Plugin\Event\Renderer\OnGetProjectTemplatesDirs; use BumbleDocGen\Core\Plugin\PluginEventDispatcher; +use BumbleDocGen\Core\Plugin\PluginInterface; use BumbleDocGen\Core\Renderer\Renderer; use BumbleDocGen\Core\Renderer\Twig\Filter\AddIndentFromLeft; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\Core\Renderer\Twig\MainTwigEnvironment; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; +use DI\Container; use DI\DependencyException; use DI\NotFoundException; use Exception; @@ -30,7 +36,6 @@ use Symfony\Component\Console\Helper\Helper; use Symfony\Component\Console\Helper\TableSeparator; use Symfony\Component\Console\Style\OutputStyle; -use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Finder\Finder; use function BumbleDocGen\Core\get_class_short; @@ -40,7 +45,7 @@ */ final class DocGenerator { - public const VERSION = '1.6.0'; + public const VERSION = '2.0.0'; public const LOG_FILE_NAME = 'last_run.log'; /** @@ -49,16 +54,19 @@ final class DocGenerator * @throws NotFoundException */ public function __construct( - private Filesystem $fs, - private OutputStyle $io, - private Configuration $configuration, - PluginEventDispatcher $pluginEventDispatcher, - private ProjectParser $parser, - private ParserHelper $parserHelper, - private Renderer $renderer, - private GenerationErrorsHandler $generationErrorsHandler, - private RootEntityCollectionsGroup $rootEntityCollectionsGroup, - private Logger $logger + private readonly OutputStyle $io, + private readonly Configuration $configuration, + private readonly PluginEventDispatcher $pluginEventDispatcher, + private readonly ProjectParser $parser, + private readonly ParserHelper $parserHelper, + private readonly Renderer $renderer, + private readonly GenerationErrorsHandler $generationErrorsHandler, + private readonly RootEntityCollectionsGroup $rootEntityCollectionsGroup, + private readonly ProgressBarFactory $progressBarFactory, + private readonly Container $diContainer, + private readonly SharedCompressedDocumentFileCache $sharedCompressedDocumentFileCache, + private readonly LocalObjectCache $localObjectCache, + private readonly Logger $logger ) { if (file_exists(self::LOG_FILE_NAME)) { unlink(self::LOG_FILE_NAME); @@ -69,6 +77,21 @@ public function __construct( } } + /** + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function addPlugin(PluginInterface|string $plugin): void + { + if (is_string($plugin)) { + $plugin = $this->diContainer->get($plugin); + } + + $this->configuration->getPlugins()->add($plugin); + $this->pluginEventDispatcher->addSubscriber($plugin); + } + /** * @throws DependencyException * @throws NotFoundException @@ -81,12 +104,14 @@ public function parseAndGetRootEntityCollectionsGroup(): RootEntityCollectionsGr } /** - * Generate missing docBlocks with ChatGPT for project class methods that are available for documentation + * Generate missing docBlocks with LLM for project class methods that are available for documentation + * + * @api * * @throws NotFoundException * @throws DependencyException - * @throws ReflectionException * @throws InvalidConfigurationParameterException + * @throws \JsonException */ public function addDocBlocks( ProviderInterface $aiProvider, @@ -96,19 +121,18 @@ public function addDocBlocks( } $this->parser->parse(); - $entitiesCollection = $this->rootEntityCollectionsGroup->get(ClassEntityCollection::NAME); + $entitiesCollection = $this->rootEntityCollectionsGroup->get(PhpEntitiesCollection::NAME); $missingDocBlocksGenerator = new DocBlocksGenerator($aiProvider, $this->parserHelper); $alreadyProcessedEntities = []; - $getEntities = function (ClassEntityCollection|array $entitiesCollection) use ( + $getEntities = function (PhpEntitiesCollection|array $entitiesCollection) use ( &$getEntities, - & - $alreadyProcessedEntities + &$alreadyProcessedEntities ): Generator { foreach ($entitiesCollection as $classEntity) { - /**@var ClassEntity $classEntity */ + /**@var ClassLikeEntity $classEntity */ if ( - !$classEntity->entityDataCanBeLoaded() || array_key_exists( + !$classEntity->isEntityDataCanBeLoaded() || array_key_exists( $classEntity->getName(), $alreadyProcessedEntities ) @@ -129,7 +153,7 @@ public function addDocBlocks( }; foreach ($getEntities($entitiesCollection) as $entity) { - /**@var ClassEntity $entity */ + /**@var ClassLikeEntity $entity */ if (!$missingDocBlocksGenerator->hasMethodsWithoutDocBlocks($entity)) { $this->logger->notice("Skipping `{$entity->getName()}`class. All methods are already documented"); } @@ -143,13 +167,11 @@ public function addDocBlocks( $toReplace = []; $classFileLines = explode("\n", $classFileContent); foreach ($newBocBlocks as $method => $docBlock) { - $methodEntity = $entity->getMethodEntity($method); - $lineNumber = $docCommentLine = $methodEntity->getDocComment() ? $methodEntity->getDocBlock( - false - )->getLocation()?->getLineNumber() : null; + $methodEntity = $entity->getMethod($method, true); + $lineNumber = $docCommentLine = $methodEntity->getDocComment() ? $methodEntity->getDocBlock()->getLocation()?->getLineNumber() : null; $lineNumber = $lineNumber ?: $methodEntity->getStartLine(); - foreach (file($entity->getFullFileName(), FILE_IGNORE_NEW_LINES) as $line => $lineContent) { + foreach (file($entity->getAbsoluteFileName(), FILE_IGNORE_NEW_LINES) as $line => $lineContent) { if ($line + 1 === $lineNumber) { $classFileLines[$line] = "[%docBlock%{$method}%]{$lineContent}"; break; @@ -161,13 +183,16 @@ public function addDocBlocks( $classFileContent = implode("\n", $classFileLines); $classFileContent = preg_replace(array_keys($toReplace), $toReplace, $classFileContent); - file_put_contents($entity->getFullFileName(), $classFileContent); + file_put_contents($entity->getAbsoluteFileName(), $classFileContent); $this->logger->notice("DocBlocks added"); } } /** - * @throws ReflectionException + * Creates a `README.md` template filled with basic information using LLM + * + * @api + * * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException @@ -177,7 +202,7 @@ public function generateReadmeTemplate( ): void { $this->io->note("Project analysis"); $this->parser->parse(); - $entitiesCollection = $this->rootEntityCollectionsGroup->get(ClassEntityCollection::NAME); + $entitiesCollection = $this->rootEntityCollectionsGroup->get(PhpEntitiesCollection::NAME); $finder = new Finder(); $finder @@ -241,7 +266,7 @@ public function generateReadmeTemplate( $additionalPrompt, ); - $fileContent = "{% set title = 'About the project' %}\n{$readmeFileContent}"; + $fileContent = "---\ntitle: About the project\n---\n{$readmeFileContent}"; $this->io->note("readme.md.twig file content generated:"); $this->io->text($fileContent); if ($this->io->confirm('Save file?')) { @@ -254,6 +279,8 @@ public function generateReadmeTemplate( /** * Generates documentation using configuration * + * @api + * * @throws InvalidArgumentException * @throws Exception */ @@ -263,11 +290,22 @@ public function generate(): void $memory = memory_get_usage(true); try { - $this->parser->parse(); + $pb = $this->progressBarFactory->createStylizedProgressBar(); + $result = $this->parser->parse($pb); + + $resSummary = $result->getSummary(); + $this->io->table([], [ + ['Processed files:', "{$resSummary->getProcessedFilesCount()}"], + ['Processed entities:', "{$resSummary->getProcessedEntitiesCount()}"], + ['Skipped entities:', "{$resSummary->getSkippedEntitiesCount()}"], + ['Entities added by plugins:', "{$resSummary->getEntitiesAddedByPluginsCount()}"], + ['Total added entities:', "{$resSummary->getTotalAddedEntities()}"], + ]); + $this->renderer->run(); } catch (Exception $e) { $this->logger->critical( - "{$e->getFile()}:{$e->getLine()} {$e->getMessage()} \n\n{{$e->getTraceAsString()}}" + "{$e->getFile()}:{$e->getLine()} {$e->getMessage()} \n\n{$e->getTraceAsString()}" ); throw $e; } @@ -276,39 +314,11 @@ public function generate(): void $memory = memory_get_usage(true) - $memory; $warningMessages = $this->generationErrorsHandler->getRecords(); - if (empty($warningMessages)) { $this->io->writeln("Documentation successfully generated"); } else { $this->io->writeln("Generation completed with errors"); - - $this->io->getFormatter()->setStyle('warning', new OutputFormatterStyle('yellow')); - $badErrorStyle = new OutputFormatterStyle('red', '#ff0', ['bold']); - $this->io->getFormatter()->setStyle('critical', $badErrorStyle); - $this->io->getFormatter()->setStyle('alert', $badErrorStyle); - $this->io->getFormatter()->setStyle('emergency', $badErrorStyle); - $table = $this->io->createTable(); - - $rows = []; - $warningMessagesCount = count($warningMessages); - foreach ($warningMessages as $i => $warningMessage) { - $tag = strtolower($warningMessage['type']); - $rows[] = ["<{$tag}>{$warningMessage['type']}", "<{$tag}>{$warningMessage['msg']}"]; - if ($warningMessage['isRenderingError']) { - $rows[] = [ - '', - 'This error occurs during the document rendering process' - ]; - } - $rows[] = ['', $warningMessage['initiator']]; - if ($warningMessagesCount - $i !== 1) { - $rows[] = new TableSeparator(); - } - } - $table->setStyle('box'); - $table->addRows($rows); - $table->render(); - $this->io->newLine(); + $this->displayErrors(); } $this->io->writeln("Performance"); @@ -319,6 +329,88 @@ public function generate(): void ]); } + /** + * Serve documentation + * + * @api + * + * @throws Exception + * @throws InvalidArgumentException + */ + public function serve( + ?callable $afterPreparation = null, + ?callable $afterDocChanged = null, + int $timeout = 1000000 + ): void { + $templatesDir = $this->configuration->getTemplatesDir(); + $event = $this->pluginEventDispatcher->dispatch(new OnGetProjectTemplatesDirs([$templatesDir])); + $templatesDirs = $event->getTemplatesDirs(); + + // todo This code is temporary. + // Why is it needed? The thing is that in live mode there is some problem with the cache, + // which I did not have time to debug. If you add a reference to a non-existent entity to the template, + // the error will persist even when it is actually corrected. + // This happens because a reference to this object is stored in the operation log and is not deleted. + // Need to investigate later and fix + $handleErrors = function (): void { + if ($this->generationErrorsHandler->getRecords()) { + $this->sharedCompressedDocumentFileCache->removeFile(); + foreach ($this->rootEntityCollectionsGroup as $collection) { + $collection->removeAllNotLoadedEntities(); + } + $this->displayErrors(); + } + }; + + $checkedFiles = []; + $checkIsTemplatesChanged = function () use ($templatesDirs, &$checkedFiles, $handleErrors) { + $finder = Finder::create() + ->ignoreVCS(true) + ->ignoreDotFiles(true) + ->ignoreUnreadableDirs() + ->sortByName() + ->in($templatesDirs) + ->files(); + + $files = []; + foreach ($finder as $f) { + try { + $files[$f->getPathname()] = $f->getMTime(); + } catch (\Exception) { + } + } + $changed = $checkedFiles !== $files; + $checkedFiles = $files; + return $changed; + }; + + $pb = $this->progressBarFactory->createStylizedProgressBar(); + $this->parser->parse($pb); + $this->renderer->run(); + $checkIsTemplatesChanged(); + $handleErrors(); + if ($afterPreparation) { + call_user_func($afterPreparation); + } + + while (true) { + if ($checkIsTemplatesChanged()) { + try { + $this->localObjectCache->clear(); + $this->renderer->run(); + $handleErrors(); + if ($afterDocChanged) { + call_user_func($afterDocChanged); + } + $this->io->success('Documentation updated'); + } catch (\Exception $e) { + $this->io->error($e->getMessage()); + } + } + usleep($timeout); + } + } + /** * @throws DependencyException * @throws NotFoundException @@ -397,6 +489,12 @@ public function getConfigurationKey(string $key): void $boolWrapFn($this->configuration->useSharedCache()), ], ], + ConfigurationKey::RENDER_WITH_FRONT_MATTER => [ + [ + 'Do not remove the front matter block from templates when creating documents', + $boolWrapFn($this->configuration->renderWithFrontMatter()), + ], + ], ConfigurationKey::CHECK_FILE_IN_GIT_BEFORE_CREATING_DOC => [ [ 'Check file in Git before creating doc', @@ -432,4 +530,46 @@ public function getConfigurationKey(string $key): void $this->io->table([], $result); } + + public function getConfiguration(): Configuration + { + return $this->configuration; + } + + private function displayErrors(bool $removeRecordsAfterDisplaying = true): void + { + $warningMessages = $this->generationErrorsHandler->getRecords(); + if ($warningMessages) { + $this->io->getFormatter()->setStyle('warning', new OutputFormatterStyle('yellow')); + $badErrorStyle = new OutputFormatterStyle('red', '#ff0', ['bold']); + $this->io->getFormatter()->setStyle('critical', $badErrorStyle); + $this->io->getFormatter()->setStyle('alert', $badErrorStyle); + $this->io->getFormatter()->setStyle('emergency', $badErrorStyle); + $table = $this->io->createTable(); + + $rows = []; + $warningMessagesCount = count($warningMessages); + foreach ($warningMessages as $i => $warningMessage) { + $tag = strtolower($warningMessage['type']); + $rows[] = ["<{$tag}>{$warningMessage['type']}", "<{$tag}>{$warningMessage['msg']}"]; + if ($warningMessage['isRenderingError']) { + $rows[] = [ + '', + 'This error occurs during the document rendering process' + ]; + } + $rows[] = ['', $warningMessage['initiator']]; + if ($warningMessagesCount - $i !== 1) { + $rows[] = new TableSeparator(); + } + } + $table->setStyle('box'); + $table->addRows($rows); + $table->render(); + $this->io->newLine(); + if ($removeRecordsAfterDisplaying) { + $this->generationErrorsHandler->removeRecords(); + } + } + } } diff --git a/src/DocGeneratorFactory.php b/src/DocGeneratorFactory.php index e32a2201..c937a05b 100644 --- a/src/DocGeneratorFactory.php +++ b/src/DocGeneratorFactory.php @@ -6,6 +6,9 @@ use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\ConfigurationParameterBag; +use BumbleDocGen\Core\Configuration\ReflectionApiConfig; +use BumbleDocGen\Core\Parser\Entity\RootEntityCollection; +use BumbleDocGen\Core\Parser\ProjectParser; use DI\Container; use DI\ContainerBuilder; use DI\DependencyException; @@ -38,6 +41,10 @@ public function setCustomDiDefinitions(array $definitions): void } /** + * Creates a documentation generator instance using configuration files + * + * @api + * * @throws DependencyException * @throws NotFoundException * @throws \Exception @@ -59,6 +66,10 @@ public function create(?string ...$configurationFiles): DocGenerator } /** + * Creates a documentation generator instance using an array containing the configuration + * + * @api + * * @throws DependencyException * @throws NotFoundException * @throws \Exception @@ -80,6 +91,10 @@ public function createByConfigArray(array $config): DocGenerator } /** + * Creating a project configuration instance + * + * @api + * * @throws DependencyException * @throws NotFoundException * @throws \Exception @@ -100,6 +115,36 @@ public function createConfiguration(string ...$configurationFiles): Configuratio } } + /** + * Creating a collection of entities (see `ReflectionAPI`) + * + * @api + * + * @throws DependencyException + * @throws NotFoundException + * @throws \Exception + */ + public function createRootEntitiesCollection(ReflectionApiConfig $reflectionApiConfig): RootEntityCollection + { + $diContainer = $this->buildDiContainer(); + $logger = $diContainer->get(LoggerInterface::class); + try { + /** @var ConfigurationParameterBag $configurationParameterBag */ + $configurationParameterBag = $diContainer->get(ConfigurationParameterBag::class); + $configurationParameterBag->loadFromArray($reflectionApiConfig->toConfigArray()); + $entitiesCollection = $diContainer->get(ProjectParser::class)->getEntityCollectionForPL( + $reflectionApiConfig->getLanguageHandlerClassName() + ); + } catch (\Exception $e) { + $logger->error("{$e->getMessage()} ( {$e->getFile()}:{$e->getLine()} )"); + throw new \RuntimeException($e->getMessage()); + } + if (!$entitiesCollection) { + throw new \InvalidArgumentException('The collection could not be created'); + } + return $entitiesCollection; + } + /** * @throws \Exception */ diff --git a/src/LanguageHandler/Php/Parser/ComposerHelper.php b/src/LanguageHandler/Php/Parser/ComposerHelper.php new file mode 100644 index 00000000..a1cf5209 --- /dev/null +++ b/src/LanguageHandler/Php/Parser/ComposerHelper.php @@ -0,0 +1,145 @@ +classLoader) { + return $this->classLoader; + } + + $classLoader = new ClassLoader(); + $projectRoot = $this->configuration->getProjectRoot(); + + $psr4Map = $this->phpHandlerSettings->getPsr4Map(); + foreach ($psr4Map as $namespace => $path) { + $path = "{$projectRoot}/{$path}"; + $classLoader->addPsr4($namespace, "{$projectRoot}/{$path}"); + } + + if (!$this->phpHandlerSettings->getUseComposerAutoload()) { + return $classLoader; + } + + $composerJsonPath = $this->phpHandlerSettings->getComposerConfigFile(); + if (!$composerJsonPath || !file_exists($composerJsonPath) || !is_readable($composerJsonPath)) { + return $classLoader; + } + + $composerConfig = json_decode(file_get_contents($composerJsonPath), true); + + $loadSection = function (array $section) use ($classLoader, $composerConfig, $projectRoot): void { + if (isset($section['psr-4'])) { + foreach ($section['psr-4'] as $namespace => $path) { + $classLoader->addPsr4($namespace, "{$projectRoot}/{$path}"); + } + } + if (isset($section['psr-0'])) { + foreach ($section['psr-0'] as $namespace => $path) { + $classLoader->add($namespace, "{$projectRoot}/{$path}"); + } + } + }; + + if (isset($composerConfig['autoload'])) { + $loadSection($composerConfig['autoload']); + } + if (isset($composerConfig['autoload-dev'])) { + $loadSection($composerConfig['autoload-dev']); + } + $this->classLoader = $classLoader; + return $classLoader; + } + + /** + * @throws InvalidConfigurationParameterException + */ + public function getComposerPackages(): array + { + if ($this->packages) { + return $this->packages; + } + $composerVendorDir = $this->phpHandlerSettings->getComposerVendorDir(); + if (!$composerVendorDir) { + return $this->packages; + } + $installedJsonFile = "{$composerVendorDir}/composer/installed.json"; + $installedPackagesData = json_decode(file_get_contents($installedJsonFile), true); + foreach ($installedPackagesData['packages'] as $package) { + if (!isset($package['source']['url'])) { + continue; + } + + if (str_starts_with($package['source']['url'], 'https://github.com/')) { + $url = str_replace('.git', '', $package['source']['url']); + } elseif (str_starts_with($package['source']['url'], 'git@github')) { + preg_match('/(@)(.*?)(:)(.*?)(.git)/', $package['source']['url'], $matches); + $url = "https://{$matches[2]}/{$matches[4]}"; + } else { + continue; + } + + $psr4 = $package['autoload']["psr-4"] ?? []; + foreach ($psr4 as $namespace => $path) { + $this->packages[$namespace] = [ + 'path' => $path, + 'namespace' => $namespace, + 'url' => $url + ]; + } + } + return $this->packages; + } + + public function getComposerPackageDataByClassName(string $className): ?array + { + if (!ParserHelper::isCorrectClassName($className)) { + return null; + } + $packages = []; + try { + $packages = $this->getComposerPackages(); + } catch (\Exception) { + } + + if ($packages) { + $packages['Composer\\'] = [ + "path" => "src/Composer/", + "namespace" => "Composer\\", + "url" => "https://github.com/composer/composer" + ]; + } + $classParts = explode('\\', $className); + $namespace = ''; + foreach ($classParts as $part) { + if ($part) { + $namespace .= "{$part}\\"; + if (isset($packages[$namespace])) { + return $packages[$namespace]; + } + } + } + return null; + } +} diff --git a/src/LanguageHandler/Php/Parser/ComposerParser.php b/src/LanguageHandler/Php/Parser/ComposerParser.php deleted file mode 100644 index 32feaf16..00000000 --- a/src/LanguageHandler/Php/Parser/ComposerParser.php +++ /dev/null @@ -1,73 +0,0 @@ -packages) { - return $this->packages; - } - $installedJsonFile = realpath($this->configuration->getProjectRoot() . '/vendor/composer/installed.json'); - $installedPackagesData = json_decode(file_get_contents($installedJsonFile), true); - foreach ($installedPackagesData['packages'] as $package) { - if (!isset($package['source']['url'])) { - continue; - } - - if (str_starts_with($package['source']['url'], 'https://github.com/')) { - $url = str_replace('.git', '', $package['source']['url']); - } elseif (str_starts_with($package['source']['url'], 'git@github')) { - preg_match('/(@)(.*?)(:)(.*?)(.git)/', $package['source']['url'], $matches); - $url = "https://{$matches[2]}/{$matches[4]}"; - } else { - continue; - } - - $psr4 = $package['autoload']["psr-4"] ?? []; - foreach ($psr4 as $namespace => $path) { - $this->packages[$namespace] = [ - 'path' => $path, - 'namespace' => $namespace, - 'url' => $url - ]; - } - } - return $this->packages; - } - - /** - * @throws \Exception - */ - public function getComposerPackageDataByClassName(string $className): ?array - { - if (!ParserHelper::isCorrectClassName($className)) { - return null; - } - $packages = $this->getComposerPackages(); - $classParts = explode('\\', $className); - $namespace = ''; - foreach ($classParts as $part) { - if ($part) { - $namespace .= "{$part}\\"; - if (isset($packages[$namespace])) { - return $packages[$namespace]; - } - } - } - return null; - } -} diff --git a/src/LanguageHandler/Php/Parser/Entity/BaseEntity.php b/src/LanguageHandler/Php/Parser/Entity/BaseEntity.php index 733ad1ec..332d998b 100644 --- a/src/LanguageHandler/Php/Parser/Entity/BaseEntity.php +++ b/src/LanguageHandler/Php/Parser/Entity/BaseEntity.php @@ -12,29 +12,30 @@ use BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface; use BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait; use BumbleDocGen\Core\Parser\Entity\Cache\CacheableMethod; -use BumbleDocGen\Core\Parser\Entity\EntityInterface; -use BumbleDocGen\Core\Parser\Entity\RootEntityInterface; +use BumbleDocGen\Core\Plugin\PluginEventDispatcher; use BumbleDocGen\Core\Renderer\RendererHelper; use BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Data\DocBlockLink; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; use BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; -use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad; +use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded; use DI\Attribute\Inject; use phpDocumentor\Reflection\DocBlock; use Psr\Cache\InvalidArgumentException; use Psr\Log\LoggerInterface; -use Roave\BetterReflection\Reflection\ReflectionClass; -use Roave\BetterReflection\Reflection\ReflectionClassConstant; -use Roave\BetterReflection\Reflection\ReflectionMethod; -use Roave\BetterReflection\Reflection\ReflectionProperty; -abstract class BaseEntity implements CacheableEntityInterface, EntityInterface +abstract class BaseEntity implements CacheableEntityInterface { use CacheableEntityTrait; + #[Inject] private PluginEventDispatcher $pluginEventDispatcher; #[Inject] private GetDocumentedEntityUrl $documentedEntityUrlFunction; #[Inject] private RendererHelper $rendererHelper; + #[Inject] private GenerationErrorsHandler $generationErrorsHandler; + #[Inject] private PhpHandlerSettings $phpHandlerSettings; protected function __construct( private Configuration $configuration, @@ -45,50 +46,90 @@ protected function __construct( } /** - * @throws ReflectionException + * Get AST for this entity + * + * @api + * * @throws InvalidConfigurationParameterException - * @internal */ - abstract protected function getReflection(): ReflectionClass|ReflectionMethod|ReflectionProperty|ReflectionClassConstant; - - abstract public function getImplementingReflectionClass(): ReflectionClass; + abstract public function getAst(): \PhpParser\Node\Stmt; - abstract protected function getDocCommentRecursive(): string; - - abstract public function getDocCommentEntity(): ClassEntity|MethodEntity|PropertyEntity|ConstantEntity; - - abstract public function getDescription(): string; - - abstract public function getFileName(): ?string; - - #[CacheableMethod] abstract public function getStartLine(): int; + /** + * Get the class like entity in which the current entity was implemented + * + * @api + */ + abstract public function getImplementingClass(): ClassLikeEntity; - abstract public function getDocBlock(): DocBlock; + /** + * Get the line number of the beginning of the entity code in a file + * + * @api + */ + abstract public function getStartLine(): int; - abstract public function getRootEntityCollection(): ClassEntityCollection; + /** + * Get the collection of root entities to which this entity belongs + * + * @api + */ + abstract public function getRootEntityCollection(): PhpEntitiesCollection; - abstract public function getPhpHandlerSettings(): PhpHandlerSettings; + /** + * Link to an entity where docBlock is implemented for this entity + * + * @internal + */ + abstract public function getDocCommentEntity(): ClassLikeEntity|MethodEntity|PropertyEntity|ClassConstantEntity; /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ - final public function isEntityFileCanBeLoad(): bool + public function getRelativeFileName(): ?string { - $rootEntity = $this->getCurrentRootEntity(); - return $rootEntity->isClassLoad() && $rootEntity->getRelativeFileName(); + return $this->getCurrentRootEntity()->getRelativeFileName(); } /** * Returns the absolute path to a file if it can be retrieved and if the file is in the project directory + * + * @api + * * @throws InvalidConfigurationParameterException */ public function getAbsoluteFileName(): ?string { - $relativeFileName = $this->getFileName(); + $relativeFileName = $this->getRelativeFileName(); return $relativeFileName ? $this->configuration->getProjectRoot() . $relativeFileName : null; } + /** + * Checking if entity data can be retrieved + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + final public function isEntityFileCanBeLoad(): bool + { + return $this->getCurrentRootEntity()->isClassLoad() && $this->getRelativeFileName(); + } + + /** + * Get entity description + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + public function getDescription(): string + { + $docBlock = $this->getDocBlock(); + return trim($docBlock->getSummary()); + } + protected function prepareTypeString(string $type): string { try { @@ -108,7 +149,7 @@ protected function prepareTypeString(string $type): string $types[$k] = "\\{$t}"; } elseif ( ParserHelper::isCorrectClassName($t) && - $this->getRootEntityCollection()->getLoadedOrCreateNew($t)->entityDataCanBeLoaded() + $this->getRootEntityCollection()->getLoadedOrCreateNew($t)->isEntityDataCanBeLoaded() ) { $types[$k] = "\\{$t}"; } @@ -123,19 +164,23 @@ protected function prepareTypeString(string $type): string } /** + * @internal + * * @throws InvalidConfigurationParameterException */ public function getFileSourceLink(bool $withLine = true): ?string { - $fileName = $this->getFileName(); + $fileName = $this->getRelativeFileName(); if (!$fileName) { return null; } - return $this->getPhpHandlerSettings()->getFileSourceBaseUrl() . $fileName . ($withLine ? "#L{$this->getStartLine()}" : ''); + return $this->phpHandlerSettings->getFileSourceBaseUrl() . $fileName . ($withLine ? "#L{$this->getStartLine()}" : ''); } /** * Get entity unique ID + * + * @api */ public function getObjectId(): string { @@ -145,22 +190,43 @@ public function getObjectId(): string return $this->getName(); } - protected function prettyVarExport(mixed $expression): string + /** + * Get the code line number where the docBlock of the current entity begins + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getDocCommentLine(): ?int { - $export = var_export($expression, true); - $patterns = [ - "/array \(/" => '[', - "/^([ ]*)\)(,?)$/m" => '$1]$2', - "/=>[ ]?\n[ ]+\[/" => '=> [', - "/([ ]*)(\'[^\']+\') => ([\[\'])/" => '$1$2 => $3', - ]; - return str_replace( - PHP_EOL, - ' ', - preg_replace(array_keys($patterns), array_values($patterns), $export) + $entity = $this->getDocCommentEntity(); + return $entity->getAst()->getDocComment()?->getStartLine(); + } + + /** + * Get DocBlock for current entity + * + * @internal + * + * @throws InvalidConfigurationParameterException + */ + public function getDocBlock(): DocBlock + { + $docCommentEntity = $this->getDocCommentEntity(); + return $this->parserHelper->getDocBlock( + $docCommentEntity->getImplementingClass(), + $docCommentEntity->getDocComment() ?: ' ', + $this->getDocCommentLine() ); } + /** + * Checking if an entity has `internal` docBlock + * + * @api + * + * @throws InvalidConfigurationParameterException + */ public function isInternal(): bool { $docBlock = $this->getDocBlock(); @@ -168,36 +234,61 @@ public function isInternal(): bool return (bool)$internalBlock; } - public function isDeprecated(): bool + /** + * Checking if an entity has `api` docBlock + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + public function isApi(): bool { $docBlock = $this->getDocBlock(); - $internalBlock = $docBlock->getTagsByName('deprecated')[0] ?? null; + $internalBlock = $docBlock->getTagsByName('api')[0] ?? null; return (bool)$internalBlock; } /** + * Checking if an entity has `deprecated` docBlock + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + public function isDeprecated(): bool + { + $docBlock = $this->getDocBlock(); + $deprecatedBlock = $docBlock->getTagsByName('deprecated')[0] ?? null; + return (bool)$deprecatedBlock; + } + + /** + * Checking if an entity has links in its description + * + * @api + * * @throws \Exception */ public function hasDescriptionLinks(): bool { - return count($this->getDescriptionLinksData()) > 0; + return count($this->getDescriptionDocBlockLinks()) > 0; } /** + * @return DocBlockLink[] + * * @throws \Exception */ - #[CacheableMethod] protected function getDescriptionLinksData(): array + #[CacheableMethod] protected function getDescriptionDocBlockLinks(): array { $links = []; $docBlock = $this->getDocBlock(); $getDocCommentEntity = $this->getDocCommentEntity(); - if (is_a($getDocCommentEntity, ClassEntity::class)) { + if (is_a($getDocCommentEntity, ClassLikeEntity::class)) { $docCommentImplementingClass = $getDocCommentEntity; - } elseif (method_exists($getDocCommentEntity, 'getImplementingClass')) { - $docCommentImplementingClass = $getDocCommentEntity->getImplementingClass(); } else { - $docCommentImplementingClass = $getDocCommentEntity; + $docCommentImplementingClass = $getDocCommentEntity->getImplementingClass(); } foreach ($docBlock->getTagsByName('see') as $seeBlock) { @@ -208,17 +299,17 @@ public function hasDescriptionLinks(): bool $name = (string)$seeBlock->getReference(); $description = (string)$seeBlock->getDescription(); if (filter_var($name, FILTER_VALIDATE_URL)) { - $links[] = [ - 'url' => $name, - 'name' => $name, - 'description' => $description, - ]; + $links[] = new DocBlockLink( + name: $name, + description: $description, + url: $name, + ); } elseif ($url = $this->rendererHelper->getPreloadResourceLink($name)) { - $links[] = [ - 'url' => $url, - 'name' => $name, - 'description' => $description, - ]; + $links[] = new DocBlockLink( + name: $name, + description: $description, + url: $url + ); } elseif (str_starts_with($name, '\\')) { if (!str_contains($name, '::')) { // tmp hack to fix methods declared as global functions @@ -258,12 +349,11 @@ public function hasDescriptionLinks(): bool '$this->' ], "{$docCommentImplementingClass->getShortName()}::", $name); - $links[] = [ - 'className' => $name, - 'url' => null, - 'name' => $name, - 'description' => $description, - ]; + $links[] = new DocBlockLink( + name: $name, + description: $description, + className: $name, + ); } } catch (\Exception $e) { $this->logger->error($e->getMessage()); @@ -274,30 +364,28 @@ public function hasDescriptionLinks(): bool if (preg_match_all('/(\@see )(.*?)( |}|])/', $description . ' ', $matches)) { foreach ($matches[2] as $name) { if (filter_var($name, FILTER_VALIDATE_URL)) { - $links[] = [ - 'url' => $name, - 'name' => $name, - 'description' => '', - ]; + $links[] = new DocBlockLink( + name: $name, + url: $name, + ); } elseif ($url = $this->rendererHelper->getPreloadResourceLink($name)) { - $links[] = [ - 'url' => $url, - 'name' => $name, - 'description' => $description, - ]; + $links[] = new DocBlockLink( + name: $name, + description: $description, + url: $url, + ); } else { - $currentClassEntity = is_a($docCommentImplementingClass, ClassEntity::class) ? $docCommentImplementingClass : $docCommentImplementingClass->getRootEntity(); + $currentClassEntity = is_a($docCommentImplementingClass, ClassLikeEntity::class) ? $docCommentImplementingClass : $docCommentImplementingClass->getCurrentRootEntity(); $className = $this->parserHelper->parseFullClassName( $name, $currentClassEntity ); - $links[] = [ - 'className' => $className, - 'url' => null, - 'name' => $className, - 'description' => $description, - ]; + $links[] = new DocBlockLink( + name: $className, + description: $description, + className: $className, + ); } } } @@ -308,11 +396,11 @@ public function hasDescriptionLinks(): bool } $description = (string)$linkBlock->getDescription(); $url = $linkBlock->getLink(); - $links[] = [ - 'url' => $url, - 'name' => $url, - 'description' => $description, - ]; + $links[] = new DocBlockLink( + name: $url, + description: $description, + url: $url, + ); } return $links; @@ -320,15 +408,27 @@ public function hasDescriptionLinks(): bool /** * Get parsed links from description and doc blocks `see` and `link` + * + * @return DocBlockLink[] + * + * @api + * * @throws InvalidConfigurationParameterException * @throws \Exception */ public function getDescriptionLinks(): array { - $linksData = $this->getDescriptionLinksData(); - return $this->fillInLinkDataWithUrls($linksData); + $linksData = $this->getDescriptionDocBlockLinks(); + return $this->getPreparedDocBlockLinks($linksData); } + /** + * Checking if an entity has `throws` docBlock + * + * @api + * + * @throws InvalidConfigurationParameterException + */ public function hasThrows(): bool { $docBlock = $this->getDocBlock(); @@ -336,35 +436,36 @@ public function hasThrows(): bool } /** - * @throws ReflectionException + * @return DocBlockLink[] + * * @throws InvalidConfigurationParameterException */ - #[CacheableMethod] protected function getThrowsData(): array + #[CacheableMethod] public function getThrowsDocBlockLinks(): array { $throws = []; - $implementingClassEntity = $this->getDocCommentEntity()->getRootEntity(); + $implementingClassEntity = $this->getDocCommentEntity()->getCurrentRootEntity(); $docBlock = $this->getDocBlock(); foreach ($docBlock->getTagsByName('throws') as $throwBlock) { if (is_a($throwBlock, DocBlock\Tags\Throws::class)) { $names = explode('|', (string)$throwBlock->getType()); foreach ($names as $name) { if ($url = $this->rendererHelper->getPreloadResourceLink($name)) { - $throws[] = [ - 'url' => $url, - 'name' => $name, - 'description' => (string)$throwBlock->getDescription(), - ]; + $throws[] = new DocBlockLink( + name: $name, + description: (string)$throwBlock->getDescription(), + url: $url, + ); continue; } $className = $this->parserHelper->parseFullClassName( $name, $implementingClassEntity ); - $throwData = [ - 'className' => $className, - 'name' => $className, - 'description' => (string)$throwBlock->getDescription(), - ]; + $throwData = new DocBlockLink( + name: $className, + description: (string)$throwBlock->getDescription(), + className: $className, + ); $throws[] = $throwData; } } @@ -375,38 +476,48 @@ public function hasThrows(): bool /** * Get parsed throws from `throws` doc block * - * @throws ReflectionException + * @return DocBlockLink[] + * + * @api + * * @throws InvalidConfigurationParameterException */ public function getThrows(): array { - $throwsData = $this->getThrowsData(); - return $this->fillInLinkDataWithUrls($throwsData); + $throwsData = $this->getThrowsDocBlockLinks(); + return $this->getPreparedDocBlockLinks($throwsData); } /** - * @throws ReflectionException + * @param DocBlockLink[] $docBlockLinks + * + * @return DocBlockLink[] + * * @throws InvalidConfigurationParameterException */ - private function fillInLinkDataWithUrls(array $linkData): array + private function getPreparedDocBlockLinks(array $docBlockLinks): array { - foreach ($linkData as $key => $data) { - if (!isset($data['url'])) { - $linkData[$key]['url'] = null; - } else { + $preparedDocBlockLinksLinks = []; + foreach ($docBlockLinks as $data) { + if ($data->url) { + $preparedDocBlockLinksLinks[] = $data; continue; } - if (($data['className'] ?? null)) { + + $className = $data->className; + $name = $data->name; + $url = null; + if ($data->className) { $entityData = $this->getRootEntityCollection()->getEntityLinkData( - $data['className'], - $this->getImplementingReflectionClass()->getName(), + $data->className, + $this->getImplementingClass()->getName(), false ); - if (!$entityData['entityName'] && !str_contains($data['className'], '\\')) { + if (!$entityData['entityName'] && !str_contains($data->className, '\\')) { try { - $data['className'] = $this->getDocCommentEntity()->getCurrentRootEntity()->getNamespaceName() . "\\{$data['className']}"; + $className = $this->getDocCommentEntity()->getCurrentRootEntity()->getNamespaceName() . "\\{$data->className}"; $entityData = $this->getRootEntityCollection()->getEntityLinkData( - $data['className'], + $className, $this->getDocCommentEntity()->getCurrentRootEntity()->getName(), false ); @@ -416,30 +527,39 @@ private function fillInLinkDataWithUrls(array $linkData): array } if ($entityData['entityName']) { - $linkData[$key]['url'] = call_user_func_array( - callback: $this->documentedEntityUrlFunction, - args: [ - $this->getRootEntityCollection(), - $entityData['entityName'], - $entityData['cursor'] - ] + $url = call_user_func( + $this->documentedEntityUrlFunction, + $this->getRootEntityCollection(), + $entityData['entityName'], + $entityData['cursor'] ); } else { - $preloadResourceLink = $this->rendererHelper->getPreloadResourceLink($data['className']); + $preloadResourceLink = $this->rendererHelper->getPreloadResourceLink($data->className); if ($preloadResourceLink) { - $linkData[$key]['url'] = $preloadResourceLink; + $url = $preloadResourceLink; } else { - $linkData[$key]['url'] = null; - $this->logger->warning("Unable to get URL data for entity `{$data['className']}`"); + $this->logger->warning("Unable to get URL data for entity `{$data->className}`"); } } - $linkData[$key]['name'] = $entityData['title']; - unset($data['className']); + $name = $entityData['title']; } + $preparedDocBlockLinksLinks[] = new DocBlockLink( + name: $name, + description: $data->description, + className: $className, + url: $url + ); } - return $linkData; + return $preparedDocBlockLinksLinks; } + /** + * Checking if an entity has `example` docBlock + * + * @api + * + * @throws InvalidConfigurationParameterException + */ public function hasExamples(): bool { $docBlock = $this->getDocBlock(); @@ -450,6 +570,10 @@ public function hasExamples(): bool * Get parsed examples from `examples` doc block * * @return array + * + * @api + * + * @throws InvalidConfigurationParameterException */ public function getExamples(): array { @@ -466,7 +590,11 @@ public function getExamples(): array } /** - * Get first example from @examples doc block + * Get first example from `examples` doc block + * + * @api + * + * @throws InvalidConfigurationParameterException */ public function getFirstExample(): string { @@ -474,27 +602,38 @@ public function getFirstExample(): string return $examples[0]['example'] ?? ''; } + /** + * Get the note annotation value + * + * @api + * + * @throws InvalidConfigurationParameterException + */ public function getDocNote(): string { $docBlock = $this->getDocBlock(); return (string)($docBlock->getTagsByName('note')[0] ?? ''); } - /** * Get the doc comment of an entity * - * @throws ReflectionException + * @api + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getDocComment(): string { - return $this->getReflection()->getDocComment(); + $docComment = $this->getAst()->getDocComment(); + return (string)$docComment?->getReformattedText(); } - protected function getCurrentRootEntity(): ?RootEntityInterface + /** + * @internal + */ + public function getCurrentRootEntity(): ?ClassLikeEntity { - if (is_a($this, RootEntityInterface::class)) { + if (is_a($this, ClassLikeEntity::class)) { return $this; } elseif (method_exists($this, 'getRootEntity')) { return $this->getRootEntity(); @@ -502,13 +641,19 @@ protected function getCurrentRootEntity(): ?RootEntityInterface return null; } + /** + * @internal + */ protected function getEntityDependenciesCacheKey(): string { return "__internalEntityDependencies{$this->getCacheKey()}"; } /** + * @internal + * * @throws InvalidArgumentException + * @throws InvalidConfigurationParameterException */ final public function getCachedEntityDependencies(): array { @@ -523,10 +668,12 @@ final public function getCachedEntityDependencies(): array } return $entityDependencies; } - #[Inject] private GenerationErrorsHandler $generationErrorsHandler; /** + * @inheritDoc + * * @throws InvalidArgumentException + * @throws InvalidConfigurationParameterException */ final public function reloadEntityDependenciesCache(): array { @@ -547,12 +694,14 @@ final public function reloadEntityDependenciesCache(): array } /** + * @internal + * * @throws InvalidConfigurationParameterException * @throws InvalidArgumentException */ private function isSubEntityFileCacheIsOutdated(string $dependenciesCacheKey): bool { - if (!method_exists($this, 'getImplementingClassName') || !method_exists($this, 'getImplementingClass')) { + if (!method_exists($this, 'getImplementingClassName')) { return true; } $key = $this->getImplementingClassName(); @@ -566,7 +715,7 @@ private function isSubEntityFileCacheIsOutdated(string $dependenciesCacheKey): b return false; } $implementingClass = $this->getImplementingClass(); - $relativeFileName = $implementingClass->getRelativeFileName(false); + $relativeFileName = $implementingClass->getRelativeFileName(); if (!isset($dependenciesChecks[$relativeFileName])) { $dependenciesChecks[$relativeFileName] = true; $cachedEntityDependencies = $this->getCachedEntityDependencies(); @@ -578,11 +727,14 @@ private function isSubEntityFileCacheIsOutdated(string $dependenciesCacheKey): b $this->localObjectCache->cacheMethodResult(__METHOD__, '', $dependenciesChecks); } } - $entityCacheIsOutdated = $dependenciesChecks[$relativeFileName]; - $this->localObjectCache->cacheMethodResult(__METHOD__, $key, $entityCacheIsOutdated); - return $entityCacheIsOutdated; + $isEntityCacheOutdated = $dependenciesChecks[$relativeFileName]; + $this->localObjectCache->cacheMethodResult(__METHOD__, $key, $isEntityCacheOutdated); + return $isEntityCacheOutdated; } + /** + * @internal + */ protected function isCurrentEntityCanBeLoad(): bool { $classEntity = $this->getCurrentRootEntity(); @@ -593,18 +745,20 @@ protected function isCurrentEntityCanBeLoad(): bool return $this->localObjectCache->getMethodCachedResult(__METHOD__, $classEntity->getObjectId()); } catch (ObjectNotFoundException) { } - $entityCanBeLoad = $this->getRootEntityCollection()->getPluginEventDispatcher()->dispatch( - new OnCheckIsClassEntityCanBeLoad($this->getCurrentRootEntity()) - )->isClassCanBeLoad(); + $entityCanBeLoad = $this->pluginEventDispatcher->dispatch( + new OnCheckIsEntityCanBeLoaded($this->getCurrentRootEntity()) + )->isEntityCanBeLoaded(); $this->localObjectCache->cacheMethodResult(__METHOD__, $classEntity->getObjectId(), $entityCanBeLoad); return $entityCanBeLoad; } /** + * @inheritDoc + * * @throws InvalidConfigurationParameterException * @throws InvalidArgumentException */ - final public function entityCacheIsOutdated(): bool + final public function isEntityCacheOutdated(): bool { $entity = $this->getCurrentRootEntity(); $entityName = $entity?->getName(); @@ -615,7 +769,7 @@ final public function entityCacheIsOutdated(): bool $rootEntityResult = $this->localObjectCache->getMethodCachedResult(__METHOD__, $entityName); if (!$rootEntityResult) { return false; - } elseif (is_a($this, ClassEntity::class)) { + } elseif (is_a($this, ClassLikeEntity::class)) { return true; } return $this->isSubEntityFileCacheIsOutdated(__METHOD__); @@ -635,23 +789,23 @@ final public function entityCacheIsOutdated(): bool $cachedDependencies = $this->getCachedEntityDependencies(); if (!$cachedDependencies) { - $entityCacheIsOutdated = true; + $isEntityCacheOutdated = true; $this->logger->warning("Unable to load {$entityName} entity dependencies"); } else { - $entityCacheIsOutdated = false; + $isEntityCacheOutdated = false; $projectRoot = $this->configuration->getProjectRoot(); foreach ($cachedDependencies as $relativeFileName => $hashFile) { $filePath = "{$projectRoot}{$relativeFileName}"; if (array_key_exists($filePath, $dependenciesChecks)) { if ($dependenciesChecks[$filePath]) { - $entityCacheIsOutdated = true; + $isEntityCacheOutdated = true; break; } continue; } if (!file_exists($filePath) || md5_file($filePath) !== $hashFile) { - $entityCacheIsOutdated = true; + $isEntityCacheOutdated = true; $dependenciesChecks[$filePath] = true; break; } else { @@ -660,17 +814,17 @@ final public function entityCacheIsOutdated(): bool } } - if (!$entityCacheIsOutdated) { + if (!$isEntityCacheOutdated) { $localDependencies = $this->getEntityCacheValue($this->getEntityDependenciesCacheKey()) ?? []; if (!$localDependencies && $cachedDependencies) { $this->addEntityValueToCache($this->getEntityDependenciesCacheKey(), $cachedDependencies); } elseif (ksort($localDependencies) !== ksort($cachedDependencies)) { - $entityCacheIsOutdated = true; + $isEntityCacheOutdated = true; } } $this->localObjectCache->cacheMethodResult(__METHOD__, '', $dependenciesChecks); - $this->localObjectCache->cacheMethodResult(__METHOD__, $entityName, $entityCacheIsOutdated); - return $entityCacheIsOutdated; + $this->localObjectCache->cacheMethodResult(__METHOD__, $entityName, $isEntityCacheOutdated); + return $isEntityCacheOutdated; } } diff --git a/src/LanguageHandler/Php/Parser/Entity/Cache/CacheablePhpEntityFactory.php b/src/LanguageHandler/Php/Parser/Entity/Cache/CacheablePhpEntityFactory.php index 2c806bbe..60cc2059 100644 --- a/src/LanguageHandler/Php/Parser/Entity/Cache/CacheablePhpEntityFactory.php +++ b/src/LanguageHandler/Php/Parser/Entity/Cache/CacheablePhpEntityFactory.php @@ -6,41 +6,110 @@ use BumbleDocGen\Core\Cache\LocalCache\Exception\ObjectNotFoundException; use BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache; -use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityWrapperFactory; +use BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper; use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\DynamicMethodEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\EnumEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\InterfaceEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\DynamicMethodEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\TraitEntity; use DI\Container; use DI\DependencyException; use DI\NotFoundException; use phpDocumentor\Reflection\DocBlock\Tags\Method; -use Roave\BetterReflection\Reflection\ReflectionClass; final class CacheablePhpEntityFactory { public function __construct( private CacheableEntityWrapperFactory $cacheableEntityWrapperFactory, - private ReflectorWrapper $reflector, - private Configuration $configuration, + private ComposerHelper $composerHelper, private LocalObjectCache $localObjectCache, private Container $diContainer ) { } /** + * Create a child entity ClassLikeEntity in which the CacheableMethod attributes will be processed to cache the results of the methods + * + * @api + * + * @throws DependencyException + * @throws NotFoundException + * @throws InvalidConfigurationParameterException + */ + public function createClassLikeEntity( + PhpEntitiesCollection $entitiesCollection, + string $className, + ?string $relativeFileName = null, + ?string $entityClassName = null + ): ClassLikeEntity { + $className = ClassLikeEntity::normalizeClassName($className); + $objectId = md5($className); + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); + } catch (ObjectNotFoundException) { + } + + if (!$entityClassName) { + $fileName = $this->composerHelper->getComposerClassLoader()->findFile($className); + $entityClassName = ClassEntity::class; + if ($fileName) { + $shortClassNameLS = mb_strtolower(array_reverse(explode('\\', $className))[0]); + preg_match( + '/^(\s+)?(interface|trait|((final|abstract)\s+)?class|enum)(\s+)(' . $shortClassNameLS . ')/m', + mb_strtolower(file_get_contents($fileName)), + $matches + ); + $entityClassName = match ($matches[2] ?? '') { + 'interface' => InterfaceEntity::class, + 'trait' => TraitEntity::class, + 'enum' => EnumEntity::class, + default => ClassEntity::class + }; + } + } else { + $entityClassName = ClassLikeEntity::normalizeClassName($entityClassName); + } + + if ( + !in_array($entityClassName, [ + InterfaceEntity::class, + TraitEntity::class, + EnumEntity::class, + ClassEntity::class + ]) && !is_a($entityClassName, ClassLikeEntity::class, true) + ) { + throw new \RuntimeException( + 'The $entityClassName parameter must contain the name of the class that is a subclass of ' . ClassLikeEntity::class + ); + } + + $wrapperClassName = $this->getOrCreateEntityClassWrapper($entityClassName); + /** @var ClassLikeEntity $classEntity */ + $classEntity = $this->diContainer->make($wrapperClassName, [ + 'entitiesCollection' => $entitiesCollection, + 'className' => $className, + 'relativeFileName' => $relativeFileName + ]); + $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $classEntity); + return $classEntity; + } + + /** + * @internal + * * @throws DependencyException * @throws NotFoundException */ public function createPropertyEntity( - ClassEntity $classEntity, + ClassLikeEntity $classEntity, string $propertyName, - string $declaringClassName, string $implementingClassName ): PropertyEntity { $objectId = "{$classEntity->getName()}:{$propertyName}"; @@ -52,7 +121,6 @@ public function createPropertyEntity( $propertyEntity = $this->diContainer->make($wrapperClassName, [ 'classEntity' => $classEntity, 'propertyName' => $propertyName, - 'declaringClassName' => $declaringClassName, 'implementingClassName' => $implementingClassName ]); $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $propertyEntity); @@ -60,26 +128,26 @@ public function createPropertyEntity( } /** + * @internal + * * @throws DependencyException * @throws NotFoundException */ - public function createConstantEntity( - ClassEntity $classEntity, + public function createClassConstantEntity( + ClassLikeEntity $classEntity, string $constantName, - string $declaringClassName, string $implementingClassName, bool $reloadCache = false - ): ConstantEntity { + ): ClassConstantEntity { $objectId = "{$classEntity->getName()}:{$constantName}"; try { return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); } catch (ObjectNotFoundException) { } - $wrapperClassName = $this->getOrCreateEntityClassWrapper(ConstantEntity::class); + $wrapperClassName = $this->getOrCreateEntityClassWrapper(ClassConstantEntity::class); $constantEntity = $this->diContainer->make($wrapperClassName, [ 'classEntity' => $classEntity, 'constantName' => $constantName, - 'declaringClassName' => $declaringClassName, 'implementingClassName' => $implementingClassName, 'reloadCache' => $reloadCache ]); @@ -88,13 +156,14 @@ public function createConstantEntity( } /** + * @internal + * * @throws DependencyException * @throws NotFoundException */ public function createMethodEntity( - ClassEntity $classEntity, + ClassLikeEntity $classEntity, string $methodName, - string $declaringClassName, string $implementingClassName ): MethodEntity { $objectId = "{$classEntity->getName()}:{$methodName}"; @@ -106,7 +175,6 @@ public function createMethodEntity( $methodEntity = $this->diContainer->make($wrapperClassName, [ 'classEntity' => $classEntity, 'methodName' => $methodName, - 'declaringClassName' => $declaringClassName, 'implementingClassName' => $implementingClassName ]); $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $methodEntity); @@ -114,11 +182,13 @@ public function createMethodEntity( } /** + * @internal + * * @throws DependencyException * @throws NotFoundException */ public function createDynamicMethodEntity( - ClassEntity $classEntity, + ClassLikeEntity $classEntity, Method $annotationMethod ): DynamicMethodEntity { $objectId = "{$classEntity->getName()}:{$annotationMethod->getMethodName()}"; @@ -135,104 +205,6 @@ public function createDynamicMethodEntity( return $methodEntity; } - /** - * @throws DependencyException - * @throws NotFoundException - */ - public function createClassEntity( - ClassEntityCollection $classEntityCollection, - string $className, - ?string $relativeFileName = null - ): ClassEntity { - $className = ltrim(str_replace('\\\\', '\\', $className), '\\'); - $objectId = md5($className); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - $wrapperClassName = $this->getOrCreateEntityClassWrapper(ClassEntity::class); - $classEntity = $this->diContainer->make($wrapperClassName, [ - 'reflector' => $this->reflector, - 'classEntityCollection' => $classEntityCollection, - 'className' => $className, - 'relativeFileName' => $relativeFileName - ]); - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $classEntity); - return $classEntity; - } - - /** - * @throws DependencyException - * @throws NotFoundException - * @throws InvalidConfigurationParameterException - */ - public function createClassEntityByReflection( - ReflectionClass $reflectionClass, - ClassEntityCollection $classEntityCollection - ): ClassEntity { - $relativeFileName = str_replace($this->configuration->getProjectRoot(), '', $reflectionClass->getFileName() ?? ''); - $relativeFileName = $relativeFileName ?: null; - $className = $reflectionClass->getName(); - $classEntity = $this->createClassEntity($classEntityCollection, $className, $relativeFileName); - $classEntity->setReflectionClass($reflectionClass); - return $classEntity; - } - - /** - * @throws DependencyException - * @throws NotFoundException - */ - public function createSubClassEntity( - string $subClassEntity, - ClassEntityCollection $classEntityCollection, - string $className, - ?string $relativeFileName - ): ClassEntity { - if (!is_a($subClassEntity, ClassEntity::class, true)) { - throw new \Exception( - 'The class must inherit from `BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity`' - ); - } - $className = ltrim(str_replace('\\\\', '\\', $className), '\\'); - $objectId = md5($className); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - $wrapperClassName = $this->getOrCreateEntityClassWrapper($subClassEntity); - $classEntity = $this->diContainer->make($wrapperClassName, [ - 'reflector' => $this->reflector, - 'classEntityCollection' => $classEntityCollection, - 'className' => $className, - 'relativeFileName' => $relativeFileName - ]); - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $classEntity); - return $classEntity; - } - - /** - * @throws DependencyException - * @throws NotFoundException - * @throws InvalidConfigurationParameterException - */ - public function createSubClassEntityByReflection( - string $subClassEntity, - ReflectionClass $reflectionClass, - ClassEntityCollection $classEntityCollection - ): ClassEntity { - $relativeFileName = str_replace($this->configuration->getProjectRoot(), '', $reflectionClass->getFileName() ?? ''); - $relativeFileName = $relativeFileName ?: null; - $className = $reflectionClass->getName(); - $classEntity = $this->createSubClassEntity( - $subClassEntity, - $classEntityCollection, - $className, - $relativeFileName - ); - $classEntity->setReflectionClass($reflectionClass); - return $classEntity; - } - private function getOrCreateEntityClassWrapper(string $entityClassName): string { try { diff --git a/src/LanguageHandler/Php/Parser/Entity/ClassEntity.php b/src/LanguageHandler/Php/Parser/Entity/ClassEntity.php index 5e46a273..d065a9e5 100644 --- a/src/LanguageHandler/Php/Parser/Entity/ClassEntity.php +++ b/src/LanguageHandler/Php/Parser/Entity/ClassEntity.php @@ -4,562 +4,106 @@ namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; -use BumbleDocGen\Core\Cache\LocalCache\Exception\ObjectNotFoundException; -use BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache; -use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\Cache\CacheableMethod; -use BumbleDocGen\Core\Parser\Entity\RootEntityInterface; -use BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface; -use BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface; -use BumbleDocGen\Core\Renderer\Twig\Filter\PrepareSourceLink; -use BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper; -use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; -use BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; -use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad; -use DI\Attribute\Inject; -use DI\Container; -use DI\DependencyException; -use DI\NotFoundException; -use phpDocumentor\Reflection\DocBlock; -use PhpParser\Node\Stmt\Interface_ as InterfaceNode; -use Psr\Log\LoggerInterface; -use Roave\BetterReflection\BetterReflection; -use Roave\BetterReflection\Identifier\Identifier; -use Roave\BetterReflection\Identifier\IdentifierType; -use Roave\BetterReflection\Reflection\ReflectionClass; -use Roave\BetterReflection\SourceLocator\Located\LocatedSource; /** - * Class entity + * PHP Class + * + * @see https://www.php.net/manual/en/language.oop5.php */ -class ClassEntity extends BaseEntity implements DocumentTransformableEntityInterface, RootEntityInterface +class ClassEntity extends ClassLikeEntity { - #[Inject] private Container $diContainer; - - private array $pluginsData = []; - private ?ReflectionClass $reflectionClass = null; - private bool $relativeFileNameLoaded = false; - private bool $isClassLoad = false; - - public function __construct( - private Configuration $configuration, - private PhpHandlerSettings $phpHandlerSettings, - private ReflectorWrapper $reflector, - private ClassEntityCollection $classEntityCollection, - private ParserHelper $parserHelper, - private ComposerParser $composerParser, - private LocalObjectCache $localObjectCache, - private LoggerInterface $logger, - private string $className, - private ?string $relativeFileName, - ) { - parent::__construct( - $configuration, - $localObjectCache, - $parserHelper, - $logger - ); - if ($relativeFileName) { - $this->relativeFileNameLoaded = true; - } - } - - public static function isEntityNameValid(string $entityName): bool - { - return ParserHelper::isCorrectClassName($entityName); - } - - public function getObjectId(): string - { - return $this->className; - } - /** * @inheritDoc - * @throws \Exception - */ - public function isExternalLibraryEntity(): bool - { - return !is_null($this->composerParser->getComposerPackageDataByClassName($this->getName())); - } - - public function setReflectionClass(ReflectionClass $reflectionClass): void - { - $this->reflectionClass = $reflectionClass; - $this->isClassLoad = true; - } - - public function getReflector(): ReflectorWrapper - { - return $this->reflector; - } - - public function getPhpHandlerSettings(): PhpHandlerSettings - { - return $this->phpHandlerSettings; - } - - public function getRootEntityCollection(): ClassEntityCollection - { - return $this->classEntityCollection; - } - - /** - * {@inheritDoc} - * @throws NotFoundException - * @throws DependencyException - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - * @throws \Exception - */ - public function getEntityDependencies(): array - { - $fileDependencies = []; - if ($this->isClassLoad()) { - $currentClassEntityReflection = $this->getReflection(); - $parentClassNames = $this->getParentClassNames(); - $traitClassNames = $currentClassEntityReflection->getTraitNames(); - $interfaceNames = $this->getInterfaceNames(); - - $classNames = array_unique(array_merge($parentClassNames, $traitClassNames, $interfaceNames)); - $classNames = array_filter($classNames, fn(string $className) => !$this->composerParser->getComposerPackageDataByClassName($className)); - - $reflections = array_map(fn(string $className): ReflectionClass => $this->getReflector()->reflectClass($className), $classNames); - $reflections[] = $currentClassEntityReflection; - foreach ($reflections as $reflectionClass) { - $fileName = $reflectionClass->getFileName(); - if ($fileName) { - $relativeFileName = str_replace($this->configuration->getProjectRoot(), '', $reflectionClass->getFileName()); - $fileDependencies[$relativeFileName] = md5_file($fileName); - } - } - } - return $fileDependencies; - } - - /** - * @throws NotFoundException - * @throws ReflectionException - * @throws DependencyException - * @throws InvalidConfigurationParameterException */ - public function getDocBlock(): DocBlock + public function isClass(): bool { - $classEntity = $this->getDocCommentEntity(); - return $this->parserHelper->getDocBlock($classEntity, $this->getDocCommentRecursive()); + return true; } /** - * Checking if class file is in git repository + * @inheritDoc * * @throws InvalidConfigurationParameterException - * @throws ReflectionException - */ - public function isInGit(): bool - { - if (!$this->getFileName()) { - return false; - } - $filesInGit = $this->parserHelper->getFilesInGit(); - $fileName = ltrim($this->getFileName(), DIRECTORY_SEPARATOR); - return isset($filesInGit[$fileName]); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function documentCreationAllowed(): bool - { - return !$this->configuration->isCheckFileInGitBeforeCreatingDocEnabled() || $this->isInGit(); - } - - /** - * @throws NotFoundException - * @throws DependencyException - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getDocCommentEntity(): ClassEntity - { - $objectId = $this->getObjectId(); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - $docComment = $this->getDocComment(); - $classEntity = $this; - if (!$docComment || str_contains(mb_strtolower($docComment), '@inheritdoc')) { - $parentReflectionClass = $this->getParentClass(); - if ($parentReflectionClass) { - $classEntity = $parentReflectionClass->getDocCommentEntity(); - } - } - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $classEntity); - return $classEntity; - } - - /** - * @throws NotFoundException - * @throws DependencyException - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - protected function getDocCommentRecursive(): string - { - return $this->getDocCommentEntity()->getDocComment() ?: ' '; - } - - public function loadPluginData(string $pluginKey, array $data): void - { - $this->pluginsData[$pluginKey] = $data; - } - - public function getPluginData(string $pluginKey): ?array - { - return $this->pluginsData[$pluginKey] ?? null; - } - - /** - * {@inheritDoc} - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - final protected function getReflection(): ReflectionClass - { - if ($this->reflectionClass) { - return $this->reflectionClass; - } - $objectId = $this->getObjectId(); - try { - $this->reflectionClass = $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - return $this->reflectionClass; - } catch (ObjectNotFoundException) { - } - if (!$this->reflectionClass) { - try { - $this->reflectionClass = $this->reflector->reflectClass($this->className); - } catch (\Exception) { - } - if (!$this->reflectionClass && $this->relativeFileNameLoaded && $this->getName()) { - $locatedSource = new LocatedSource( - $this->getFileContent(), - $this->getName(), - $this->getAbsoluteFileName() - ); - /** - * @var ReflectionClass $reflectionClass - */ - $reflectionClass = (new BetterReflection())->astLocator()->findReflection( - $this->getReflector(), - $locatedSource, - new Identifier($this->getName(), new IdentifierType(IdentifierType::IDENTIFIER_CLASS)), - ); - $this->reflectionClass = $reflectionClass; - } - } - if (!$this->reflectionClass) { - throw new ReflectionException("'{$this->className}' could not be found in the located source "); - } - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $this->reflectionClass); - return $this->reflectionClass; - } - - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getImplementingReflectionClass(): ReflectionClass - { - return $this->getReflection(); - } - - public function hasAnnotationKey(string $annotationKey): bool - { - return false; - } - - public function getName(): string - { - return $this->className; - } - - /** - * @internal - */ - public function isClassLoad(): bool - { - if (!$this->isClassLoad) { - try { - $this->isClassLoad = ParserHelper::isCorrectClassName($this->getName()) && $this->getReflection(); - } catch (\Exception) { - $this->isClassLoad = false; - } - } - return $this->isClassLoad; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - * @throws \Exception */ - #[CacheableMethod] public function entityDataCanBeLoaded(): bool + #[CacheableMethod] public function isInstantiable(): bool { - if (!$this->isCurrentEntityCanBeLoad()) { - $this->logger->notice("Class `{$this->getName()}` loading skipped by plugin"); + if ($this->isAbstract()) { return false; } - return !$this->isExternalLibraryEntity() && $this->isEntityFileCanBeLoad(); - } - - public function getShortName(): string - { - $nameParts = explode('\\', $this->getName()); - return end($nameParts); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getNamespaceName(): string - { - return $this->getReflection()->getNamespaceName(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getRelativeFileName(bool $loadIfEmpty = true): ?string - { - if (!$this->relativeFileNameLoaded && $loadIfEmpty) { - $this->relativeFileNameLoaded = true; - $fileName = $this->getReflection()->getFileName(); - $projectRoot = $this->configuration->getProjectRoot(); - if (!$fileName || !str_starts_with($fileName, $projectRoot)) { - return null; - } - $this->relativeFileName = str_replace( - $projectRoot, - '', - $fileName - ); - } - return $this->relativeFileName; - } - - /** - * {@inheritDoc} - * @throws InvalidConfigurationParameterException - * @throws ReflectionException - */ - #[CacheableMethod] public function getFileName(): ?string - { - return $this->getRelativeFileName(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getFullFileName(): ?string - { - $fileName = $this->getFileName(); - if (!$fileName) { - return $fileName; - } - return "{$this->configuration->getProjectRoot()}{$fileName}"; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getStartLine(): int - { - return $this->getReflection()->getStartLine(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getEndLine(): int - { - return $this->getReflection()->getEndLine(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getModifiersString(): string - { - $modifiersString = []; - - $reflection = $this->getReflection(); - if ($reflection->isFinal() && !$this->isEnum()) { - $modifiersString[] = 'final'; - } - - $isInterface = $this->isInterface(); - if ($isInterface) { - $modifiersString[] = 'interface'; - return implode(' ', $modifiersString); - } elseif ($reflection->isAbstract()) { - $modifiersString[] = 'abstract'; - } - - if ($reflection->isTrait()) { - $modifiersString[] = 'trait'; - } elseif ($this->isEnum()) { - $modifiersString[] = 'enum'; - } else { - $modifiersString[] = 'class'; - } - - return implode(' ', $modifiersString); + return $this->getAst()->getMethod('__construct')?->isPublic() ?? true; } /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getExtends(): ?string - { - if ($this->isInterface()) { - $extends = $this->getInterfaceNames()[0] ?? null; - } else { - $extends = $this->getParentClassName(); - } - if ($extends) { - $extends = "\\{$extends}"; - } - return $extends; - } - - /** - * @return ClassEntity[] + * @inheritDoc * - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ - public function getInterfacesEntities(): array + #[CacheableMethod] public function isAbstract(): bool { - $interfacesEntities = []; - foreach ($this->getInterfaceNames() as $interfaceClassName) { - $interfacesEntities[] = $this->getRootEntityCollection()->getLoadedOrCreateNew($interfaceClassName); - } - return $interfacesEntities; + return $this->getAst()->isAbstract(); } /** - * @return string[] + * Check if a class is an attribute + * + * @api * - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ - #[CacheableMethod] public function getParentClassNames(): array + #[CacheableMethod] public function isAttribute(): bool { - if ($this->isExternalLibraryEntity()) { - return []; - } - if ($this->isInterface()) { - return $this->getInterfaceNames(); - } else { - try { - $parentClass = $this->getParentClass(); - if ($parentClass?->getName()) { - return array_merge(["\\{$parentClass->getName()}"], $parentClass->getParentClassNames()); + foreach ($this->getAst()->attrGroups as $attrGroup) { + foreach ($attrGroup->attrs as $attr) { + if ($attr->name->toString() === 'Attribute') { + return true; } - } catch (\Exception $e) { - $this->logger->warning($e->getMessage()); } } - return []; + return false; } - /** - * @return string[] + * @inheritDoc * - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ - #[CacheableMethod] public function getInterfaceNames(): array + #[CacheableMethod] public function getParentClassNames(): array { - // method $this->getReflection()->getInterfaceNames() is not suitable, because if at least - // one successor interface was not found in the sources, an error will be returned. - // We also need to get the maximum possible number of interfaces - - if ($this->isTrait()) { + if (!$this->isEntityDataCanBeLoaded()) { return []; } - $objectId = $this->getObjectId(); try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - - $interfaceNames = []; - - $node = $this->getReflection()->getAst(); - $nodes = $node instanceof InterfaceNode ? $node->extends : $node->implements; - $interfaces = array_map(static fn($n) => $n->toString(), $nodes ?? []); - foreach ($interfaces as $interfaceName) { - if ($interfaceName === $this->getName()) { - continue; - } - $parentInterfaceNames = []; - try { - $interfaceEntity = $this->getRootEntityCollection()->getLoadedOrCreateNew($interfaceName); - if (!$interfaceEntity->isExternalLibraryEntity()) { - $parentInterfaceNames = $interfaceEntity->getInterfaceNames(); - } - } catch (\Exception $e) { - $this->logger->error($e->getMessage()); + $parentClass = $this->getParentClass(); + if ($name = $parentClass?->getName()) { + return array_unique(array_merge([$name], $parentClass->getParentClassNames())); } - $interfaceNames = array_merge($interfaceNames, ["\\{$interfaceName}"], $parentInterfaceNames); + } catch (\Exception $e) { + $this->logger->warning($e->getMessage()); } - if (!$this->isInterface() && $parentClass = $this->getParentClass()) { - $parentInterfaceNames = []; - try { - if (!$parentClass->isExternalLibraryEntity()) { - $parentInterfaceNames = $parentClass->getInterfaceNames(); - } - } catch (\Exception $e) { - $this->logger->error($e->getMessage()); - } - $interfaceNames = array_merge($interfaceNames, $parentInterfaceNames); - } - $interfaceNames = array_unique($interfaceNames); - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $interfaceNames); - return $interfaceNames; + return []; } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getParentClassName(): ?string { - if (!$this->isInterface() && !$this->isTrait()) { - return $this->getReflection()->getAst()->extends?->toString(); + if (!$this->isEntityDataCanBeLoaded()) { + return null; } - return $this->getReflection()->getParentClass()?->getName(); + return $this->getAst()->extends?->toString(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ - public function getParentClass(): ?ClassEntity + public function getParentClass(): ?ClassLikeEntity { $parentClassName = $this->getParentClassName(); if (!$parentClassName) { @@ -569,439 +113,20 @@ public function getParentClass(): ?ClassEntity } /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getInterfacesString(): string - { - return implode(', ', $this->getInterfaceNames()); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getTraitsNames(): array - { - return $this->getReflection()->getTraitNames(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function hasTraits(): bool - { - return count($this->getTraitsNames()) > 0; - } - - /** - * @throws NotFoundException - * @throws ReflectionException - * @throws DependencyException - * @throws InvalidConfigurationParameterException - */ - public function getConstantEntityCollection(): ConstantEntityCollection - { - $objectId = $this->getObjectId(); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - $constantEntityCollection = $this->diContainer->make(ConstantEntityCollection::class, [ - 'classEntity' => $this - ]); - $constantEntityCollection->loadConstantEntities(); - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $constantEntityCollection); - return $constantEntityCollection; - } - - /** - * @throws NotFoundException - * @throws ReflectionException - * @throws DependencyException - * @throws InvalidConfigurationParameterException - */ - public function getConstantEntity(string $constantName, bool $unsafe = true): ?ConstantEntity - { - $constantEntityCollection = $this->getConstantEntityCollection(); - if ($unsafe) { - return $constantEntityCollection->unsafeGet($constantName); - } - return $constantEntityCollection->get($constantName); - } - - /** - * @throws DependencyException - * @throws InvalidConfigurationParameterException - * @throws NotFoundException - * @throws ReflectionException - */ - public function getPropertyEntityCollection(): PropertyEntityCollection - { - $objectId = $this->getObjectId(); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - $propertyEntityCollection = $this->diContainer->make(PropertyEntityCollection::class, [ - 'classEntity' => $this - ]); - $propertyEntityCollection->loadPropertyEntities(); - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $propertyEntityCollection); - return $propertyEntityCollection; - } - - /** - * @throws NotFoundException - * @throws DependencyException - * @throws InvalidConfigurationParameterException - * @throws ReflectionException - */ - public function getPropertyEntity(string $propertyName, bool $unsafe = true): ?PropertyEntity - { - $propertyEntityCollection = $this->getPropertyEntityCollection(); - if ($unsafe) { - return $propertyEntityCollection->unsafeGet($propertyName); - } - return $propertyEntityCollection->get($propertyName); - } - - /** - * @throws DependencyException - * @throws InvalidConfigurationParameterException - * @throws NotFoundException - * @throws ReflectionException - */ - public function getMethodEntityCollection(): MethodEntityCollection - { - $objectId = $this->getObjectId(); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - $methodEntityCollection = $this->diContainer->make(MethodEntityCollection::class, [ - 'classEntity' => $this - ]); - $methodEntityCollection->loadMethodEntities(); - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $methodEntityCollection); - return $methodEntityCollection; - } - - /** - * @throws NotFoundException - * @throws DependencyException - * @throws InvalidConfigurationParameterException - * @throws ReflectionException - */ - public function getMethodEntity(string $methodName, bool $unsafe = true): ?MethodEntity - { - $methodEntityCollection = $this->getMethodEntityCollection(); - if ($unsafe) { - return $methodEntityCollection->unsafeGet($methodName); - } - return $methodEntityCollection->get($methodName); - } - - /** - * @throws NotFoundException - * @throws ReflectionException - * @throws DependencyException - * @throws InvalidConfigurationParameterException - */ - public function getDescription(): string - { - $docBlock = $this->getDocBlock(); - return $docBlock->getSummary(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function isEnum(): bool - { - return $this->getReflection()->isEnum(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getCasesNames(): array - { - $caseNames = []; - if ($this->isEnum()) { - foreach ($this->getReflection()->getCases() as $case) { - $caseNames[] = $case->getName(); - } - } - return $caseNames; - } - - /** - * @throws InvalidConfigurationParameterException - */ - public function getFileContent(): string - { - $objectId = $this->getObjectId(); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - $fileContent = $this->getAbsoluteFileName() ? file_get_contents($this->getAbsoluteFileName()) : ''; - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $fileContent); - return $fileContent; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getMethodsData(): array - { - $methods = []; - foreach ($this->getReflection()->getMethods() as $method) { - $name = $method->getName(); - $methods[$name] = [ - 'declaringClass' => $method->getDeclaringClass()->getName(), - 'implementingClass' => $method->getLocatedSource()->getName(), - ]; - } - return $methods; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getPropertiesData(): array - { - $properties = []; - foreach ($this->getReflection()->getProperties() as $property) { - $name = $property->getName(); - $properties[$name] = [ - 'declaringClass' => $property->getDeclaringClass()->getName(), - 'implementingClass' => $property->getImplementingClass()->getName() - ]; - } - return $properties; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getConstantsData(): array - { - $constants = []; - foreach ($this->getReflection()->getReflectionConstants() as $constant) { - $name = $constant->getName(); - $constants[$name] = [ - 'declaringClass' => $constant->getDeclaringClass()->getName(), - 'implementingClass' => $constant->getImplementingClass()->getName() - ]; - } - return $constants; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function isInstantiable(): bool - { - return $this->getReflection()->isInstantiable(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function isAbstract(): bool - { - return $this->getReflection()->isAbstract(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function isInterface(): bool - { - return $this->getReflection()->getAst() instanceof InterfaceNode; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function isTrait(): bool - { - return $this->getReflection()->isTrait(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function hasMethod(string $method): bool - { - return array_key_exists($method, $this->getMethodsData()); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function hasProperty(string $property): bool - { - return array_key_exists($property, $this->getPropertiesData()); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function hasConstant(string $constant): bool - { - return array_key_exists($constant, $this->getConstantsData()); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function isSubclassOf(string $className): bool - { - $className = ltrim(str_replace('\\\\', '\\', $className), '\\'); - - $parentClassNames = $this->getParentClassNames(); - $interfacesNames = $this->getInterfaceNames(); - $allClasses = array_map( - fn($interface) => ltrim($interface, '\\'), - array_merge($parentClassNames, $interfacesNames) - ); - return in_array($className, $allClasses); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getConstant(string $name): string|array|int|bool|null|float - { - return $this->getReflection()->getConstant($name); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function implementsInterface(string $interfaceName): bool - { - $interfaceName = ltrim(str_replace('\\\\', '\\', $interfaceName), '\\'); - $interfaces = array_map( - fn($interface) => ltrim($interface, '\\'), - $this->getInterfaceNames() - ); - return in_array($interfaceName, $interfaces); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function hasParentClass(string $parentClassName): bool - { - $parentClassName = ltrim(str_replace('\\\\', '\\', $parentClassName), '\\'); - $parentClassNames = array_map( - fn($interface) => ltrim($interface, '\\'), - $this->getParentClassNames() - ); - return in_array($parentClassName, $parentClassNames); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getConstants(): array - { - return $this->getReflection()->getImmediateConstants(); - } - - /** - * @throws InvalidConfigurationParameterException - * @throws \Exception - */ - public function getDocRender(): EntityDocRendererInterface - { - $objectId = $this->getObjectId(); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - $docRenderer = $this->getPhpHandlerSettings()->getEntityDocRenderersCollection()->getFirstMatchingRender($this); - if (!$docRenderer) { - throw new \Exception( - "Renderer for file `{$this->getName()}` not found" - ); - } - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $docRenderer); - return $docRenderer; - } - - /** - * @throws ReflectionException - * @throws DependencyException - * @throws NotFoundException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ - public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string + #[CacheableMethod] public function getModifiersString(): string { - if ( - !$cursor || !preg_match( - '/^(((\$)(([a-zA-Z_])([a-zA-Z_0-9]+)))|(([a-zA-Z_])([a-zA-Z_0-9]+))|((([a-zA-Z_])([a-zA-Z_0-9]+))\(\)))$/', - $cursor, - $matches, - PREG_UNMATCHED_AS_NULL - ) - ) { - return ''; - } - - $prefix = null; - if ($attributeName = $matches[7]) { - // is constant - $prefix = 'q'; - if (!array_key_exists($matches[7], $this->getConstantsData())) { - if (array_key_exists($matches[7], $this->getMethodsData())) { - // is method - $prefix = 'm'; - } elseif (array_key_exists($matches[7], $this->getPropertiesData())) { - // is property - $prefix = 'p'; - } - } - } elseif ($attributeName = $matches[4]) { - // is property - $prefix = 'p'; - } elseif ($attributeName = $matches[11]) { - // is method - $prefix = 'm'; + $modifiersString = []; + if ($this->getAst()->isFinal()) { + $modifiersString[] = 'final'; + } elseif ($this->isAbstract()) { + $modifiersString[] = 'abstract'; } - if ($isForDocument) { - $prepareSourceLink = new PrepareSourceLink(); - return "#{$prefix}{$prepareSourceLink($attributeName)}"; - } - $line = match ($prefix) { - 'm' => $this->getMethodEntity($attributeName)?->getStartLine(), - 'p' => $this->getPropertyEntity($attributeName)?->getStartLine(), - 'q' => $this->getConstantEntity($attributeName)?->getStartLine(), - default => 0, - }; - return $line ? "#L{$line}" : ''; + $modifiersString[] = 'class'; + return implode(' ', $modifiersString); } } diff --git a/src/LanguageHandler/Php/Parser/Entity/ClassEntityCollection.php b/src/LanguageHandler/Php/Parser/Entity/ClassEntityCollection.php deleted file mode 100644 index 1b14337a..00000000 --- a/src/LanguageHandler/Php/Parser/Entity/ClassEntityCollection.php +++ /dev/null @@ -1,431 +0,0 @@ -pluginEventDispatcher; - } - - public function getEntityCollectionName(): string - { - return self::NAME; - } - - /** - * @throws NotFoundException - * @throws DependencyException - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function loadClassEntities(): void - { - $pb = $this->progressBarFactory->createStylizedProgressBar(); - $pb->setName('Loading PHP entities'); - $classEntityFilter = $this->phpHandlerSettings->getClassEntityFilter(); - - $allFiles = iterator_to_array($this->configuration->getSourceLocators()->getCommonFinder()->files()); - $addedFilesCount = 0; - foreach ($pb->iterate($allFiles) as $file) { - $pathName = $file->getPathName(); - $relativeFileName = str_replace($this->configuration->getProjectRoot(), '', $pathName); - $pb->setStepDescription("Processing `{$relativeFileName}` file"); - $className = $this->parserHelper->getClassFromFile($pathName); - if ($className) { - $relativeFileName = str_replace($this->configuration->getProjectRoot(), '', $file->getPathName()); - $classEntity = $this->cacheablePhpEntityFactory->createClassEntity( - $this, - ltrim($className, '\\'), - $relativeFileName - ); - if ($classEntityFilter->canAddToCollection($classEntity)) { - $this->add($classEntity); - ++$addedFilesCount; - } - } - } - $this->pluginEventDispatcher->dispatch(new AfterLoadingClassEntityCollection($this)); - - $allFilesCount = count($allFiles); - $skipped = $allFilesCount - $addedFilesCount; - $totalAddedEntities = count($this->entities); - $addedByPlugins = $totalAddedEntities - $addedFilesCount; - - $this->io->table([], [ - ['Processed files:', "{$addedFilesCount}"], - ['Skipped files:', "{$skipped}"], - ['Entities added by plugins:', "{$addedByPlugins}"], - ['Total added entities:', "{$totalAddedEntities}"], - ]); - } - - /** - * @throws InvalidConfigurationParameterException - * @throws Exception\ReflectionException - */ - public function add(ClassEntity $classEntity, bool $reload = false): ClassEntityCollection - { - $className = $classEntity->getName(); - if (!isset($this->entities[$className]) || $reload || isset($this->entitiesNotHandledByPlugins[$className])) { - $this->logger->info("Parsing {$classEntity->getFileName()} file"); - $this->pluginEventDispatcher->dispatch(new OnAddClassEntityToCollection($classEntity, $this)); - $this->entities[$className] = $classEntity; - unset($this->entitiesNotHandledByPlugins[$className]); - } - return $this; - } - - protected function prepareObjectName(string $objectName): string - { - return ltrim(str_replace('\\\\', '\\', $objectName), '\\'); - } - - /** - * @throws DependencyException - * @throws NotFoundException - */ - public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): ClassEntity - { - $classEntity = $this->get($objectName); - if (!$classEntity) { - $objectName = ltrim($objectName, '\\'); - $classEntity = $this->cacheablePhpEntityFactory->createClassEntity( - $this, - $objectName - ); - $this->entities[$classEntity->getName()] = $classEntity; - } - - if ($withAddClassEntityToCollectionEvent && array_key_exists($objectName, $this->entitiesNotHandledByPlugins)) { - $this->pluginEventDispatcher->dispatch(new OnAddClassEntityToCollection($classEntity, $this)); - unset($this->entitiesNotHandledByPlugins[$objectName]); - } else { - $this->entitiesNotHandledByPlugins[$objectName] = $objectName; - } - - return $classEntity; - } - - public function getEntityByClassName(string $className, bool $createIfNotExists = true): ?ClassEntity - { - return $createIfNotExists ? $this->getLoadedOrCreateNew($className) : $this->get($className); - } - - /** - * @param string[] $interfaces - * - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function filterByInterfaces(array $interfaces): ClassEntityCollection - { - $classEntityCollection = $this->cloneForFiltration(); - $interfaces = array_map( - fn($interface) => ltrim( - str_replace('\\\\', '\\', $interface), - '\\' - ), - $interfaces - ); - foreach ($classEntityCollection as $objectId => $classEntity) { - /**@var ClassEntity $classEntity */ - $entityInterfaces = array_map( - fn($interface) => ltrim($interface, '\\'), - $classEntity->getInterfaceNames() - ); - if (!array_intersect($interfaces, $entityInterfaces)) { - $classEntityCollection->remove($objectId); - } - } - return $classEntityCollection; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function filterByParentClassNames(array $parentClassNames): ClassEntityCollection - { - $classEntityCollection = $this->cloneForFiltration(); - $parentClassNames = array_map( - fn($parentClassName) => ltrim( - str_replace('\\\\', '\\', $parentClassName), - '\\' - ), - $parentClassNames - ); - foreach ($classEntityCollection as $objectId => $classEntity) { - /**@var ClassEntity $classEntity */ - $entityParentClassNames = array_map( - fn($parentClassName) => ltrim($parentClassName, '\\'), - $classEntity->getParentClassNames() - ); - if (!array_intersect($parentClassNames, $entityParentClassNames)) { - $classEntityCollection->remove($objectId); - } - } - return $classEntityCollection; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function filterByPaths(array $paths): ClassEntityCollection - { - $classEntityCollection = $this->cloneForFiltration(); - foreach ($classEntityCollection as $objectId => $classEntity) { - $needToKeep = false; - /**@var ClassEntity $classEntity */ - foreach ($paths as $path) { - if (str_starts_with($classEntity->getFileName(), $path)) { - $needToKeep = true; - } - } - if (!$needToKeep) { - $classEntityCollection->remove($objectId); - } - } - return $classEntityCollection; - } - - public function filterByNameRegularExpression(string $regexPattern): ClassEntityCollection - { - $classEntityCollection = $this->cloneForFiltration(); - foreach ($classEntityCollection as $objectId => $classEntity) { - /**@var ClassEntity $classEntity */ - if (!preg_match($regexPattern, $classEntity->getShortName())) { - $classEntityCollection->remove($objectId); - } - } - return $classEntityCollection; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getOnlyInstantiable(): ClassEntityCollection - { - $classEntityCollection = $this->cloneForFiltration(); - foreach ($classEntityCollection as $objectId => $classEntity) { - /**@var ClassEntity $classEntity */ - if (!$classEntity->isInstantiable()) { - $classEntityCollection->remove($objectId); - } - } - return $classEntityCollection; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getOnlyInterfaces(): ClassEntityCollection - { - $classEntityCollection = $this->cloneForFiltration(); - foreach ($classEntityCollection as $objectId => $classEntity) { - /**@var ClassEntity $classEntity */ - if (!$classEntity->isInterface()) { - $classEntityCollection->remove($objectId); - } - } - return $classEntityCollection; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getOnlyTraits(): ClassEntityCollection - { - $classEntityCollection = $this->cloneForFiltration(); - foreach ($classEntityCollection as $objectId => $classEntity) { - /**@var ClassEntity $classEntity */ - if (!$classEntity->isTrait()) { - $classEntityCollection->remove($objectId); - } - } - return $classEntityCollection; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getOnlyAbstractClasses(): ClassEntityCollection - { - $classEntityCollection = $this->cloneForFiltration(); - foreach ($classEntityCollection as $objectId => $classEntity) { - /**@var ClassEntity $classEntity */ - if (!$classEntity->isAbstract() || $classEntity->isInterface()) { - $classEntityCollection->remove($objectId); - } - } - return $classEntityCollection; - } - - /** - * @param string $search - * Search query. For the search, only the main part is taken, up to the characters: `::`, `->`, `#`. - * If the request refers to multiple existing entities and if unsafe keys are allowed, - * a warning will be shown and the first entity found will be used. - * - * @param bool $useUnsafeKeys Whether to use search keys that can be used to find several entities - * - * @return ClassEntity|null - * - * @example - * $classEntityCollection->findEntity('App'); // class name - * $classEntityCollection->findEntity('BumbleDocGen\Console\App'); // class with namespace - * $classEntityCollection->findEntity('\BumbleDocGen\Console\App'); // class with namespace - * $classEntityCollection->findEntity('\BumbleDocGen\Console\App::test()'); // class with namespace and optional part - * $classEntityCollection->findEntity('App.php'); // filename - * $classEntityCollection->findEntity('/BumbleDocGen/Console/App.php'); // relative path - * $classEntityCollection->findEntity('/Users/someuser/Desktop/projects/bumble-doc-gen/BumbleDocGen/Console/App.php'); // absolute path - * $classEntityCollection->findEntity('https://github.com/bumble-tech/bumble-doc-gen/blob/master/BumbleDocGen/Console/App.php'); // source link - */ - public function internalFindEntity(string $search, bool $useUnsafeKeys = true): ?ClassEntity - { - if (preg_match('/^((self|parent):|(\$(.*)->))/', $search)) { - return null; - } - - $cacheData = []; - try { - $cacheData = $this->localObjectCache->getMethodCachedResult(__METHOD__, ''); - } catch (ObjectNotFoundException) { - } - $index = $cacheData['index'] ?? []; - $duplicates = $cacheData['duplicates'] ?? []; - $lastCacheKey = $cacheData['lastCacheKey'] ?? null; - - $lastKey = array_key_last($this->entities); - if ($lastKey !== $lastCacheKey || !$index) { - $lastCacheKey = $lastKey; - $index = []; - $duplicates = []; - foreach ($this->entities as $entity) { - $index[$entity->getName()] = $entity; - if ($entity->entityDataCanBeLoaded() && $entity->getFileName()) { - $index[$entity->getFileName()] = $entity; - $index[$entity->getAbsoluteFileName()] = $entity; - $index[$entity->getFileSourceLink(false)] = $entity; - - $shortFileName = array_reverse(explode('/', $entity->getFileName()))[0]; - if (!isset($index[$shortFileName])) { - $index[$shortFileName] = $entity; - } else { - $duplicates[$shortFileName] = $entity->getShortName(); - } - } - - if (!isset($index[$entity->getShortName()])) { - $index[$entity->getShortName()] = $entity; - } else { - $duplicates[$entity->getShortName()] = $entity->getShortName(); - } - } - $this->localObjectCache->cacheMethodResult(__METHOD__, '', [ - 'index' => $index, - 'duplicates' => $duplicates, - 'lastCacheKey' => $lastCacheKey, - ]); - } - - $entity = null; - $foundKey = null; - $search = ltrim($search, '\\'); - if (array_key_exists($search, $index)) { - $entity = $index[$search]; - $foundKey = $search; - } else { - $preparedSearch = preg_replace('/^(((http(s?))::)?([^-:]+))((::|->)(.*))/', '$1', $search); - if (array_key_exists($preparedSearch, $index)) { - $entity = $index[$preparedSearch]; - $foundKey = $preparedSearch; - } elseif ( - preg_match('/^(\/?)(([a-zA-Z_])([a-zA-Z_0-9\\\\]+))((::|->))?/', $preparedSearch, $matches) && - isset($index[$matches[2]]) - ) { - $entity = $index[$matches[2]]; - $foundKey = $matches[2]; - } - } - - if (array_key_exists($foundKey, $duplicates)) { - if ($useUnsafeKeys) { - $this->logger->warning( - "ClassEntityCollection:findEntity: Key `{$foundKey}` refers to multiple entities. Use a unique search key to avoid mistakes" - ); - } else { - return null; - } - } - - return $entity; - } - - /** - * @inheritDoc - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getEntityLinkData( - string $rawLink, - ?string $defaultEntityName = null, - bool $useUnsafeKeys = true - ): array { - return $this->docRendererHelper->getEntityDataByLink( - $rawLink, - $this, - $defaultEntityName, - $useUnsafeKeys - ); - } -} diff --git a/src/LanguageHandler/Php/Parser/Entity/ClassLikeEntity.php b/src/LanguageHandler/Php/Parser/Entity/ClassLikeEntity.php new file mode 100644 index 00000000..d8f2de0c --- /dev/null +++ b/src/LanguageHandler/Php/Parser/Entity/ClassLikeEntity.php @@ -0,0 +1,1332 @@ +className = self::normalizeClassName($this->className); + if ($relativeFileName) { + $this->relativeFileNameLoaded = true; + } + + parent::__construct( + $configuration, + $localObjectCache, + $parserHelper, + $logger + ); + } + + /** + * Get entity modifiers as a string + */ + abstract public function getModifiersString(): string; + + /** + * Check if the name is a valid name for ClassLikeEntity + */ + public static function isEntityNameValid(string $entityName): bool + { + return ParserHelper::isCorrectClassName($entityName); + } + + /** + * Bring the class name to the standard format used in the system + * + * @api + */ + final public static function normalizeClassName(string $name): string + { + return ltrim(str_replace('\\\\', '\\', $name), '\\'); + } + + /** + * Check if an entity is a Class + * + * @api + */ + public function isClass(): bool + { + return false; + } + + /** + * Check if an entity is an Interface + * + * @api + */ + public function isInterface(): bool + { + return false; + } + + /** + * Check if an entity is a Trait + * + * @api + */ + public function isTrait(): bool + { + return false; + } + + /** + * Check if an entity is an Enum + * + * @api + */ + public function isEnum(): bool + { + return false; + } + + /** + * @inheritDoc + */ + public function getObjectId(): string + { + return $this->className; + } + + /** + * Check if a given entity is an entity from a third party library (connected via composer) + * + * @internal + */ + public function isExternalLibraryEntity(): bool + { + return !is_null($this->composerHelper->getComposerPackageDataByClassName($this->getName())); + } + + /** + * @inheritDoc + */ + final public function getRootEntityCollection(): PhpEntitiesCollection + { + return $this->entitiesCollection; + } + + /** + * @inheritDoc + * + * @throws InvalidConfigurationParameterException + * @throws \Exception + */ + public function getEntityDependencies(): array + { + $fileDependencies = []; + if ($this->isClassLoad()) { + $parentClassNames = $this->getParentClassNames(); + $traitClassNames = $this->getTraitsNames(); + $interfaceNames = $this->getInterfaceNames(); + + $classNames = array_unique(array_merge($parentClassNames, $traitClassNames, $interfaceNames)); + $classNames = array_filter( + $classNames, + function (string $className): bool { + return !$this->composerHelper->getComposerPackageDataByClassName($className) && !$this->parserHelper->isBuiltInClass($className); + } + ); + + $reflections = array_map(fn(string $className) => $this->getRootEntityCollection()->getLoadedOrCreateNew($className), $classNames); + $reflections[] = $this; + foreach ($reflections as $reflectionClass) { + $relativeFileName = $reflectionClass->getRelativeFileName(); + if ($relativeFileName) { + $fileName = $this->configuration->getProjectRoot() . '/' . $relativeFileName; + $fileDependencies[$relativeFileName] = md5_file($fileName); + } + } + } + return $fileDependencies; + } + + /** + * Checking if class file is in git repository + * + * @internal + */ + final public function isInGit(): bool + { + try { + if (!$this->getRelativeFileName()) { + return false; + } + $filesInGit = $this->parserHelper->getFilesInGit(); + $fileName = ltrim($this->getRelativeFileName(), DIRECTORY_SEPARATOR); + return isset($filesInGit[$fileName]); + } catch (\Exception) { + } + return false; + } + + /** + * @internal + * + * @throws InvalidConfigurationParameterException + */ + final public function isDocumentCreationAllowed(): bool + { + return !$this->configuration->isCheckFileInGitBeforeCreatingDocEnabled() || $this->isInGit(); + } + + /** + * @inheritDoc + * + * @throws NotFoundException + * @throws DependencyException + * @throws InvalidConfigurationParameterException + */ + final public function getDocCommentEntity(): ClassLikeEntity + { + $objectId = $this->getObjectId(); + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); + } catch (ObjectNotFoundException) { + } + $docComment = $this->getDocComment(); + $classEntity = $this; + if (!$docComment || str_contains(mb_strtolower($docComment), '@inheritdoc')) { + $parentReflectionClass = $this->getParentClass(); + if ($parentReflectionClass && $parentReflectionClass->isEntityDataCanBeLoaded()) { + $classEntity = $parentReflectionClass->getDocCommentEntity(); + } + } + $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $classEntity); + return $classEntity; + } + + /** + * Add information to aт entity object + */ + final public function addPluginData(string $pluginKey, mixed $data): void + { + $objectId = $this->getObjectId(); + $cacheKey = "{$objectId}::{$pluginKey}"; + $this->localObjectCache->cacheMethodResult(__CLASS__ . '::getPluginData', $cacheKey, $data); + } + + /** + * Get additional information added using the plugin + * + * @api + */ + final public function getPluginData(string $pluginKey): mixed + { + $objectId = $this->getObjectId(); + $cacheKey = "{$objectId}::{$pluginKey}"; + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $cacheKey); + } catch (ObjectNotFoundException) { + } + return null; + } + + /** + * @internal + */ + final public function setCustomAst(TraitNode|EnumNode|InterfaceNode|ClassNode|null $customAst): void + { + $objectId = $this->getObjectId(); + $this->isClassLoad = true; + $this->localObjectCache->cacheMethodResult(__CLASS__ . '::getAst', $objectId, $customAst); + } + /** + * @inheritDoc + * + * @throws \RuntimeException + * @throws InvalidConfigurationParameterException + */ + final public function getAst(): ClassNode|InterfaceNode|TraitNode|EnumNode + { + $objectId = $this->getObjectId(); + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); + } catch (ObjectNotFoundException) { + } + + $ast = null; + $nodes = $this->phpParserHelper->phpParser()->parse($this->getFileContent()); + $nodeTraverser = new NodeTraverser(); + $nodeTraverser->addVisitor(new NameResolver()); + $nodes = $nodeTraverser->traverse($nodes); + foreach ($nodes as $node) { + if (in_array(get_class($node), [ClassNode::class, InterfaceNode::class, TraitNode::class, EnumNode::class])) { + $className = $node->name->toString(); + if ($className === $this->getName()) { + $ast = $node; + break; + } + } elseif (!$node instanceof NamespaceNode) { + continue; + } + $namespaceName = $node->name->toString(); + foreach ($node->stmts as $subNode) { + if (!in_array(get_class($subNode), [ClassNode::class, InterfaceNode::class, TraitNode::class, EnumNode::class])) { + continue; + } + $className = "{$namespaceName}\\{$subNode->name->toString()}"; + if ($className === $this->getName()) { + $ast = $subNode; + break 2; + } + } + } + + if (!$ast) { + throw new \RuntimeException("Entity `{$this->getName()}` not found"); + } + $this->isClassLoad = true; + $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $ast); + return $ast; + } + + /** + * @internal + */ + final public function isClassLoad(): bool + { + if (!$this->isClassLoad) { + try { + $this->isClassLoad = ParserHelper::isCorrectClassName($this->getName()) && $this->getRelativeFileName(); + } catch (\Exception) { + $this->isClassLoad = false; + } + } + return $this->isClassLoad; + } + + /** + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function isEntityDataCanBeLoaded(): bool + { + if (!$this->isCurrentEntityCanBeLoad()) { + $this->logger->notice("Class `{$this->getName()}` loading skipped by plugin"); + return false; + } + return !$this->isExternalLibraryEntity() && $this->isEntityFileCanBeLoad(); + } + + /** + * @inheritDoc + */ + final public function getImplementingClass(): ClassLikeEntity + { + return $this; + } + + /** + * @inheritDoc + */ + final public function getName(): string + { + return $this->className; + } + + /** + * @inheritDoc + */ + final public function getShortName(): string + { + $nameParts = explode('\\', $this->getName()); + return end($nameParts); + } + + /** + * Get the entity namespace name + * + * @api + */ + final public function getNamespaceName(): string + { + $namespaceParts = explode('\\', $this->getName()); + if (count($namespaceParts) < 2) { + return ''; + } + array_pop($namespaceParts); + return implode('\\', $namespaceParts); + } + + /** + * @inheritDoc + * + * @throws InvalidConfigurationParameterException + */ + public function getRelativeFileName(): ?string + { + if (!$this->relativeFileNameLoaded) { + $this->relativeFileNameLoaded = true; + $fileName = $this->composerHelper->getComposerClassLoader()->findFile($this->getName()); + $projectRoot = $this->configuration->getProjectRoot(); + if (!$fileName || !str_starts_with($fileName, $projectRoot)) { + return null; + } + $this->relativeFileName = str_replace( + [$projectRoot, '//'], + ['', '/'], + $fileName + ); + } + return $this->relativeFileName; + } + + /** + * Check that an entity is instantiable + * + * @api + */ + public function isInstantiable(): bool + { + return false; + } + + /** + * Check that an entity is abstract + * + * @api + */ + public function isAbstract(): bool + { + return false; + } + + /** + * Get the line number of the start of a class code in a file + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getStartLine(): int + { + return $this->getAst()->getStartLine(); + } + + /** + * Get the line number of the end of a class code in a file + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getEndLine(): int + { + return $this->getAst()->getEndLine(); + } + + /** + * Get a list of entity names of parent classes + * + * @api + * + * @return string[] + */ + public function getParentClassNames(): array + { + return []; + } + + /** + * Get a list of parent class entities + * + * @api + * + * @return ClassLikeEntity[] + */ + public function getParentClassEntities(): array + { + return array_map( + fn(string $className): ClassLikeEntity => $this->getRootEntityCollection()->getLoadedOrCreateNew($className), + $this->getParentClassNames() + ); + } + + /** + * Get the name of the parent class entity if it exists + * + * @api + */ + public function getParentClassName(): ?string + { + return null; + } + + /** + * Get the entity of the parent class if it exists + * + * @api + */ + public function getParentClass(): ?ClassLikeEntity + { + return null; + } + + /** + * Get a list of class interface names + * + * @return string[] + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getInterfaceNames(): array + { + if (!$this->isEntityDataCanBeLoaded()) { + return []; + } + + $objectId = $this->getObjectId(); + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); + } catch (ObjectNotFoundException) { + } + + $interfaceNames = []; + + $node = $this->getAst(); + $nodes = $node instanceof InterfaceNode ? $node->extends : $node->implements; + $interfaces = array_map(static fn($n) => $n->toString(), $nodes ?? []); + foreach ($interfaces as $interfaceName) { + if ($interfaceName === $this->getName()) { + continue; + } + $parentInterfaceNames = []; + try { + $interfaceEntity = $this->getRootEntityCollection()->getLoadedOrCreateNew($interfaceName); + if ($interfaceEntity->isEntityDataCanBeLoaded()) { + $parentInterfaceNames = $interfaceEntity->getInterfaceNames(); + } + } catch (\Exception $e) { + $this->logger->error($e->getMessage()); + } + $interfaceNames = array_merge($interfaceNames, [$interfaceName], $parentInterfaceNames); + } + if (!$this->isInterface() && $parentClass = $this->getParentClass()) { + $parentInterfaceNames = []; + try { + if ($parentClass->isEntityDataCanBeLoaded()) { + $parentInterfaceNames = $parentClass->getInterfaceNames(); + } + } catch (\Exception $e) { + $this->logger->error($e->getMessage()); + } + $interfaceNames = array_merge($interfaceNames, $parentInterfaceNames); + } + $interfaceNames = array_unique($interfaceNames); + $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $interfaceNames); + return $interfaceNames; + } + + /** + * Get a list of interface entities that the current class implements + * + * @return InterfaceEntity[] + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + public function getInterfacesEntities(): array + { + return array_map( + fn(string $className): ClassLikeEntity => $this->getRootEntityCollection()->getLoadedOrCreateNew($className), + $this->getInterfaceNames() + ); + } + + /** + * Get a list of class traits names + * + * @api + * + * @return string[] + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getTraitsNames(): array + { + if (!$this->isEntityDataCanBeLoaded()) { + return []; + } + $traitsNames = []; + /**@var Node\Stmt\TraitUse[] $traitsNodes * */ + $traitsNodes = array_filter($this->getAst()->stmts, static fn(Node\Stmt $stmt): bool => $stmt instanceof Node\Stmt\TraitUse); + foreach ($traitsNodes as $node) { + foreach ($node->traits as $traitNode) { + $traitsNames[] = $traitNode->toString(); + } + } + return $traitsNames; + } + + /** + * Get a list of trait entities of the current class + * + * @api + * + * @return TraitEntity[] + * + * @throws InvalidConfigurationParameterException + */ + public function getTraits(): array + { + return array_map( + fn(string $className): ClassLikeEntity => $this->getRootEntityCollection()->getLoadedOrCreateNew($className), + $this->getTraitsNames() + ); + } + + /** + * Check if the class contains traits + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + public function hasTraits(): bool + { + return count($this->getTraitsNames()) > 0; + } + + /** + * Get a list of all constants and classes where they are implemented + * + * @internal + * + * @param bool $onlyFromCurrentClassAndTraits Get data only for constants from the current class + * @param int $flags Get data only for constants corresponding to the visibility modifiers passed in this value + * + * @return array + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getConstantsData( + bool $onlyFromCurrentClassAndTraits = false, + int $flags = ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY + ): array { + if (!$this->isEntityDataCanBeLoaded()) { + return []; + } + $constants = []; + /** @var ConstNode[] $constNodes */ + $constNodes = array_filter( + $this->getAst()->stmts, + static fn(Node\Stmt $stmt): bool => $stmt instanceof ConstNode, + ); + array_walk($constNodes, fn(ConstNode $stmt) => $stmt->flags = $stmt->flags ?: ClassConstantEntity::MODIFIERS_FLAG_IS_PUBLIC); + foreach ($constNodes as $constNode) { + if (($constNode->flags & $flags) === 0) { + continue; + } + foreach ($constNode->consts as $constant) { + $constants[$constant->name->toString()] = $this->getName(); + } + } + + $flags &= ~ ClassConstantEntity::MODIFIERS_FLAG_IS_PRIVATE; + foreach ($this->getTraits() as $traitEntity) { + if (!$traitEntity->isEntityDataCanBeLoaded()) { + continue; + } + foreach ($traitEntity->getConstantsData(true, $flags) as $name => $constantsData) { + if (array_key_exists($name, $constants)) { + continue; + } + $constants[$name] = $constantsData; + } + } + + if (!$onlyFromCurrentClassAndTraits) { + foreach ($this->getParentClassEntities() as $parentClassEntity) { + if (!$parentClassEntity->isEntityDataCanBeLoaded()) { + continue; + } + foreach ($parentClassEntity->getConstantsData(true, $flags) as $name => $constantsData) { + if (array_key_exists($name, $constants)) { + continue; + } + $constants[$name] = $constantsData; + } + } + + foreach ($this->getInterfacesEntities() as $interfacesEntity) { + if (!$interfacesEntity->isEntityDataCanBeLoaded()) { + continue; + } + foreach ($interfacesEntity->getConstantsData(true, $flags) as $name => $constantsData) { + if (array_key_exists($name, $constants)) { + continue; + } + $constants[$name] = $constantsData; + } + } + } + return $constants; + } + + /** + * Get a collection of constant entities + * + * @api + * + * @see PhpHandlerSettings::getClassConstantEntityFilter() + * + * @throws NotFoundException + * @throws DependencyException + * @throws InvalidConfigurationParameterException + */ + public function getConstantEntitiesCollection(): ClassConstantEntitiesCollection + { + $objectId = $this->getObjectId(); + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); + } catch (ObjectNotFoundException) { + } + $constantEntitiesCollection = $this->diContainer->make(ClassConstantEntitiesCollection::class, [ + 'classEntity' => $this + ]); + $constantEntitiesCollection->loadConstantEntities(); + $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $constantEntitiesCollection); + return $constantEntitiesCollection; + } + + /** + * Get all constants that are available according to the configuration as an array + * + * @return ClassConstantEntity[] + * + * @see self::getConstantEntitiesCollection() + * @see PhpHandlerSettings::getClassConstantEntityFilter() + * + * @api + * + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function getConstants(): array + { + $constantEntitiesCollection = $this->getConstantEntitiesCollection(); + return iterator_to_array($constantEntitiesCollection); + } + + /** + * Check if a constant exists in a class + * + * @param string $constantName The name of the class whose entity you want to check + * @param bool $unsafe Check all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter()) + * + * @return bool The constant exists + * + * @api + * + * @throws DependencyException + * @throws NotFoundException + * @throws InvalidConfigurationParameterException + */ + public function hasConstant(string $constantName, bool $unsafe = false): bool + { + $constantEntitiesCollection = $this->getConstantEntitiesCollection(); + if ($unsafe) { + return array_key_exists($constantName, $this->getConstantsData()); + } + return $constantEntitiesCollection->has($constantName); + } + + /** + * Get the method entity by its name + * + * @param string $constantName The name of the constant whose entity you want to get + * @param bool $unsafe Check all constants, not just the constants allowed in the configuration (@see PhpHandlerSettings::getClassConstantEntityFilter()) + * + * @api + * + * @throws NotFoundException + * @throws DependencyException + * @throws InvalidConfigurationParameterException + */ + public function getConstant(string $constantName, bool $unsafe = false): ?ClassConstantEntity + { + $constantEntitiesCollection = $this->getConstantEntitiesCollection(); + if ($unsafe) { + return $constantEntitiesCollection->unsafeGet($constantName); + } + return $constantEntitiesCollection->get($constantName); + } + + /** + * Get the compiled value of a constant + * + * @param string $constantName The name of the constant for which you need to get the value + * + * @return string|array|int|bool|float|null Compiled constant value + * + * @api + * + * @throws ConstExprEvaluationException + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function getConstantValue(string $constantName): string|array|int|bool|null|float + { + return $this->getConstant($constantName, true)?->getValue(); + } + + /** + * Get class constant compiled values according to filters + * + * @param bool $onlyFromCurrentClassAndTraits Get values only for constants from the current class + * @param int $flags Get values only for constants corresponding to the visibility modifiers passed in this value + * + * @return array + * + * @api + * + * @throws NotFoundException + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws ConstExprEvaluationException + */ + public function getConstantsValues( + bool $onlyFromCurrentClassAndTraits = false, + int $flags = ClassConstantEntity::VISIBILITY_MODIFIERS_FLAG_ANY + ): array { + $constants = []; + foreach ($this->getConstantsData($onlyFromCurrentClassAndTraits, $flags) as $constantName => $implementingClassName) { + $constants[$constantName] = $this->getConstantValue($constantName); + } + return $constants; + } + + /** + * Get a list of all properties and classes where they are implemented + * + * @param bool $onlyFromCurrentClassAndTraits Get data only for properties from the current class + * @param int $flags Get data only for properties corresponding to the visibility modifiers passed in this value + * + * @return array + * + * @internal + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getPropertiesData( + bool $onlyFromCurrentClassAndTraits = false, + int $flags = PropertyEntity::VISIBILITY_MODIFIERS_FLAG_ANY + ): array { + if (!$this->isEntityDataCanBeLoaded()) { + return []; + } + $properties = []; + /** @var PropertyNode[] $propertyNodes */ + $propertyNodes = array_filter( + $this->getAst()->stmts, + static fn(Node\Stmt $stmt): bool => $stmt instanceof PropertyNode, + ); + array_walk($propertyNodes, fn(PropertyNode $stmt) => $stmt->flags = $stmt->flags ?: PropertyEntity::MODIFIERS_FLAG_IS_PUBLIC); + foreach ($propertyNodes as $node) { + if (($node->flags & $flags) === 0) { + continue; + } + foreach ($node->props as $propertyNode) { + $properties[$propertyNode->name->toString()] = $this->getName(); + } + } + + $flags &= ~ PropertyEntity::MODIFIERS_FLAG_IS_PRIVATE; + foreach ($this->getTraits() as $traitEntity) { + foreach ($traitEntity->getPropertiesData(true, $flags) as $name => $propertyData) { + if (!$traitEntity->isEntityDataCanBeLoaded()) { + continue; + } + if (array_key_exists($name, $properties)) { + continue; + } + $properties[$name] = $propertyData; + } + } + if (!$onlyFromCurrentClassAndTraits) { + foreach ($this->getParentClassEntities() as $parentClassEntity) { + if (!$parentClassEntity->isEntityDataCanBeLoaded()) { + continue; + } + foreach ($parentClassEntity->getPropertiesData(true, $flags) as $name => $propertyData) { + if (array_key_exists($name, $properties)) { + continue; + } + $properties[$name] = $propertyData; + } + } + } + return $properties; + } + + /** + * Get a collection of property entities + * + * @api + * + * @see PhpHandlerSettings::getPropertyEntityFilter() + * + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function getPropertyEntitiesCollection(): PropertyEntitiesCollection + { + $objectId = $this->getObjectId(); + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); + } catch (ObjectNotFoundException) { + } + $propertyEntitiesCollection = $this->diContainer->make(PropertyEntitiesCollection::class, [ + 'classEntity' => $this + ]); + $propertyEntitiesCollection->loadPropertyEntities(); + $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $propertyEntitiesCollection); + return $propertyEntitiesCollection; + } + + /** + * Get all properties that are available according to the configuration as an array + * + * @return PropertyEntity[] + * + * @api + * + * @see self::getPropertyEntitiesCollection() + * @see PhpHandlerSettings::getPropertyEntityFilter() + * + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function getProperties(): array + { + $propertyEntitiesCollection = $this->getPropertyEntitiesCollection(); + return iterator_to_array($propertyEntitiesCollection); + } + + /** + * Check if a property exists in a class + * + * @param string $propertyName The name of the property whose entity you want to check + * @param bool $unsafe Check all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter()) + * + * @return bool The property exists + * + * @api + * + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function hasProperty(string $propertyName, bool $unsafe = false): bool + { + $propertyEntitiesCollection = $this->getPropertyEntitiesCollection(); + if ($unsafe) { + return array_key_exists($propertyName, $this->getPropertiesData()); + } + return $propertyEntitiesCollection->has($propertyName); + } + + /** + * Get the property entity by its name + * + * @param string $propertyName The name of the property whose entity you want to get + * @param bool $unsafe Check all properties, not just the properties allowed in the configuration (@see PhpHandlerSettings::getPropertyEntityFilter()) + * + * @api + * + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function getProperty(string $propertyName, bool $unsafe = false): ?PropertyEntity + { + $propertyEntitiesCollection = $this->getPropertyEntitiesCollection(); + if ($unsafe) { + return $propertyEntitiesCollection->unsafeGet($propertyName); + } + return $propertyEntitiesCollection->get($propertyName); + } + + /** + * Get the compiled value of a property + * + * @param string $propertyName The name of the property for which you need to get the value + * + * @return string|array|int|bool|float|null Compiled property value + * + * @api + * + * @throws ConstExprEvaluationException + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function getPropertyDefaultValue(string $propertyName): string|array|int|bool|null|float + { + return $this->getProperty($propertyName, true)?->getDefaultValue(); + } + + /** + * @throws InvalidConfigurationParameterException + */ + public function getFileContent(): string + { + $objectId = $this->getObjectId(); + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); + } catch (ObjectNotFoundException) { + } + $fileContent = $this->getAbsoluteFileName() ? file_get_contents($this->getAbsoluteFileName()) : ''; + $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $fileContent); + return $fileContent; + } + + /** + * Get a list of all methods and classes where they are implemented + * + * @internal + * + * @param bool $onlyFromCurrentClassAndTraits Get data only for methods from the current class + * @param int $flags Get data only for methods corresponding to the visibility modifiers passed in this value + * + * @return array + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getMethodsData( + bool $onlyFromCurrentClassAndTraits = false, + int $flags = MethodEntity::VISIBILITY_MODIFIERS_FLAG_ANY + ): array { + if (!$this->isEntityDataCanBeLoaded()) { + return []; + } + $methods = []; + /** @var MethodNode[] $methodNodes */ + $methodNodes = array_filter( + $this->getAst()->stmts, + static fn(Node\Stmt $stmt): bool => $stmt instanceof MethodNode, + ); + array_walk($methodNodes, fn(MethodNode $stmt) => $stmt->flags = $stmt->flags ?: MethodEntity::MODIFIERS_FLAG_IS_PUBLIC); + foreach ($methodNodes as $methodNode) { + if (($methodNode->flags & $flags) === 0) { + continue; + } + $methods[$methodNode->name->toString()] = $this->getName(); + } + + $flags &= ~ MethodEntity::MODIFIERS_FLAG_IS_PRIVATE; + foreach ($this->getTraits() as $traitEntity) { + if (!$traitEntity->isEntityDataCanBeLoaded()) { + continue; + } + foreach ($traitEntity->getMethodsData(true, $flags) as $name => $methodsData) { + if (array_key_exists($name, $methods)) { + continue; + } + $methods[$name] = $methodsData; + } + } + + if (!$onlyFromCurrentClassAndTraits) { + foreach ($this->getParentClassEntities() as $parentClassEntity) { + if (!$parentClassEntity->isEntityDataCanBeLoaded()) { + continue; + } + foreach ($parentClassEntity->getMethodsData(true, $flags) as $name => $methodsData) { + if (array_key_exists($name, $methods)) { + continue; + } + $methods[$name] = $methodsData; + } + } + + foreach ($this->getInterfacesEntities() as $interfacesEntity) { + if (!$interfacesEntity->isEntityDataCanBeLoaded()) { + continue; + } + foreach ($interfacesEntity->getMethodsData(true, $flags) as $name => $methodsData) { + if (array_key_exists($name, $methods)) { + continue; + } + $methods[$name] = $methodsData; + } + } + } + + return $methods; + } + + /** + * Get a collection of method entities + * + * @api + * + * @see PhpHandlerSettings::getMethodEntityFilter() + * + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function getMethodEntitiesCollection(): MethodEntitiesCollection + { + $objectId = $this->getObjectId(); + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); + } catch (ObjectNotFoundException) { + } + $methodEntitiesCollection = $this->diContainer->make(MethodEntitiesCollection::class, [ + 'classEntity' => $this + ]); + $methodEntitiesCollection->loadMethodEntities(); + $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $methodEntitiesCollection); + return $methodEntitiesCollection; + } + + /** + * Get all methods that are available according to the configuration as an array + * + * @api + * + * @return MethodEntity[] + * + * @see self::getMethodEntitiesCollection() + * @see PhpHandlerSettings::getMethodEntityFilter() + * + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function getMethods(): array + { + $methodEntitiesCollection = $this->getMethodEntitiesCollection(); + return iterator_to_array($methodEntitiesCollection); + } + + /** + * Check if a method exists in a class + * + * @api + * + * @param string $methodName The name of the method whose entity you want to check + * @param bool $unsafe Check all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter()) + * + * @return bool The method exists + * + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function hasMethod(string $methodName, bool $unsafe = false): bool + { + $methodEntitiesCollection = $this->getMethodEntitiesCollection(); + if ($unsafe) { + return array_key_exists($methodName, $this->getMethodsData()); + } + return $methodEntitiesCollection->has($methodName); + } + + /** + * Get the method entity by its name + * + * @api + * + * @param string $methodName The name of the method whose entity you want to get + * @param bool $unsafe Check all methods, not just the methods allowed in the configuration (@see PhpHandlerSettings::getMethodEntityFilter()) + * + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws NotFoundException + */ + public function getMethod(string $methodName, bool $unsafe = false): ?MethodEntity + { + $methodEntitiesCollection = $this->getMethodEntitiesCollection(); + if ($unsafe) { + return $methodEntitiesCollection->unsafeGet($methodName); + } + return $methodEntitiesCollection->get($methodName); + } + + /** + * Whether the given class is a subclass of the specified class + * + * @throws InvalidConfigurationParameterException + * + * @api + */ + public function isSubclassOf(string $className): bool + { + $className = ClassLikeEntity::normalizeClassName($className); + $parentClassNames = $this->getParentClassNames(); + $interfacesNames = $this->getInterfaceNames(); + $allClasses = array_merge($parentClassNames, $interfacesNames); + return in_array($className, $allClasses); + } + + /** + * Check if a class implements an interface + * + * @param string $interfaceName Name of the required interface in the interface chain + * + * @throws InvalidConfigurationParameterException + * + * @api + */ + public function implementsInterface(string $interfaceName): bool + { + $interfaceName = ClassLikeEntity::normalizeClassName($interfaceName); + return in_array($interfaceName, $this->getInterfaceNames()); + } + + /** + * Check if a certain parent class exists in a chain of parent classes + * + * @param string $parentClassName Searched parent class + * + * @api + */ + public function hasParentClass(string $parentClassName): bool + { + $parentClassName = ClassLikeEntity::normalizeClassName($parentClassName); + return in_array($parentClassName, $this->getParentClassNames()); + } + + /** + * @internal + * + * @throws InvalidConfigurationParameterException + * @throws \Exception + */ + public function getDocRender(): EntityDocRendererInterface + { + $objectId = $this->getObjectId(); + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); + } catch (ObjectNotFoundException) { + } + $docRenderer = $this->phpHandlerSettings->getEntityDocRenderersCollection()->getFirstMatchingRender($this); + if (!$docRenderer) { + throw new \Exception( + "Renderer for file `{$this->getName()}` not found" + ); + } + $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $docRenderer); + return $docRenderer; + } + + /** + * @internal + * + * @throws DependencyException + * @throws NotFoundException + * @throws InvalidConfigurationParameterException + */ + public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string + { + if ( + !$cursor || !preg_match( + '/^(((\$)(([a-zA-Z_])([a-zA-Z_0-9]+)))|(([a-zA-Z_])([a-zA-Z_0-9]+))|((([a-zA-Z_])([a-zA-Z_0-9]+))\(\)))$/', + $cursor, + $matches, + PREG_UNMATCHED_AS_NULL + ) + ) { + return ''; + } + + $prefix = null; + if ($attributeName = $matches[7]) { + // is constant + $prefix = 'q'; + if (!array_key_exists($matches[7], $this->getConstantsData())) { + if ($this->hasMethod($matches[7], true)) { + // is method + $prefix = 'm'; + } elseif (array_key_exists($matches[7], $this->getPropertiesData())) { + // is property + $prefix = 'p'; + } + } + } elseif ($attributeName = $matches[4]) { + // is property + $prefix = 'p'; + } elseif ($attributeName = $matches[11]) { + // is method + $prefix = 'm'; + } + + if ($isForDocument) { + $prepareSourceLink = new PrepareSourceLink(); + return "#{$prefix}{$prepareSourceLink($attributeName)}"; + } + $line = match ($prefix) { + 'm' => $this->getMethod($attributeName, true)?->getStartLine(), + 'p' => $this->getProperty($attributeName, true)?->getStartLine(), + 'q' => $this->getConstant($attributeName, true)?->getStartLine(), + default => 0, + }; + return $line ? "#L{$line}" : ''; + } +} diff --git a/src/LanguageHandler/Php/Parser/Entity/ConstantEntity.php b/src/LanguageHandler/Php/Parser/Entity/ConstantEntity.php deleted file mode 100644 index 94927fc9..00000000 --- a/src/LanguageHandler/Php/Parser/Entity/ConstantEntity.php +++ /dev/null @@ -1,199 +0,0 @@ -classEntity->getPhpHandlerSettings(); - } - - public function getRootEntityCollection(): ClassEntityCollection - { - return $this->classEntity->getRootEntityCollection(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getDocBlock(): DocBlock - { - $classEntity = $this->getDocCommentEntity()->getImplementingClass(); - return $this->parserHelper->getDocBlock($classEntity, $this->getDocCommentRecursive()); - } - - public function getRootEntity(): ClassEntity - { - return $this->classEntity; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - protected function getReflection(): ReflectionClassConstant - { - if (!$this->reflectionClassConstant) { - $this->reflectionClassConstant = $this->classEntity->getReflection()->getReflectionConstant($this->constantName); - } - return $this->reflectionClassConstant; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getImplementingReflectionClass(): ReflectionClass - { - return $this->getReflection()->getDeclaringClass(); - } - - public function getImplementingClassName(): string - { - return $this->implementingClassName; - } - - public function getImplementingClass(): ClassEntity - { - return $this->getRootEntityCollection()->getLoadedOrCreateNew($this->getImplementingClassName()); - } - - public function getDocCommentEntity(): ConstantEntity - { - return $this; - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - protected function getDocCommentRecursive(): string - { - return $this->getDocCommentEntity()->getDocComment() ?: ' '; - } - - public function getName(): string - { - return $this->constantName; - } - - public function getShortName(): string - { - return $this->getName(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getNamespaceName(): string - { - return $this->getRootEntity()->getNamespaceName(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getFileName(): ?string - { - return $this->getImplementingClass()->getFileName(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getDescription(): string - { - $docBlock = $this->getDocBlock(); - return $docBlock->getSummary(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function isPublic(): bool - { - return $this->getReflection()->isPublic(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function isProtected(): bool - { - return $this->getReflection()->isProtected(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function isPrivate(): bool - { - return $this->getReflection()->isPrivate(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getStartLine(): int - { - return $this->getReflection()->getStartLine(); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getEndLine(): int - { - return $this->getReflection()->getEndLine(); - } -} diff --git a/src/LanguageHandler/Php/Parser/Entity/Data/DocBlockLink.php b/src/LanguageHandler/Php/Parser/Entity/Data/DocBlockLink.php new file mode 100644 index 00000000..4b28eb9a --- /dev/null +++ b/src/LanguageHandler/Php/Parser/Entity/Data/DocBlockLink.php @@ -0,0 +1,16 @@ +isEntityDataCanBeLoaded()) { + return []; + } + + $enumCases = []; + /** @var EnumCaseNode[] $enumCaseNodes */ + $enumCaseNodes = array_filter( + $this->getAst()->stmts, + static fn(Stmt $stmt): bool => $stmt instanceof EnumCaseNode, + ); + + foreach ($enumCaseNodes as $enumCaseNode) { + $enumCases[$enumCaseNode->name->toString()] = $enumCaseNode->expr ? NodeValueCompiler::compile($enumCaseNode->expr, $this) : null; + } + return $enumCases; + } + + /** + * Get enum cases names + * + * @return string[] + * + * @api + * + * @throws InvalidConfigurationParameterException + * @throws ConstExprEvaluationException + */ + public function getCasesNames(): array + { + return array_keys($this->getEnumCases()); + } + + /** + * Get enum case value + * + * @api + * + * @throws InvalidConfigurationParameterException + * @throws ConstExprEvaluationException + */ + public function getEnumCaseValue(string $name): mixed + { + return $this->getEnumCases()[$name] ?? null; + } + + /** + * @inheritDoc + */ + public function getModifiersString(): string + { + return 'enum'; + } +} diff --git a/src/LanguageHandler/Php/Parser/Entity/Exception/ReflectionException.php b/src/LanguageHandler/Php/Parser/Entity/Exception/ReflectionException.php deleted file mode 100644 index ca1584e2..00000000 --- a/src/LanguageHandler/Php/Parser/Entity/Exception/ReflectionException.php +++ /dev/null @@ -1,9 +0,0 @@ - + */ +final class PhpEntitiesCollection extends LoggableRootEntityCollection +{ + private const PHP_FILE_TEMPLATE = '/\.php$/'; + public const NAME = 'phpEntities'; + + private array $entitiesNotHandledByPlugins = []; + + public function __construct( + private Configuration $configuration, + private PhpHandlerSettings $phpHandlerSettings, + private PluginEventDispatcher $pluginEventDispatcher, + private CacheablePhpEntityFactory $cacheablePhpEntityFactory, + private EntityDocRendererHelper $docRendererHelper, + private PhpParserHelper $phpParserHelper, + private LocalObjectCache $localObjectCache, + private LoggerInterface $logger, + ) { + parent::__construct(); + } + + /** + * @inheritDoc + */ + public function getEntityCollectionName(): string + { + return self::NAME; + } + + /** + * Load entities into a collection by configuration + * + * @internal + * + * @throws NotFoundException + * @throws InvalidArgumentException + * @throws DependencyException + * @throws InvalidConfigurationParameterException + */ + public function loadEntitiesByConfiguration(?EntitiesLoaderProgressBarInterface $progressBar = null): CollectionLoadEntitiesResult + { + return $this->loadEntities( + $this->configuration->getSourceLocators(), + $this->phpHandlerSettings->getClassEntityFilter(), + $progressBar + ); + } + + /** + * Load entities into a collection + * + * @api + * + * @throws InvalidArgumentException + * @throws DependencyException + * @throws NotFoundException + * @throws InvalidConfigurationParameterException + */ + public function loadEntities( + SourceLocatorsCollection $sourceLocatorsCollection, + ?ConditionInterface $filters = null, + ?EntitiesLoaderProgressBarInterface $progressBar = null + ): CollectionLoadEntitiesResult { + $progressBar?->setName('Loading PHP entities'); + + $nodeTraverser = new NodeTraverser(); + $nodeTraverser->addVisitor(new NameResolver()); + $phpParser = $this->phpParserHelper->phpParser(); + + $addedEntitiesCount = 0; + $allEntitiesCount = 0; + + $allFiles = iterator_to_array($sourceLocatorsCollection->getCommonFinder()->files()); + foreach ($progressBar ? $progressBar->iterate($allFiles) : $allFiles as $file) { + if (!preg_match(self::PHP_FILE_TEMPLATE, $file->getPathName())) { + continue; + } + $pathName = $file->getPathName(); + try { + $nodes = $phpParser->parse(file_get_contents($pathName)); + } catch (\Exception $e) { + $this->logger->warning("File `{$pathName}` parsing error: {$e->getMessage()}"); + continue; + } + $nodes = $nodeTraverser->traverse($nodes); + $relativeFileName = str_replace($this->configuration->getProjectRoot(), '', $pathName); + $progressBar?->setStepDescription("Processing `{$relativeFileName}` file"); + foreach ($nodes as $node) { + $classStmts = []; + $namespaceName = ''; + if ($node instanceof ClassLike) { + $classStmts = [$node]; + } elseif ($node instanceof Namespace_) { + $namespaceName = $node->name->toString(); + $classStmts = $node->stmts; + } + + foreach ($classStmts as $subNode) { + $entityClassName = match (get_class($subNode)) { + ClassNode::class => ClassEntity::class, + InterfaceNode::class => InterfaceEntity::class, + TraitNode::class => TraitEntity::class, + EnumNode::class => EnumEntity::class, + default => null + }; + + if (is_null($entityClassName)) { + continue; + } + $className = $subNode->name->toString(); + $classEntity = $this->cacheablePhpEntityFactory->createClassLikeEntity( + entitiesCollection: $this, + className: $namespaceName ? "{$namespaceName}\\{$className}" : $className, + relativeFileName: $relativeFileName, + entityClassName: $entityClassName + ); + + ++$allEntitiesCount; + if (!$filters || $filters->canAddToCollection($classEntity)) { + $this->add($classEntity); + ++$addedEntitiesCount; + } + } + } + } + $this->pluginEventDispatcher->dispatch(new AfterLoadingPhpEntitiesCollection($this)); + + $allFilesCount = count($allFiles); + $skipped = $allEntitiesCount - $addedEntitiesCount; + $totalAddedEntities = count($this->entities); + $addedByPlugins = $totalAddedEntities - $addedEntitiesCount; + + return new CollectionLoadEntitiesResult( + processedFilesCount: $allFilesCount, + processedEntitiesCount: $allEntitiesCount, + skippedEntitiesCount: $skipped, + entitiesAddedByPluginsCount: $addedByPlugins, + totalAddedEntities: $totalAddedEntities + ); + } + + /** + * Add an entity to the collection + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + public function add(ClassLikeEntity $classEntity, bool $reload = false): PhpEntitiesCollection + { + $className = $classEntity->getName(); + if (!isset($this->entities[$className]) || $reload || isset($this->entitiesNotHandledByPlugins[$className])) { + $this->logger->info("Parsing {$classEntity->getRelativeFileName()} file"); + $this->pluginEventDispatcher->dispatch(new OnAddClassEntityToCollection($classEntity, $this)); + $this->entities[$className] = $classEntity; + unset($this->entitiesNotHandledByPlugins[$className]); + } + return $this; + } + + protected function prepareObjectName(string $objectName): string + { + return ClassLikeEntity::normalizeClassName($objectName); + } + + /** + * @internal + * + * @throws DependencyException + * @throws NotFoundException + * @throws InvalidConfigurationParameterException + */ + public function internalGetLoadedOrCreateNew(string $objectName, bool $withAddClassEntityToCollectionEvent = false): ClassLikeEntity + { + $classEntity = $this->get($objectName); + if (!$classEntity) { + $classEntity = $this->cacheablePhpEntityFactory->createClassLikeEntity( + $this, + $objectName + ); + $this->entities[$classEntity->getName()] = $classEntity; + } + + if ($withAddClassEntityToCollectionEvent && array_key_exists($objectName, $this->entitiesNotHandledByPlugins)) { + $this->pluginEventDispatcher->dispatch(new OnAddClassEntityToCollection($classEntity, $this)); + unset($this->entitiesNotHandledByPlugins[$objectName]); + } else { + $this->entitiesNotHandledByPlugins[$objectName] = $objectName; + } + + return $classEntity; + } + + /** + * Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity) + * + * @param string[] $interfaces + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + public function filterByInterfaces(array $interfaces): PhpEntitiesCollection + { + $entitiesCollection = $this->cloneForFiltration(); + $interfaces = array_map( + fn($interface) => ClassLikeEntity::normalizeClassName($interface), + $interfaces + ); + foreach ($entitiesCollection as $objectId => $entity) { + if (!is_a($entity, ClassLikeEntity::class)) { + $entitiesCollection->remove($objectId); + continue; + } + if (!array_intersect($interfaces, $entity->getInterfaceNames())) { + $entitiesCollection->remove($objectId); + } + } + return $entitiesCollection; + } + + /** + * Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity) + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + public function filterByParentClassNames(array $parentClassNames): PhpEntitiesCollection + { + $entitiesCollection = $this->cloneForFiltration(); + $parentClassNames = array_map( + fn($parentClassName) => ClassLikeEntity::normalizeClassName($parentClassName), + $parentClassNames + ); + foreach ($entitiesCollection as $objectId => $entity) { + if (!is_a($entity, ClassLikeEntity::class)) { + $entitiesCollection->remove($objectId); + continue; + } + if (!array_intersect($parentClassNames, $entity->getParentClassNames())) { + $entitiesCollection->remove($objectId); + } + } + return $entitiesCollection; + } + + /** + * Get a copy of the current collection only with entities filtered by file paths (from project_root) + * + * Get a copy of a collection with only instantiable entities from the current collection + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + public function filterByPaths(array $paths): PhpEntitiesCollection + { + $entitiesCollection = $this->cloneForFiltration(); + foreach ($entitiesCollection as $objectId => $entity) { + $needToKeep = false; + /**@var RootEntityInterface $entity */ + foreach ($paths as $path) { + if (str_starts_with($entity->getRelativeFileName(), $path)) { + $needToKeep = true; + } + } + if (!$needToKeep) { + $entitiesCollection->remove($objectId); + } + } + return $entitiesCollection; + } + + /** + * Get a copy of the current collection with only entities whose names match the regular expression + * + * @api + */ + public function filterByNameRegularExpression(string $regexPattern): PhpEntitiesCollection + { + $entitiesCollection = $this->cloneForFiltration(); + foreach ($entitiesCollection as $objectId => $entity) { + /**@var RootEntityInterface $entity */ + if (!preg_match($regexPattern, $entity->getShortName())) { + $entitiesCollection->remove($objectId); + } + } + return $entitiesCollection; + } + + /** + * Get a copy of the current collection with only instantiable entities + * + * @api + */ + public function getOnlyInstantiable(): PhpEntitiesCollection + { + $entitiesCollection = $this->cloneForFiltration(); + foreach ($entitiesCollection as $objectId => $entity) { + if (!is_a($entity, ClassLikeEntity::class) || !$entity->isInstantiable()) { + $entitiesCollection->remove($objectId); + } + } + return $entitiesCollection; + } + + /** + * Get a copy of the current collection with only interfaces + * + * @api + */ + public function getOnlyInterfaces(): PhpEntitiesCollection + { + $entitiesCollection = $this->cloneForFiltration(); + foreach ($entitiesCollection as $objectId => $entity) { + if (!is_a($entity, InterfaceEntity::class)) { + $entitiesCollection->remove($objectId); + } + } + return $entitiesCollection; + } + + /** + * Get a copy of the current collection with only traits + * + * @api + */ + public function getOnlyTraits(): PhpEntitiesCollection + { + $entitiesCollection = $this->cloneForFiltration(); + foreach ($entitiesCollection as $objectId => $entity) { + if (!is_a($entity, TraitEntity::class)) { + $entitiesCollection->remove($objectId); + } + } + return $entitiesCollection; + } + + /** + * Get a copy of the current collection with only abstract classes + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + public function getOnlyAbstractClasses(): PhpEntitiesCollection + { + $entitiesCollection = $this->cloneForFiltration(); + foreach ($entitiesCollection as $objectId => $entity) { + if (!is_a($entity, ClassEntity::class) || !$entity->isAbstract()) { + $entitiesCollection->remove($objectId); + } + } + return $entitiesCollection; + } + + /** + * @param string $search + * Search query. For the search, only the main part is taken, up to the characters: `::`, `->`, `#`. + * If the request refers to multiple existing entities and if unsafe keys are allowed, + * a warning will be shown and the first entity found will be used. + * + * @param bool $useUnsafeKeys Whether to use search keys that can be used to find several entities + * + * @return ClassLikeEntity|null + * + * @internal + * + * @example + * $entitiesCollection->findEntity('App'); // class name + * $entitiesCollection->findEntity('BumbleDocGen\Console\App'); // class with namespace + * $entitiesCollection->findEntity('\BumbleDocGen\Console\App'); // class with namespace + * $entitiesCollection->findEntity('\BumbleDocGen\Console\App::test()'); // class with namespace and optional part + * $entitiesCollection->findEntity('App.php'); // filename + * $entitiesCollection->findEntity('/src/Console/App.php'); // relative path + * $entitiesCollection->findEntity('/Users/someuser/Desktop/projects/bumble-doc-gen/src/Console/App.php'); // absolute path + * $entitiesCollection->findEntity('https://github.com/bumble-tech/bumble-doc-gen/blob/master/src/Console/App.php'); // source link + */ + public function internalFindEntity(string $search, bool $useUnsafeKeys = true): ?ClassLikeEntity + { + if (preg_match('/^((self|parent):|(\$(.*)->))/', $search)) { + return null; + } + + $cacheData = []; + try { + $cacheData = $this->localObjectCache->getMethodCachedResult(__METHOD__, ''); + } catch (ObjectNotFoundException) { + } + $index = $cacheData['index'] ?? []; + $duplicates = $cacheData['duplicates'] ?? []; + $lastCacheKey = $cacheData['lastCacheKey'] ?? null; + + $lastKey = array_key_last($this->entities); + if ($lastKey !== $lastCacheKey || !$index) { + $lastCacheKey = $lastKey; + $index = []; + $duplicates = []; + foreach ($this->entities as $entity) { + $index[$entity->getName()] = $entity; + if ($entity->isEntityDataCanBeLoaded() && $entity->getRelativeFileName()) { + $index[$entity->getRelativeFileName()] = $entity; + $index[$entity->getAbsoluteFileName()] = $entity; + $index[$entity->getFileSourceLink(false)] = $entity; + + $shortFileName = array_reverse(explode('/', $entity->getRelativeFileName()))[0]; + if (!isset($index[$shortFileName])) { + $index[$shortFileName] = $entity; + } else { + $duplicates[$shortFileName] = $entity->getShortName(); + } + } + + if (!isset($index[$entity->getShortName()])) { + $index[$entity->getShortName()] = $entity; + } else { + $duplicates[$entity->getShortName()] = $entity->getShortName(); + } + } + $this->localObjectCache->cacheMethodResult(__METHOD__, '', [ + 'index' => $index, + 'duplicates' => $duplicates, + 'lastCacheKey' => $lastCacheKey, + ]); + } + + $entity = null; + $foundKey = null; + $search = ClassEntity::normalizeClassName($search); + if (array_key_exists($search, $index)) { + $entity = $index[$search]; + $foundKey = $search; + } else { + $search = preg_replace('#^(((http(s?)):\/\/)(.*)(blob\/([^/]+)))(.*)#', '$8', $search); + $preparedSearch = preg_replace('/^(((http(s?))::)?([^-:]+))((::|->)(.*))/', '$1', $search); + if (array_key_exists($preparedSearch, $index)) { + $entity = $index[$preparedSearch]; + $foundKey = $preparedSearch; + } elseif ( + preg_match('/^(\/?)(([a-zA-Z_])([a-zA-Z_0-9\\\\]+))((::|->))?/', $preparedSearch, $matches) && + isset($index[$matches[2]]) + ) { + $entity = $index[$matches[2]]; + $foundKey = $matches[2]; + } + } + + if (array_key_exists($foundKey, $duplicates)) { + if ($useUnsafeKeys) { + $this->logger->warning( + "PhpEntityCollection:findEntity: Key `{$foundKey}` refers to multiple entities. Use a unique search key to avoid mistakes" + ); + } else { + return null; + } + } + + return $entity; + } + + /** + * @inheritDoc + * + * @throws InvalidConfigurationParameterException + */ + public function getEntityLinkData( + string $rawLink, + ?string $defaultEntityName = null, + bool $useUnsafeKeys = true + ): array { + return $this->docRendererHelper->getEntityDataByLink( + $rawLink, + $this, + $defaultEntityName, + $useUnsafeKeys + ); + } +} diff --git a/src/LanguageHandler/Php/Parser/Entity/Reflection/ReflectorWrapper.php b/src/LanguageHandler/Php/Parser/Entity/Reflection/ReflectorWrapper.php deleted file mode 100644 index e650c6aa..00000000 --- a/src/LanguageHandler/Php/Parser/Entity/Reflection/ReflectorWrapper.php +++ /dev/null @@ -1,134 +0,0 @@ -reflector) { - $sourceLocatorsCollection = $this->pluginEventDispatcher->dispatch( - new OnLoadSourceLocatorsCollection($this->configuration->getSourceLocators()) - )->getSourceLocatorsCollection(); - - $locator = $this->betterReflection->astLocator(); - - foreach ($sourceLocatorsCollection as $sourceLocator) { - if (is_a($sourceLocator, CustomSourceLocatorInterface::class, true)) { - $sourceLocators[] = $sourceLocator->getSourceLocator($locator); - } - } - - if (!$this->phpHandlerSettings->asyncSourceLoadingEnabled()) { - $sourceLocators[] = new \Roave\BetterReflection\SourceLocator\Type\FileIteratorSourceLocator( - new \ArrayIterator(iterator_to_array($sourceLocatorsCollection->getCommonFinder()->getIterator())), - $locator - ); - } - $sourceLocators[] = $this->betterReflection->sourceLocator(); - $sourceLocator = new CachedSourceLocator( - new AggregateSourceLocator($sourceLocators), - $this->configuration, - $this->sourceLocatorCache - ); - $this->reflector = new DefaultReflector($sourceLocator); - } - return $this->reflector; - } - - /** - * @throws DependencyException - * @throws NotFoundException - * @throws InvalidConfigurationParameterException - */ - public function reflectClass(string $identifierName): ReflectionClass - { - return $this->getReflector()->reflectClass($identifierName); - } - - /** - * @throws DependencyException - * @throws InvalidConfigurationParameterException - * @throws NotFoundException - */ - public function reflectAllClasses(): iterable - { - return $this->getReflector()->reflectAllClasses(); - } - - /** - * @throws DependencyException - * @throws NotFoundException - * @throws InvalidConfigurationParameterException - */ - public function reflectFunction(string $identifierName): ReflectionFunction - { - return $this->getReflector()->reflectFunction($identifierName); - } - - /** - * @throws DependencyException - * @throws InvalidConfigurationParameterException - * @throws NotFoundException - */ - public function reflectAllFunctions(): iterable - { - return $this->getReflector()->reflectAllFunctions(); - } - - /** - * @throws DependencyException - * @throws InvalidConfigurationParameterException - * @throws NotFoundException - */ - public function reflectConstant(string $identifierName): ReflectionConstant - { - return $this->getReflector()->reflectConstant($identifierName); - } - - /** - * @throws DependencyException - * @throws InvalidConfigurationParameterException - * @throws NotFoundException - */ - public function reflectAllConstants(): iterable - { - return $this->getReflector()->reflectAllConstants(); - } -} diff --git a/src/LanguageHandler/Php/Parser/Entity/ConstantEntityCollection.php b/src/LanguageHandler/Php/Parser/Entity/SubEntity/ClassConstant/ClassConstantEntitiesCollection.php similarity index 66% rename from src/LanguageHandler/Php/Parser/Entity/ConstantEntityCollection.php rename to src/LanguageHandler/Php/Parser/Entity/SubEntity/ClassConstant/ClassConstantEntitiesCollection.php index e63fd2e4..307eb85d 100644 --- a/src/LanguageHandler/Php/Parser/Entity/ConstantEntityCollection.php +++ b/src/LanguageHandler/Php/Parser/Entity/SubEntity/ClassConstant/ClassConstantEntitiesCollection.php @@ -2,40 +2,41 @@ declare(strict_types=1); -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\BaseEntityCollection; use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; use BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; use DI\DependencyException; use DI\NotFoundException; -final class ConstantEntityCollection extends BaseEntityCollection +final class ClassConstantEntitiesCollection extends BaseEntityCollection { public function __construct( - private ClassEntity $classEntity, + private ClassLikeEntity $classEntity, private PhpHandlerSettings $phpHandlerSettings, private CacheablePhpEntityFactory $cacheablePhpEntityFactory ) { } /** + * + * @internal + * * @throws NotFoundException * @throws DependencyException - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ public function loadConstantEntities(): void { $classConstantEntityFilter = $this->phpHandlerSettings->getClassConstantEntityFilter(); - foreach ($this->classEntity->getConstantsData() as $name => $constantData) { - $constantEntity = $this->cacheablePhpEntityFactory->createConstantEntity( + foreach ($this->classEntity->getConstantsData() as $name => $constantImplementingClass) { + $constantEntity = $this->cacheablePhpEntityFactory->createClassConstantEntity( $this->classEntity, $name, - $constantData['declaringClass'], - $constantData['implementingClass'] + $constantImplementingClass ); if ($classConstantEntityFilter->canAddToCollection($constantEntity)) { $this->add($constantEntity); @@ -43,7 +44,10 @@ public function loadConstantEntities(): void } } - public function add(ConstantEntity $constantEntity, bool $reload = false): ConstantEntityCollection + /** + * @api + */ + public function add(ClassConstantEntity $constantEntity, bool $reload = false): ClassConstantEntitiesCollection { $constantName = $constantEntity->getName(); if (!isset($this->entities[$constantName]) || $reload) { @@ -52,28 +56,32 @@ public function add(ConstantEntity $constantEntity, bool $reload = false): Const return $this; } - public function get(string $objectName): ?ConstantEntity + /** + * @api + */ + public function get(string $objectName): ?ClassConstantEntity { return $this->entities[$objectName] ?? null; } /** + * + * @api + * * @throws NotFoundException - * @throws ReflectionException * @throws DependencyException * @throws InvalidConfigurationParameterException */ - public function unsafeGet(string $constantName): ?ConstantEntity + public function unsafeGet(string $constantName): ?ClassConstantEntity { $constantEntity = $this->get($constantName); if (!$constantEntity) { - $constantsData = $this->classEntity->getConstantsData()[$constantName] ?? null; - if (is_array($constantsData)) { - return $this->cacheablePhpEntityFactory->createConstantEntity( + $constantsImplementingClass = $this->classEntity->getConstantsData()[$constantName] ?? null; + if (!is_null($constantsImplementingClass)) { + return $this->cacheablePhpEntityFactory->createClassConstantEntity( $this->classEntity, $constantName, - $constantsData['declaringClass'], - $constantsData['implementingClass'] + $constantsImplementingClass ); } } diff --git a/src/LanguageHandler/Php/Parser/Entity/SubEntity/ClassConstant/ClassConstantEntity.php b/src/LanguageHandler/Php/Parser/Entity/SubEntity/ClassConstant/ClassConstantEntity.php new file mode 100644 index 00000000..59e2a776 --- /dev/null +++ b/src/LanguageHandler/Php/Parser/Entity/SubEntity/ClassConstant/ClassConstantEntity.php @@ -0,0 +1,235 @@ +classEntity->getRootEntityCollection(); + } + + /** + * Get the class like entity where this constant was obtained + */ + public function getRootEntity(): ClassLikeEntity + { + return $this->classEntity; + } + + /** + * @inheritDoc + * + * @throws InvalidConfigurationParameterException + */ + public function getAst(): ClassConst + { + if (!$this->ast) { + $implementingClass = $this->getImplementingClass(); + foreach ($implementingClass->getAst()->getConstants() as $classConst) { + foreach ($classConst->consts as $pos => $const) { + if ($const->name->toString() === $this->constantName) { + $this->ast = $classConst; + $this->nodePosition = $pos; + return $this->ast; + } + } + } + } + if (is_null($this->ast)) { + throw new \RuntimeException("Constant `{$this->constantName}` not found in `{$this->getImplementingClassName()}` class AST"); + } + return $this->ast; + } + + public function getImplementingClassName(): string + { + return $this->implementingClassName; + } + + /** + * @inheritDoc + */ + public function getImplementingClass(): ClassLikeEntity + { + return $this->getRootEntityCollection()->getLoadedOrCreateNew($this->getImplementingClassName()); + } + + /** + * @inheritDoc + */ + public function getDocCommentEntity(): ClassConstantEntity + { + return $this; + } + + /** + * Constant name + */ + public function getName(): string + { + return $this->constantName; + } + + /** + * Constant short name + * + * @see self::getName() + */ + public function getShortName(): string + { + return $this->getName(); + } + + /** + * Get the name of the namespace where the current class is implemented + * + * @api + */ + public function getNamespaceName(): string + { + return $this->getRootEntity()->getNamespaceName(); + } + + /** + * Check if a constant is a public constant + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function isPublic(): bool + { + return $this->getAst()->isPublic(); + } + + /** + * Check if a constant is a protected constant + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function isProtected(): bool + { + return $this->getAst()->isProtected(); + } + + /** + * Check if a constant is a private constant + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function isPrivate(): bool + { + return $this->getAst()->isPrivate(); + } + + /** + * Get the line number of the beginning of the constant code in a file + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getStartLine(): int + { + return $this->getAst()->consts[$this->nodePosition]->getStartLine(); + } + + /** + * Get the line number of the end of a constant's code in a file + * + * @api + * + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getEndLine(): int + { + return $this->getAst()->consts[$this->nodePosition]->getEndLine(); + } + + /** + * Get the compiled value of a constant + * + * @api + * + * @return string|array|int|bool|null|float Compiled constant value + * + * @throws ConstExprEvaluationException + * @throws InvalidConfigurationParameterException + */ + #[CacheableMethod] public function getValue(): string|array|int|bool|null|float + { + return NodeValueCompiler::compile($this->getAst()->consts[$this->nodePosition]->value, $this); + } +} diff --git a/src/LanguageHandler/Php/Parser/Entity/DynamicMethodEntity.php b/src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/DynamicMethodEntity.php similarity index 70% rename from src/LanguageHandler/Php/Parser/Entity/DynamicMethodEntity.php rename to src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/DynamicMethodEntity.php index 459f6b97..4fa02465 100644 --- a/src/LanguageHandler/Php/Parser/Entity/DynamicMethodEntity.php +++ b/src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/DynamicMethodEntity.php @@ -2,15 +2,15 @@ declare(strict_types=1); -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method; use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\RootEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; use phpDocumentor\Reflection\DocBlock\Tags\Method; -use Roave\BetterReflection\Reflection\ReflectionClass; +use Psr\Cache\InvalidArgumentException; /** * Method obtained by parsing the "method" annotation @@ -20,49 +20,74 @@ class DynamicMethodEntity implements MethodEntityInterface public function __construct( private Configuration $configuration, private ParserHelper $parserHelper, - private ClassEntity $classEntity, + private ClassLikeEntity $classEntity, private Method $annotationMethod ) { } - public function getRootEntity(): ClassEntity + /** + * Get the class like entity where this method was obtained + */ + public function getRootEntity(): ClassLikeEntity { return $this->classEntity; } + /** + * @inheritDoc + */ public function getName(): string { return $this->annotationMethod->getMethodName(); } + /** + * @inheritDoc + * + * @throws InvalidConfigurationParameterException + */ + public function getSignature(): string + { + return "{$this->getModifiersString()} {$this->getName()}({$this->getParametersString()}): {$this->getReturnType()}"; + } + + /** + * @inheritDoc + */ public function isStatic(): bool { return $this->annotationMethod->isStatic(); } /** + * Get the entity of the magic method that will be called instead of the current virtual one + * * @throws \Exception */ public function getCallMethod(): MethodEntity { if ($this->isStatic()) { - $callMethod = $this->classEntity->getMethodEntity('__callStatic'); + $callMethod = $this->classEntity->getMethod('__callStatic', true); } else { - $callMethod = $this->classEntity->getMethodEntity('__call'); + $callMethod = $this->classEntity->getMethod('__call', true); } return $callMethod; } /** + * @inheritDoc + * * @throws InvalidConfigurationParameterException * @throws \Exception */ - public function getFileName(): ?string + public function getRelativeFileName(): ?string { - return $this->getImplementingClass()->getFileName(); + return $this->getImplementingClass()->getRelativeFileName(); } /** + * @inheritDoc + * * @throws \Exception */ public function getStartLine(): int @@ -72,6 +97,8 @@ public function getStartLine(): int } /** + * @inheritDoc + * * @throws \Exception */ public function getStartColumn(): int @@ -81,6 +108,8 @@ public function getStartColumn(): int } /** + * @inheritDoc + * * @throws \Exception */ public function getEndLine(): int @@ -89,6 +118,9 @@ public function getEndLine(): int return $callMethod->getEndLine(); } + /** + * @inheritDoc + */ public function getModifiersString(): string { $modifiersString = []; @@ -101,7 +133,8 @@ public function getModifiersString(): string } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ public function getReturnType(): string @@ -122,6 +155,9 @@ public function getReturnType(): string return $returnType; } + /** + * @inheritDoc + */ public function getParameters(): array { $parameters = []; @@ -139,6 +175,9 @@ public function getParameters(): array return $parameters; } + /** + * @inheritDoc + */ public function getParametersString(): string { $parameters = []; @@ -150,29 +189,36 @@ public function getParametersString(): string } /** + * @inheritDoc + * * @throws \Exception */ - public function getImplementingReflectionClass(): ReflectionClass + public function getImplementingClassName(): string { - $callMethod = $this->getCallMethod(); - return $callMethod->getImplementingReflectionClass(); + return $this->getImplementingClass()->getName(); } /** + * @inheritDoc + * * @throws \Exception */ - public function getImplementingClassName(): string + public function isImplementedInParentClass(): bool { - return $this->getImplementingReflectionClass()->getName(); + return $this->getImplementingClassName() !== $this->classEntity->getName(); } + /** + * @inheritDoc + */ public function getDescription(): string { return (string)$this->annotationMethod->getDescription(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException * @throws \Exception */ @@ -182,56 +228,79 @@ public function isInitialization(): bool 'self', 'static', 'this', - $this->getImplementingReflectionClass()->getName(), - $this->getImplementingReflectionClass()->getShortName(), + $this->getImplementingClass()->getName(), + $this->getImplementingClass()->getShortName(), ]; return $this->isStatic() && in_array($this->getReturnType(), $initializationReturnTypes); } - public function getImplementingClass(): ClassEntity + /** + * @inheritDoc + */ + public function getImplementingClass(): ClassLikeEntity { return $this->classEntity; } + /** + * @inheritDoc + */ public function getShortName(): string { return $this->getName(); } /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException + * @inheritDoc */ public function getNamespaceName(): string { return $this->getRootEntity()->getNamespaceName(); } + /** + * @inheritDoc + */ public function isPublic(): bool { return true; } + /** + * @inheritDoc + */ public function isProtected(): bool { return false; } + /** + * @inheritDoc + */ public function isPrivate(): bool { return false; } + /** + * @inheritDoc + */ public function isDynamic(): bool { return true; } + /** + * @inheritDoc + */ public function getFirstReturnValue(): mixed { return null; } + /** + * @inheritDoc + */ public function getBodyCode(): string { return ''; @@ -242,22 +311,33 @@ public function getObjectId(): string return "{$this->getRootEntity()->getName()}:{$this->getName()}"; } + /** + * @inheritDoc + */ public function getRootEntityCollection(): RootEntityCollection { return $this->getRootEntity()->getRootEntityCollection(); } /** + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ public function getAbsoluteFileName(): ?string { - $relativeFileName = $this->getFileName(); + $relativeFileName = $this->getRelativeFileName(); return $relativeFileName ? $this->configuration->getProjectRoot() . $relativeFileName : null; } - public function entityCacheIsOutdated(): bool + /** + * @internal + * + * @throws InvalidArgumentException + * @throws InvalidConfigurationParameterException + */ + public function isEntityCacheOutdated(): bool { - return false; + return $this->getImplementingClass()->isEntityCacheOutdated(); } } diff --git a/src/LanguageHandler/Php/Parser/Entity/MethodEntityCollection.php b/src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/MethodEntitiesCollection.php similarity index 57% rename from src/LanguageHandler/Php/Parser/Entity/MethodEntityCollection.php rename to src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/MethodEntitiesCollection.php index d5d67547..d9448be0 100644 --- a/src/LanguageHandler/Php/Parser/Entity/MethodEntityCollection.php +++ b/src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/MethodEntitiesCollection.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\BaseEntityCollection; use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache\CacheablePhpEntityFactory; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; use BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; use DI\DependencyException; use DI\NotFoundException; @@ -15,12 +15,16 @@ use Psr\Log\LoggerInterface; /** + * Collection of PHP class method entities + * * @implements \IteratorAggregate */ -final class MethodEntityCollection extends BaseEntityCollection +final class MethodEntitiesCollection extends BaseEntityCollection { + private array $unsafeEntities = []; + public function __construct( - private ClassEntity $classEntity, + private ClassLikeEntity $classEntity, private PhpHandlerSettings $phpHandlerSettings, private CacheablePhpEntityFactory $cacheablePhpEntityFactory, private LoggerInterface $logger @@ -28,7 +32,12 @@ public function __construct( } /** - * @throws ReflectionException + * Load method entities into the collection according to the project configuration + * + * @internal + * + * @see PhpHandlerSettings::getMethodEntityFilter() + * * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException @@ -36,12 +45,11 @@ public function __construct( public function loadMethodEntities(): void { $methodEntityFilter = $this->phpHandlerSettings->getMethodEntityFilter(); - foreach ($this->classEntity->getMethodsData() as $name => $methodData) { + foreach ($this->classEntity->getMethodsData() as $name => $methodImplementingClass) { $methodEntity = $this->cacheablePhpEntityFactory->createMethodEntity( $this->classEntity, $name, - $methodData['declaringClass'], - $methodData['implementingClass'] + $methodImplementingClass ); if ($methodEntityFilter->canAddToCollection($methodEntity)) { $this->add($methodEntity); @@ -63,7 +71,15 @@ public function loadMethodEntities(): void } } - public function add(MethodEntityInterface $methodEntity, bool $reload = false): MethodEntityCollection + /** + * Add an entity to a collection + * + * @api + * + * @param MethodEntityInterface $methodEntity Entity to be added to the collection + * @param bool $reload Replace an entity with a new one if one has already been loaded previously + */ + public function add(MethodEntityInterface $methodEntity, bool $reload = false): MethodEntitiesCollection { $methodName = $methodEntity->getName(); if (!isset($this->entities[$methodName]) || $reload) { @@ -72,14 +88,26 @@ public function add(MethodEntityInterface $methodEntity, bool $reload = false): return $this; } + /** + * Get the loaded method entity if it exists + * + * @api + * + * @param string $objectName Method entity name + */ public function get(string $objectName): ?MethodEntity { return $this->entities[$objectName] ?? null; } /** + * Get the method entity if it exists. If the method exists but has not been loaded into the collection, a new entity object will be created + * + * @api + * + * @param string $objectName Method entity name + * * @throws NotFoundException - * @throws ReflectionException * @throws DependencyException * @throws InvalidConfigurationParameterException */ @@ -87,48 +115,64 @@ public function unsafeGet(string $objectName): ?MethodEntity { $methodEntity = $this->get($objectName); if (!$methodEntity) { - $methodData = $this->classEntity->getMethodsData()[$objectName] ?? null; - if (is_array($methodData)) { - return $this->cacheablePhpEntityFactory->createMethodEntity( + if (array_key_exists($objectName, $this->unsafeEntities)) { + return $this->unsafeEntities[$objectName]; + } + + $methodImplementingClass = $this->classEntity->getMethodsData()[$objectName] ?? null; + if (!is_null($methodImplementingClass)) { + $methodEntity = $this->cacheablePhpEntityFactory->createMethodEntity( $this->classEntity, $objectName, - $methodData['declaringClass'], - $methodData['implementingClass'] + $methodImplementingClass ); + $this->unsafeEntities[$objectName] = $methodEntity; } } return $methodEntity; } - public function getInitializations(): MethodEntityCollection + /** + * Get a copy of the collection containing only those methods that are initialization methods + * + * @api + */ + public function getInitializations(): MethodEntitiesCollection { - $methodEntityCollection = clone $this; + $methodEntitiesCollection = clone $this; foreach ($this as $objectId => $methodEntity) { try { /**@var MethodEntity $methodEntity */ if (!$methodEntity->isInitialization()) { - $methodEntityCollection->remove($objectId); + $methodEntitiesCollection->remove($objectId); } } catch (\Exception $e) { $this->logger->warning($e->getMessage()); } } - return $methodEntityCollection; + $methodEntitiesCollection->unsafeEntities = []; + return $methodEntitiesCollection; } - public function getAllExceptInitializations(): MethodEntityCollection + /** + * Get a copy of the collection containing only those methods that are not initialization methods + * + * @api + */ + public function getAllExceptInitializations(): MethodEntitiesCollection { - $methodEntityCollection = clone $this; + $methodEntitiesCollection = clone $this; foreach ($this as $objectId => $methodEntity) { try { /**@var MethodEntity $methodEntity */ if ($methodEntity->isInitialization()) { - $methodEntityCollection->remove($objectId); + $methodEntitiesCollection->remove($objectId); } } catch (\Exception $e) { $this->logger->warning($e->getMessage()); } } - return $methodEntityCollection; + $methodEntitiesCollection->unsafeEntities = []; + return $methodEntitiesCollection; } } diff --git a/src/LanguageHandler/Php/Parser/Entity/MethodEntity.php b/src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/MethodEntity.php similarity index 61% rename from src/LanguageHandler/Php/Parser/Entity/MethodEntity.php rename to src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/MethodEntity.php index 02fb63da..c78be4ae 100644 --- a/src/LanguageHandler/Php/Parser/Entity/MethodEntity.php +++ b/src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/MethodEntity.php @@ -2,42 +2,64 @@ declare(strict_types=1); -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method; use BumbleDocGen\Core\Cache\LocalCache\Exception\ObjectNotFoundException; use BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache; use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\Cache\CacheableMethod; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; -use BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; +use BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\NodeValueCompiler; use DI\DependencyException; use DI\NotFoundException; -use phpDocumentor\Reflection\DocBlock; use phpDocumentor\Reflection\DocBlock\Tags\InvalidTag; use phpDocumentor\Reflection\DocBlock\Tags\Param; +use PhpParser\ConstExprEvaluationException; +use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Return_; +use PhpParser\NodeFinder; use PhpParser\PrettyPrinter\Standard; use Psr\Log\LoggerInterface; -use Roave\BetterReflection\Reflection\ReflectionClass; -use Roave\BetterReflection\Reflection\ReflectionMethod; /** * Class method entity */ class MethodEntity extends BaseEntity implements MethodEntityInterface { - private ?ReflectionMethod $reflectionMethod = null; + /** + * Indicates that the method is public. + */ + public const MODIFIERS_FLAG_IS_PUBLIC = 1; + + /** + * Indicates that the method is protected. + */ + public const MODIFIERS_FLAG_IS_PROTECTED = 2; + + /** + * Indicates that the method is private. + */ + public const MODIFIERS_FLAG_IS_PRIVATE = 4; + + public const VISIBILITY_MODIFIERS_FLAG_ANY = + self::MODIFIERS_FLAG_IS_PUBLIC | + self::MODIFIERS_FLAG_IS_PROTECTED | + self::MODIFIERS_FLAG_IS_PRIVATE; + + private ?ClassMethod $ast = null; public function __construct( private Configuration $configuration, - private ClassEntity $classEntity, - private ParserHelper $parserHelper, + private ClassLikeEntity $classEntity, + ParserHelper $parserHelper, + private Standard $astPrinter, private LocalObjectCache $localObjectCache, private LoggerInterface $logger, - private Standard $astPrinter, private string $methodName, - private string $declaringClassName, private string $implementingClassName, ) { parent::__construct( @@ -49,70 +71,61 @@ public function __construct( } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ - protected function getReflection(): ReflectionMethod + public function getAst(): ClassMethod { - if (!$this->reflectionMethod) { - $this->reflectionMethod = $this->classEntity->getReflection()->getMethod($this->methodName); + if (!$this->ast) { + $implementingClass = $this->getImplementingClass(); + $this->ast = $implementingClass->getAst()->getMethod($this->methodName); + } + if (is_null($this->ast)) { + throw new \RuntimeException("Method `{$this->methodName}` not found in `{$this->getImplementingClassName()}` class AST"); } - return $this->reflectionMethod; + return $this->ast; } - public function getRootEntity(): ClassEntity + public function getRootEntity(): ClassLikeEntity { return $this->classEntity; } - public function getPhpHandlerSettings(): PhpHandlerSettings - { - return $this->classEntity->getPhpHandlerSettings(); - } - - public function getRootEntityCollection(): ClassEntityCollection + /** + * @inheritDoc + */ + public function getRootEntityCollection(): PhpEntitiesCollection { return $this->getRootEntity()->getRootEntityCollection(); } /** - * @throws DependencyException - * @throws ReflectionException - * @throws NotFoundException - * @throws InvalidConfigurationParameterException + * @inheritDoc */ - public function getDocBlock(bool $recursive = true): DocBlock + public function getImplementingClass(): ClassLikeEntity { - if ($recursive) { - $classEntity = $this->getDocCommentEntity()->getImplementingClass(); - return $this->parserHelper->getDocBlock($classEntity, $this->getDocCommentRecursive(), $this->getDocCommentLineRecursive()); - } - $classEntity = $this->getImplementingClass(); - return $this->parserHelper->getDocBlock($classEntity, $this->getDocComment(), $this->getDocCommentLine()); + return $this->getRootEntityCollection()->getLoadedOrCreateNew($this->getImplementingClassName()); } /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException + * @inheritDoc */ - public function getImplementingReflectionClass(): ReflectionClass - { - return $this->getReflection()->getImplementingClass(); - } - - public function getImplementingClass(): ClassEntity + public function getName(): string { - return $this->getRootEntityCollection()->getLoadedOrCreateNew($this->getImplementingClassName()); + return $this->methodName; } + /** + * @inheritDoc + */ public function getShortName(): string { return $this->getName(); } /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException + * @inheritDoc */ public function getNamespaceName(): string { @@ -120,7 +133,8 @@ public function getNamespaceName(): string } /** - * @throws ReflectionException + * @inheritDoc + * * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException @@ -135,20 +149,20 @@ public function getDocCommentEntity(): MethodEntity $docComment = $this->getDocComment(); $reflectionMethod = $this; if ($reflectionMethod->isImplementedInParentClass()) { - $reflectionMethod = $reflectionMethod->getImplementingClass()->getMethodEntity($this->getName()); + $reflectionMethod = $reflectionMethod->getImplementingClass()->getMethod($this->getName(), true); } if (!$docComment || str_contains(mb_strtolower($docComment), '@inheritdoc')) { $implementingClass = $this->getImplementingClass(); $parentClass = $this->getImplementingClass()->getParentClass(); $methodName = $this->getName(); - if ($parentClass && $parentClass->hasMethod($methodName)) { - $parentReflectionMethod = $parentClass->getMethodEntity($methodName); + if ($parentClass && $parentClass->isEntityDataCanBeLoaded() && $parentClass->hasMethod($methodName)) { + $parentReflectionMethod = $parentClass->getMethod($methodName, true); $reflectionMethod = $parentReflectionMethod->getDocCommentEntity(); } else { foreach ($implementingClass->getInterfacesEntities() as $interface) { - if ($interface->hasMethod($methodName)) { - $reflectionMethod = $interface->getMethodEntity($methodName); + if ($interface->isEntityDataCanBeLoaded() && $interface->hasMethod($methodName)) { + $reflectionMethod = $interface->getMethod($methodName, true); break; } } @@ -159,80 +173,38 @@ public function getDocCommentEntity(): MethodEntity } /** - * @throws ReflectionException + * Get the parent method for this method + * + * @api + * * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException */ - public function getPrototype(): ?MethodEntity + public function getParentMethod(): ?MethodEntity { $objectId = $this->getObjectId(); try { return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); } catch (ObjectNotFoundException) { } - $prototype = null; - $implementingClass = $this->getImplementingClass(); $parentClass = $this->getImplementingClass()->getParentClass(); - $methodName = $this->getName(); - if ($parentClass && $parentClass->hasMethod($methodName)) { - $prototype = $parentClass->getMethodEntity($methodName); - } else { - foreach ($implementingClass->getInterfacesEntities() as $interface) { - if ($interface->hasMethod($methodName)) { - $prototype = $interface->getMethodEntity($methodName); - break; - } - } - } - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $prototype); - return $prototype; + $parentMethod = $parentClass->getMethod($this->getName(), true); + $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $parentMethod); + return $parentMethod; } /** - * @throws NotFoundException - * @throws ReflectionException - * @throws DependencyException - * @throws InvalidConfigurationParameterException - */ - public function getDocCommentRecursive(): string - { - $objectId = $this->getObjectId(); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - $docComment = $this->getDocCommentEntity()->getDocComment() ?: ' '; - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $docComment); - return $docComment; - } - - /** - * @throws DependencyException - * @throws ReflectionException - * @throws NotFoundException - * @throws InvalidConfigurationParameterException - */ - #[CacheableMethod] public function getDocCommentLineRecursive(): ?int - { - $methodEntity = $this->getDocCommentEntity(); - if ($methodEntity->getDocCommentRecursive()) { - return $methodEntity->getReflection()->getAst()->getDocComment()?->getStartLine(); - } - return null; - } - - /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getDocCommentLine(): ?int { - return $this->getReflection()->getAst()->getDocComment()?->getStartLine(); + return $this->getAst()->getDocComment()?->getStartLine(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException @@ -242,27 +214,29 @@ public function getSignature(): string return "{$this->getModifiersString()} {$this->getName()}({$this->getParametersString()})" . (!$this->isConstructor() ? ": {$this->getReturnType()}" : ''); } - public function getName(): string - { - return $this->methodName; - } - + /** + * Checking that a method is a constructor + * + * @api + */ public function isConstructor(): bool { return $this->getName() === '__construct'; } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ - public function getFileName(): ?string + public function getRelativeFileName(): ?string { - return $this->getImplementingClass()->getFileName(); + return $this->getImplementingClass()->getRelativeFileName(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ public function getModifiersString(): string @@ -286,16 +260,18 @@ public function getModifiersString(): string } /** + * @inheritDoc + * * @throws NotFoundException - * @throws ReflectionException * @throws DependencyException * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getReturnType(): string { - $type = $this->getReflection()->getReturnType(); + $type = $this->getAst()->getReturnType(); if ($type) { - $type = (string)$type; + $typeString = $this->astPrinter->prettyPrint([$type]); + $typeString = str_replace('?', 'null|', $typeString); } else { $docBlock = $this->getDocBlock(); $returnType = $docBlock->getTagsByName('return'); @@ -307,24 +283,39 @@ public function getModifiersString(): string } return 'mixed'; } - $type = $returnType ? (string)$returnType->getType() : 'mixed'; - $type = preg_replace_callback(['/({)([^{}]*)(})/', '/(\[)([^\[\]]*)(\])/'], function ($condition) { + $typeString = $returnType ? (string)$returnType->getType() : 'mixed'; + $typeString = preg_replace_callback(['/({)([^{}]*)(})/', '/(\[)([^\[\]]*)(\])/'], function ($condition) { return str_replace(' ', '', $condition[0]); - }, $type); + }, $typeString); } - return $this->prepareTypeString($type); + return $this->prepareTypeString($typeString); } /** - * @param Param[] $params + * @inheritDoc + * + * @throws InvalidConfigurationParameterException + * @throws \Exception */ - public static function parseAnnotationParams(array $params): array + #[CacheableMethod] public function getParameters(): array { - $paramsFromDoc = []; + $parameters = []; + $docBlock = $this->getDocBlock(); + + $isArrayAnnotationType = function (string $annotationType): bool { + return preg_match('/^([a-zA-Z\\_]+)(\[\])$/', $annotationType) || + preg_match('/^(array)(<|{)(.*)(>|})$/', $annotationType); + }; + + /** + * @var Param[] $params + */ + $params = $docBlock->getTagsByName('param'); + $typesFromDoc = []; foreach ($params as $param) { try { if (method_exists($param, 'getVariableName')) { - $paramsFromDoc[$param->getVariableName()] = [ + $typesFromDoc[$param->getVariableName()] = [ 'name' => (string)$param->getVariableName(), 'type' => (string)$param->getType(), 'description' => (string)$param->getDescription(), @@ -334,49 +325,29 @@ public static function parseAnnotationParams(array $params): array } catch (\Exception) { } } - return $paramsFromDoc; - } - - private function isArrayAnnotationType(string $annotationType): bool - { - return preg_match('/^([a-zA-Z\\_]+)(\[\])$/', $annotationType) || - preg_match('/^(array)(<|{)(.*)(>|})$/', $annotationType); - } - - /** - * @throws NotFoundException - * @throws ReflectionException - * @throws DependencyException - * @throws InvalidConfigurationParameterException - * @throws \Exception - */ - #[CacheableMethod] public function getParameters(): array - { - $parameters = []; - $docBlock = $this->getDocBlock(); - - /** - * @var Param[] $params - */ - $params = $docBlock->getTagsByName('param'); - $typesFromDoc = self::parseAnnotationParams($params); try { - foreach ($this->getReflection()->getParameters() as $param) { + /** @var \PhpParser\Node\Param[] $params */ + $params = $this->getAst()->getParams(); + foreach ($params as $param) { + if (!$param->var instanceof \PhpParser\Node\Expr\Variable) { + continue; + } + $type = ''; $defaultValue = ''; $annotationType = ''; $description = ''; - $name = $param->getName(); + $name = $param->var->name; - $paramAst = $param->getAst()->jsonSerialize(); + $paramAst = $param->jsonSerialize(); if ($paramAst['type']) { - $type = $this->astPrinter->prettyPrint([$param->getAst()->jsonSerialize()['type']]); + $type = $this->astPrinter->prettyPrint([$paramAst['type']]); if (str_starts_with($type, '?')) { $type = str_replace('?', '', $type) . '|null'; } } if ($paramAst['default']) { - $defaultValue = $this->astPrinter->prettyPrint([$param->getAst()->jsonSerialize()['default']]); + $defaultValue = $this->astPrinter->prettyPrint([$paramAst['default']]); $defaultValue = str_replace('array()', '[]', $defaultValue); } if (isset($typesFromDoc[$name])) { @@ -386,7 +357,7 @@ private function isArrayAnnotationType(string $annotationType): bool } $type = $type ?: 'mixed'; $expectedType = $type; - if ($type === 'array' && $this->isArrayAnnotationType($annotationType)) { + if ($type === 'array' && $isArrayAnnotationType($annotationType)) { $expectedType = $annotationType; } @@ -401,7 +372,7 @@ private function isArrayAnnotationType(string $annotationType): bool $parameters[] = [ 'type' => $this->prepareTypeString($type), 'expectedType' => $expectedType, - 'isVariadic' => $param->isVariadic(), + 'isVariadic' => $param->variadic, 'name' => $name, 'defaultValue' => $this->prepareTypeString($defaultValue), 'description' => $description, @@ -414,9 +385,8 @@ private function isArrayAnnotationType(string $annotationType): bool } /** - * @throws NotFoundException - * @throws DependencyException - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ public function getParametersString(): string @@ -430,30 +400,25 @@ public function getParametersString(): string return implode(', ', $parameters); } + /** + * @inheritDoc + */ public function isImplementedInParentClass(): bool { return $this->getImplementingClassName() !== $this->classEntity->getName(); } - public function getImplementingClassName(): string - { - return $this->implementingClassName; - } - /** - * @throws NotFoundException - * @throws DependencyException - * @throws ReflectionException - * @throws InvalidConfigurationParameterException + * @inheritDoc */ - public function getDescription(): string + public function getImplementingClassName(): string { - $docBlock = $this->getDocBlock(); - return trim($docBlock->getSummary()); + return $this->implementingClassName; } /** - * @throws ReflectionException + * @inheritDoc + * * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException @@ -477,97 +442,112 @@ public function isInitialization(): bool return $this->isStatic() && in_array($this->getReturnType(), $initializationReturnTypes); } + /** + * @inheritDoc + */ public function isDynamic(): bool { return false; } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function isPublic(): bool { - return $this->getReflection()->isPublic(); + return $this->getAst()->isPublic(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function isStatic(): bool { - return $this->getReflection()->isStatic(); + return $this->getAst()->isStatic(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function isProtected(): bool { - return $this->getReflection()->isProtected(); + return $this->getAst()->isProtected(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function isPrivate(): bool { - return $this->getReflection()->isPrivate(); + return $this->getAst()->isPrivate(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getStartLine(): int { - return $this->getReflection()->getStartLine(); + return $this->getAst()->getStartLine(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getStartColumn(): int { - return $this->getReflection()->getStartColumn(); + return $this->getAst()->getStartFilePos(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getEndLine(): int { - return $this->getReflection()->getEndLine(); + return $this->getAst()->getEndLine(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException + * @throws ConstExprEvaluationException */ #[CacheableMethod] public function getFirstReturnValue(): mixed { - return $this->parserHelper->getMethodReturnValue( - $this->getRootEntity()->getReflection(), - $this->getReflection() - ); + $nodeFinder = new NodeFinder(); + /** @var Return_|null $firstReturn */ + $firstReturn = $nodeFinder->findFirstInstanceOf($this->getAst()->stmts, Return_::class); + if (!$firstReturn) { + return null; + } + return NodeValueCompiler::compile($firstReturn->expr, $this); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getBodyCode(): string { - return $this->getReflection()->getBodyCode(); - } - - #[CacheableMethod] public function getDocComment(): string - { - return $this->getReflection()->getDocComment(); + $stmts = $this->getAst()->getStmts(); + if (!is_array($stmts)) { + $stmts = []; + } + return $this->astPrinter->prettyPrint($stmts); } } diff --git a/src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/MethodEntityInterface.php b/src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/MethodEntityInterface.php new file mode 100644 index 00000000..0335a956 --- /dev/null +++ b/src/LanguageHandler/Php/Parser/Entity/SubEntity/Method/MethodEntityInterface.php @@ -0,0 +1,162 @@ +phpHandlerSettings->getPropertyEntityFilter(); - foreach ($this->classEntity->getPropertiesData() as $name => $propertyData) { + foreach ($this->classEntity->getPropertiesData() as $name => $propertyImplementingClass) { $propertyEntity = $this->cacheablePhpEntityFactory->createPropertyEntity( $this->classEntity, $name, - $propertyData['declaringClass'], - $propertyData['implementingClass'] + $propertyImplementingClass ); if ($propertyEntityFilter->canAddToCollection($propertyEntity)) { $this->add($propertyEntity); @@ -43,7 +47,15 @@ public function loadPropertyEntities(): void } } - public function add(PropertyEntity $propertyEntity, bool $reload = false): PropertyEntityCollection + /** + * Add an entity to a collection + * + * @api + * + * @param PropertyEntity $propertyEntity Entity to be added to the collection + * @param bool $reload Replace an entity with a new one if one has already been loaded previously + */ + public function add(PropertyEntity $propertyEntity, bool $reload = false): PropertyEntitiesCollection { $propertyName = $propertyEntity->getName(); if (!isset($this->entities[$propertyName]) || $reload) { @@ -52,28 +64,39 @@ public function add(PropertyEntity $propertyEntity, bool $reload = false): Prope return $this; } + /** + * Get the loaded property entity if it exists + * + * @api + * + * @param string $objectName Property entity name + */ public function get(string $objectName): ?PropertyEntity { return $this->entities[$objectName] ?? null; } /** - * @throws NotFoundException + * Get the property entity if it exists. If the property exists but has not been loaded into the collection, a new entity object will be created + * + * @param string $objectName Property entity name + * + * @api + * * @throws DependencyException - * @throws ReflectionException + * @throws NotFoundException * @throws InvalidConfigurationParameterException */ public function unsafeGet(string $objectName): ?PropertyEntity { $propertyEntity = $this->get($objectName); if (!$propertyEntity) { - $propertyData = $this->classEntity->getPropertiesData()[$objectName] ?? null; - if (is_array($propertyData)) { + $propertyImplementingClass = $this->classEntity->getPropertiesData()[$objectName] ?? null; + if (!is_null($propertyImplementingClass)) { return $this->cacheablePhpEntityFactory->createPropertyEntity( $this->classEntity, $objectName, - $propertyData['declaringClass'], - $propertyData['implementingClass'] + $propertyImplementingClass ); } } diff --git a/src/LanguageHandler/Php/Parser/Entity/PropertyEntity.php b/src/LanguageHandler/Php/Parser/Entity/SubEntity/Property/PropertyEntity.php similarity index 50% rename from src/LanguageHandler/Php/Parser/Entity/PropertyEntity.php rename to src/LanguageHandler/Php/Parser/Entity/SubEntity/Property/PropertyEntity.php index 100d70ed..06b1b2a7 100644 --- a/src/LanguageHandler/Php/Parser/Entity/PropertyEntity.php +++ b/src/LanguageHandler/Php/Parser/Entity/SubEntity/Property/PropertyEntity.php @@ -2,38 +2,67 @@ declare(strict_types=1); -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity; +namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property; use BumbleDocGen\Core\Cache\LocalCache\Exception\ObjectNotFoundException; use BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache; use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\Cache\CacheableMethod; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; -use BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; +use BumbleDocGen\LanguageHandler\Php\Parser\PhpParser\NodeValueCompiler; use DI\DependencyException; use DI\NotFoundException; -use phpDocumentor\Reflection\DocBlock; +use PhpParser\ConstExprEvaluationException; +use PhpParser\Node; +use PhpParser\Node\Stmt\Property; +use PhpParser\PrettyPrinter\Standard; use Psr\Log\LoggerInterface; -use Roave\BetterReflection\Reflection\ReflectionClass; -use Roave\BetterReflection\Reflection\ReflectionProperty; /** * Class property entity */ class PropertyEntity extends BaseEntity { - private ?ReflectionProperty $reflectionProperty = null; + /** + * Indicates that the property is public. + * + * @link https://www.php.net/manual/en/class.reflectionproperty.php#reflectionproperty.constants.is-public + */ + public const MODIFIERS_FLAG_IS_PUBLIC = 1; + + /** + * Indicates that the property is protected. + * + * @link https://www.php.net/manual/en/class.reflectionproperty.php#reflectionproperty.constants.is-protected + */ + public const MODIFIERS_FLAG_IS_PROTECTED = 2; + + /** + * Indicates that the property is private. + * + * @link https://www.php.net/manual/en/class.reflectionproperty.php#reflectionproperty.constants.is-private + */ + public const MODIFIERS_FLAG_IS_PRIVATE = 4; + + public const VISIBILITY_MODIFIERS_FLAG_ANY = + self::MODIFIERS_FLAG_IS_PUBLIC | + self::MODIFIERS_FLAG_IS_PROTECTED | + self::MODIFIERS_FLAG_IS_PRIVATE; + + private ?Property $ast = null; + private ?int $nodePosition = null; public function __construct( Configuration $configuration, - private ClassEntity $classEntity, - private ParserHelper $parserHelper, + private ClassLikeEntity $classEntity, + ParserHelper $parserHelper, private LocalObjectCache $localObjectCache, private LoggerInterface $logger, private string $propertyName, - private string $declaringClassName, private string $implementingClassName, ) { parent::__construct( @@ -44,56 +73,61 @@ public function __construct( ); } - public function getRootEntity(): ClassEntity + public function getRootEntity(): ClassLikeEntity { return $this->classEntity; } - public function getPhpHandlerSettings(): PhpHandlerSettings - { - return $this->classEntity->getPhpHandlerSettings(); - } - /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ - protected function getReflection(): ReflectionProperty + public function getAst(): Property { - if (!$this->reflectionProperty) { - $this->reflectionProperty = $this->classEntity->getReflection()->getProperty($this->propertyName); + if (!$this->ast) { + $implementingClass = $this->getImplementingClass(); + $classAst = $implementingClass->getAst(); + $this->ast = $classAst->getProperty($this->propertyName); + if (!$this->ast) { + $methodAst = $classAst->getMethod('__construct'); + foreach ($methodAst?->getParams() ?? [] as $param) { + if ($param->var->name === $this->propertyName) { + $this->ast = new Node\Stmt\Property( + $param->flags, + [new Node\Stmt\PropertyProperty($param->var->name)], + $param->getAttributes(), + $param->type, + $param->attrGroups, + ); + return $this->ast; + } + } + } else { + foreach ($this->ast->props as $pos => $propNode) { + if ($propNode->name->toString() === $this->propertyName) { + $this->nodePosition = $pos; + } + } + } } - return $this->reflectionProperty; - } - - public function getRootEntityCollection(): ClassEntityCollection - { - return $this->getRootEntity()->getRootEntityCollection(); + if (is_null($this->ast)) { + throw new \RuntimeException("Property `{$this->propertyName}` not found in `{$this->getImplementingClassName()}` class AST"); + } + return $this->ast; } /** - * @throws DependencyException - * @throws ReflectionException - * @throws NotFoundException - * @throws InvalidConfigurationParameterException + * @inheritDoc */ - public function getDocBlock(): DocBlock + public function getRootEntityCollection(): PhpEntitiesCollection { - $classEntity = $this->getDocCommentEntity()->getImplementingClass(); - return $this->parserHelper->getDocBlock($classEntity, $this->getDocCommentRecursive()); - } - - /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException - */ - public function getImplementingReflectionClass(): ReflectionClass - { - return $this->getReflection()->getImplementingClass(); + return $this->getRootEntity()->getRootEntityCollection(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException @@ -108,20 +142,20 @@ public function getDocCommentEntity(): PropertyEntity $docComment = $this->getDocComment(); $reflectionProperty = $this; if ($reflectionProperty->isImplementedInParentClass()) { - $reflectionProperty = $reflectionProperty->getImplementingClass()->getPropertyEntity($this->getName()); + $reflectionProperty = $reflectionProperty->getImplementingClass()->getProperty($this->getName(), true); } if (!$docComment || str_contains(mb_strtolower($docComment), '@inheritdoc')) { $implementingClass = $this->getImplementingClass(); $parentClass = $this->getImplementingClass()->getParentClass(); $propertyName = $this->getName(); - if ($parentClass && $parentClass->hasProperty($propertyName)) { - $parentReflectionProperty = $parentClass->getPropertyEntity($propertyName); + if ($parentClass && $parentClass->isEntityDataCanBeLoaded() && $parentClass->hasProperty($propertyName)) { + $parentReflectionProperty = $parentClass->getProperty($propertyName, true); $reflectionProperty = $parentReflectionProperty->getDocCommentEntity(); } else { foreach ($implementingClass->getInterfacesEntities() as $interface) { - if ($interface->hasProperty($propertyName)) { - $reflectionProperty = $interface->getPropertyEntity($propertyName); + if ($interface->isEntityDataCanBeLoaded() && $interface->hasProperty($propertyName)) { + $reflectionProperty = $interface->getProperty($propertyName, true); break; } } @@ -132,74 +166,77 @@ public function getDocCommentEntity(): PropertyEntity } /** - * @throws NotFoundException - * @throws ReflectionException - * @throws DependencyException - * @throws InvalidConfigurationParameterException + * @inheritDoc */ - protected function getDocCommentRecursive(): string - { - $objectId = $this->getObjectId(); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $objectId); - } catch (ObjectNotFoundException) { - } - $docComment = $this->getDocCommentEntity()->getDocComment() ?: ' '; - $this->localObjectCache->cacheMethodResult(__METHOD__, $objectId, $docComment); - return $docComment; - } - public function getName(): string { return $this->propertyName; } + /** + * @inheritDoc + */ public function getShortName(): string { return $this->getName(); } /** - * @throws ReflectionException - * @throws InvalidConfigurationParameterException + * Namespace of the class that contains this property + * + * @api */ public function getNamespaceName(): string { return $this->getRootEntity()->getNamespaceName(); } + /** + * Get the name of the class in which this property is implemented + * + * @api + */ public function getImplementingClassName(): string { return $this->implementingClassName; } - public function getImplementingClass(): ClassEntity + /** + * @inheritDoc + */ + public function getImplementingClass(): ClassLikeEntity { return $this->getRootEntityCollection()->getLoadedOrCreateNew($this->getImplementingClassName()); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ - public function getFileName(): ?string + public function getRelativeFileName(): ?string { - return $this->getImplementingClass()->getFileName(); + return $this->getImplementingClass()->getRelativeFileName(); } /** + * Get current property type + * + * @api + * * @throws NotFoundException - * @throws ReflectionException * @throws DependencyException * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getType(): string { - $type = $this->getReflection()->getType(); - $typeString = 'mixed'; + $type = $this->getAst()->type; if ($type) { - $typeString = (string)$type; + $astPrinter = new Standard(); + $typeString = $astPrinter->prettyPrint([$type]); + $typeString = str_replace('?', 'null|', $typeString); } else { + $typeString = 'mixed'; $docBlock = $this->getDocBlock(); $typesFromDoc = []; foreach ($docBlock->getTagsByName('var') as $param) { @@ -217,7 +254,10 @@ public function getFileName(): ?string } /** - * @throws ReflectionException + * Get a text representation of property modifiers + * + * @api + * * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException @@ -225,17 +265,17 @@ public function getFileName(): ?string #[CacheableMethod] public function getModifiersString(): string { $modifiersString = []; - if ($this->getReflection()->isPrivate()) { + if ($this->isPrivate()) { $modifiersString[] = 'private'; - } elseif ($this->getReflection()->isProtected()) { + } elseif ($this->isProtected()) { $modifiersString[] = 'protected'; - } elseif ($this->getReflection()->isPublic()) { + } elseif ($this->isPublic()) { $modifiersString[] = 'public'; } - if ($this->getReflection()->isStatic()) { + if ($this->getAst()->isStatic()) { $modifiersString[] = 'static'; - } elseif ($this->getReflection()->isReadOnly()) { + } elseif ($this->getAst()->isReadOnly()) { $modifiersString[] = 'readonly'; } @@ -243,74 +283,92 @@ public function getFileName(): ?string return implode(' ', $modifiersString); } - public function isImplementedInParentClass(): bool - { - return $this->getImplementingClassName() !== $this->classEntity->getName(); - } - /** - * @throws NotFoundException - * @throws DependencyException - * @throws ReflectionException - * @throws InvalidConfigurationParameterException + * Check if this property is implemented in the parent class + * + * @api */ - public function getDescription(): string + public function isImplementedInParentClass(): bool { - $docBlock = $this->getDocBlock(); - return trim($docBlock->getSummary()); + return $this->getImplementingClassName() !== $this->classEntity->getName(); } /** - * @throws ReflectionException + * Check if a property is a public property + * + * @api + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function isPublic(): bool { - return $this->getReflection()->isPublic(); + return $this->getAst()->isPublic(); } /** - * @throws ReflectionException + * Check if a protected is a public protected + * + * @api + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function isProtected(): bool { - return $this->getReflection()->isProtected(); + return $this->getAst()->isProtected(); } /** - * @throws ReflectionException + * Check if a private is a public private + * + * @api + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function isPrivate(): bool { - return $this->getReflection()->isPrivate(); + return $this->getAst()->isPrivate(); } /** - * @throws ReflectionException + * @inheritDoc + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getStartLine(): int { - return $this->getReflection()->getStartLine(); + if (is_null($this->nodePosition)) { + return $this->getAst()->getStartLine(); + } + return $this->getAst()->props[$this->nodePosition]->getStartLine(); } /** - * @throws ReflectionException + * Get the line number of the end of a property's code in a file + * + * @api + * * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getEndLine(): int { - return $this->getReflection()->getEndLine(); + if (is_null($this->nodePosition)) { + return $this->getAst()->getEndLine(); + } + return $this->getAst()->props[$this->nodePosition]->getEndLine(); } /** - * @throws ReflectionException + * Get the compiled default value of a property + * + * @api + * + * @return string|array|int|bool|null|float Compiled property default value + * + * @throws ConstExprEvaluationException * @throws InvalidConfigurationParameterException */ #[CacheableMethod] public function getDefaultValue(): string|array|int|bool|null|float { - return $this->getReflection()->getDefaultValue(); + return NodeValueCompiler::compile($this->getAst()->props[$this->nodePosition]->default, $this); } } diff --git a/src/LanguageHandler/Php/Parser/Entity/TraitEntity.php b/src/LanguageHandler/Php/Parser/Entity/TraitEntity.php new file mode 100644 index 00000000..7ccfed07 --- /dev/null +++ b/src/LanguageHandler/Php/Parser/Entity/TraitEntity.php @@ -0,0 +1,46 @@ +visibilityModifiers as $visibilityModifier) { diff --git a/src/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/OnlyFromCurrentClassCondition.php b/src/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/OnlyFromCurrentClassCondition.php index 83020988..af01d159 100644 --- a/src/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/OnlyFromCurrentClassCondition.php +++ b/src/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/OnlyFromCurrentClassCondition.php @@ -6,7 +6,7 @@ use BumbleDocGen\Core\Parser\Entity\EntityInterface; use BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; /** * Only methods that belong to the current class (not parent) diff --git a/src/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/VisibilityCondition.php b/src/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/VisibilityCondition.php index 375b1b3f..7177f361 100644 --- a/src/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/VisibilityCondition.php +++ b/src/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/VisibilityCondition.php @@ -6,7 +6,7 @@ use BumbleDocGen\Core\Parser\Entity\EntityInterface; use BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassFilterCondition\VisibilityConditionModifier; /** diff --git a/src/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/OnlyFromCurrentClassCondition.php b/src/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/OnlyFromCurrentClassCondition.php index da0a037b..95cddf68 100644 --- a/src/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/OnlyFromCurrentClassCondition.php +++ b/src/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/OnlyFromCurrentClassCondition.php @@ -6,7 +6,7 @@ use BumbleDocGen\Core\Parser\Entity\EntityInterface; use BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; /** * Only properties that belong to the current class (not parent) diff --git a/src/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/VisibilityCondition.php b/src/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/VisibilityCondition.php index 52caf60c..bf56157f 100644 --- a/src/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/VisibilityCondition.php +++ b/src/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/VisibilityCondition.php @@ -6,7 +6,7 @@ use BumbleDocGen\Core\Parser\Entity\EntityInterface; use BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassFilterCondition\VisibilityConditionModifier; /** diff --git a/src/LanguageHandler/Php/Parser/ParserHelper.php b/src/LanguageHandler/Php/Parser/ParserHelper.php index 5af6197e..2533a74c 100644 --- a/src/LanguageHandler/Php/Parser/ParserHelper.php +++ b/src/LanguageHandler/Php/Parser/ParserHelper.php @@ -8,18 +8,13 @@ use BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache; use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection\ReflectorWrapper; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; use Monolog\Logger; -use Nette\PhpGenerator\GlobalFunction; use phpDocumentor\Reflection\DocBlock; use phpDocumentor\Reflection\DocBlockFactory; use phpDocumentor\Reflection\Location; use phpDocumentor\Reflection\Types\Context; use phpDocumentor\Reflection\Types\ContextFactory; -use Roave\BetterReflection\Reflection\ReflectionClass; -use Roave\BetterReflection\Reflection\ReflectionMethod; final class ParserHelper { @@ -158,30 +153,15 @@ final class ParserHelper public function __construct( private Configuration $configuration, - private ReflectorWrapper $reflector, + private ComposerHelper $composerHelper, private LocalObjectCache $localObjectCache, private Logger $logger ) { } - public static function getBuiltInClassNames(): array - { - static $classNames = []; - if (!$classNames) { - $builtInClassNames = array_merge(self::$predefinedClassesInterfaces, get_declared_classes()); - foreach ($builtInClassNames as $className) { - if (str_starts_with(ltrim($className, '\\'), 'Composer')) { - break; - } - $classNames[$className] = $className; - } - } - return $classNames; - } - public static function isBuiltInClass(string $className): bool { - $className = ltrim(str_replace('\\\\', '\\', $className), '\\'); + $className = ClassLikeEntity::normalizeClassName($className); return array_key_exists($className, self::getBuiltInClassNames()); } @@ -195,49 +175,32 @@ public static function isBuiltInType(string $name): bool return false; } - private static function checkIsClassName(string $name): bool - { - if ( - !preg_match( - '/^(?=_*[A-z]+)[A-z0-9]+$/', - $name - ) - ) { - return false; - } - - $name = explode('\\', $name); - $name = end($name); - $chr = \mb_substr($name, 0, 1, "UTF-8"); - return \mb_strtolower($chr, "UTF-8") != $chr; - } - public static function isCorrectClassName(string $className, bool $checkBuiltIns = true): bool { if (self::isBuiltInType($className) || ($checkBuiltIns && self::isBuiltInClass($className))) { return false; } - return self::checkIsClassName($className); + return (bool)preg_match( + '/^(?=_*[A-z]+)[A-z0-9]+$/', + $className + ); } + /** + * @throws InvalidConfigurationParameterException + */ public function isClassLoaded(string $className): bool { if (self::isCorrectClassName($className)) { - try { - $this->reflector->reflectClass($className); - return true; - } catch (\Exception) { - } + return (bool)$this->composerHelper->getComposerClassLoader()->findFile($className); } - return false; } /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ - public function getUsesListByClassEntity(ClassEntity $classEntity, bool $extended = true): array + public function getUsesListByClassEntity(ClassLikeEntity $classEntity, bool $extended = true): array { $fileName = $classEntity->getAbsoluteFileName(); if (!$fileName) { @@ -274,12 +237,11 @@ public function getUsesListByClassEntity(ClassEntity $classEntity, bool $extende } /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ public function parseFullClassName( string $searchClassName, - ClassEntity $parentClassEntity, + ClassLikeEntity $parentClassEntity, bool $extended = true ): string { $classNameParts = explode('::', $searchClassName); @@ -322,141 +284,6 @@ public function parseFullClassName( return $className; } - public function getClassFromFile($file): ?string - { - if (str_ends_with($file, '.php')) { - $content = file_get_contents($file); - $namespaceLevel = false; - $classLevel = false; - $namespace = ''; - foreach (token_get_all($content, TOKEN_PARSE) as $token) { - if ($token[0] === T_NAMESPACE) { - $namespaceLevel = true; - } elseif ($namespaceLevel && in_array($token[0], [T_NAME_QUALIFIED, T_STRING])) { - $namespaceLevel = false; - $namespace = $token[1]; - } - if (!$namespaceLevel && in_array($token[0], [T_CLASS, T_INTERFACE, T_TRAIT])) { - $classLevel = true; - } elseif ($classLevel && $token[0] === T_STRING) { - return $namespace . '\\' . $token[1]; - } - } - } - return null; - } - - protected function getRawValue( - ReflectionClass $reflectionClass, - ReflectionMethod $reflectionMethod, - string $condition - ) { - $prepareReturnValue = function (mixed $value): mixed { - if (!is_string($value) || str_contains($value, ':') || str_contains($value, '->')) { - return $value; - } - return "'{$value}'"; - }; - if ( - str_contains($condition, '::') && !str_contains($condition, '"') && !str_contains($condition, '\'') - ) { - try { - $nextClass = null; - $parts = explode('::', $condition); - if ($parts[0] === 'parent') { - $nextClass = $reflectionMethod->getImplementingClass()->getParentClass(); - } elseif ($parts[0] === 'self') { - $nextClass = $reflectionMethod->getImplementingClass(); - } elseif ($this->isClassLoaded($parts[0])) { - $nextClass = $this->reflector->reflectClass($parts[0]); - } - - if ($nextClass) { - if (str_contains($parts[1], '(') && !str_contains($parts[1], ' ') && !str_contains($parts[1], '.')) { - $methodName = explode('(', $parts[1])[0]; - $nextReflection = $nextClass->getMethod($methodName); - $methodValue = $this->getMethodReturnValue($reflectionClass, $nextReflection); - return $prepareReturnValue($methodValue); - } elseif (!preg_match('/([-+:\/ ])/', $parts[1])) { - $constantValue = $nextClass->getConstant($parts[1]); - return $prepareReturnValue($constantValue); - } - $reflectionClass = $nextClass; - } - } catch (\Exception) { - } - } - - $value = preg_replace_callback( - '/([$]?)([a-zA-Z_\\\\]+)((::)|(->))([\s\S]([^ -+\-;\]])+)(([^)]?)+[)])?/', - function (array $matches) use ($reflectionClass, $prepareReturnValue) { - if ($matches[1] && $matches[2] != 'this') { - return $matches[0]; - } - if (substr_count($matches[0], '->') > 1) { - return $matches[0]; - } - - $nextClass = $reflectionClass; - if (!in_array($matches[2], ['static', 'self', 'partner', 'this'])) { - $nextClass = $this->reflector->reflectClass($matches[2]); - } - - if (isset($matches[8]) && $nextClass->hasMethod($matches[6])) { - $methodValue = $this->getMethodReturnValue($nextClass, $nextClass->getMethod($matches[6])); - return $prepareReturnValue($methodValue); - } elseif ($nextClass->hasConstant($matches[6])) { - $constantValue = $nextClass->getConstant($matches[6]); - return $prepareReturnValue($constantValue); - } else { - return $matches[0]; - } - }, - $condition - ); - - return $value; - } - - public function getMethodReturnValue( - ReflectionClass $reflectionClass, - ReflectionMethod $reflectionMethod - ): mixed { - if (preg_match('/(return )([^;]+)/', $reflectionMethod->getBodyCode(), $matches)) { - $savedParts = []; - $i = 0; - $preparedConditions = preg_replace_callback("/((\")(.*?)(\"))|((')(.*?)('))/", function (array $matches) use (&$savedParts, &$i) { - $value = array_key_exists(7, $matches) ? $matches[7] : $matches[3]; - $savedParts[++$i] = $value; - return "'[%{$i}%]'"; - }, $matches[2]); - - $conditions = explode('.', $preparedConditions); - $values = []; - foreach ($conditions as $condition) { - foreach ($savedParts as $i => $savedPart) { - $condition = str_replace("[%{$i}%]", $savedPart, $condition); - } - $values[] = self::getRawValue($reflectionClass, $reflectionMethod, trim($condition)); - } - $value = implode(' . ', $values); - - if ($value && !str_contains($value, '::') && !str_contains($value, '$this->')) { - try { - $fName = 'x' . uniqid(); - $fn = new GlobalFunction($fName); - $value = str_replace(['(', ')'], '', $value); - $fn->setBody("return {$value};"); - eval((string)$fn); - return $fName(); - } catch (\Exception) { - } - } - return $value; - } - return null; - } - /** * @throws InvalidConfigurationParameterException */ @@ -473,22 +300,10 @@ public function getFilesInGit(): array return $gitFiles; } - private function getDocBlockFactory(): DocBlockFactory - { - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, ''); - } catch (ObjectNotFoundException) { - } - $docBlockFactory = DocBlockFactory::createInstance(); - $this->localObjectCache->cacheMethodResult(__METHOD__, '', $docBlockFactory); - return $docBlockFactory; - } - /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ - public function getDocBlock(ClassEntity $classEntity, string $docComment, ?int $lineNumber = null): DocBlock + public function getDocBlock(ClassLikeEntity $classEntity, string $docComment, ?int $lineNumber = null): DocBlock { $docComment = $docComment ?: ' '; $cacheKey = md5("{$classEntity->getName()}{$docComment}{$lineNumber}"); @@ -517,10 +332,9 @@ public function getDocBlock(ClassEntity $classEntity, string $docComment, ?int $ } /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ - public function getDocBlockContext(ClassEntity $classEntity): Context + public function getDocBlockContext(ClassLikeEntity $classEntity): Context { try { return $this->localObjectCache->getMethodCachedResult(__METHOD__, $classEntity->getName()); @@ -555,4 +369,30 @@ public function getDocBlockContext(ClassEntity $classEntity): Context $this->localObjectCache->cacheMethodResult(__METHOD__, $classEntity->getName(), $context); return $context; } + + private static function getBuiltInClassNames(): array + { + static $classNames = []; + if (!$classNames) { + $builtInClassNames = array_merge(self::$predefinedClassesInterfaces, get_declared_classes()); + foreach ($builtInClassNames as $className) { + if (str_starts_with(ltrim($className, '\\'), 'Composer')) { + break; + } + $classNames[$className] = $className; + } + } + return $classNames; + } + + private function getDocBlockFactory(): DocBlockFactory + { + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, ''); + } catch (ObjectNotFoundException) { + } + $docBlockFactory = DocBlockFactory::createInstance(); + $this->localObjectCache->cacheMethodResult(__METHOD__, '', $docBlockFactory); + return $docBlockFactory; + } } diff --git a/src/LanguageHandler/Php/Parser/PhpParser/NodeValueCompiler.php b/src/LanguageHandler/Php/Parser/PhpParser/NodeValueCompiler.php new file mode 100644 index 00000000..db038ea3 --- /dev/null +++ b/src/LanguageHandler/Php/Parser/PhpParser/NodeValueCompiler.php @@ -0,0 +1,184 @@ +items as $k => $item) { + $key = !$item->key ? $k : self::compile($item->key, $entity); + $value = self::compile($item->value, $entity); + $compiledValue[$key] = $value; + } + return $compiledValue; + } + if ($node instanceof Node\Stmt\Expression) { + return self::compile($node->expr, $entity); + } + $constExprEvaluator = new ConstExprEvaluator(function (Node\Expr $node) use ($entity): mixed { + $className = get_class($node); + return match ($className) { + Node\Expr\ClassConstFetch::class => self::getClassConstantValue($node, $entity), + Node\Scalar\MagicConst\Dir::class => dirname($entity->getRelativeFileName()), + Node\Scalar\MagicConst\File::class => $entity->getRelativeFileName(), + Node\Scalar\MagicConst\Class_::class => is_a($entity, ClassLikeEntity::class) ? $entity->getName() : $entity->getRootEntity()->getName(), + Node\Scalar\MagicConst\Line::class => $node->getLine(), + Node\Scalar\MagicConst\Namespace_::class => $entity->getNamespaceName(), + Node\Scalar\MagicConst\Method::class => is_a($entity, MethodEntity::class) ? $entity->getRootEntity()->getName() . '::' . $entity->getName() : '', + Node\Scalar\MagicConst\Trait_::class => $entity->isTrait() ? $entity->getName() : '', + Node\Scalar\MagicConst\Function_::class => is_a($entity, MethodEntity::class) ? $entity->getName() : '', + Node\Expr\StaticCall::class => self::getStaticCallValue($node, $entity), + Node\Expr\StaticPropertyFetch::class => self::getStaticPropertyValue($node, $entity), + Node\Expr\FuncCall::class => self::getFuncCallValue($node), + Node\Expr\New_::class => throw new \RuntimeException('Unable to compile initializer'), + default => throw new \RuntimeException('Not supported operation') + }; + }); + + try { + return $constExprEvaluator->evaluateSilently($node); + } catch (\Exception) { + } + $astPrinter = new Standard(); + return $astPrinter->prettyPrint([$node]); + } + + private static function getFuncCallValue(Node\Expr\FuncCall $node): mixed + { + if ( + $node->name instanceof Node\Name && + $node->name->toLowerString() === 'constant' && + $node->args[0] instanceof Node\Arg && + $node->args[0]->value instanceof Node\Scalar\String_ && + defined($node->args[0]->value->value) + ) { + return constant($node->args[0]->value->value); + } + throw new \RuntimeException('Not supported operation'); + } + + /** + * @throws NotFoundException + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws ConstExprEvaluationException + */ + private static function getStaticCallValue( + Node\Expr\StaticCall $node, + MethodEntity|PropertyEntity|ClassConstantEntity|ClassLikeEntity $entity + ): mixed { + $className = self::resolveClassName($node->class->toString(), $entity); + if ($entity->getName() !== $className) { + $entity = $entity->getRootEntityCollection()->getLoadedOrCreateNew($className); + } + if (!$entity->isEntityDataCanBeLoaded()) { + throw new \RuntimeException('Entity cannot be loaded'); + } + $methodEntity = $entity->getMethod($node->name->toString(), true); + if (!$methodEntity) { + return null; + } + return $methodEntity->getFirstReturnValue(); + } + + /** + * @throws NotFoundException + * @throws DependencyException + * @throws InvalidConfigurationParameterException + * @throws ConstExprEvaluationException + */ + private static function getStaticPropertyValue( + Node\Expr\StaticPropertyFetch $node, + MethodEntity|PropertyEntity|ClassConstantEntity|ClassLikeEntity $entity + ): mixed { + $className = self::resolveClassName($node->class->toString(), $entity); + if ($entity->getName() !== $className) { + $entity = $entity->getRootEntityCollection()->getLoadedOrCreateNew($className); + } + if (!$entity->isEntityDataCanBeLoaded()) { + throw new \RuntimeException('Entity cannot be loaded'); + } + return $entity->getPropertyDefaultValue($node->name->toString()); + } + + /** + * @throws DependencyException + * @throws ConstExprEvaluationException + * @throws NotFoundException + * @throws InvalidConfigurationParameterException + */ + private static function getClassConstantValue( + Node\Expr\ClassConstFetch $node, + MethodEntity|PropertyEntity|ClassConstantEntity|ClassLikeEntity $entity + ): mixed { + + $className = self::resolveClassName($node->class->toString(), $entity); + $constantName = $node->name->toString(); + + if (!$entity instanceof ClassLikeEntity) { + $entity = $entity->getRootEntity(); + } + if ($entity->getName() !== $className) { + $entity = $entity->getRootEntityCollection()->getLoadedOrCreateNew($className); + } + + if ($entity->isEnum()) { + return $entity->getEnumCaseValue($constantName); + } + + if ($constantName === 'class') { + return $className; + } + + if (!$entity->isEntityDataCanBeLoaded()) { + throw new \RuntimeException('Entity cannot be loaded'); + } + + return $entity->getConstantValue($constantName); + } + + /** + * @throws InvalidConfigurationParameterException + */ + private static function resolveClassName( + string $className, + MethodEntity|PropertyEntity|ClassConstantEntity|ClassLikeEntity $entity + ): string { + if ($className !== 'self' && $className !== 'static' && $className !== 'parent') { + return $className; + } + $classEntity = $entity; + if (!$entity instanceof ClassLikeEntity) { + $classEntity = $entity->getRootEntity(); + } + return $className === 'parent' ? $classEntity->getParentClassName() : $classEntity->getName(); + } +} diff --git a/src/LanguageHandler/Php/Parser/PhpParser/PhpParserHelper.php b/src/LanguageHandler/Php/Parser/PhpParser/PhpParserHelper.php new file mode 100644 index 00000000..556ab048 --- /dev/null +++ b/src/LanguageHandler/Php/Parser/PhpParser/PhpParserHelper.php @@ -0,0 +1,24 @@ +phpParser) { + $this->phpParser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7, new Emulative([ + 'usedAttributes' => ['comments', 'startLine', 'endLine', 'startFilePos', 'endFilePos'], + ])); + } + return $this->phpParser; + } +} diff --git a/src/LanguageHandler/Php/Parser/SourceLocator/AsyncSourceLocator.php b/src/LanguageHandler/Php/Parser/SourceLocator/AsyncSourceLocator.php deleted file mode 100644 index 4fb56381..00000000 --- a/src/LanguageHandler/Php/Parser/SourceLocator/AsyncSourceLocator.php +++ /dev/null @@ -1,42 +0,0 @@ -localObjectCache, - $this->psr4FileMap, - $this->classMap, - ); - } -} diff --git a/src/LanguageHandler/Php/Parser/SourceLocator/CustomSourceLocatorInterface.php b/src/LanguageHandler/Php/Parser/SourceLocator/CustomSourceLocatorInterface.php deleted file mode 100644 index cd53a900..00000000 --- a/src/LanguageHandler/Php/Parser/SourceLocator/CustomSourceLocatorInterface.php +++ /dev/null @@ -1,13 +0,0 @@ - indexed by reflector key and identifier cache key */ - private array $cacheByIdentifierKeyAndOid = []; - - /** @var array> indexed by reflector key and identifier type cache key */ - private array $cacheByIdentifierTypeKeyAndOid = []; - - public function __construct( - private SourceLocator $sourceLocator, - private Configuration $configuration, - private SourceLocatorCacheItemPool $cache - ) { - } - - /** - * @throws InvalidArgumentException - * @throws InvalidConfigurationParameterException - */ - public function locateIdentifier(Reflector $reflector, Identifier $identifier): ?Reflection - { - $cacheKey = $this->identifierToCacheKey($identifier); - if (array_key_exists($cacheKey, $this->cacheByIdentifierKeyAndOid)) { - return $this->cacheByIdentifierKeyAndOid[$cacheKey]; - } - - $locateIdentifier = null; - if ($this->cache->hasItem($cacheKey)) { - $cachedData = $this->cache->getItem($cacheKey)->get(); - - $actualFileName = null; - if ($cachedData['fileName']) { - $actualFileName = $this->configuration->getProjectRoot() . $cachedData['fileName']; - } - - if ( - (!$actualFileName || - file_exists($actualFileName) && md5_file($actualFileName) === $cachedData['fileHash']) && - isset($cachedData['locatedSourceSource']) && isset($cachedData['locatedSourceName']) - ) { - $locatedSource = new LocatedSource( - $cachedData['locatedSourceSource'], - $cachedData['locatedSourceName'], - $actualFileName - ); - - $locateIdentifier = $cachedData['className']::createFromNode( - $reflector, - $cachedData['node'], - $locatedSource, - $cachedData['namespaceAst'] - ); - } else { - $this->cache->deleteItem($cacheKey); - } - } - - if (is_null($locateIdentifier)) { - $locateIdentifier = $this->sourceLocator->locateIdentifier($reflector, $identifier); - if (is_a($locateIdentifier, ReflectionClass::class)) { - $node = $locateIdentifier->getAst(); - $locatedSource = $locateIdentifier->getLocatedSource(); - $namespaceAst = $locateIdentifier->getDeclaringNamespaceAst(); - $className = get_class($locateIdentifier); - $cacheItem = $this->cache->getItem($cacheKey); - $actualFileName = $locateIdentifier->getFileName() ? str_replace($this->configuration->getProjectRoot(), '', $locateIdentifier->getFileName()) : null; - $cacheItem->set([ - 'className' => $className, - 'node' => $node, - 'locatedSource' => $locatedSource, - 'namespaceAst' => $namespaceAst, - 'fileName' => $actualFileName, - 'locatedSourceName' => $locateIdentifier->getLocatedSource()->getName(), - 'locatedSourceSource' => $locateIdentifier->getLocatedSource()->getSource(), - 'fileHash' => $locateIdentifier->getFileName() ? md5_file($locateIdentifier->getFileName()) : null, - ]); - if (!$locateIdentifier->getFileName()) { - $cacheItem->expiresAfter(604800); - } - $this->cache->save($cacheItem); - } - } - return $this->cacheByIdentifierKeyAndOid[$cacheKey] = $locateIdentifier; - } - - public function locateIdentifiersByType(Reflector $reflector, IdentifierType $identifierType): array - { - $cacheKey = sprintf( - '%s_%s', - $this->reflectorCacheKey($reflector), - $this->identifierTypeToCacheKey($identifierType) - ); - - if (array_key_exists($cacheKey, $this->cacheByIdentifierTypeKeyAndOid)) { - return $this->cacheByIdentifierTypeKeyAndOid[$cacheKey]; - } - - return $this->cacheByIdentifierTypeKeyAndOid[$cacheKey] = $this->sourceLocator->locateIdentifiersByType( - $reflector, - $identifierType - ); - } - - private function reflectorCacheKey(Reflector $reflector): string - { - return sprintf('type:%s#oid:%s', $reflector::class, spl_object_hash($reflector)); - } - - private function identifierToCacheKey(Identifier $identifier): string - { - $nameElements = explode('\\', $identifier->getName()); - $name = array_pop($nameElements); - return str_replace( - ['\\', '/'], - '_', - sprintf( - '%s' . DIRECTORY_SEPARATOR . '%s_name_%s', - implode(DIRECTORY_SEPARATOR, $nameElements), - $this->identifierTypeToCacheKey($identifier->getType()), - $name, - ) - ); - } - - private function identifierTypeToCacheKey(IdentifierType $identifierType): string - { - return sprintf('type_%s', $identifierType->getName()); - } -} diff --git a/src/LanguageHandler/Php/Parser/SourceLocator/Internal/SystemAsyncSourceLocator.php b/src/LanguageHandler/Php/Parser/SourceLocator/Internal/SystemAsyncSourceLocator.php deleted file mode 100644 index 1a5b1a61..00000000 --- a/src/LanguageHandler/Php/Parser/SourceLocator/Internal/SystemAsyncSourceLocator.php +++ /dev/null @@ -1,73 +0,0 @@ -isClass()) { - return null; - } - return $this->getLocatedSource($identifier->getName()); - } - - public function getClassLoader(array $psr4FileMap, array $classMap): ClassLoader - { - $key = md5(serialize($psr4FileMap) . serialize($classMap)); - try { - return $this->localObjectCache->getMethodCachedResult(__METHOD__, $key); - } catch (ObjectNotFoundException) { - } - $classLoader = new ClassLoader(); - foreach ($psr4FileMap as $prefix => $path) { - $classLoader->addPsr4($prefix, $path); - } - $classLoader->addClassMap($classMap); - $this->localObjectCache->cacheMethodResult(__METHOD__, $key, $classLoader); - return $classLoader; - } - - public function getLocatedSource(string $className): ?LocatedSource - { - $classLoader = $this->getClassLoader($this->psr4FileMap, $this->classMap); - if ($fileName = $classLoader->findFile($className)) { - return new LocatedSource( - file_get_contents($fileName), - $className, - $fileName - ); - } - return null; - } -} diff --git a/src/LanguageHandler/Php/PhpHandler.php b/src/LanguageHandler/Php/PhpHandler.php index 33d8a307..f7ccb542 100644 --- a/src/LanguageHandler/Php/PhpHandler.php +++ b/src/LanguageHandler/Php/PhpHandler.php @@ -5,20 +5,20 @@ namespace BumbleDocGen\LanguageHandler\Php; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; -use BumbleDocGen\Core\Parser\Entity\RootEntityCollection; use BumbleDocGen\Core\Renderer\Context\RendererContext; use BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection; use BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection; use BumbleDocGen\LanguageHandler\LanguageHandlerInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; use DI\DependencyException; use DI\NotFoundException; final class PhpHandler implements LanguageHandlerInterface { - public function __construct(private ClassEntityCollection $classEntityCollection, private PhpHandlerSettings $phpHandlerSettings) - { + public function __construct( + private PhpEntitiesCollection $entitiesCollection, + private PhpHandlerSettings $phpHandlerSettings + ) { } public static function getLanguageKey(): string @@ -26,18 +26,14 @@ public static function getLanguageKey(): string return 'php'; } - /** - * @throws NotFoundException - * @throws ReflectionException - * @throws DependencyException - * @throws InvalidConfigurationParameterException - */ - public function getEntityCollection(): RootEntityCollection + public function getPhpHandlerSettings(): PhpHandlerSettings + { + return $this->phpHandlerSettings; + } + + public function getEntityCollection(): PhpEntitiesCollection { - if ($this->classEntityCollection->isEmpty()) { - $this->classEntityCollection->loadClassEntities(); - } - return $this->classEntityCollection; + return $this->entitiesCollection; } /** diff --git a/src/LanguageHandler/Php/PhpHandlerSettings.php b/src/LanguageHandler/Php/PhpHandlerSettings.php index 51897008..10cd084b 100644 --- a/src/LanguageHandler/Php/PhpHandlerSettings.php +++ b/src/LanguageHandler/Php/PhpHandlerSettings.php @@ -157,17 +157,66 @@ public function getFileSourceBaseUrl(): ?string /** * @throws InvalidConfigurationParameterException */ - public function asyncSourceLoadingEnabled(): bool + public function getUseComposerAutoload(): bool { try { return $this->localObjectCache->getMethodCachedResult(__METHOD__, ''); } catch (ObjectNotFoundException) { } - $asyncSourceLoadingEnabled = $this->parameterBag->validateAndGetBooleanValue( - $this->getSettingsKey('async_source_loading_enabled') + $useComposerAutoload = $this->parameterBag->validateAndGetBooleanValue( + $this->getSettingsKey('use_composer_autoload') ); - $this->localObjectCache->cacheMethodResult(__METHOD__, '', $asyncSourceLoadingEnabled); - return $asyncSourceLoadingEnabled; + $this->localObjectCache->cacheMethodResult(__METHOD__, '', $useComposerAutoload); + return $useComposerAutoload; + } + + /** + * @throws InvalidConfigurationParameterException + */ + public function getComposerConfigFile(): ?string + { + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, ''); + } catch (ObjectNotFoundException) { + } + $composerConfigFile = $this->parameterBag->validateAndGetFilePathValue( + $this->getSettingsKey('composer_config_file'), + ['json'] + ); + $this->localObjectCache->cacheMethodResult(__METHOD__, '', $composerConfigFile); + return $composerConfigFile; + } + + /** + * @throws InvalidConfigurationParameterException + */ + public function getComposerVendorDir(): ?string + { + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, ''); + } catch (ObjectNotFoundException) { + } + $composerVendorDir = $this->parameterBag->validateAndGetDirectoryPathValue( + $this->getSettingsKey('composer_vendor_dir'), + ); + $this->localObjectCache->cacheMethodResult(__METHOD__, '', $composerVendorDir); + return $composerVendorDir; + } + + /** + * @throws InvalidConfigurationParameterException + */ + public function getPsr4Map(): array + { + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, ''); + } catch (ObjectNotFoundException) { + } + $psr4 = $this->parameterBag->validateAndGetStringListValue( + $this->getSettingsKey('psr4_map'), + ); + $this->localObjectCache->cacheMethodResult(__METHOD__, '', $psr4); + return $psr4; } /** diff --git a/src/LanguageHandler/Php/PhpReflectionApiConfig.php b/src/LanguageHandler/Php/PhpReflectionApiConfig.php new file mode 100644 index 00000000..48ad0bb8 --- /dev/null +++ b/src/LanguageHandler/Php/PhpReflectionApiConfig.php @@ -0,0 +1,134 @@ +classFilter = new TrueCondition(); + $this->classConstantFilter = new TrueCondition(); + $this->methodFilter = new TrueCondition(); + $this->propertyFilter = new TrueCondition(); + } + + public static function create(): self + { + return new self(); + } + + public function getLanguageHandlerClassName(): string + { + return PhpHandler::class; + } + + /** + * @throws DependencyException + * @throws NotFoundException + * @throws InvalidConfigurationParameterException + */ + public static function createByConfiguration(Configuration $configuration): self + { + $phpHandler = $configuration->getLanguageHandlersCollection()->get(PhpHandler::class); + if (!$phpHandler) { + throw new \RuntimeException(); + } + $phpHandlerSettings = $phpHandler->getPhpHandlerSettings(); + + $self = new self(); + $self->projectRoot = $configuration->getProjectRoot(); + $self->cacheDir = $configuration->getCacheDir(); + $self->useComposerAutoload = $phpHandlerSettings->getUseComposerAutoload(); + $self->composerConfigFile = $phpHandlerSettings->getComposerConfigFile(); + $self->composerVendorDir = $phpHandlerSettings->getComposerVendorDir(); + $self->psr4Map = $phpHandlerSettings->getPsr4Map(); + return $self; + } + + public function setClassFilter(ConditionInterface $classFilter): void + { + $this->classFilter = $classFilter; + } + + public function setClassConstantFilter(ConditionInterface $classConstantFilter): void + { + $this->classConstantFilter = $classConstantFilter; + } + + public function setPropertyFilter(ConditionInterface $propertyFilter): void + { + $this->propertyFilter = $propertyFilter; + } + + public function setMethodFilter(ConditionInterface $methodFilter): void + { + $this->methodFilter = $methodFilter; + } + + public function useComposerAutoload(): void + { + $this->useComposerAutoload = true; + } + + public function disableComposerAutoload(): void + { + $this->useComposerAutoload = false; + } + + public function setComposerConfigFile(string $composerConfigFile): void + { + $this->composerConfigFile = $composerConfigFile; + } + + public function setComposerVendorPath(string $composerInstalledFile): void + { + $this->composerVendorDir = $composerInstalledFile; + } + + public function setPsr4Map(array $psr4Map): void + { + $this->psr4Map = $psr4Map; + } + + public function toConfigArray(): array + { + return [ + 'project_root' => $this->getProjectRoot(), + 'cache_dir' => $this->getCacheDir(), + 'language_handlers' => [ + 'php' => [ + 'class' => $this->getLanguageHandlerClassName(), + 'settings' => [ + 'use_composer_autoload' => $this->useComposerAutoload, + 'composer_config_file' => $this->composerConfigFile, + 'composer_vendor_dir' => $this->composerVendorDir, + 'psr4_map' => $this->psr4Map, + 'class_filter' => $this->classFilter, + 'class_constant_filter' => $this->classConstantFilter, + 'method_filter' => $this->methodFilter, + 'property_filter' => $this->propertyFilter + ] + ] + ] + ]; + } +} diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/BasePhpStubberPlugin.php b/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/BasePhpStubberPlugin.php index fc7b9b67..bab34dc5 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/BasePhpStubberPlugin.php +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/BasePhpStubberPlugin.php @@ -6,6 +6,8 @@ use BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink; use BumbleDocGen\Core\Plugin\PluginInterface; +use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; +use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded; /** * Adding links to type documentation and documentation of built-in PHP classes @@ -30,6 +32,7 @@ final class BasePhpStubberPlugin implements PluginInterface 'object' => 'https://www.php.net/manual/en/language.types.object.php', 'float' => 'https://www.php.net/manual/en/language.types.float.php', 'callable' => 'https://www.php.net/manual/en/language.types.callable.php', + 'iterable' => 'https://www.php.net/manual/en/language.types.iterable.php', '[]' => 'https://www.php.net/manual/en/language.types.array.php', '\Traversable' => 'https://www.php.net/manual/en/class.traversable.php', '\Iterator' => 'https://www.php.net/manual/en/class.iterator.php', @@ -144,6 +147,7 @@ public static function getSubscribedEvents(): array { return [ OnGettingResourceLink::class => 'onGettingResourceLink', + OnCheckIsEntityCanBeLoaded::class => 'onCheckIsEntityCanBeLoaded', ]; } @@ -161,4 +165,20 @@ final public function onGettingResourceLink(OnGettingResourceLink $event): void } } } + + final public function onCheckIsEntityCanBeLoaded(OnCheckIsEntityCanBeLoaded $event): void + { + $entityName = $event->getEntity()->getName(); + $entityName = explode('::', $entityName)[0]; + if (preg_match('/([{\[])/', $entityName) || preg_match('/^(array)([{<])/', $entityName)) { + $entityName = 'array'; + } + if (!ParserHelper::isCorrectClassName($entityName)) { + $event->disableEntityLoading(); + return; + } + if (array_key_exists($entityName, self::$builtInUrls) || array_key_exists("\\{$entityName}", self::$builtInUrls)) { + $event->disableEntityLoading(); + } + } } diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpDocumentorStubberPlugin.php b/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpDocumentorStubberPlugin.php index 930f34aa..93affeaf 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpDocumentorStubberPlugin.php +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpDocumentorStubberPlugin.php @@ -6,7 +6,7 @@ use BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink; use BumbleDocGen\Core\Plugin\PluginInterface; -use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad; +use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded; use phpDocumentor\Reflection\DocBlock; use phpDocumentor\Reflection\DocBlockFactory; use phpDocumentor\Reflection\DocBlockFactoryInterface; @@ -26,7 +26,7 @@ public static function getSubscribedEvents(): array { return [ OnGettingResourceLink::class => 'onGettingResourceLink', - OnCheckIsClassEntityCanBeLoad::class => 'onCheckIsClassEntityCanBeLoad', + OnCheckIsEntityCanBeLoaded::class => 'onCheckIsEntityCanBeLoaded', ]; } @@ -70,13 +70,13 @@ final public function onGettingResourceLink(OnGettingResourceLink $event): void } } - final public function onCheckIsClassEntityCanBeLoad(OnCheckIsClassEntityCanBeLoad $event): void + final public function onCheckIsEntityCanBeLoaded(OnCheckIsEntityCanBeLoaded $event): void { if ( str_starts_with($event->getEntity()->getName(), 'phpDocumentor\\') || str_starts_with($event->getEntity()->getName(), '\\phpDocumentor\\') ) { - $event->disableClassLoading(); + $event->disableEntityLoading(); } } } diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpUnitStubberPlugin.php b/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpUnitStubberPlugin.php index e64a32a9..8eacc036 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpUnitStubberPlugin.php +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpUnitStubberPlugin.php @@ -6,7 +6,7 @@ use BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink; use BumbleDocGen\Core\Plugin\PluginInterface; -use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad; +use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded; /** * Adding links to the documentation of PHP classes in the \PHPUnit namespace @@ -17,7 +17,7 @@ public static function getSubscribedEvents(): array { return [ OnGettingResourceLink::class => 'onGettingResourceLink', - OnCheckIsClassEntityCanBeLoad::class => 'onCheckIsClassEntityCanBeLoad', + OnCheckIsEntityCanBeLoaded::class => 'onCheckIsEntityCanBeLoaded', ]; } @@ -36,13 +36,13 @@ final public function onGettingResourceLink(OnGettingResourceLink $event): void } } - final public function onCheckIsClassEntityCanBeLoad(OnCheckIsClassEntityCanBeLoad $event): void + final public function onCheckIsEntityCanBeLoaded(OnCheckIsEntityCanBeLoaded $event): void { if ( str_starts_with($event->getEntity()->getName(), 'PHPUnit\\') || str_starts_with($event->getEntity()->getName(), '\\PHPUnit\\') ) { - $event->disableClassLoading(); + $event->disableEntityLoading(); } } } diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/ComposerPackagesStubber/StubberPlugin.php b/src/LanguageHandler/Php/Plugin/CorePlugin/ComposerPackagesStubber/StubberPlugin.php index f034b8a9..a896c048 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/ComposerPackagesStubber/StubberPlugin.php +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/ComposerPackagesStubber/StubberPlugin.php @@ -6,18 +6,17 @@ use BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink; use BumbleDocGen\Core\Plugin\PluginInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser; -use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad; +use BumbleDocGen\LanguageHandler\Php\Parser\ComposerHelper; +use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsEntityCanBeLoaded; /** * The plugin allows you to automatically provide links to github repositories for documented classes from libraries included in composer */ final class StubberPlugin implements PluginInterface { - private array $packages = []; private array $foundLinks = []; - public function __construct(private ComposerParser $composerParser) + public function __construct(private ComposerHelper $composerHelper) { } @@ -25,7 +24,7 @@ public static function getSubscribedEvents(): array { return [ OnGettingResourceLink::class => 'onGettingResourceLink', - OnCheckIsClassEntityCanBeLoad::class => 'onCheckIsClassEntityCanBeLoad', + OnCheckIsEntityCanBeLoaded::class => 'onCheckIsEntityCanBeLoaded', ]; } @@ -38,7 +37,7 @@ final public function onGettingResourceLink(OnGettingResourceLink $event): void $resourceName = trim($event->getResourceName()); $resourceName = explode('::', $resourceName)[0]; if (!isset($this->foundLinks[$resourceName])) { - $packageData = $this->composerParser->getComposerPackageDataByClassName($resourceName); + $packageData = $this->composerHelper->getComposerPackageDataByClassName($resourceName); if (!$packageData) { return; } @@ -58,10 +57,10 @@ final public function onGettingResourceLink(OnGettingResourceLink $event): void /** * @throws \Exception */ - final public function onCheckIsClassEntityCanBeLoad(OnCheckIsClassEntityCanBeLoad $event): void + final public function onCheckIsEntityCanBeLoaded(OnCheckIsEntityCanBeLoaded $event): void { - if ($this->composerParser->getComposerPackageDataByClassName($event->getEntity()->getName())) { - $event->disableClassLoading(); + if ($this->composerHelper->getComposerPackageDataByClassName($event->getEntity()->getName())) { + $event->disableEntityLoading(); } } } diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/Daux.php b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/Daux.php new file mode 100644 index 00000000..08fbf021 --- /dev/null +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/Daux.php @@ -0,0 +1,106 @@ + 'onCreateDocumentedEntityWrapper', + OnGetTemplatePathByRelativeDocPath::class => 'onGetTemplatePathByRelativeDocPath', + OnGetProjectTemplatesDirs::class => 'onGetProjectTemplatesDirs', + BeforeCreatingDocFile::class => 'beforeCreatingDocFile', + BeforeCreatingEntityDocFile::class => 'beforeCreatingDocFile', + AfterRenderingEntities::class => 'afterRenderingEntities' + ]; + } + + /** + * @throws InvalidConfigurationParameterException + */ + final public function beforeCreatingDocFile(BeforeCreatingDocFile|BeforeCreatingEntityDocFile $event): void + { + $content = str_replace( + "{$this->configuration->getOutputDirBaseUrl()}/", + '/', + $event->getContent() + ); + + // MD links are not always converted to HTML correctly. This hack fixes that + $content = preg_replace('/\[([^\[]+)\]\((.*)\)/', '$1', $content); + + // Hack to make images work in generated HTML + $content = preg_replace_callback('/(src=("|\')\/)([^"\']+)/', function (array $elements): string { + return explode('?', $elements[0])[0]; + }, $content); + + $content = preg_replace('/(\/readme.md)("|\')/i', '/index.md$2', $content); + $event->setContent($content); + + $outputFileName = $event->getOutputFilePatch(); + $outputFileName = preg_replace('/\/(readme.md)$/i', '/index.md', $outputFileName); + $event->setOutputFilePatch($outputFileName); + } + + public function onCreateDocumentedEntityWrapper(OnCreateDocumentedEntityWrapper $event): void + { + // Here we replace the parent document for all entities so that they are all in the same directory. + $structureDirName = self::ENTITY_DOC_STRUCTURE_DIR_NAME; + $event->getDocumentedEntityWrapper()->setParentDocFilePath("/{$structureDirName}/index.md"); + } + + public function onGetTemplatePathByRelativeDocPath(OnGetTemplatePathByRelativeDocPath $event): void + { + // When getting the path to the template file, + // we need to take into account that it is located in the plugin directory, and not the standard one. + if (str_starts_with($event->getTemplateName(), '/' . self::ENTITY_DOC_STRUCTURE_DIR_NAME)) { + $event->setCustomTemplateFilePath(self::TEMPLATES_FOLDER . $event->getTemplateName()); + } + } + + public function onGetProjectTemplatesDirs(OnGetProjectTemplatesDirs $event): void + { + $event->addTemplatesDir(self::TEMPLATES_FOLDER); + } + + /** + * @throws InvalidConfigurationParameterException + */ + public function afterRenderingEntities(): void + { + $indexFile = $this->breadcrumbsHelper->getNearestIndexFile('/'); + $frontMatter = $this->breadcrumbsHelper->getTemplateFrontMatter($indexFile); + + $dauxConfig = self::TEMPLATES_FOLDER . DIRECTORY_SEPARATOR . 'config.json'; + $config = json_decode(file_get_contents($dauxConfig), true); + $config = array_merge_recursive($config, $frontMatter); + $outputConfigFile = $this->configuration->getOutputDir() . DIRECTORY_SEPARATOR . 'config.json'; + file_put_contents($outputConfigFile, json_encode($config)); + } +} diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Entities_Map.md.twig b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Entities_Map.md.twig new file mode 100644 index 00000000..3b9bc477 --- /dev/null +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Entities_Map.md.twig @@ -0,0 +1,9 @@ +--- +title: Project entities map +prevPage: Project structure +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Entities map" | textToHeading('H1') }} + +{{ drawClassMap( phpEntities ) }} \ No newline at end of file diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Project_Classes.md.twig b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Project_Classes.md.twig new file mode 100644 index 00000000..af6001a4 --- /dev/null +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Project_Classes.md.twig @@ -0,0 +1,19 @@ +--- +title: Project classes +prevPage: Project structure +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Project classes" | textToHeading('H1') }} + + + + +{% for abstractClassEntity in phpEntities.getOnlyAbstractClasses() %} + +{% endfor %} + +{% for classEntity in phpEntities.getOnlyInstantiable() %} + +{% endfor %} +
          NameNamespace
          Abstract classes
          [a x-title='{{ classEntity.getShortName() }}']{{ abstractClassEntity.getName() }}[/a]{{ abstractClassEntity.getNamespaceName() }}
          Classes
          [a x-title='{{ classEntity.getShortName() }}']{{ classEntity.getName() }}[/a]{{ classEntity.getNamespaceName() }}
          \ No newline at end of file diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Project_Interfaces.md.twig b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Project_Interfaces.md.twig new file mode 100644 index 00000000..43c47edc --- /dev/null +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Project_Interfaces.md.twig @@ -0,0 +1,14 @@ +--- +title: Project interfaces +prevPage: Project structure +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Project interfaces" | textToHeading('H1') }} + + + +{% for interfaceEntity in phpEntities.getOnlyInterfaces() %} + +{% endfor %} +
          NameNamespace
          [a x-title='{{ interfaceEntity.getShortName() }}']{{ interfaceEntity.getName() }}[/a]{{ interfaceEntity.getNamespaceName() }}
          \ No newline at end of file diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Project_Traits.md.twig b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Project_Traits.md.twig new file mode 100644 index 00000000..a380c2e3 --- /dev/null +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/Project_Traits.md.twig @@ -0,0 +1,14 @@ +--- +title: Project traits +prevPage: Project structure +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Project traits" | textToHeading('H1') }} + + + +{% for traitEntity in phpEntities.getOnlyTraits() %} + +{% endfor %} +
          NameNamespace
          [a x-title='{{ traitEntity.getShortName() }}']{{ traitEntity.getName() }}[/a]{{ traitEntity.getNamespaceName() }}
          \ No newline at end of file diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/index.md.twig b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/index.md.twig new file mode 100644 index 00000000..93a96255 --- /dev/null +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/-Project_Structure/index.md.twig @@ -0,0 +1,12 @@ +--- +title: Project structure +prevPage: / +--- +{{ generatePageBreadcrumbs(title, _self) }} + +{{ "Project structure" | textToHeading('H1') }} + +* Interfaces +* Classes +* Traits +* All entities map \ No newline at end of file diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/config.json b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/config.json new file mode 100644 index 00000000..17a39be7 --- /dev/null +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/Daux/templates/config.json @@ -0,0 +1,10 @@ +{ + "tagline": "", + "html": { + "auto_landing": true, + "breadcrumbs": false, + "inherit_index": true, + "jump_buttons": true, + "toggle_code": false + } +} \ No newline at end of file diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/classes.md.twig b/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/classes.md.twig index 2d5fcba1..af6001a4 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/classes.md.twig +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/classes.md.twig @@ -1,5 +1,7 @@ -{% set title = 'Project classes' %} -{% set prevPage = 'Project structure' %} +--- +title: Project classes +prevPage: Project structure +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Project classes" | textToHeading('H1') }} @@ -7,11 +9,11 @@ -{% for abstractClassEntity in phpClassEntityCollection.getOnlyAbstractClasses() %} +{% for abstractClassEntity in phpEntities.getOnlyAbstractClasses() %} {% endfor %} -{% for classEntity in phpClassEntityCollection.getOnlyInstantiable() %} +{% for classEntity in phpEntities.getOnlyInstantiable() %} {% endfor %}
          NameNamespace
          Abstract classes
          [a x-title='{{ classEntity.getShortName() }}']{{ abstractClassEntity.getName() }}[/a]{{ abstractClassEntity.getNamespaceName() }}
          Classes
          [a x-title='{{ classEntity.getShortName() }}']{{ classEntity.getName() }}[/a]{{ classEntity.getNamespaceName() }}
          \ No newline at end of file diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/interfaces.md.twig b/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/interfaces.md.twig index 437bee78..43c47edc 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/interfaces.md.twig +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/interfaces.md.twig @@ -1,12 +1,14 @@ -{% set title = 'Project interfaces' %} -{% set prevPage = 'Project structure' %} +--- +title: Project interfaces +prevPage: Project structure +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Project interfaces" | textToHeading('H1') }} -{% for interfaceEntity in phpClassEntityCollection.getOnlyInterfaces() %} +{% for interfaceEntity in phpEntities.getOnlyInterfaces() %} {% endfor %}
          NameNamespace
          [a x-title='{{ interfaceEntity.getShortName() }}']{{ interfaceEntity.getName() }}[/a]{{ interfaceEntity.getNamespaceName() }}
          \ No newline at end of file diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/map.md.twig b/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/map.md.twig index 7d2885f2..3b9bc477 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/map.md.twig +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/map.md.twig @@ -1,7 +1,9 @@ -{% set title = 'Project entities map' %} -{% set prevPage = 'Project structure' %} +--- +title: Project entities map +prevPage: Project structure +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Entities map" | textToHeading('H1') }} -{{ drawClassMap( phpClassEntityCollection ) }} \ No newline at end of file +{{ drawClassMap( phpEntities ) }} \ No newline at end of file diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/readme.md.twig b/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/readme.md.twig index 2f31c6a7..93a96255 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/readme.md.twig +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/readme.md.twig @@ -1,5 +1,7 @@ -{% set title = 'Project structure' %} -{% set prevPage = '/' %} +--- +title: Project structure +prevPage: / +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Project structure" | textToHeading('H1') }} diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/traits.md.twig b/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/traits.md.twig index 73428e7c..a380c2e3 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/traits.md.twig +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/EntityDocUnifiedPlace/templates/__structure/traits.md.twig @@ -1,12 +1,14 @@ -{% set title = 'Project traits' %} -{% set prevPage = 'Project structure' %} +--- +title: Project traits +prevPage: Project structure +--- {{ generatePageBreadcrumbs(title, _self) }} {{ "Project traits" | textToHeading('H1') }} -{% for traitEntity in phpClassEntityCollection.getOnlyTraits() %} +{% for traitEntity in phpEntities.getOnlyTraits() %} {% endfor %}
          NameNamespace
          [a x-title='{{ traitEntity.getShortName() }}']{{ traitEntity.getName() }}[/a]{{ traitEntity.getNamespaceName() }}
          \ No newline at end of file diff --git a/src/LanguageHandler/Php/Plugin/Event/Entity/OnCheckIsClassEntityCanBeLoad.php b/src/LanguageHandler/Php/Plugin/Event/Entity/OnCheckIsClassEntityCanBeLoad.php deleted file mode 100644 index 9c2244ea..00000000 --- a/src/LanguageHandler/Php/Plugin/Event/Entity/OnCheckIsClassEntityCanBeLoad.php +++ /dev/null @@ -1,32 +0,0 @@ -entity; - } - - public function disableClassLoading(): void - { - $this->classCanBeLoad = false; - } - - public function isClassCanBeLoad(): bool - { - return $this->classCanBeLoad; - } -} diff --git a/src/LanguageHandler/Php/Plugin/Event/Entity/OnCheckIsEntityCanBeLoaded.php b/src/LanguageHandler/Php/Plugin/Event/Entity/OnCheckIsEntityCanBeLoaded.php new file mode 100644 index 00000000..57f1a2dc --- /dev/null +++ b/src/LanguageHandler/Php/Plugin/Event/Entity/OnCheckIsEntityCanBeLoaded.php @@ -0,0 +1,32 @@ +entity; + } + + public function disableEntityLoading(): void + { + $this->isEntityCanBeLoaded = false; + } + + public function isEntityCanBeLoaded(): bool + { + return $this->isEntityCanBeLoaded; + } +} diff --git a/src/LanguageHandler/Php/Plugin/Event/Parser/AfterLoadingClassEntityCollection.php b/src/LanguageHandler/Php/Plugin/Event/Parser/AfterLoadingClassEntityCollection.php deleted file mode 100644 index afc72322..00000000 --- a/src/LanguageHandler/Php/Plugin/Event/Parser/AfterLoadingClassEntityCollection.php +++ /dev/null @@ -1,23 +0,0 @@ -classEntityCollection; - } -} diff --git a/src/LanguageHandler/Php/Plugin/Event/Parser/AfterLoadingPhpEntitiesCollection.php b/src/LanguageHandler/Php/Plugin/Event/Parser/AfterLoadingPhpEntitiesCollection.php new file mode 100644 index 00000000..52a16ad1 --- /dev/null +++ b/src/LanguageHandler/Php/Plugin/Event/Parser/AfterLoadingPhpEntitiesCollection.php @@ -0,0 +1,23 @@ +entitiesCollection; + } +} diff --git a/src/LanguageHandler/Php/Plugin/Event/Parser/OnAddClassEntityToCollection.php b/src/LanguageHandler/Php/Plugin/Event/Parser/OnAddClassEntityToCollection.php index d6410ebf..d0160422 100644 --- a/src/LanguageHandler/Php/Plugin/Event/Parser/OnAddClassEntityToCollection.php +++ b/src/LanguageHandler/Php/Plugin/Event/Parser/OnAddClassEntityToCollection.php @@ -5,8 +5,8 @@ namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser; use BumbleDocGen\Core\Plugin\OnlySingleExecutionEvent; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; use Symfony\Contracts\EventDispatcher\Event; /** @@ -15,22 +15,22 @@ final class OnAddClassEntityToCollection extends Event implements OnlySingleExecutionEvent { public function __construct( - private ClassEntity $classEntity, - private ClassEntityCollection $classEntityCollection + private ClassLikeEntity $classEntity, + private PhpEntitiesCollection $entitiesCollection ) { } public function getUniqueExecutionId(): string { - return "{$this->classEntity->getName()}{$this->classEntityCollection->getEntityCollectionName()}"; + return "{$this->classEntity->getName()}{$this->entitiesCollection->getEntityCollectionName()}"; } - public function getClassEntityCollection(): ClassEntityCollection + public function getClassEntityCollection(): PhpEntitiesCollection { - return $this->classEntityCollection; + return $this->entitiesCollection; } - public function getRootEntity(): ClassEntity + public function getRootEntity(): ClassLikeEntity { return $this->classEntity; } diff --git a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/EntityDocRendererHelper.php b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/EntityDocRendererHelper.php index e636ca56..b7ac9827 100644 --- a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/EntityDocRendererHelper.php +++ b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/EntityDocRendererHelper.php @@ -8,8 +8,7 @@ use BumbleDocGen\Core\Parser\Entity\RootEntityCollection; use BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; use BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; final class EntityDocRendererHelper { @@ -24,7 +23,6 @@ public function __construct( } /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ public function getEntityDataByLink( @@ -33,7 +31,7 @@ public function getEntityDataByLink( ?string $defaultEntityName = null, bool $useUnsafeKeys = true ): array { - if (!is_a($rootEntityCollection, ClassEntityCollection::class)) { + if (!is_a($rootEntityCollection, PhpEntitiesCollection::class)) { return []; } @@ -54,7 +52,7 @@ public function getEntityDataByLink( if ($needToUseDefaultEntity) { $defaultEntity = $rootEntityCollection->getLoadedOrCreateNew($defaultEntityName); $cursorTmpName = str_replace(['$', '(', ')'], '', $className); - if (!$defaultEntity->entityDataCanBeLoaded()) { + if (!$defaultEntity->isEntityDataCanBeLoaded()) { $entity = $defaultEntity; $classData[1] = ''; } elseif ( @@ -69,12 +67,12 @@ public function getEntityDataByLink( if (!$entity) { $nextEntity = $rootEntityCollection->getLoadedOrCreateNew($className); - if ($nextEntity->entityDataCanBeLoaded() && $nextEntity->documentCreationAllowed()) { + if ($nextEntity->isEntityDataCanBeLoaded() && $nextEntity->isDocumentCreationAllowed()) { $entity = $nextEntity; } } - if ($entity && $entity->entityDataCanBeLoaded()) { + if ($entity && $entity->isEntityDataCanBeLoaded()) { $cursor = ''; if ($classData[1] ?? null) { $cursorTarget = str_replace(['$', '(', ')'], '', $classData[1]); @@ -107,7 +105,6 @@ public function getEntityDataByLink( } /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ public function getEntityUrlDataByLink( @@ -115,13 +112,13 @@ public function getEntityUrlDataByLink( ?string $defaultEntityClassName = null, bool $createDocument = true ): array { - $entityCollection = $this->rootEntityCollectionsGroup->get(ClassEntityCollection::NAME); - $data = self::getEntityDataByLink($linkString, $entityCollection, $defaultEntityClassName); + $entitiesCollection = $this->rootEntityCollectionsGroup->get(PhpEntitiesCollection::NAME); + $data = self::getEntityDataByLink($linkString, $entitiesCollection, $defaultEntityClassName); if ($data['entityName'] ?? null) { $data['url'] = call_user_func_array( $this->getDocumentedEntityUrlFunction, [ - $entityCollection, + $entitiesCollection, $data['entityName'], $data['cursor'], $createDocument diff --git a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/PhpClassToMdDocRenderer.php b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/PhpClassToMdDocRenderer.php index 5c1ffca3..908297ff 100644 --- a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/PhpClassToMdDocRenderer.php +++ b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/PhpClassToMdDocRenderer.php @@ -7,7 +7,7 @@ use BumbleDocGen\Core\Parser\Entity\RootEntityInterface; use BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper; use BumbleDocGen\Core\Renderer\EntityDocRenderer\EntityDocRendererInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; use Twig\Error\LoaderError; use Twig\Error\RuntimeError; use Twig\Error\SyntaxError; @@ -38,7 +38,7 @@ public function getDocFileNamespace(): string public function isAvailableForEntity(RootEntityInterface $entity): bool { - return is_a($entity, ClassEntity::class); + return is_a($entity, ClassLikeEntity::class); } /** diff --git a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_classMainInfo.md.twig b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_classMainInfo.md.twig index 81c394c1..30e6a61f 100644 --- a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_classMainInfo.md.twig +++ b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_classMainInfo.md.twig @@ -6,7 +6,7 @@ namespace {{ classEntity.getNamespaceName() }}; {% endif %} -{{ classEntity.getModifiersString() }} {{ classEntity.getShortName() }}{% if classEntity.getExtends() %} extends {{ classEntity.getExtends() }}{% endif %}{% if classEntity.getInterfacesString() %} implements {{ classEntity.getInterfacesString() }}{% endif %} +{{ classEntity.getModifiersString() }} {{ classEntity.getShortName() }}{% if classEntity.isInterface() and classEntity.getInterfaceNames() %} extends \{{ classEntity.getInterfaceNames() | implode(', \\') }}{% else %}{% if classEntity.getParentClassName() %} extends \{{ classEntity.getParentClassName() }}{% endif %}{% if classEntity.getInterfaceNames() %} implements \{{ classEntity.getInterfaceNames() | implode(', \\') }}{% endif %}{% endif %} ``` diff --git a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_constants.md.twig b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_constants.md.twig index e76fd632..4229f14c 100644 --- a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_constants.md.twig +++ b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_constants.md.twig @@ -1,11 +1,11 @@ -{% if not classEntity.getConstantEntityCollection().isEmpty() %} +{% if not classEntity.getConstantEntitiesCollection().isEmpty() %}

          Constants:

          diff --git a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_method_details.md.twig b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_method_details.md.twig index 6c445bfc..ce1a5da2 100644 --- a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_method_details.md.twig +++ b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_method_details.md.twig @@ -1,7 +1,7 @@ -{% if not methodEntityCollection.isEmpty() %} +{% if not methodEntitiesCollection.isEmpty() %}

          Method details:

          -{% for methodEntity in methodEntityCollection %} +{% for methodEntity in methodEntitiesCollection %}
            diff --git a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_methods.md.twig b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_methods.md.twig index e91249c3..aba10500 100644 --- a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_methods.md.twig +++ b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_methods.md.twig @@ -1,8 +1,8 @@ -{% if not methodEntityCollection.isEmpty() %} +{% if not methodEntitiesCollection.isEmpty() %}

            {{ blockName }}:

              -{% for methodEntity in methodEntityCollection %} +{% for methodEntity in methodEntitiesCollection %}
            1. {% if methodEntity.isDeprecated() %}{{ methodEntity.getName() }}{% else %}{{ methodEntity.getName() }}{% endif %} {% if methodEntity.getDescription() %}- {{ methodEntity.getDescription() | removeLineBrakes | raw }}{% endif %} diff --git a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_properties.md.twig b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_properties.md.twig index 47084b92..50cee9ca 100644 --- a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_properties.md.twig +++ b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_properties.md.twig @@ -1,8 +1,8 @@ -{% if not classEntity.getPropertyEntityCollection().isEmpty() %} +{% if not classEntity.getPropertyEntitiesCollection().isEmpty() %}

              Properties:

                - {% for propertyEntity in classEntity.getPropertyEntityCollection() %} + {% for propertyEntity in classEntity.getPropertyEntitiesCollection() %}
              1. {{ propertyEntity.getName() }} {% if propertyEntity.getDescription() %}- {{ propertyEntity.getDescription() | removeLineBrakes }}{% endif %}
              2. diff --git a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_property_details.md.twig b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_property_details.md.twig index 8542e0a9..2ad9272a 100644 --- a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_property_details.md.twig +++ b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/_property_details.md.twig @@ -1,7 +1,7 @@ -{% if not classEntity.getPropertyEntityCollection().isEmpty() %} +{% if not classEntity.getPropertyEntitiesCollection().isEmpty() %}

                Property details:

                -{% for propertyEntity in classEntity.getPropertyEntityCollection() %} +{% for propertyEntity in classEntity.getPropertyEntitiesCollection() %} * # ${{ propertyEntity.getName() }} diff --git a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/class.md.twig b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/class.md.twig index 540e0be3..de49e276 100644 --- a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/class.md.twig +++ b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/PhpClassToMd/templates/class.md.twig @@ -14,9 +14,9 @@ {% include '_enumCases.md.twig' with {'classEntity': classEntity} only %} -{% include '_methods.md.twig' with {'blockName': 'Initialization methods', 'methodEntityCollection': classEntity.getMethodEntityCollection().getInitializations()} only %} +{% include '_methods.md.twig' with {'blockName': 'Initialization methods', 'methodEntitiesCollection': classEntity.getMethodEntitiesCollection().getInitializations()} only %} -{% include '_methods.md.twig' with {'blockName': 'Methods', 'methodEntityCollection': classEntity.getMethodEntityCollection().getAllExceptInitializations()} only %} +{% include '_methods.md.twig' with {'blockName': 'Methods', 'methodEntitiesCollection': classEntity.getMethodEntitiesCollection().getAllExceptInitializations()} only %} {% include '_traits.md.twig' with {'classEntity': classEntity} only %} @@ -28,4 +28,4 @@ {% include '_property_details.md.twig' with {'classEntity': classEntity} only %} -{% include '_method_details.md.twig' with {'methodEntityCollection': classEntity.getMethodEntityCollection()} only %} +{% include '_method_details.md.twig' with {'methodEntitiesCollection': classEntity.getMethodEntitiesCollection()} only %} diff --git a/src/LanguageHandler/Php/Renderer/Twig/Function/DisplayClassApiMethods.php b/src/LanguageHandler/Php/Renderer/Twig/Function/DisplayClassApiMethods.php new file mode 100644 index 00000000..b9ef5162 --- /dev/null +++ b/src/LanguageHandler/Php/Renderer/Twig/Function/DisplayClassApiMethods.php @@ -0,0 +1,69 @@ +rootEntityCollectionsGroup->get(PhpEntitiesCollection::NAME); + if (!$entitiesCollection) { + return null; + } + $classEntity = $entitiesCollection->getLoadedOrCreateNew($className); + if ($classEntity->isEntityDataCanBeLoaded()) { + $apiMethods = []; + foreach ($classEntity->getMethods() as $method) { + if ($method->isApi()) { + $description = $method->getDescription(); + $entityDocUrl = call_user_func_array($this->getDocumentedEntityUrlFunction, [ + $entitiesCollection, + $classEntity->getName(), + $method->getName() + ]); + $apiMethods[] = "- [{$method->getName()}()]({$entityDocUrl})" . ($description ? ": {$description}" : ''); + } + } + return implode("\n", $apiMethods); + } + return null; + } +} diff --git a/src/LanguageHandler/Php/Renderer/Twig/Function/DrawClassMap.php b/src/LanguageHandler/Php/Renderer/Twig/Function/DrawClassMap.php index 64f886d5..e7af807b 100644 --- a/src/LanguageHandler/Php/Renderer/Twig/Function/DrawClassMap.php +++ b/src/LanguageHandler/Php/Renderer/Twig/Function/DrawClassMap.php @@ -8,9 +8,8 @@ use BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; use BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface; use BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; use DI\DependencyException; use DI\NotFoundException; @@ -19,8 +18,8 @@ * * @note This function initiates the creation of documents for the displayed entities * - * @example {{ drawClassMap(classEntityCollection.filterByPaths(['/src/Renderer'])) }} - * @example {{ drawClassMap(classEntityCollection) }} + * @example {{ drawClassMap(phpEntities.filterByPaths(['/src/Renderer'])) }} + * @example {{ drawClassMap(phpEntities) }} */ final class DrawClassMap implements CustomFunctionInterface { @@ -47,39 +46,37 @@ public static function getOptions(): array /** - * @param ClassEntityCollection ...$classEntityCollections + * @param PhpEntitiesCollection ...$entitiesCollections * The collection of entities for which the class map will be generated * @return string * * @throws NotFoundException - * @throws ReflectionException * @throws DependencyException * @throws InvalidConfigurationParameterException */ public function __invoke( - ClassEntityCollection ...$classEntityCollections, + PhpEntitiesCollection ...$entitiesCollections, ): string { $structure = $this->convertDirectoryStructureToFormattedString( - $this->getDirectoryStructure(...$classEntityCollections), + $this->getDirectoryStructure(...$entitiesCollections), ); return "
                {$structure}
                "; } /** - * @throws ReflectionException * @throws InvalidConfigurationParameterException */ - protected function appendClassToDirectoryStructure(array $directoryStructure, ClassEntity $classEntity): array + protected function appendClassToDirectoryStructure(array $directoryStructure, ClassLikeEntity $classEntity): array { - $entityCollection = $this->rootEntityCollectionsGroup->get(ClassEntityCollection::NAME); - $this->fileClassmap[$classEntity->getFileName()] = call_user_func_array( + $entitiesCollection = $this->rootEntityCollectionsGroup->get(PhpEntitiesCollection::NAME); + $this->fileClassmap[$classEntity->getRelativeFileName()] = call_user_func_array( callback: $this->getDocumentedEntityUrlFunction, args: [ - $entityCollection, + $entitiesCollection, $classEntity->getName() ] ); - $fileName = ltrim($classEntity->getFileName(), DIRECTORY_SEPARATOR); + $fileName = ltrim($classEntity->getRelativeFileName(), DIRECTORY_SEPARATOR); $pathParts = array_reverse(explode(DIRECTORY_SEPARATOR, $fileName)); $tmpStructure = [array_shift($pathParts)]; $prevKey = ''; @@ -94,16 +91,15 @@ protected function appendClassToDirectoryStructure(array $directoryStructure, Cl /** * @throws NotFoundException - * @throws ReflectionException * @throws DependencyException * @throws InvalidConfigurationParameterException */ - public function getDirectoryStructure(ClassEntityCollection ...$classEntityCollections): array + public function getDirectoryStructure(PhpEntitiesCollection ...$entitiesCollections): array { $entities = []; - foreach ($classEntityCollections as $classEntityCollection) { - foreach ($classEntityCollection as $classEntity) { - if (!$classEntity->entityDataCanBeLoaded()) { + foreach ($entitiesCollections as $entitiesCollection) { + foreach ($entitiesCollection as $classEntity) { + if (!$classEntity->isEntityDataCanBeLoaded()) { continue; } $entities[$classEntity->getName()] = $classEntity; @@ -138,7 +134,7 @@ public function convertDirectoryStructureToFormattedString( string $prefix = '│', string $path = '/' ): string { - $entityCollection = $this->rootEntityCollectionsGroup->get(ClassEntityCollection::NAME); + $entitiesCollection = $this->rootEntityCollectionsGroup->get(PhpEntitiesCollection::NAME); $formattedString = ''; $elementsCount = count($structure); $i = 0; @@ -156,7 +152,7 @@ public function convertDirectoryStructureToFormattedString( } else { $filepath = "{$path}{$line}"; $filepath = $this->fileClassmap[$filepath] ?? $filepath; - $classEntity = $entityCollection->findEntity("{$path}{$line}"); + $classEntity = $entitiesCollection->findEntity("{$path}{$line}"); if ($description = $classEntity?->getDescription() ?: '') { $description = str_replace(["\r\n", "\r", "\n", "\t", ' '], ' ', strip_tags($description)); $description = mb_strimwidth($description, 0, 100, "..."); diff --git a/src/LanguageHandler/Php/Renderer/Twig/Function/GetClassMethodsBodyCode.php b/src/LanguageHandler/Php/Renderer/Twig/Function/GetClassMethodsBodyCode.php index 006feb77..fec47426 100644 --- a/src/LanguageHandler/Php/Renderer/Twig/Function/GetClassMethodsBodyCode.php +++ b/src/LanguageHandler/Php/Renderer/Twig/Function/GetClassMethodsBodyCode.php @@ -8,8 +8,7 @@ use BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; use BumbleDocGen\Core\Renderer\Twig\Filter\AddIndentFromLeft; use BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection; use DI\DependencyException; use DI\NotFoundException; @@ -43,24 +42,23 @@ public static function getOptions(): array * @param array $methodsNames * List of class methods whose code needs to be retrieved * - * @throws ReflectionException * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException */ public function __invoke(string $className, array $methodsNames): ?string { - $classEntityCollection = $this->rootEntityCollectionsGroup->get(ClassEntityCollection::NAME); - if (!is_a($classEntityCollection, ClassEntityCollection::class)) { + $entitiesCollection = $this->rootEntityCollectionsGroup->get(PhpEntitiesCollection::NAME); + if (!is_a($entitiesCollection, PhpEntitiesCollection::class)) { return null; } - $classEntity = $classEntityCollection->getLoadedOrCreateNew($className); - if ($classEntity->entityDataCanBeLoaded()) { + $classEntity = $entitiesCollection->getLoadedOrCreateNew($className); + if ($classEntity->isEntityDataCanBeLoaded()) { $methodsCode = []; - $methodEntityCollection = $classEntity->getMethodEntityCollection(); + $methodEntitiesCollection = $classEntity->getMethodEntitiesCollection(); $addIndentFromLeft = new AddIndentFromLeft(); foreach ($methodsNames as $methodName) { - $method = $methodEntityCollection->unsafeGet($methodName); + $method = $methodEntitiesCollection->unsafeGet($methodName); if ($method) { $bodyCode = "{$method->getModifiersString()} {$method->getName()}({$method->getParametersString()}): {$method->getReturnType()}\n"; $bodyCode .= "{\n"; diff --git a/src/LanguageHandler/Php/phpHandlerDefaultSettings.yaml b/src/LanguageHandler/Php/phpHandlerDefaultSettings.yaml index 377187e2..5f4bc695 100644 --- a/src/LanguageHandler/Php/phpHandlerDefaultSettings.yaml +++ b/src/LanguageHandler/Php/phpHandlerDefaultSettings.yaml @@ -25,13 +25,18 @@ language_handlers: - class: \BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\PhpClassToMd\PhpClassToMdDocRenderer custom_twig_functions: + - class: \BumbleDocGen\LanguageHandler\Php\Renderer\Twig\Function\DisplayClassApiMethods - class: \BumbleDocGen\LanguageHandler\Php\Renderer\Twig\Function\DrawClassMap - class: \BumbleDocGen\LanguageHandler\Php\Renderer\Twig\Function\GetClassMethodsBodyCode custom_twig_filters: file_source_base_url: null - async_source_loading_enabled: false + + use_composer_autoload: true # whether to use composer to load the class map or not + composer_config_file: "%project_root%/composer.json" + composer_vendor_dir: "%project_root%/vendor" + psr4_map: # same as in composer plugins: - class: \BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\BasePhpStubber\BasePhpStubberPlugin - class: \BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\BasePhpStubber\PhpDocumentorStubberPlugin diff --git a/tests/Unit/Core/Configuration/ValueTransformer/ValueToClassTransformerTest.php b/tests/Unit/Core/Configuration/ValueTransformer/ValueToClassTransformerTest.php index 06713476..86faf079 100644 --- a/tests/Unit/Core/Configuration/ValueTransformer/ValueToClassTransformerTest.php +++ b/tests/Unit/Core/Configuration/ValueTransformer/ValueToClassTransformerTest.php @@ -9,9 +9,6 @@ use BumbleDocGen\Core\Configuration\ConfigurationParameterBag; use BumbleDocGen\Core\Configuration\ValueTransformer\ValueToClassTransformer; use BumbleDocGen\DocGeneratorFactory; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; -use BumbleDocGen\LanguageHandler\Php\PhpHandler; -use BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; use DI\Container; use Exception; use PHPUnit\Framework\TestCase; diff --git a/tests/Unit/Core/Parser/ProjectParserTest.php b/tests/Unit/Core/Parser/ProjectParserTest.php index d55a406f..4c8b2806 100644 --- a/tests/Unit/Core/Parser/ProjectParserTest.php +++ b/tests/Unit/Core/Parser/ProjectParserTest.php @@ -8,6 +8,7 @@ use BumbleDocGen\Core\Parser\Entity\RootEntityCollection; use BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup; use BumbleDocGen\Core\Parser\ProjectParser; +use BumbleDocGen\Core\Plugin\PluginEventDispatcher; use BumbleDocGen\LanguageHandler\LanguageHandlerInterface; use BumbleDocGen\LanguageHandler\LanguageHandlersCollection; use PHPUnit\Framework\TestCase; @@ -38,9 +39,11 @@ public function testParse(int $languageHandlerCount): void ->method('getLanguageHandlersCollection') ->willReturn($languageHandlersCollection); + $pluginEventDispatcherStub = $this->createStub(PluginEventDispatcher::class); + $rootEntityCollectionsGroup = new RootEntityCollectionsGroup(); - $projectParser = new ProjectParser($configurationStub, $rootEntityCollectionsGroup); + $projectParser = new ProjectParser($configurationStub, $pluginEventDispatcherStub, $rootEntityCollectionsGroup); $projectParser->parse(); self::assertCount($languageHandlerCount, $rootEntityCollectionsGroup); diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsPrivateConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsPrivateConditionTest.php index c3ac0106..333b4c5b 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsPrivateConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsPrivateConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition\IsPrivateCondition; use PHPUnit\Framework\TestCase; @@ -20,8 +20,8 @@ public static function setUpBeforeClass(): void */ public function testCanAddToCollection(bool $isPrivateMethodsResult, bool $expectedResult): void { - $entityStub = $this->createStub(ConstantEntity::class); - foreach (get_class_methods(ConstantEntity::class) as $classMethod) { + $entityStub = $this->createStub(ClassConstantEntity::class); + foreach (get_class_methods(ClassConstantEntity::class) as $classMethod) { if ( !in_array($classMethod, [ '__construct', diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsProtectedConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsProtectedConditionTest.php index b61df59d..60db2c5b 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsProtectedConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsProtectedConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition\IsProtectedCondition; use PHPUnit\Framework\TestCase; @@ -20,8 +20,8 @@ public static function setUpBeforeClass(): void */ public function testCanAddToCollection(bool $isProtectedMethodsResult, bool $expectedResult): void { - $entityStub = $this->createStub(ConstantEntity::class); - foreach (get_class_methods(ConstantEntity::class) as $classMethod) { + $entityStub = $this->createStub(ClassConstantEntity::class); + foreach (get_class_methods(ClassConstantEntity::class) as $classMethod) { if ( !in_array($classMethod, [ '__construct', diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsPublicConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsPublicConditionTest.php index 2113270d..7e8f73d7 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsPublicConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/IsPublicConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition\IsPublicCondition; use PHPUnit\Framework\TestCase; @@ -20,8 +20,8 @@ public static function setUpBeforeClass(): void */ public function testCanAddToCollection(bool $isPublicMethodsResult, bool $expectedResult): void { - $entityStub = $this->createStub(ConstantEntity::class); - foreach (get_class_methods(ConstantEntity::class) as $classMethod) { + $entityStub = $this->createStub(ClassConstantEntity::class); + foreach (get_class_methods(ClassConstantEntity::class) as $classMethod) { if ( !in_array($classMethod, [ '__construct', diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/VisibilityConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/VisibilityConditionTest.php index b27ff9d0..b2869a60 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/VisibilityConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/ClassConstantFilterCondition/VisibilityConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition\VisibilityCondition; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassFilterCondition\VisibilityConditionModifier; use PHPUnit\Framework\TestCase; @@ -21,8 +21,8 @@ public static function setUpBeforeClass(): void */ public function testCanAddToCollection(array $visibilityModifiers, array $methodsStubs, bool $expectedResult): void { - $entityStub = $this->createStub(ConstantEntity::class); - foreach (get_class_methods(ConstantEntity::class) as $classMethod) { + $entityStub = $this->createStub(ClassConstantEntity::class); + foreach (get_class_methods(ClassConstantEntity::class) as $classMethod) { if ( !in_array($classMethod, [ '__construct', diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsPrivateConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsPrivateConditionTest.php index 8a3c6f25..bfa7894d 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsPrivateConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsPrivateConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition\IsPrivateCondition; use PHPUnit\Framework\TestCase; diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsProtectedConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsProtectedConditionTest.php index 5e47b81b..7ebe7216 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsProtectedConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsProtectedConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition\IsProtectedCondition; use PHPUnit\Framework\TestCase; diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsPublicConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsPublicConditionTest.php index e0ecc979..37c28a1c 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsPublicConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/IsPublicConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition\IsPublicCondition; use PHPUnit\Framework\TestCase; diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/VisibilityConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/VisibilityConditionTest.php index c06e80b6..6d5fe34f 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/VisibilityConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/MethodFilterCondition/VisibilityConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassFilterCondition\VisibilityConditionModifier; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition\VisibilityCondition; use PHPUnit\Framework\TestCase; diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsPrivateConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsPrivateConditionTest.php index 71f42f02..9c3f908e 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsPrivateConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsPrivateConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition\IsPrivateCondition; use PHPUnit\Framework\TestCase; diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsProtectedConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsProtectedConditionTest.php index 3b68678f..191db71a 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsProtectedConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsProtectedConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition\IsProtectedCondition; use PHPUnit\Framework\TestCase; diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsPublicConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsPublicConditionTest.php index 2132a9ac..b66419bd 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsPublicConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/IsPublicConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition\IsPublicCondition; use PHPUnit\Framework\TestCase; diff --git a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/VisibilityConditionTest.php b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/VisibilityConditionTest.php index 31f9ebcc..b83893f3 100644 --- a/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/VisibilityConditionTest.php +++ b/tests/Unit/LanguageHandler/Php/Parser/FilterCondition/PropertyFilterCondition/VisibilityConditionTest.php @@ -4,7 +4,7 @@ namespace Test\Unit\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity; +use BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassFilterCondition\VisibilityConditionModifier; use BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition\VisibilityCondition; use PHPUnit\Framework\TestCase;