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
-- 🔍 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`)
@@ -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 @@
-
@@ -35,16 +34,31 @@ final class DocGenerator
-
addDocBlocks
- - 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
+-
+ addPlugin
+
-
generate
- Generates documentation using configuration
-
generateReadmeTemplate
+ - Creates a `README.md` template filled with basic information using LLM
+-
+ getConfiguration
+
+-
+ getConfigurationKey
+
+-
+ getConfigurationKeys
-
parseAndGetRootEntityCollectionsGroup
+-
+ 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:
+
+
+
+
+
+
+
+```php
+public function addPlugin(\BumbleDocGen\Core\Plugin\PluginInterface|string $plugin): void;
+```
+
+
+
+
Parameters:
+
+
+
+
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 getConfigurationKey(string $key): void;
+```
+
+
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $key |
+ string |
+ - |
+
+
+
+
+
Return value: void
+
+
+
Throws:
+
+
+
+
+
+
+
+
+```php
+public function getConfigurationKeys(): void;
+```
+
+
+
+
Parameters: not specified
+
+
Return value: void
+
+
+
Throws:
+
-
\DI\DependencyException
@@ -292,7 +488,7 @@ public function generateReadmeTemplate(\BumbleDocGen\AI\ProviderInterface $aiPro
```php
@@ -321,5 +517,61 @@ public function parseAndGetRootEntityCollectionsGroup(): \BumbleDocGen\Core\Pars
+
+
+
+
+```php
+public function serve(callable|null $afterPreparation = null, callable|null $afterDocChanged = null, int $timeout = 1000000): void;
+```
+
+
Serve documentation
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $afterPreparation |
+ callable | null |
+ - |
+
+
+ $afterDocChanged |
+ callable | null |
+ - |
+
+
+ $timeout |
+ int |
+ - |
+
+
+
+
+
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 @@
-
@@ -35,13 +34,16 @@ final class DocGeneratorFactory
-
create
-
+ - Creates a documentation generator instance using configuration files
-
createByConfigArray
-
+ - Creates a documentation generator instance using an array containing the configuration
-
createConfiguration
-
+ - Creating a project configuration instance
+-
+ createRootEntitiesCollection
+ - Creating a collection of entities (see `ReflectionAPI`)
-
setCustomConfigurationParameters
@@ -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:
+
+
+
+
Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection
+
+
Throws:
-
@@ -253,7 +306,7 @@ public function createConfiguration(string ...$configurationFiles): \BumbleDocGe
```php
@@ -291,7 +344,7 @@ public function setCustomConfigurationParameters(array $customConfigurationParam
```php
@@ -324,5 +377,3 @@ public function setCustomDiDefinitions(array $definitions): void;
-
-
\ 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 @@
-
@@ -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:
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-Methods:
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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/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 @@
-
-
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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/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 @@
-
+
@@ -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.
@@ -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 @@
-
-
+
@@ -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
getIterator
- - Retrieve an external iterator
+
has
-
+ - Check if an entity has been added to the collection
isEmpty
-
+ - Check if the collection is empty or not
loadConstantEntities
remove
-
+ - Remove an entity from a collection
unsafeGet
@@ -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
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
-
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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 @@
-
-
+
@@ -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:
--
- entityCacheIsOutdated
-
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
-
getCacheKey
@@ -46,107 +45,119 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
getCachedEntityDependencies
-
- getDescription
+ getCurrentRootEntity
+-
+ getDescription
+ - Get entity description
-
getDescriptionLinks
- Get parsed links from description and doc blocks `see` and `link`
-
getDocBlock
-
+ - Get DocBlock for current entity
-
getDocComment
- Get the doc comment of an entity
-
getDocCommentEntity
-
+ - Link to an entity where docBlock is implemented for this entity
+-
+ getDocCommentLine
+ - Get the code line number where the docBlock of the current entity begins
-
getDocNote
-
+ - Get the note annotation value
-
getEndLine
-
+ - Get the line number of the end of a constant's code in a file
-
getExamples
- Get parsed examples from `examples` doc block
--
- getFileName
-
-
getFileSourceLink
-
getFirstExample
- - Get first example from @examples doc block
+ - Get first example from `examples` doc block
-
getImplementingClass
-
+ - Get the class like entity in which the current entity was implemented
-
getImplementingClassName
--
- getImplementingReflectionClass
-
-
getName
-
+ - Constant name
-
getNamespaceName
-
+ - Get the name of the namespace where the current class is implemented
-
getObjectId
- Get entity unique ID
-
- getPhpHandlerSettings
-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getRootEntity
-
+ - Get the class like entity where this constant was obtained
-
getRootEntityCollection
- - Get parent collection of entities
+ - Get the collection of root entities to which this entity belongs
-
getShortName
-
+ - Constant short name
-
getStartLine
-
+ - Get the line number of the beginning of the constant code in a file
-
getThrows
- Get parsed throws from `throws` doc block
-
- hasDescriptionLinks
+ getThrowsDocBlockLinks
+-
+ getValue
+ - Get the compiled value of a constant
+-
+ hasDescriptionLinks
+ - Checking if an entity has links in its description
-
hasExamples
-
+ - Checking if an entity has `example` docBlock
-
hasThrows
-
+ - Checking if an entity has `throws` docBlock
+-
+ isApi
+ - Checking if an entity has `api` docBlock
-
isDeprecated
-
+ - Checking if an entity has `deprecated` docBlock
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
-
isEntityDataCacheOutdated
-
isEntityFileCanBeLoad
-
+ - Checking if entity data can be retrieved
-
isInternal
-
+ - Checking if an entity has `internal` docBlock
-
isPrivate
-
+ - Check if a constant is a private constant
-
isProtected
-
+ - Check if a constant is a protected constant
-
isPublic
-
+ - Check if a constant is a public constant
-
reloadEntityDependenciesCache
-
+ - Update entity dependency cache
-
removeEntityValueFromCache
@@ -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;
\Psr\Cache\InvalidArgumentException
+
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
+
+
+
+
+
+- #
+ 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:
-
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
-
\Exception
@@ -420,14 +465,16 @@ public function getDescriptionLinks(): array;
```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
+
public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
```
-
+Get DocBlock for current entity
Parameters: not specified
@@ -437,10 +484,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
Throws:
@@ -451,7 +495,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
```php
@@ -470,10 +514,7 @@ public function getDocComment(): string;
Throws:
@@ -484,20 +525,50 @@ public function getDocComment(): string;
```php
-public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity;
+public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity;
```
+Link to an entity where docBlock is implemented for this entity
+
+Parameters: not specified
+
+Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity
+
+
+
+
+
+
+
+
+```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:
+
+
@@ -704,7 +762,7 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser
```php
@@ -718,37 +776,6 @@ public function getImplementingClassName(): string;
Return value: string
-
-
-
@@ -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:
+
@@ -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:
+
+
+
+
+
+
+- #
+ 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
@@ -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 @@
-
-
+
@@ -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:
--
- entityCacheIsOutdated
-
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
-
getCacheKey
@@ -46,107 +45,119 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
getCachedEntityDependencies
-
- getDescription
+ getCurrentRootEntity
+-
+ getDescription
+ - Get entity description
-
getDescriptionLinks
- Get parsed links from description and doc blocks `see` and `link`
-
getDocBlock
-
+ - Get DocBlock for current entity
-
getDocComment
- Get the doc comment of an entity
-
getDocCommentEntity
-
+ - Link to an entity where docBlock is implemented for this entity
+-
+ getDocCommentLine
+ - Get the code line number where the docBlock of the current entity begins
-
getDocNote
-
+ - Get the note annotation value
-
getEndLine
-
+ - Get the line number of the end of a constant's code in a file
-
getExamples
- Get parsed examples from `examples` doc block
--
- getFileName
-
-
getFileSourceLink
-
getFirstExample
- - Get first example from @examples doc block
+ - Get first example from `examples` doc block
-
getImplementingClass
-
+ - Get the class like entity in which the current entity was implemented
-
getImplementingClassName
--
- getImplementingReflectionClass
-
-
getName
-
+ - Constant name
-
getNamespaceName
-
+ - Get the name of the namespace where the current class is implemented
-
getObjectId
- Get entity unique ID
-
- getPhpHandlerSettings
-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getRootEntity
-
+ - Get the class like entity where this constant was obtained
-
getRootEntityCollection
- - Get parent collection of entities
+ - Get the collection of root entities to which this entity belongs
-
getShortName
-
+ - Constant short name
-
getStartLine
-
+ - Get the line number of the beginning of the constant code in a file
-
getThrows
- Get parsed throws from `throws` doc block
-
- hasDescriptionLinks
+ getThrowsDocBlockLinks
+-
+ getValue
+ - Get the compiled value of a constant
+-
+ hasDescriptionLinks
+ - Checking if an entity has links in its description
-
hasExamples
-
+ - Checking if an entity has `example` docBlock
-
hasThrows
-
+ - Checking if an entity has `throws` docBlock
+-
+ isApi
+ - Checking if an entity has `api` docBlock
-
isDeprecated
-
+ - Checking if an entity has `deprecated` docBlock
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
-
isEntityDataCacheOutdated
-
isEntityFileCanBeLoad
-
+ - Checking if entity data can be retrieved
-
isInternal
-
+ - Checking if an entity has `internal` docBlock
-
isPrivate
-
+ - Check if a constant is a private constant
-
isProtected
-
+ - Check if a constant is a protected constant
-
isPublic
-
+ - Check if a constant is a public constant
-
reloadEntityDependenciesCache
-
+ - Update entity dependency cache
-
removeEntityValueFromCache
@@ -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;
\Psr\Cache\InvalidArgumentException
+
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
+
+
+
+
+
+- #
+ 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:
-
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
-
\Exception
@@ -420,14 +465,16 @@ public function getDescriptionLinks(): array;
```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
+
public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
```
-
+Get DocBlock for current entity
Parameters: not specified
@@ -437,10 +484,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
Throws:
@@ -451,7 +495,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
```php
@@ -470,10 +514,7 @@ public function getDocComment(): string;
Throws:
@@ -484,20 +525,50 @@ public function getDocComment(): string;
```php
-public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity;
+public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity;
```
+Link to an entity where docBlock is implemented for this entity
+
+Parameters: not specified
+
+Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\ClassConstant\ClassConstantEntity
+
+
+
+
+
+
+
+
+```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:
+
+
@@ -704,7 +762,7 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser
```php
@@ -718,37 +776,6 @@ public function getImplementingClassName(): string;
Return value: string
-
-
-
@@ -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:
+
@@ -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:
+
+
+
+
+
+
+- #
+ 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
@@ -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 @@
+
+
+
+
+
+
+
+
+```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:
+
+
+-
+ __construct
+
+
+
+Methods:
+
+
+-
+ addPluginData
+ - Add information to aт entity object
+-
+ cursorToDocAttributeLinkFragment
+
+-
+ getAbsoluteFileName
+ - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
+-
+ getCacheKey
+
+-
+ getCachedEntityDependencies
+
+-
+ getConstant
+ - Get the method entity by its name
+-
+ getConstantEntitiesCollection
+ - Get a collection of constant entities
+-
+ getConstantValue
+ - Get the compiled value of a constant
+-
+ getConstants
+ - Get all constants that are available according to the configuration as an array
+-
+ getConstantsData
+ - Get a list of all constants and classes where they are implemented
+-
+ getConstantsValues
+ - Get class constant compiled values according to filters
+-
+ getCurrentRootEntity
+
+-
+ getDescription
+ - Get entity description
+-
+ getDescriptionLinks
+ - Get parsed links from description and doc blocks `see` and `link`
+-
+ getDocBlock
+ - Get DocBlock for current entity
+-
+ getDocComment
+ - Get the doc comment of an entity
+-
+ getDocCommentEntity
+ - Link to an entity where docBlock is implemented for this entity
+-
+ getDocCommentLine
+ - Get the code line number where the docBlock of the current entity begins
+-
+ getDocNote
+ - Get the note annotation value
+-
+ getDocRender
+
+-
+ getEndLine
+ - Get the line number of the end of a class code in a file
+-
+ getEntityDependencies
+
+-
+ getExamples
+ - Get parsed examples from `examples` doc block
+-
+ getFileContent
+
+-
+ getFileSourceLink
+
+-
+ getFirstExample
+ - Get first example from `examples` doc block
+-
+ getImplementingClass
+ - Get the class like entity in which the current entity was implemented
+-
+ getInterfaceNames
+ - Get a list of class interface names
+-
+ getInterfacesEntities
+ - Get a list of interface entities that the current class implements
+-
+ getMethod
+ - Get the method entity by its name
+-
+ getMethodEntitiesCollection
+ - Get a collection of method entities
+-
+ getMethods
+ - Get all methods that are available according to the configuration as an array
+-
+ getMethodsData
+ - Get a list of all methods and classes where they are implemented
+-
+ getModifiersString
+ - Get entity modifiers as a string
+-
+ getName
+ - Full name of the entity
+-
+ getNamespaceName
+ - Get the entity namespace name
+-
+ getObjectId
+ - Get entity unique ID
+-
+ getParentClass
+ - Get the entity of the parent class if it exists
+-
+ getParentClassEntities
+ - Get a list of parent class entities
+-
+ getParentClassName
+ - Get the name of the parent class entity if it exists
+-
+ getParentClassNames
+ - Get a list of entity names of parent classes
+-
+ getPluginData
+ - Get additional information added using the plugin
+-
+ getProperties
+ - Get all properties that are available according to the configuration as an array
+-
+ getPropertiesData
+ - Get a list of all properties and classes where they are implemented
+-
+ getProperty
+ - Get the property entity by its name
+-
+ getPropertyDefaultValue
+ - Get the compiled value of a property
+-
+ getPropertyEntitiesCollection
+ - Get a collection of property entities
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
+-
+ getRootEntityCollection
+ - Get the collection of root entities to which this entity belongs
+-
+ getShortName
+ - Short name of the entity
+-
+ getStartLine
+ - Get the line number of the start of a class code in a file
+-
+ getThrows
+ - Get parsed throws from `throws` doc block
+-
+ getThrowsDocBlockLinks
+
+-
+ getTraits
+ - Get a list of trait entities of the current class
+-
+ getTraitsNames
+ - Get a list of class traits names
+-
+ hasConstant
+ - Check if a constant exists in a class
+-
+ hasDescriptionLinks
+ - Checking if an entity has links in its description
+-
+ hasExamples
+ - Checking if an entity has `example` docBlock
+-
+ hasMethod
+ - Check if a method exists in a class
+-
+ hasParentClass
+ - Check if a certain parent class exists in a chain of parent classes
+-
+ hasProperty
+ - Check if a property exists in a class
+-
+ hasThrows
+ - Checking if an entity has `throws` docBlock
+-
+ hasTraits
+ - Check if the class contains traits
+-
+ implementsInterface
+ - Check if a class implements an interface
+-
+ isAbstract
+ - Check that an entity is abstract
+-
+ isApi
+ - Checking if an entity has `api` docBlock
+-
+ isAttribute
+ - Check if a class is an attribute
+-
+ isClass
+ - Check if an entity is a Class
+-
+ isClassLoad
+
+-
+ isDeprecated
+ - Checking if an entity has `deprecated` docBlock
+-
+ isDocumentCreationAllowed
+
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
+-
+ isEntityDataCacheOutdated
+
+-
+ isEntityDataCanBeLoaded
+
+-
+ isEntityFileCanBeLoad
+ - Checking if entity data can be retrieved
+-
+ isEntityNameValid
+ - Check if the name is a valid name for ClassLikeEntity
+-
+ isEnum
+ - Check if an entity is an Enum
+-
+ isExternalLibraryEntity
+ - Check if a given entity is an entity from a third party library (connected via composer)
+-
+ isInGit
+ - Checking if class file is in git repository
+-
+ isInstantiable
+ - Check that an entity is instantiable
+-
+ isInterface
+ - Check if an entity is an Interface
+-
+ isInternal
+ - Checking if an entity has `internal` docBlock
+-
+ isSubclassOf
+ - Whether the given class is a subclass of the specified class
+-
+ isTrait
+ - Check if an entity is a Trait
+-
+ normalizeClassName
+ - Bring the class name to the standard format used in the system
+-
+ reloadEntityDependenciesCache
+ - Update entity dependency cache
+-
+ removeEntityValueFromCache
+
+-
+ removeNotUsedEntityDataCache
+
+-
+ setCustomAst
+
+
+
+
+
+
+
+
+
+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:
+
+
+
+
+
+
+
+
+
+
+
+```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
+
+public function addPluginData(string $pluginKey, mixed $data): void;
+```
+
+
Add information to aт entity object
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $pluginKey |
+ string |
+ - |
+
+
+ $data |
+ mixed |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $cursor |
+ string |
+ - |
+
+
+ $isForDocument |
+ bool |
+ - |
+
+
+
+
+
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\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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The name of the constant whose entity you want to get |
+
+
+ $unsafe |
+ bool |
+ Check 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 getConstantValue(string $constantName): string|array|int|bool|null|float;
+```
+
+
Get the compiled value of a constant
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get values only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $withLine |
+ bool |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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: 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for methods from the current class |
+
+
+ $flags |
+ int |
+ Get 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $pluginKey |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for properties from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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: 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $propertyName |
+ string |
+ The 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $parentClassName |
+ string |
+ Searched 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $interfaceName |
+ string |
+ Name 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:
+
+
+
+
+
+
+
+- #
+ 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $entityName |
+ string |
+ - |
+
+
+
+
+
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
+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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $className |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $key |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
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 @@
-
-
+
@@ -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
-
- cursorToDocAttributeLinkFragment
-
--
- documentCreationAllowed
-
--
- entityCacheIsOutdated
-
+ addPluginData
+ - Add information to aт entity object
-
- entityDataCanBeLoaded
+ cursorToDocAttributeLinkFragment
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
-
getCacheKey
-
getCachedEntityDependencies
--
- getCasesNames
-
-
getConstant
-
+ - Get the method entity by its name
-
- getConstantEntity
-
+ getConstantEntitiesCollection
+ - Get a collection of constant entities
-
- getConstantEntityCollection
-
+ getConstantValue
+ - Get the compiled value of a constant
-
getConstants
-
+ - Get all constants that are available according to the configuration as an array
-
getConstantsData
+ - Get a list of all constants and classes where they are implemented
+-
+ getConstantsValues
+ - Get class constant compiled values according to filters
+-
+ getCurrentRootEntity
-
getDescription
-
+ - Get entity description
-
getDescriptionLinks
- Get parsed links from description and doc blocks `see` and `link`
-
getDocBlock
-
+ - Get DocBlock for current entity
-
getDocComment
- Get the doc comment of an entity
-
getDocCommentEntity
-
+ - Link to an entity where docBlock is implemented for this entity
+-
+ getDocCommentLine
+ - Get the code line number where the docBlock of the current entity begins
-
getDocNote
-
+ - Get the note annotation value
-
getDocRender
-
getEndLine
-
+ - Get the line number of the end of a class code in a file
-
getEntityDependencies
-
getExamples
- Get parsed examples from `examples` doc block
--
- getExtends
-
-
getFileContent
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
-
getFileSourceLink
-
getFirstExample
- - Get first example from @examples doc block
--
- getFullFileName
-
+ - Get first example from `examples` doc block
-
- getImplementingReflectionClass
-
+ getImplementingClass
+ - Get the class like entity in which the current entity was implemented
-
getInterfaceNames
-
+ - Get a list of class interface names
-
getInterfacesEntities
-
+ - Get a list of interface entities that the current class implements
-
- getInterfacesString
-
+ getMethod
+ - Get the method entity by its name
-
- getMethodEntity
-
+ getMethodEntitiesCollection
+ - Get a collection of method entities
-
- getMethodEntityCollection
-
+ getMethods
+ - Get all methods that are available according to the configuration as an array
-
getMethodsData
-
+ - Get a list of all methods and classes where they are implemented
-
getModifiersString
-
+ - Get entity modifiers as a string
-
getName
-
+ - Full name of the entity
-
getNamespaceName
-
+ - Get the entity namespace name
-
getObjectId
- Get entity unique ID
-
getParentClass
-
+ - Get the entity of the parent class if it exists
+-
+ getParentClassEntities
+ - Get a list of parent class entities
-
getParentClassName
-
+ - Get the name of the parent class entity if it exists
-
getParentClassNames
-
--
- getPhpHandlerSettings
-
+ - Get a list of entity names of parent classes
-
getPluginData
-
+ - Get additional information added using the plugin
+-
+ getProperties
+ - Get all properties that are available according to the configuration as an array
-
getPropertiesData
-
+ - Get a list of all properties and classes where they are implemented
-
- getPropertyEntity
-
+ getProperty
+ - Get the property entity by its name
-
- getPropertyEntityCollection
-
+ getPropertyDefaultValue
+ - Get the compiled value of a property
-
- getReflector
-
+ getPropertyEntitiesCollection
+ - Get a collection of property entities
-
getRelativeFileName
-
+ - File name relative to project_root configuration parameter
-
getRootEntityCollection
- - Get parent collection of entities
+ - Get the collection of root entities to which this entity belongs
-
getShortName
-
+ - Short name of the entity
-
getStartLine
-
+ - Get the line number of the start of a class code in a file
-
getThrows
- Get parsed throws from `throws` doc block
-
- getTraitsNames
+ getThrowsDocBlockLinks
-
- hasAnnotationKey
-
+ getTraits
+ - Get a list of trait entities of the current class
+-
+ getTraitsNames
+ - Get a list of class traits names
-
hasConstant
-
+ - Check if a constant exists in a class
-
hasDescriptionLinks
-
+ - Checking if an entity has links in its description
-
hasExamples
-
+ - Checking if an entity has `example` docBlock
-
hasMethod
-
+ - Check if a method exists in a class
-
hasParentClass
-
+ - Check if a certain parent class exists in a chain of parent classes
-
hasProperty
-
+ - Check if a property exists in a class
-
hasThrows
-
+ - Checking if an entity has `throws` docBlock
-
hasTraits
-
+ - Check if the class contains traits
-
implementsInterface
-
+ - Check if a class implements an interface
-
isAbstract
-
+ - Check that an entity is abstract
+-
+ isApi
+ - Checking if an entity has `api` docBlock
+-
+ isClass
+ - Check if an entity is a Class
-
isClassLoad
-
isDeprecated
+ - Checking if an entity has `deprecated` docBlock
+-
+ isDocumentCreationAllowed
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
-
isEntityDataCacheOutdated
-
- isEntityFileCanBeLoad
+ isEntityDataCanBeLoaded
+-
+ isEntityFileCanBeLoad
+ - Checking if entity data can be retrieved
-
isEntityNameValid
- - Check if entity name is valid
+ - Check if the name is a valid name for ClassLikeEntity
-
isEnum
-
+ - Check if an entity is an Enum
-
isExternalLibraryEntity
- - 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)
-
isInGit
- Checking if class file is in git repository
-
isInstantiable
-
+ - Check that an entity is instantiable
-
isInterface
-
+ - Check if an entity is an Interface
-
isInternal
-
+ - Checking if an entity has `internal` docBlock
-
isSubclassOf
-
+ - Whether the given class is a subclass of the specified class
-
isTrait
-
+ - Check if an entity is a Trait
-
- loadPluginData
-
+ normalizeClassName
+ - Bring the class name to the standard format used in the system
-
reloadEntityDependenciesCache
-
+ - Update entity dependency cache
-
removeEntityValueFromCache
@@ -283,7 +297,7 @@ class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEn
removeNotUsedEntityDataCache
-
- 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:
-
-- #
- documentCreationAllowed
- | source code
+- #
+ cursorToDocAttributeLinkFragment
+ :warning: Is internal | source code
```php
-public function documentCreationAllowed(): bool;
+public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string;
```
-
Parameters: not specified
+
Parameters:
-
Return value: bool
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $cursor |
+ string |
+ - |
+
+
+ $isForDocument |
+ bool |
+ - |
+
+
+
+
+
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;
@@ -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
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The name of the constant whose entity you want to get |
+
+
+ $unsafe |
+ bool |
+ Check 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 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
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get values only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
@@ -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:
-
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
-
\Exception
@@ -929,14 +996,16 @@ public function getDescriptionLinks(): array;
```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
+
public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
```
-
+Get DocBlock for current entity
Parameters: not specified
@@ -946,16 +1015,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
Throws:
@@ -966,7 +1026,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
```php
@@ -985,10 +1045,7 @@ public function getDocComment(): string;
Throws:
@@ -999,33 +1056,47 @@ public function getDocComment(): string;
```php
-public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity;
+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\ClassEntity
+Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
-Throws:
+
+
+
+
-
- \DI\DependencyException
+```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
+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:
-
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
-
\Exception
@@ -1090,14 +1168,14 @@ public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\En
```php
public function getEndLine(): int;
```
-
+Get the line number of the end of a class code in a file
Parameters: not specified
@@ -1107,10 +1185,7 @@ public function getEndLine(): int;
Throws:
@@ -1121,7 +1196,7 @@ public function getEndLine(): int;
```php
@@ -1142,7 +1217,7 @@ public function getEntityDependencies(): array;
```php
@@ -1158,34 +1233,10 @@ public function getExamples(): array;
Return value: array
-
-
-
-
-
-
-```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 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
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for methods from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for properties from the current class |
+
+
+ $flags |
+ int |
+ Get 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
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $propertyName |
+ string |
+ The 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
@@ -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
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $loadIfEmpty |
- bool |
- - |
-
-
-
-
Return value: string |
null
-
-
Throws:
+
See:
-
@@ -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
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $annotationKey |
- string |
- - |
-
-
-
-
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;
-
-
\ 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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
Configuration class:
@@ -87,6 +86,9 @@ final class Configuration
isCheckFileInGitBeforeCreatingDocEnabled
+
+ renderWithFrontMatter
+
useSharedCache
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -511,7 +513,7 @@ public function getProjectRoot(): string;
Throws:
@@ -542,7 +544,7 @@ public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\Sou
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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 @@
-
-
+
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 @@
-
-
+
@@ -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:
--
- entityCacheIsOutdated
-
-
getAbsoluteFileName
-
+ - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
-
getBodyCode
-
+ - Get the code for this method
-
getCallMethod
-
+ - Get the entity of the magic method that will be called instead of the current virtual one
-
getDescription
-
+ - Get a description of this method
-
getEndLine
-
--
- getFileName
-
+ - Get the line number of the end of a method's code in a file
-
getFirstReturnValue
-
+ - Get the compiled first return value of a method (if possible)
-
getImplementingClass
-
+ - Get the ClassLike entity in which this method was implemented
-
getImplementingClassName
-
--
- getImplementingReflectionClass
-
+ - Get the name of the class in which this method is implemented
-
getModifiersString
-
+ - Get a text representation of method modifiers
-
getName
-
+ - Full name of the entity
-
getNamespaceName
-
+ - Namespace of the class that contains this method
-
getObjectId
-
+ - Entity object ID
-
getParameters
-
+ - Get a list of method parameters
-
getParametersString
-
+ - Get a list of method parameters as a string
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getReturnType
-
+ - Get the return type of method
-
getRootEntity
-
+ - Get the class like entity where this method was obtained
-
getRootEntityCollection
- Get parent collection of entities
-
getShortName
-
+ - Short name of the entity
+-
+ getSignature
+ - Get the method signature as a string
-
getStartColumn
-
+ - Get the column number of the beginning of the method code in a file
-
getStartLine
-
+ - Get the line number of the beginning of the method code in a file
-
isDynamic
+ - Check if a method is a dynamic method, that is, implementable using __call or __callStatic
+-
+ isEntityCacheOutdated
+-
+ isImplementedInParentClass
+ - Check if this method is implemented in the parent class
-
isInitialization
-
+ - Check if a method is an initialization method
-
isPrivate
-
+ - Check if a method is a private method
-
isProtected
-
+ - Check if a method is a protected method
-
isPublic
-
+ - Check if a method is a public method
-
isStatic
-
+ - 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:
-
-
-
-
-
@@ -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
+
+
@@ -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 @@
-
-
+
@@ -26,26 +25,26 @@ interface EntityInterface
Methods:
--
- entityCacheIsOutdated
-
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
-
getName
-
+ - Full name of the entity
-
getObjectId
-
+ - Entity object ID
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getRootEntityCollection
- Get parent collection of entities
-
getShortName
+ - Short name of the entity
+-
+ 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 @@
+
+
+
+
+
+
+
+
+```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:
+
+
+-
+ __construct
+
+
+
+
Methods:
+
+
+-
+ addPluginData
+ - Add information to aт entity object
+-
+ cursorToDocAttributeLinkFragment
+
+-
+ getAbsoluteFileName
+ - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
+-
+ getCacheKey
+
+-
+ getCachedEntityDependencies
+
+-
+ getCasesNames
+ - Get enum cases names
+-
+ getConstant
+ - Get the method entity by its name
+-
+ getConstantEntitiesCollection
+ - Get a collection of constant entities
+-
+ getConstantValue
+ - Get the compiled value of a constant
+-
+ getConstants
+ - Get all constants that are available according to the configuration as an array
+-
+ getConstantsData
+ - Get a list of all constants and classes where they are implemented
+-
+ getConstantsValues
+ - Get class constant compiled values according to filters
+-
+ getCurrentRootEntity
+
+-
+ getDescription
+ - Get entity description
+-
+ getDescriptionLinks
+ - Get parsed links from description and doc blocks `see` and `link`
+-
+ getDocBlock
+ - Get DocBlock for current entity
+-
+ getDocComment
+ - Get the doc comment of an entity
+-
+ getDocCommentEntity
+ - Link to an entity where docBlock is implemented for this entity
+-
+ getDocCommentLine
+ - Get the code line number where the docBlock of the current entity begins
+-
+ getDocNote
+ - Get the note annotation value
+-
+ getDocRender
+
+-
+ getEndLine
+ - Get the line number of the end of a class code in a file
+-
+ getEntityDependencies
+
+-
+ getEnumCaseValue
+ - Get enum case value
+-
+ getEnumCases
+ - Get enum cases values
+-
+ getExamples
+ - Get parsed examples from `examples` doc block
+-
+ getFileContent
+
+-
+ getFileSourceLink
+
+-
+ getFirstExample
+ - Get first example from `examples` doc block
+-
+ getImplementingClass
+ - Get the class like entity in which the current entity was implemented
+-
+ getInterfaceNames
+ - Get a list of class interface names
+-
+ getInterfacesEntities
+ - Get a list of interface entities that the current class implements
+-
+ getMethod
+ - Get the method entity by its name
+-
+ getMethodEntitiesCollection
+ - Get a collection of method entities
+-
+ getMethods
+ - Get all methods that are available according to the configuration as an array
+-
+ getMethodsData
+ - Get a list of all methods and classes where they are implemented
+-
+ getModifiersString
+ - Get entity modifiers as a string
+-
+ getName
+ - Full name of the entity
+-
+ getNamespaceName
+ - Get the entity namespace name
+-
+ getObjectId
+ - Get entity unique ID
+-
+ getParentClass
+ - Get the entity of the parent class if it exists
+-
+ getParentClassEntities
+ - Get a list of parent class entities
+-
+ getParentClassName
+ - Get the name of the parent class entity if it exists
+-
+ getParentClassNames
+ - Get a list of entity names of parent classes
+-
+ getPluginData
+ - Get additional information added using the plugin
+-
+ getProperties
+ - Get all properties that are available according to the configuration as an array
+-
+ getPropertiesData
+ - Get a list of all properties and classes where they are implemented
+-
+ getProperty
+ - Get the property entity by its name
+-
+ getPropertyDefaultValue
+ - Get the compiled value of a property
+-
+ getPropertyEntitiesCollection
+ - Get a collection of property entities
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
+-
+ getRootEntityCollection
+ - Get the collection of root entities to which this entity belongs
+-
+ getShortName
+ - Short name of the entity
+-
+ getStartLine
+ - Get the line number of the start of a class code in a file
+-
+ getThrows
+ - Get parsed throws from `throws` doc block
+-
+ getThrowsDocBlockLinks
+
+-
+ getTraits
+ - Get a list of trait entities of the current class
+-
+ getTraitsNames
+ - Get a list of class traits names
+-
+ hasConstant
+ - Check if a constant exists in a class
+-
+ hasDescriptionLinks
+ - Checking if an entity has links in its description
+-
+ hasExamples
+ - Checking if an entity has `example` docBlock
+-
+ hasMethod
+ - Check if a method exists in a class
+-
+ hasParentClass
+ - Check if a certain parent class exists in a chain of parent classes
+-
+ hasProperty
+ - Check if a property exists in a class
+-
+ hasThrows
+ - Checking if an entity has `throws` docBlock
+-
+ hasTraits
+ - Check if the class contains traits
+-
+ implementsInterface
+ - Check if a class implements an interface
+-
+ isAbstract
+ - Check that an entity is abstract
+-
+ isApi
+ - Checking if an entity has `api` docBlock
+-
+ isClass
+ - Check if an entity is a Class
+-
+ isClassLoad
+
+-
+ isDeprecated
+ - Checking if an entity has `deprecated` docBlock
+-
+ isDocumentCreationAllowed
+
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
+-
+ isEntityDataCacheOutdated
+
+-
+ isEntityDataCanBeLoaded
+
+-
+ isEntityFileCanBeLoad
+ - Checking if entity data can be retrieved
+-
+ isEntityNameValid
+ - Check if the name is a valid name for ClassLikeEntity
+-
+ isEnum
+ - Check if an entity is an Enum
+-
+ isExternalLibraryEntity
+ - Check if a given entity is an entity from a third party library (connected via composer)
+-
+ isInGit
+ - Checking if class file is in git repository
+-
+ isInstantiable
+ - Check that an entity is instantiable
+-
+ isInterface
+ - Check if an entity is an Interface
+-
+ isInternal
+ - Checking if an entity has `internal` docBlock
+-
+ isSubclassOf
+ - Whether the given class is a subclass of the specified class
+-
+ isTrait
+ - Check if an entity is a Trait
+-
+ normalizeClassName
+ - Bring the class name to the standard format used in the system
+-
+ reloadEntityDependenciesCache
+ - Update entity dependency cache
+-
+ removeEntityValueFromCache
+
+-
+ removeNotUsedEntityDataCache
+
+-
+ setCustomAst
+
+
+
+
+
+
+
+
+
+
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:
+
+
+
+
+
+
+
+
+
+
+
+```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
+
+public function addPluginData(string $pluginKey, mixed $data): void;
+```
+
+
Add information to aт entity object
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $pluginKey |
+ string |
+ - |
+
+
+ $data |
+ mixed |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $cursor |
+ string |
+ - |
+
+
+ $isForDocument |
+ bool |
+ - |
+
+
+
+
+
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\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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The name of the constant whose entity you want to get |
+
+
+ $unsafe |
+ bool |
+ Check 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 getConstantValue(string $constantName): string|array|int|bool|null|float;
+```
+
+
Get the compiled value of a constant
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get values only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $withLine |
+ bool |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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: 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for methods from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $pluginKey |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for properties from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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: 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $propertyName |
+ string |
+ The 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $parentClassName |
+ string |
+ Searched 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $interfaceName |
+ string |
+ Name 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $entityName |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $className |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $key |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
+
+
+
+
+
+
+
+
+```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:
+
+
+-
+ __construct
+
+
+
+Methods:
+
+
+-
+ addPluginData
+ - Add information to aт entity object
+-
+ cursorToDocAttributeLinkFragment
+
+-
+ getAbsoluteFileName
+ - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
+-
+ getCacheKey
+
+-
+ getCachedEntityDependencies
+
+-
+ getConstant
+ - Get the method entity by its name
+-
+ getConstantEntitiesCollection
+ - Get a collection of constant entities
+-
+ getConstantValue
+ - Get the compiled value of a constant
+-
+ getConstants
+ - Get all constants that are available according to the configuration as an array
+-
+ getConstantsData
+ - Get a list of all constants and classes where they are implemented
+-
+ getConstantsValues
+ - Get class constant compiled values according to filters
+-
+ getCurrentRootEntity
+
+-
+ getDescription
+ - Get entity description
+-
+ getDescriptionLinks
+ - Get parsed links from description and doc blocks `see` and `link`
+-
+ getDocBlock
+ - Get DocBlock for current entity
+-
+ getDocComment
+ - Get the doc comment of an entity
+-
+ getDocCommentEntity
+ - Link to an entity where docBlock is implemented for this entity
+-
+ getDocCommentLine
+ - Get the code line number where the docBlock of the current entity begins
+-
+ getDocNote
+ - Get the note annotation value
+-
+ getDocRender
+
+-
+ getEndLine
+ - Get the line number of the end of a class code in a file
+-
+ getEntityDependencies
+
+-
+ getExamples
+ - Get parsed examples from `examples` doc block
+-
+ getFileContent
+
+-
+ getFileSourceLink
+
+-
+ getFirstExample
+ - Get first example from `examples` doc block
+-
+ getImplementingClass
+ - Get the class like entity in which the current entity was implemented
+-
+ getInterfaceNames
+ - Get a list of class interface names
+-
+ getInterfacesEntities
+ - Get a list of interface entities that the current class implements
+-
+ getMethod
+ - Get the method entity by its name
+-
+ getMethodEntitiesCollection
+ - Get a collection of method entities
+-
+ getMethods
+ - Get all methods that are available according to the configuration as an array
+-
+ getMethodsData
+ - Get a list of all methods and classes where they are implemented
+-
+ getModifiersString
+ - Get entity modifiers as a string
+-
+ getName
+ - Full name of the entity
+-
+ getNamespaceName
+ - Get the entity namespace name
+-
+ getObjectId
+ - Get entity unique ID
+-
+ getParentClass
+ - Get the entity of the parent class if it exists
+-
+ getParentClassEntities
+ - Get a list of parent class entities
+-
+ getParentClassName
+ - Get the name of the parent class entity if it exists
+-
+ getParentClassNames
+ - Get a list of entity names of parent classes
+-
+ getPluginData
+ - Get additional information added using the plugin
+-
+ getProperties
+ - Get all properties that are available according to the configuration as an array
+-
+ getPropertiesData
+ - Get a list of all properties and classes where they are implemented
+-
+ getProperty
+ - Get the property entity by its name
+-
+ getPropertyDefaultValue
+ - Get the compiled value of a property
+-
+ getPropertyEntitiesCollection
+ - Get a collection of property entities
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
+-
+ getRootEntityCollection
+ - Get the collection of root entities to which this entity belongs
+-
+ getShortName
+ - Short name of the entity
+-
+ getStartLine
+ - Get the line number of the start of a class code in a file
+-
+ getThrows
+ - Get parsed throws from `throws` doc block
+-
+ getThrowsDocBlockLinks
+
+-
+ getTraits
+ - Get a list of trait entities of the current class
+-
+ getTraitsNames
+ - Get a list of class traits names
+-
+ hasConstant
+ - Check if a constant exists in a class
+-
+ hasDescriptionLinks
+ - Checking if an entity has links in its description
+-
+ hasExamples
+ - Checking if an entity has `example` docBlock
+-
+ hasMethod
+ - Check if a method exists in a class
+-
+ hasParentClass
+ - Check if a certain parent class exists in a chain of parent classes
+-
+ hasProperty
+ - Check if a property exists in a class
+-
+ hasThrows
+ - Checking if an entity has `throws` docBlock
+-
+ hasTraits
+ - Check if the class contains traits
+-
+ implementsInterface
+ - Check if a class implements an interface
+-
+ isAbstract
+ - Check that an entity is abstract
+-
+ isApi
+ - Checking if an entity has `api` docBlock
+-
+ isClass
+ - Check if an entity is a Class
+-
+ isClassLoad
+
+-
+ isDeprecated
+ - Checking if an entity has `deprecated` docBlock
+-
+ isDocumentCreationAllowed
+
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
+-
+ isEntityDataCacheOutdated
+
+-
+ isEntityDataCanBeLoaded
+
+-
+ isEntityFileCanBeLoad
+ - Checking if entity data can be retrieved
+-
+ isEntityNameValid
+ - Check if the name is a valid name for ClassLikeEntity
+-
+ isEnum
+ - Check if an entity is an Enum
+-
+ isExternalLibraryEntity
+ - Check if a given entity is an entity from a third party library (connected via composer)
+-
+ isInGit
+ - Checking if class file is in git repository
+-
+ isInstantiable
+ - Check that an entity is instantiable
+-
+ isInterface
+ - Check if an entity is an Interface
+-
+ isInternal
+ - Checking if an entity has `internal` docBlock
+-
+ isSubclassOf
+ - Whether the given class is a subclass of the specified class
+-
+ isTrait
+ - Check if an entity is a Trait
+-
+ normalizeClassName
+ - Bring the class name to the standard format used in the system
+-
+ reloadEntityDependenciesCache
+ - Update entity dependency cache
+-
+ removeEntityValueFromCache
+
+-
+ removeNotUsedEntityDataCache
+
+-
+ setCustomAst
+
+
+
+
+
+
+
+
+
+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:
+
+
+
+
+
+
+
+
+
+
+
+```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
+
+public function addPluginData(string $pluginKey, mixed $data): void;
+```
+
+
Add information to aт entity object
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $pluginKey |
+ string |
+ - |
+
+
+ $data |
+ mixed |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $cursor |
+ string |
+ - |
+
+
+ $isForDocument |
+ bool |
+ - |
+
+
+
+
+
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\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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The name of the constant whose entity you want to get |
+
+
+ $unsafe |
+ bool |
+ Check 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 getConstantValue(string $constantName): string|array|int|bool|null|float;
+```
+
+
Get the compiled value of a constant
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get values only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $withLine |
+ bool |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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: 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for methods from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $pluginKey |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for properties from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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: 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $propertyName |
+ string |
+ The 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $parentClassName |
+ string |
+ Searched 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $interfaceName |
+ string |
+ Name 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $entityName |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $className |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $key |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+```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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
@@ -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
-
add
-
+ - Add an entity to a collection
-
get
-
+ - Get the loaded method entity if it exists
-
getAllExceptInitializations
-
+ - Get a copy of the collection containing only those methods that are not initialization methods
-
getInitializations
-
+ - Get a copy of the collection containing only those methods that are initialization methods
-
getIterator
- - Retrieve an external iterator
+
-
has
-
+ - Check if an entity has been added to the collection
-
isEmpty
-
+ - Check if the collection is empty or not
-
loadMethodEntities
-
+ - Load method entities into the collection according to the project configuration
-
remove
-
+ - Remove an entity from a collection
-
unsafeGet
-
+ - 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
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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 @@
-
-
+
@@ -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:
--
- entityCacheIsOutdated
-
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
-
getBodyCode
-
+ - Get the code for this method
-
getCacheKey
@@ -49,158 +48,155 @@ class MethodEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseE
getCachedEntityDependencies
-
- getDescription
+ getCurrentRootEntity
+-
+ getDescription
+ - Get entity description
-
getDescriptionLinks
- Get parsed links from description and doc blocks `see` and `link`
-
getDocBlock
-
+ - Get DocBlock for current entity
-
getDocComment
- Get the doc comment of an entity
-
getDocCommentEntity
-
+ - Link to an entity where docBlock is implemented for this entity
-
getDocCommentLine
--
- getDocCommentLineRecursive
-
--
- getDocCommentRecursive
-
-
getDocNote
-
+ - Get the note annotation value
-
getEndLine
-
+ - Get the line number of the end of a method's code in a file
-
getExamples
- Get parsed examples from `examples` doc block
--
- getFileName
-
-
getFileSourceLink
-
getFirstExample
- - Get first example from @examples doc block
+ - Get first example from `examples` doc block
-
getFirstReturnValue
-
+ - Get the compiled first return value of a method (if possible)
-
getImplementingClass
-
+ - Get the class like entity in which the current entity was implemented
-
getImplementingClassName
-
--
- getImplementingReflectionClass
-
+ - Get the name of the class in which this method is implemented
-
getModifiersString
-
+ - Get a text representation of method modifiers
-
getName
-
+ - Full name of the entity
-
getNamespaceName
-
+ - Namespace of the class that contains this method
-
getObjectId
- Get entity unique ID
-
getParameters
-
+ - Get a list of method parameters
-
getParametersString
-
+ - Get a list of method parameters as a string
-
- getPhpHandlerSettings
-
+ getParentMethod
+ - Get the parent method for this method
-
- getPrototype
-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getReturnType
-
+ - Get the return type of method
-
getRootEntity
-
getRootEntityCollection
- - Get parent collection of entities
+ - Get the collection of root entities to which this entity belongs
-
getShortName
-
+ - Short name of the entity
-
getSignature
-
+ - Get the method signature as a string
-
getStartColumn
-
+ - Get the column number of the beginning of the method code in a file
-
getStartLine
-
+ - Get the line number of the beginning of the entity code in a file
-
getThrows
- Get parsed throws from `throws` doc block
-
- hasDescriptionLinks
+ getThrowsDocBlockLinks
+-
+ hasDescriptionLinks
+ - Checking if an entity has links in its description
-
hasExamples
-
+ - Checking if an entity has `example` docBlock
-
hasThrows
-
+ - Checking if an entity has `throws` docBlock
+-
+ isApi
+ - Checking if an entity has `api` docBlock
-
isConstructor
-
+ - Checking that a method is a constructor
-
isDeprecated
-
+ - Checking if an entity has `deprecated` docBlock
-
isDynamic
-
+ - Check if a method is a dynamic method, that is, implementable using __call or __callStatic
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
-
isEntityDataCacheOutdated
-
isEntityFileCanBeLoad
-
+ - Checking if entity data can be retrieved
-
isImplementedInParentClass
-
+ - Check if this method is implemented in the parent class
-
isInitialization
-
+ - Check if a method is an initialization method
-
isInternal
-
+ - Checking if an entity has `internal` docBlock
-
isPrivate
-
+ - Check if a method is a private method
-
isProtected
-
+ - Check if a method is a protected method
-
isPublic
-
+ - Check if a method is a public method
-
isStatic
-
--
- parseAnnotationParams
-
+ - Check if this method is static
-
reloadEntityDependenciesCache
-
+ - Update entity dependency cache
-
removeEntityValueFromCache
@@ -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:
-
-
+
+
+
+
+- #
+ 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:
-
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
-
\Exception
@@ -516,33 +530,18 @@ public function getDescriptionLinks(): array;
```php
-public function getDocBlock(bool $recursive = true): \phpDocumentor\Reflection\DocBlock;
-```
-
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
+public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
+```
-Parameters:
+Get DocBlock for current entity
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $recursive |
- bool |
- - |
-
-
-
+Parameters: not specified
Return value: \phpDocumentor\Reflection\DocBlock
@@ -550,16 +549,7 @@ public function getDocBlock(bool $recursive = true): \phpDocumentor\Reflection\D
Throws:
@@ -570,10 +560,12 @@ public function getDocBlock(bool $recursive = true): \phpDocumentor\Reflection\D
```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
+
public function getDocComment(): string;
```
@@ -587,10 +579,7 @@ public function getDocComment(): string;
Throws:
@@ -601,35 +590,19 @@ public function getDocComment(): string;
```php
-public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity;
+public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Method\MethodEntity;
```
-
+Link to an entity where docBlock is implemented for this entity
Parameters: not specified
-Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity
-
-
-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:
-
-
@@ -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
-
-
-
@@ -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:
-
-
-
-
-
@@ -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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $params |
- array |
- - |
-
-
-
-
-
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
@@ -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
-
add
-
+ - Add an entity to the collection
-
clearOperationsLogCollection
-
filterByInterfaces
-
+ - Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
-
filterByNameRegularExpression
-
+ - Get a copy of the current collection with only entities whose names match the regular expression
-
filterByParentClassNames
-
+ - Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
-
filterByPaths
-
+ - Get a copy of the current collection only with entities filtered by file paths (from project_root)
-
findEntity
-
+ - Find an entity in a collection
-
get
-
--
- getEntityByClassName
-
+ - Get an entity from a collection (only previously added)
-
getEntityCollectionName
-
+ - Get collection name
-
getEntityLinkData
-
getIterator
- - Retrieve an external iterator
+
-
getLoadedOrCreateNew
-
+ - Get an entity from the collection or create a new one if it has not yet been added
-
getOnlyAbstractClasses
-
+ - Get a copy of the current collection with only abstract classes
-
getOnlyInstantiable
-
+ - Get a copy of the current collection with only instantiable entities
-
getOnlyInterfaces
-
+ - Get a copy of the current collection with only interfaces
-
getOnlyTraits
-
+ - Get a copy of the current collection with only traits
-
getOperationsLogCollection
--
- getPluginEventDispatcher
-
-
has
-
+ - Check if an entity has been added to the collection
-
internalFindEntity
@@ -101,13 +94,22 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
-
isEmpty
-
+ - Check if the collection is empty or not
-
- loadClassEntities
-
+ loadEntities
+ - Load entities into a collection
+-
+ loadEntitiesByConfiguration
+ - Load entities into a collection by configuration
-
remove
+ - Remove an entity from a collection
+-
+ removeAllNotLoadedEntities
+-
+ toArray
+ - Convert collection to array
-
updateEntitiesCache
@@ -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
-
-
-
-
-
@@ -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
-
-
-
@@ -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
\DI\NotFoundException
+
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
@@ -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
+
-
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:
+
+
+
+
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 @@
-
-
+
PhpHandlerSettings class:
@@ -33,15 +32,18 @@ final class PhpHandlerSettings
Methods:
--
- asyncSourceLoadingEnabled
-
-
getClassConstantEntityFilter
-
getClassEntityFilter
+-
+ getComposerConfigFile
+
+-
+ getComposerVendorDir
+
-
getCustomTwigFilters
@@ -60,6 +62,12 @@ final class PhpHandlerSettings
-
getPropertyEntityFilter
+-
+ getPsr4Map
+
+-
+ 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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
@@ -188,32 +202,54 @@ public function getClassConstantEntityFilter(): \BumbleDocGen\Core\Parser\Filter
+
+
+
+
+
+```php
+public function getComposerVendorDir(): null|string;
+```
+
-
- \DI\NotFoundException
+
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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -312,7 +348,7 @@ public function getEntityDocRenderersCollection(): \BumbleDocGen\Core\Renderer\E
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -408,7 +444,7 @@ public function getPropertyEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondi
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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 @@
+
+
+
+
+
+
+
+
+```php
+namespace BumbleDocGen\Core\Parser;
+
+final class ProjectParser
+```
+
+
Entity for project parsing using source locators
+
+
+
+
+
+
+
Initialization methods:
+
+
+-
+ __construct
+
+
+
+
Methods:
+
+
+-
+ getEntityCollectionForPL
+
+-
+ getRootEntityCollectionsGroup
+
+-
+ parse
+
+
+
+
+
+
+
+
+
+
Method details:
+
+
+
+
+
+```php
+public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup);
+```
+
+
+
+
Parameters:
+
+
+
+
+
+
+
+
+
+
+
+```php
+public function getEntityCollectionForPL(string $plHandlerClassName): null|\BumbleDocGen\Core\Parser\Entity\RootEntityCollection;
+```
+
+
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $plHandlerClassName |
+ string |
+ - |
+
+
+
+
+
Return value: null |
\BumbleDocGen\Core\Parser\Entity\RootEntityCollection
+
+
+
Throws:
+
+
+
+
+
+
+
+
+
+
+```php
+public function parse(\BumbleDocGen\Core\Parser\Entity\EntitiesLoaderProgressBarInterface|null $progressBar = null): \BumbleDocGen\Core\Parser\Entity\CollectionGroupLoadEntitiesResult;
+```
+
+
+
+
Parameters:
+
+
+
+
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 @@
-
-
+
@@ -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
-
add
-
+ - Add an entity to a collection
-
get
-
+ - Get the loaded property entity if it exists
-
getIterator
- - Retrieve an external iterator
+
-
has
-
+ - Check if an entity has been added to the collection
-
isEmpty
-
+ - Check if the collection is empty or not
-
loadPropertyEntities
-
+ - Load property entities into the collection according to the project configuration
-
remove
-
+ - Remove an entity from a collection
-
unsafeGet
-
+ - 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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
+
+
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 @@
-
-
+
@@ -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:
--
- entityCacheIsOutdated
-
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
-
getCacheKey
@@ -46,119 +45,128 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
getCachedEntityDependencies
-
- getDefaultValue
+ getCurrentRootEntity
+-
+ getDefaultValue
+ - Get the compiled default value of a property
-
getDescription
-
+ - Get entity description
-
getDescriptionLinks
- Get parsed links from description and doc blocks `see` and `link`
-
getDocBlock
-
+ - Get DocBlock for current entity
-
getDocComment
- Get the doc comment of an entity
-
getDocCommentEntity
-
+ - Link to an entity where docBlock is implemented for this entity
+-
+ getDocCommentLine
+ - Get the code line number where the docBlock of the current entity begins
-
getDocNote
-
+ - Get the note annotation value
-
getEndLine
-
+ - Get the line number of the end of a property's code in a file
-
getExamples
- Get parsed examples from `examples` doc block
--
- getFileName
-
-
getFileSourceLink
-
getFirstExample
- - Get first example from @examples doc block
+ - Get first example from `examples` doc block
-
getImplementingClass
-
+ - Get the class like entity in which the current entity was implemented
-
getImplementingClassName
-
--
- getImplementingReflectionClass
-
+ - Get the name of the class in which this property is implemented
-
getModifiersString
-
+ - Get a text representation of property modifiers
-
getName
-
+ - Full name of the entity
-
getNamespaceName
-
+ - Namespace of the class that contains this property
-
getObjectId
- Get entity unique ID
-
- getPhpHandlerSettings
-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getRootEntity
-
getRootEntityCollection
- - Get parent collection of entities
+ - Get the collection of root entities to which this entity belongs
-
getShortName
-
+ - Short name of the entity
-
getStartLine
-
+ - Get the line number of the beginning of the entity code in a file
-
getThrows
- Get parsed throws from `throws` doc block
-
- getType
+ getThrowsDocBlockLinks
+-
+ getType
+ - Get current property type
-
hasDescriptionLinks
-
+ - Checking if an entity has links in its description
-
hasExamples
-
+ - Checking if an entity has `example` docBlock
-
hasThrows
-
+ - Checking if an entity has `throws` docBlock
+-
+ isApi
+ - Checking if an entity has `api` docBlock
-
isDeprecated
-
+ - Checking if an entity has `deprecated` docBlock
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
-
isEntityDataCacheOutdated
-
isEntityFileCanBeLoad
-
+ - Checking if entity data can be retrieved
-
isImplementedInParentClass
-
+ - Check if this property is implemented in the parent class
-
isInternal
-
+ - Checking if an entity has `internal` docBlock
-
isPrivate
-
+ - Check if a private is a public private
-
isProtected
-
+ - Check if a protected is a public protected
-
isPublic
-
+ - Check if a property is a public property
-
reloadEntityDependenciesCache
-
+ - Update entity dependency cache
-
removeEntityValueFromCache
@@ -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;
\Psr\Cache\InvalidArgumentException
+
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
+
+
+
+
+
+- #
+ 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:
-
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
-
\Exception
@@ -469,14 +505,16 @@ public function getDescriptionLinks(): array;
```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
+
public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
```
-
+Get DocBlock for current entity
Parameters: not specified
@@ -486,16 +524,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
Throws:
@@ -506,7 +535,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
```php
@@ -525,10 +554,7 @@ public function getDocComment(): string;
Throws:
@@ -539,33 +565,47 @@ public function getDocComment(): string;
```php
-public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity;
+public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity;
```
-
+Link to an entity where docBlock is implemented for this entity
Parameters: not specified
-Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity
+Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity
-Throws:
+
+
+
+
-
- \DI\DependencyException
+```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
-
- \DI\NotFoundException
+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:
+
+
@@ -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
-
-
-
@@ -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:
+
@@ -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;
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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 @@
-
-
+
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 @@
-
-
+
@@ -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:
-
-
--
- __construct
-
-
Methods:
--
- clearOperationsLogCollection
-
-
findEntity
-
+ - Find an entity in a collection
-
get
-
+ - Get an entity from a collection (only previously added)
-
getEntityCollectionName
-
+ - Get collection name
-
getEntityLinkData
-
getIterator
- - Retrieve an external iterator
--
- getLoadedOrCreateNew
-
- getOperationsLogCollection
-
+ getLoadedOrCreateNew
+ - Get an entity from the collection or create a new one if it has not yet been added
-
has
-
+ - Check if an entity has been added to the collection
-
isEmpty
+ - Check if the collection is empty or not
+-
+ loadEntities
+
+-
+ loadEntitiesByConfiguration
-
remove
+ - Remove an entity from a collection
+-
+ removeAllNotLoadedEntities
+-
+ toArray
+ - Convert collection to array
-
updateEntitiesCache
@@ -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
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $objectName |
+ string |
+ - |
+
+
+
-
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
+
+
+
+
+
@@ -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
+
+
+
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 @@
-
-
+
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:
--
- entityCacheIsOutdated
-
--
- entityDataCanBeLoaded
- - Checking if it is possible to get the entity data
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
@@ -42,24 +35,30 @@ their entities need to correspond to the same interfaces
-
getFileContent
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
-
getFileSourceLink
-
getName
-
+ - Full name of the entity
-
getObjectId
-
+ - Entity object ID
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getRootEntityCollection
- Get parent collection of entities
-
getShortName
+ - Short name of the entity
+-
+ isEntityCacheOutdated
+-
+ isEntityDataCanBeLoaded
+ - Checking if it is possible to get the entity data
-
isEntityNameValid
- Check if entity name is valid
@@ -69,6 +68,9 @@ their entities need to correspond to the same interfaces
-
isInGit
- The entity file is in the git repository
+-
+ 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
+
+
+
+
+
+
+
+
+```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:
+
+
+-
+ __construct
+
+
+
+Methods:
+
+
+-
+ addPluginData
+ - Add information to aт entity object
+-
+ cursorToDocAttributeLinkFragment
+
+-
+ getAbsoluteFileName
+ - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
+-
+ getCacheKey
+
+-
+ getCachedEntityDependencies
+
+-
+ getConstant
+ - Get the method entity by its name
+-
+ getConstantEntitiesCollection
+ - Get a collection of constant entities
+-
+ getConstantValue
+ - Get the compiled value of a constant
+-
+ getConstants
+ - Get all constants that are available according to the configuration as an array
+-
+ getConstantsData
+ - Get a list of all constants and classes where they are implemented
+-
+ getConstantsValues
+ - Get class constant compiled values according to filters
+-
+ getCurrentRootEntity
+
+-
+ getDescription
+ - Get entity description
+-
+ getDescriptionLinks
+ - Get parsed links from description and doc blocks `see` and `link`
+-
+ getDocBlock
+ - Get DocBlock for current entity
+-
+ getDocComment
+ - Get the doc comment of an entity
+-
+ getDocCommentEntity
+ - Link to an entity where docBlock is implemented for this entity
+-
+ getDocCommentLine
+ - Get the code line number where the docBlock of the current entity begins
+-
+ getDocNote
+ - Get the note annotation value
+-
+ getDocRender
+
+-
+ getEndLine
+ - Get the line number of the end of a class code in a file
+-
+ getEntityDependencies
+
+-
+ getExamples
+ - Get parsed examples from `examples` doc block
+-
+ getFileContent
+
+-
+ getFileSourceLink
+
+-
+ getFirstExample
+ - Get first example from `examples` doc block
+-
+ getImplementingClass
+ - Get the class like entity in which the current entity was implemented
+-
+ getInterfaceNames
+ - Get a list of class interface names
+-
+ getInterfacesEntities
+ - Get a list of interface entities that the current class implements
+-
+ getMethod
+ - Get the method entity by its name
+-
+ getMethodEntitiesCollection
+ - Get a collection of method entities
+-
+ getMethods
+ - Get all methods that are available according to the configuration as an array
+-
+ getMethodsData
+ - Get a list of all methods and classes where they are implemented
+-
+ getModifiersString
+ - Get entity modifiers as a string
+-
+ getName
+ - Full name of the entity
+-
+ getNamespaceName
+ - Get the entity namespace name
+-
+ getObjectId
+ - Get entity unique ID
+-
+ getParentClass
+ - Get the entity of the parent class if it exists
+-
+ getParentClassEntities
+ - Get a list of parent class entities
+-
+ getParentClassName
+ - Get the name of the parent class entity if it exists
+-
+ getParentClassNames
+ - Get a list of entity names of parent classes
+-
+ getPluginData
+ - Get additional information added using the plugin
+-
+ getProperties
+ - Get all properties that are available according to the configuration as an array
+-
+ getPropertiesData
+ - Get a list of all properties and classes where they are implemented
+-
+ getProperty
+ - Get the property entity by its name
+-
+ getPropertyDefaultValue
+ - Get the compiled value of a property
+-
+ getPropertyEntitiesCollection
+ - Get a collection of property entities
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
+-
+ getRootEntityCollection
+ - Get the collection of root entities to which this entity belongs
+-
+ getShortName
+ - Short name of the entity
+-
+ getStartLine
+ - Get the line number of the start of a class code in a file
+-
+ getThrows
+ - Get parsed throws from `throws` doc block
+-
+ getThrowsDocBlockLinks
+
+-
+ getTraits
+ - Get a list of trait entities of the current class
+-
+ getTraitsNames
+ - Get a list of class traits names
+-
+ hasConstant
+ - Check if a constant exists in a class
+-
+ hasDescriptionLinks
+ - Checking if an entity has links in its description
+-
+ hasExamples
+ - Checking if an entity has `example` docBlock
+-
+ hasMethod
+ - Check if a method exists in a class
+-
+ hasParentClass
+ - Check if a certain parent class exists in a chain of parent classes
+-
+ hasProperty
+ - Check if a property exists in a class
+-
+ hasThrows
+ - Checking if an entity has `throws` docBlock
+-
+ hasTraits
+ - Check if the class contains traits
+-
+ implementsInterface
+ - Check if a class implements an interface
+-
+ isAbstract
+ - Check that an entity is abstract
+-
+ isApi
+ - Checking if an entity has `api` docBlock
+-
+ isClass
+ - Check if an entity is a Class
+-
+ isClassLoad
+
+-
+ isDeprecated
+ - Checking if an entity has `deprecated` docBlock
+-
+ isDocumentCreationAllowed
+
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
+-
+ isEntityDataCacheOutdated
+
+-
+ isEntityDataCanBeLoaded
+
+-
+ isEntityFileCanBeLoad
+ - Checking if entity data can be retrieved
+-
+ isEntityNameValid
+ - Check if the name is a valid name for ClassLikeEntity
+-
+ isEnum
+ - Check if an entity is an Enum
+-
+ isExternalLibraryEntity
+ - Check if a given entity is an entity from a third party library (connected via composer)
+-
+ isInGit
+ - Checking if class file is in git repository
+-
+ isInstantiable
+ - Check that an entity is instantiable
+-
+ isInterface
+ - Check if an entity is an Interface
+-
+ isInternal
+ - Checking if an entity has `internal` docBlock
+-
+ isSubclassOf
+ - Whether the given class is a subclass of the specified class
+-
+ isTrait
+ - Check if an entity is a Trait
+-
+ normalizeClassName
+ - Bring the class name to the standard format used in the system
+-
+ reloadEntityDependenciesCache
+ - Update entity dependency cache
+-
+ removeEntityValueFromCache
+
+-
+ removeNotUsedEntityDataCache
+
+-
+ setCustomAst
+
+
+
+
+
+
+
+
+
+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:
+
+
+
+
+
+
+
+
+
+
+
+```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
+
+public function addPluginData(string $pluginKey, mixed $data): void;
+```
+
+
Add information to aт entity object
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $pluginKey |
+ string |
+ - |
+
+
+ $data |
+ mixed |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $cursor |
+ string |
+ - |
+
+
+ $isForDocument |
+ bool |
+ - |
+
+
+
+
+
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\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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The name of the constant whose entity you want to get |
+
+
+ $unsafe |
+ bool |
+ Check 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 getConstantValue(string $constantName): string|array|int|bool|null|float;
+```
+
+
Get the compiled value of a constant
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get values only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $withLine |
+ bool |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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: 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for methods from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $pluginKey |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for properties from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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: 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $propertyName |
+ string |
+ The 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $parentClassName |
+ string |
+ Searched 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $interfaceName |
+ string |
+ Name 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $entityName |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $className |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $key |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
-
-
+
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 @@
+
+
+
+
+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.
+
+
+
+* 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 %}
+```
+
+
+
+
+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 class |
+ Name in twig template |
+ PL |
+ Description |
+
+
+ PhpEntitiesCollection |
+ phpEntities |
+ PHP |
+ Collection of php root 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:
+
+
+
+
+
+
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 @@
-
+
@@ -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.
@@ -68,14 +68,14 @@ language_handlers:
Common filtering conditions that are available for any entity:
-
-
- $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
-
-
-
-
-
@@ -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
-
-
-
@@ -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
\DI\NotFoundException
+
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
@@ -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
+
-
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:
+
+
+
+
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
+
+
+
+
+
+
+
+```php
+namespace BumbleDocGen\LanguageHandler\Php;
+
+final class PhpHandlerSettings
+```
+
+
+
+
+
+
+
+
+Initialization methods:
+
+
+-
+ __construct
+
+
+
+Methods:
+
+
+-
+ getClassConstantEntityFilter
+
+-
+ getClassEntityFilter
+
+-
+ getComposerConfigFile
+
+-
+ getComposerVendorDir
+
+-
+ getCustomTwigFilters
+
+-
+ getCustomTwigFunctions
+
+-
+ getEntityDocRenderersCollection
+
+-
+ getFileSourceBaseUrl
+
+-
+ getMethodEntityFilter
+
+-
+ getPropertyEntityFilter
+
+-
+ getPsr4Map
+
+-
+ getUseComposerAutoload
+
+
+
+
+Constants:
+
+
+
+
+
+
+Method details:
+
+
+
+
+
+```php
+public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache);
+```
+
+
+
+
Parameters:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```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 getFileSourceBaseUrl(): null|string;
+```
+
+
+
+
Parameters: not specified
+
+
Return value: null |
string
+
+
+
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
@@ -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:
--
- entityCacheIsOutdated
-
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
-
getCacheKey
@@ -46,119 +45,128 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
getCachedEntityDependencies
-
- getDefaultValue
+ getCurrentRootEntity
+-
+ getDefaultValue
+ - Get the compiled default value of a property
-
getDescription
-
+ - Get entity description
-
getDescriptionLinks
- Get parsed links from description and doc blocks `see` and `link`
-
getDocBlock
-
+ - Get DocBlock for current entity
-
getDocComment
- Get the doc comment of an entity
-
getDocCommentEntity
-
+ - Link to an entity where docBlock is implemented for this entity
+-
+ getDocCommentLine
+ - Get the code line number where the docBlock of the current entity begins
-
getDocNote
-
+ - Get the note annotation value
-
getEndLine
-
+ - Get the line number of the end of a property's code in a file
-
getExamples
- Get parsed examples from `examples` doc block
--
- getFileName
-
-
getFileSourceLink
-
getFirstExample
- - Get first example from @examples doc block
+ - Get first example from `examples` doc block
-
getImplementingClass
-
+ - Get the class like entity in which the current entity was implemented
-
getImplementingClassName
-
--
- getImplementingReflectionClass
-
+ - Get the name of the class in which this property is implemented
-
getModifiersString
-
+ - Get a text representation of property modifiers
-
getName
-
+ - Full name of the entity
-
getNamespaceName
-
+ - Namespace of the class that contains this property
-
getObjectId
- Get entity unique ID
-
- getPhpHandlerSettings
-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getRootEntity
-
getRootEntityCollection
- - Get parent collection of entities
+ - Get the collection of root entities to which this entity belongs
-
getShortName
-
+ - Short name of the entity
-
getStartLine
-
+ - Get the line number of the beginning of the entity code in a file
-
getThrows
- Get parsed throws from `throws` doc block
-
- getType
+ getThrowsDocBlockLinks
+-
+ getType
+ - Get current property type
-
hasDescriptionLinks
-
+ - Checking if an entity has links in its description
-
hasExamples
-
+ - Checking if an entity has `example` docBlock
-
hasThrows
-
+ - Checking if an entity has `throws` docBlock
+-
+ isApi
+ - Checking if an entity has `api` docBlock
-
isDeprecated
-
+ - Checking if an entity has `deprecated` docBlock
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
-
isEntityDataCacheOutdated
-
isEntityFileCanBeLoad
-
+ - Checking if entity data can be retrieved
-
isImplementedInParentClass
-
+ - Check if this property is implemented in the parent class
-
isInternal
-
+ - Checking if an entity has `internal` docBlock
-
isPrivate
-
+ - Check if a private is a public private
-
isProtected
-
+ - Check if a protected is a public protected
-
isPublic
-
+ - Check if a property is a public property
-
reloadEntityDependenciesCache
-
+ - Update entity dependency cache
-
removeEntityValueFromCache
@@ -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;
\Psr\Cache\InvalidArgumentException
+
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
+
+
+
+
+
+- #
+ 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:
-
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
-
\Exception
@@ -469,14 +505,16 @@ public function getDescriptionLinks(): array;
```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
+
public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
```
-
+Get DocBlock for current entity
Parameters: not specified
@@ -486,16 +524,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
Throws:
@@ -506,7 +535,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock;
```php
@@ -525,10 +554,7 @@ public function getDocComment(): string;
Throws:
@@ -539,33 +565,47 @@ public function getDocComment(): string;
```php
-public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity;
+public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity;
```
-
+Link to an entity where docBlock is implemented for this entity
Parameters: not specified
-Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity
+Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\SubEntity\Property\PropertyEntity
-Throws:
+
+
+
+
-
- \DI\DependencyException
+```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
-
- \DI\NotFoundException
+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:
+
+
@@ -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
-
-
-
@@ -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:
+
@@ -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;
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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:
--
- entityCacheIsOutdated
-
--
- entityDataCanBeLoaded
- - Checking if it is possible to get the entity data
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
@@ -42,24 +35,30 @@ their entities need to correspond to the same interfaces
-
getFileContent
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
-
getFileSourceLink
-
getName
-
+ - Full name of the entity
-
getObjectId
-
+ - Entity object ID
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getRootEntityCollection
- Get parent collection of entities
-
getShortName
+ - Short name of the entity
+-
+ isEntityCacheOutdated
+-
+ isEntityDataCanBeLoaded
+ - Checking if it is possible to get the entity data
-
isEntityNameValid
- Check if entity name is valid
@@ -69,6 +68,9 @@ their entities need to correspond to the same interfaces
-
isInGit
- The entity file is in the git repository
+-
+ 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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
+
+
+
+
+
+
+
+```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:
+
+
+-
+ __construct
+
+
+
+Methods:
+
+
+-
+ addPluginData
+ - Add information to aт entity object
+-
+ cursorToDocAttributeLinkFragment
+
+-
+ getAbsoluteFileName
+ - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
+-
+ getAst
+ - Get AST for this entity
+-
+ getCacheKey
+
+-
+ getCachedEntityDependencies
+
+-
+ getConstant
+ - Get the method entity by its name
+-
+ getConstantEntitiesCollection
+ - Get a collection of constant entities
+-
+ getConstantValue
+ - Get the compiled value of a constant
+-
+ getConstants
+ - Get all constants that are available according to the configuration as an array
+-
+ getConstantsData
+ - Get a list of all constants and classes where they are implemented
+-
+ getConstantsValues
+ - Get class constant compiled values according to filters
+-
+ getCurrentRootEntity
+
+-
+ getDescription
+ - Get entity description
+-
+ getDescriptionLinks
+ - Get parsed links from description and doc blocks `see` and `link`
+-
+ getDocBlock
+ - Get DocBlock for current entity
+-
+ getDocComment
+ - Get the doc comment of an entity
+-
+ getDocCommentEntity
+ - Link to an entity where docBlock is implemented for this entity
+-
+ getDocCommentLine
+ - Get the code line number where the docBlock of the current entity begins
+-
+ getDocNote
+ - Get the note annotation value
+-
+ getDocRender
+
+-
+ getEndLine
+ - Get the line number of the end of a class code in a file
+-
+ getEntityDependencies
+
+-
+ getExamples
+ - Get parsed examples from `examples` doc block
+-
+ getFileContent
+
+-
+ getFileSourceLink
+
+-
+ getFirstExample
+ - Get first example from `examples` doc block
+-
+ getImplementingClass
+ - Get the class like entity in which the current entity was implemented
+-
+ getInterfaceNames
+ - Get a list of class interface names
+-
+ getInterfacesEntities
+ - Get a list of interface entities that the current class implements
+-
+ getMethod
+ - Get the method entity by its name
+-
+ getMethodEntitiesCollection
+ - Get a collection of method entities
+-
+ getMethods
+ - Get all methods that are available according to the configuration as an array
+-
+ getMethodsData
+ - Get a list of all methods and classes where they are implemented
+-
+ getModifiersString
+ - Get entity modifiers as a string
+-
+ getName
+ - Full name of the entity
+-
+ getNamespaceName
+ - Get the entity namespace name
+-
+ getObjectId
+ - Get entity unique ID
+-
+ getParentClass
+ - Get the entity of the parent class if it exists
+-
+ getParentClassEntities
+ - Get a list of parent class entities
+-
+ getParentClassName
+ - Get the name of the parent class entity if it exists
+-
+ getParentClassNames
+ - Get a list of entity names of parent classes
+-
+ getPluginData
+ - Get additional information added using the plugin
+-
+ getProperties
+ - Get all properties that are available according to the configuration as an array
+-
+ getPropertiesData
+ - Get a list of all properties and classes where they are implemented
+-
+ getProperty
+ - Get the property entity by its name
+-
+ getPropertyDefaultValue
+ - Get the compiled value of a property
+-
+ getPropertyEntitiesCollection
+ - Get a collection of property entities
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
+-
+ getRootEntityCollection
+ - Get the collection of root entities to which this entity belongs
+-
+ getShortName
+ - Short name of the entity
+-
+ getStartLine
+ - Get the line number of the start of a class code in a file
+-
+ getThrows
+ - Get parsed throws from `throws` doc block
+-
+ getThrowsDocBlockLinks
+
+-
+ getTraits
+ - Get a list of trait entities of the current class
+-
+ getTraitsNames
+ - Get a list of class traits names
+-
+ hasConstant
+ - Check if a constant exists in a class
+-
+ hasDescriptionLinks
+ - Checking if an entity has links in its description
+-
+ hasExamples
+ - Checking if an entity has `example` docBlock
+-
+ hasMethod
+ - Check if a method exists in a class
+-
+ hasParentClass
+ - Check if a certain parent class exists in a chain of parent classes
+-
+ hasProperty
+ - Check if a property exists in a class
+-
+ hasThrows
+ - Checking if an entity has `throws` docBlock
+-
+ hasTraits
+ - Check if the class contains traits
+-
+ implementsInterface
+ - Check if a class implements an interface
+-
+ isAbstract
+ - Check that an entity is abstract
+-
+ isApi
+ - Checking if an entity has `api` docBlock
+-
+ isClass
+ - Check if an entity is a Class
+-
+ isClassLoad
+
+-
+ isDeprecated
+ - Checking if an entity has `deprecated` docBlock
+-
+ isDocumentCreationAllowed
+
+-
+ isEntityCacheOutdated
+ - Checking if the entity cache is out of date
+-
+ isEntityDataCacheOutdated
+
+-
+ isEntityDataCanBeLoaded
+
+-
+ isEntityFileCanBeLoad
+ - Checking if entity data can be retrieved
+-
+ isEntityNameValid
+ - Check if the name is a valid name for ClassLikeEntity
+-
+ isEnum
+ - Check if an entity is an Enum
+-
+ isExternalLibraryEntity
+ - Check if a given entity is an entity from a third party library (connected via composer)
+-
+ isInGit
+ - Checking if class file is in git repository
+-
+ isInstantiable
+ - Check that an entity is instantiable
+-
+ isInterface
+ - Check if an entity is an Interface
+-
+ isInternal
+ - Checking if an entity has `internal` docBlock
+-
+ isSubclassOf
+ - Whether the given class is a subclass of the specified class
+-
+ isTrait
+ - Check if an entity is a Trait
+-
+ normalizeClassName
+ - Bring the class name to the standard format used in the system
+-
+ reloadEntityDependenciesCache
+ - Update entity dependency cache
+-
+ removeEntityValueFromCache
+
+-
+ removeNotUsedEntityDataCache
+
+-
+ setCustomAst
+
+
+
+
+
+
+
+
+
+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:
+
+
+
+
+
+
+
+
+
+
+
+```php
+// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassLikeEntity
+
+public function addPluginData(string $pluginKey, mixed $data): void;
+```
+
+
Add information to aт entity object
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $pluginKey |
+ string |
+ - |
+
+
+ $data |
+ mixed |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $cursor |
+ string |
+ - |
+
+
+ $isForDocument |
+ bool |
+ - |
+
+
+
+
+
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\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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The name of the constant whose entity you want to get |
+
+
+ $unsafe |
+ bool |
+ Check 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 getConstantValue(string $constantName): string|array|int|bool|null|float;
+```
+
+
Get the compiled value of a constant
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $constantName |
+ string |
+ The 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get values only for constants from the current class |
+
+
+ $flags |
+ int |
+ Get 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $withLine |
+ bool |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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: 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for methods from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $pluginKey |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $onlyFromCurrentClassAndTraits |
+ bool |
+ Get data only for properties from the current class |
+
+
+ $flags |
+ int |
+ Get 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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: 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $propertyName |
+ string |
+ The 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 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $parentClassName |
+ string |
+ Searched 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $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()) |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $interfaceName |
+ string |
+ Name 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $entityName |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $className |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $key |
+ string |
+ - |
+
+
+
+
+
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:
+
+
+
+
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
+
+
+
+
+
+
+
+```php
+namespace BumbleDocGen\Core\Configuration;
+
+final class Configuration
+```
+
+Configuration project documentation
+
+
+
+
+
+
+Initialization methods:
+
+
+-
+ __construct
+
+
+
+Methods:
+
+
+-
+ getAdditionalConsoleCommands
+
+-
+ getCacheDir
+
+-
+ getConfigurationVersion
+
+-
+ getDocGenLibDir
+
+-
+ getGitClientPath
+
+-
+ getIfExists
+
+-
+ getLanguageHandlersCollection
+
+-
+ getOutputDir
+
+-
+ getOutputDirBaseUrl
+
+-
+ getPageLinkProcessor
+
+-
+ getPlugins
+
+-
+ getProjectRoot
+
+-
+ getSourceLocators
+
+-
+ getTemplatesDir
+
+-
+ getTwigFilters
+
+-
+ getTwigFunctions
+
+-
+ getWorkingDir
+
+-
+ isCheckFileInGitBeforeCreatingDocEnabled
+
+-
+ renderWithFrontMatter
+
+-
+ useSharedCache
+
+
+
+
+Constants:
+
+
+
+
+
+
+Method details:
+
+
+
+
+
+```php
+public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger);
+```
+
+
+
+
Parameters:
+
+
+
+
+
+
+
+
+
+
+
+
+
+```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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $key |
+ mixed |
+ - |
+
+
+
+
+
Return value: null |
string
+
+
+
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 getProjectRoot(): string;
+```
+
+
+
+
Parameters: not specified
+
+
Return value: string
+
+
+
Throws:
+
+
+
+
+
+
+
+
+
+
+```php
+public function getTemplatesDir(): string;
+```
+
+
+
+
Parameters: not specified
+
+
Return value: string
+
+
+
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
isCheckFileInGitBeforeCreatingDocEnabled
+
+ renderWithFrontMatter
+
useSharedCache
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -511,7 +513,7 @@ public function getProjectRoot(): string;
Throws:
@@ -542,7 +544,7 @@ public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\Sou
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
-
count
- - Count elements of an object
+
-
createAndAddDocumentedEntityWrapper
@@ -44,7 +43,7 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T
-
getIterator
- - Retrieve an external iterator
+
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
@@ -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
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
@@ -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
+
+
+
+
+
+
+
+```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
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/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
@@ -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
-
add
-
+ - Add an entity to the collection
-
clearOperationsLogCollection
-
filterByInterfaces
-
+ - Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
-
filterByNameRegularExpression
-
+ - Get a copy of the current collection with only entities whose names match the regular expression
-
filterByParentClassNames
-
+ - Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
-
filterByPaths
-
+ - Get a copy of the current collection only with entities filtered by file paths (from project_root)
-
findEntity
-
+ - Find an entity in a collection
-
get
-
--
- getEntityByClassName
-
+ - Get an entity from a collection (only previously added)
-
getEntityCollectionName
-
+ - Get collection name
-
getEntityLinkData
-
getIterator
- - Retrieve an external iterator
+
-
getLoadedOrCreateNew
-
+ - Get an entity from the collection or create a new one if it has not yet been added
-
getOnlyAbstractClasses
-
+ - Get a copy of the current collection with only abstract classes
-
getOnlyInstantiable
-
+ - Get a copy of the current collection with only instantiable entities
-
getOnlyInterfaces
-
+ - Get a copy of the current collection with only interfaces
-
getOnlyTraits
-
+ - Get a copy of the current collection with only traits
-
getOperationsLogCollection
--
- getPluginEventDispatcher
-
-
has
-
+ - Check if an entity has been added to the collection
-
internalFindEntity
@@ -101,13 +94,22 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
-
isEmpty
-
+ - Check if the collection is empty or not
-
- loadClassEntities
-
+ loadEntities
+ - Load entities into a collection
+-
+ loadEntitiesByConfiguration
+ - Load entities into a collection by configuration
-
remove
+ - Remove an entity from a collection
+-
+ removeAllNotLoadedEntities
+-
+ toArray
+ - Convert collection to array
-
updateEntitiesCache
@@ -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
-
-
-
-
-
@@ -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
-
-
-
@@ -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
\DI\NotFoundException
+
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
@@ -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
+
-
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:
+
+
+
+
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:
--
- entityCacheIsOutdated
-
--
- entityDataCanBeLoaded
- - Checking if it is possible to get the entity data
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
@@ -42,24 +35,30 @@ their entities need to correspond to the same interfaces
-
getFileContent
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
-
getFileSourceLink
-
getName
-
+ - Full name of the entity
-
getObjectId
-
+ - Entity object ID
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getRootEntityCollection
- Get parent collection of entities
-
getShortName
+ - Short name of the entity
+-
+ isEntityCacheOutdated
+-
+ isEntityDataCanBeLoaded
+ - Checking if it is possible to get the entity data
-
isEntityNameValid
- Check if entity name is valid
@@ -69,6 +68,9 @@ their entities need to correspond to the same interfaces
-
isInGit
- The entity file is in the git repository
+-
+ 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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
@@ -54,6 +53,9 @@ final class BreadcrumbsHelper
getPageLinkByKey
+
+ getTemplateFrontMatter
+
getTemplateLinkKey
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -483,14 +485,59 @@ public function getPageLinkByKey(string $key): string|null;
+
+
+```php
+public function getTemplateFrontMatter(string $templateName): array;
+```
+
+
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $templateName |
+ string |
+ - |
+
+
+
+
+
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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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
+
+
+
+
+
+
+
+```php
+namespace BumbleDocGen\Core\Configuration;
+
+final class Configuration
+```
+
+Configuration project documentation
+
+
+
+
+
+
+Initialization methods:
+
+
+-
+ __construct
+
+
+
+Methods:
+
+
+-
+ getAdditionalConsoleCommands
+
+-
+ getCacheDir
+
+-
+ getConfigurationVersion
+
+-
+ getDocGenLibDir
+
+-
+ getGitClientPath
+
+-
+ getIfExists
+
+-
+ getLanguageHandlersCollection
+
+-
+ getOutputDir
+
+-
+ getOutputDirBaseUrl
+
+-
+ getPageLinkProcessor
+
+-
+ getPlugins
+
+-
+ getProjectRoot
+
+-
+ getSourceLocators
+
+-
+ getTemplatesDir
+
+-
+ getTwigFilters
+
+-
+ getTwigFunctions
+
+-
+ getWorkingDir
+
+-
+ isCheckFileInGitBeforeCreatingDocEnabled
+
+-
+ renderWithFrontMatter
+
+-
+ useSharedCache
+
+
+
+
+Constants:
+
+
+
+
+
+
+Method details:
+
+
+
+
+
+```php
+public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger);
+```
+
+
+
+
Parameters:
+
+
+
+
+
+
+
+
+
+
+
+
+
+```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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $key |
+ mixed |
+ - |
+
+
+
+
+
Return value: null |
string
+
+
+
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 getProjectRoot(): string;
+```
+
+
+
+
Parameters: not specified
+
+
Return value: string
+
+
+
Throws:
+
+
+
+
+
+
+
+
+
+
+```php
+public function getTemplatesDir(): string;
+```
+
+
+
+
Parameters: not specified
+
+
Return value: string
+
+
+
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
@@ -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: |
- getClassMethodsBodyCode |
+ displayClassApiMethods |
@@ -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
-
count
- - Count elements of an object
+
-
createAndAddDocumentedEntityWrapper
@@ -44,7 +43,7 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T
-
getIterator
- - Retrieve an external iterator
+
@@ -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
@@ -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
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
@@ -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
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
@@ -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
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
@@ -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
@@ -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
+
+
+
+
+
+
+
+```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
@@ -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
-
add
-
+ - Add an entity to the collection
-
clearOperationsLogCollection
-
filterByInterfaces
-
+ - Get a copy of the current collection only with entities filtered by interfaces names (filtering is only available for ClassLikeEntity)
-
filterByNameRegularExpression
-
+ - Get a copy of the current collection with only entities whose names match the regular expression
-
filterByParentClassNames
-
+ - Get a copy of the current collection only with entities filtered by parent classes names (filtering is only available for ClassLikeEntity)
-
filterByPaths
-
+ - Get a copy of the current collection only with entities filtered by file paths (from project_root)
-
findEntity
-
+ - Find an entity in a collection
-
get
-
--
- getEntityByClassName
-
+ - Get an entity from a collection (only previously added)
-
getEntityCollectionName
-
+ - Get collection name
-
getEntityLinkData
-
getIterator
- - Retrieve an external iterator
+
-
getLoadedOrCreateNew
-
+ - Get an entity from the collection or create a new one if it has not yet been added
-
getOnlyAbstractClasses
-
+ - Get a copy of the current collection with only abstract classes
-
getOnlyInstantiable
-
+ - Get a copy of the current collection with only instantiable entities
-
getOnlyInterfaces
-
+ - Get a copy of the current collection with only interfaces
-
getOnlyTraits
-
+ - Get a copy of the current collection with only traits
-
getOperationsLogCollection
--
- getPluginEventDispatcher
-
-
has
-
+ - Check if an entity has been added to the collection
-
internalFindEntity
@@ -101,13 +94,22 @@ final class ClassEntityCollection extends \BumbleDocGen\Core\Parser\Entity\Logga
-
isEmpty
-
+ - Check if the collection is empty or not
-
- loadClassEntities
-
+ loadEntities
+ - Load entities into a collection
+-
+ loadEntitiesByConfiguration
+ - Load entities into a collection by configuration
-
remove
+ - Remove an entity from a collection
+-
+ removeAllNotLoadedEntities
+-
+ toArray
+ - Convert collection to array
-
updateEntitiesCache
@@ -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
-
-
-
-
-
@@ -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
-
-
-
@@ -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
-
\DI\NotFoundException
+-
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
@@ -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
+
-
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:
+
+
+
+
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
@@ -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
-
findEntity
-
+ - Find an entity in a collection
-
get
-
+ - Get an entity from a collection (only previously added)
-
getEntityCollectionName
-
+ - Get collection name
-
getEntityLinkData
-
getIterator
- - Retrieve an external iterator
+
-
getLoadedOrCreateNew
-
+ - Get an entity from the collection or create a new one if it has not yet been added
-
has
-
+ - Check if an entity has been added to the collection
-
isEmpty
+ - Check if the collection is empty or not
+-
+ loadEntities
+
+-
+ loadEntitiesByConfiguration
-
remove
+ - Remove an entity from a collection
+-
+ removeAllNotLoadedEntities
+-
+ toArray
+ - Convert collection to array
-
updateEntitiesCache
@@ -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:
+
+
+
+
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:
+
+
+
+
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:
--
- entityCacheIsOutdated
-
--
- entityDataCanBeLoaded
- - Checking if it is possible to get the entity data
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
@@ -42,24 +35,30 @@ their entities need to correspond to the same interfaces
-
getFileContent
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
-
getFileSourceLink
-
getName
-
+ - Full name of the entity
-
getObjectId
-
+ - Entity object ID
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getRootEntityCollection
- Get parent collection of entities
-
getShortName
+ - Short name of the entity
+-
+ isEntityCacheOutdated
+-
+ isEntityDataCanBeLoaded
+ - Checking if it is possible to get the entity data
-
isEntityNameValid
- Check if entity name is valid
@@ -69,6 +68,9 @@ their entities need to correspond to the same interfaces
-
isInGit
- The entity file is in the git repository
+-
+ 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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:
--
- entityCacheIsOutdated
-
--
- entityDataCanBeLoaded
- - Checking if it is possible to get the entity data
-
getAbsoluteFileName
- Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
@@ -42,24 +35,30 @@ their entities need to correspond to the same interfaces
-
getFileContent
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
-
getFileSourceLink
-
getName
-
+ - Full name of the entity
-
getObjectId
-
+ - Entity object ID
+-
+ getRelativeFileName
+ - File name relative to project_root configuration parameter
-
getRootEntityCollection
- Get parent collection of entities
-
getShortName
+ - Short name of the entity
+-
+ isEntityCacheOutdated
+-
+ isEntityDataCanBeLoaded
+ - Checking if it is possible to get the entity data
-
isEntityNameValid
- Check if entity name is valid
@@ -69,6 +68,9 @@ their entities need to correspond to the same interfaces
-
isInGit
- The entity file is in the git repository
+-
+ 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
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.
+
+
+
+ Plugin |
+ PL |
+ Handles events |
+ Description |
+
+
+ LastPageCommitter |
+ any |
+
+
+ |
+ Plugin for adding a block with information about the last commit and date of page update to the generated document |
+
+
+ PageHtmlLinkerPlugin |
+ any |
+
+
+ |
+ Adds URLs to empty links in HTML format;
+ Links may contain:
+ 1) Short entity name
+ 2) Full entity name
+ 3) Relative link to the entity file from the root directory of the project
+ 4) Page title ( title )
+ 5) Template key ( BreadcrumbsHelper::getTemplateLinkKey() )
+ 6) Relative reference to the entity document from the root directory of the documentation |
+
+
+ PageLinkerPlugin |
+ any |
+
+
+ |
+ Adds URLs to empty links in HTML format;
+ Links may contain:
+ 1) Short entity name
+ 2) Full entity name
+ 3) Relative link to the entity file from the root directory of the project
+ 4) Page title ( title )
+ 5) Template key ( BreadcrumbsHelper::getTemplateLinkKey() )
+ 6) Relative reference to the entity document from the root directory of the documentation |
+
+
+ PageRstLinkerPlugin |
+ any |
+
+
+ |
+ 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 |
+
+
+ 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 |
+
+
+ StubberPlugin |
+ PHP |
+
+
+ |
+ The plugin allows you to automatically provide links to github repositories for documented classes from libraries included in composer |
+
+
+ Daux |
+ PHP |
+
+
+ |
+ |
+
+
+ EntityDocUnifiedPlacePlugin |
+ PHP |
+
+
+ |
+ 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
+
+
+
+ Command |
+ Parameters |
+ Description |
+
+
+ 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\PageLinkProcessor;
-
-class BasePageLinkProcessor implements \BumbleDocGen\Core\Renderer\PageLinkProcessor\PageLinkProcessorInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getAbsoluteUrl
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function getAbsoluteUrl(string $relativeUrl): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $relativeUrl |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Context;
-
-final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \Traversable, \Countable
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- count
- - Count elements of an object
--
- createAndAddDocumentedEntityWrapper
-
--
- getDocumentedEntitiesRelations
-
--
- getIterator
- - Retrieve an external iterator
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-: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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function __invoke(string $content, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity, string $blockType): string;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- beforeCreatingDocFile
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```php
-// Implemented in BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker
-
-public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile $event): void;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getFinder
-
--
- getSourceLocator
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, array $psr4FileMap, array $classMap);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```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/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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $groupType, \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface ...$conditions);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\FilterCondition;
-
-interface ConditionInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity;
-
-final class ConstantEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- add
-
--
- get
-
--
- getIterator
- - Retrieve an external iterator
--
- has
-
--
- isEmpty
-
--
- loadConstantEntities
-
--
- remove
-
--
- unsafeGet
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
\ 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getFinder
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(array $directories);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $directories |
- array |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- entityCacheIsOutdated
-
--
- getAbsoluteFileName
-
--
- getBodyCode
-
--
- getCallMethod
-
--
- getDescription
-
--
- getEndLine
-
--
- getFileName
-
--
- getFirstReturnValue
-
--
- getImplementingClass
-
--
- getImplementingClassName
-
--
- getImplementingReflectionClass
-
--
- getModifiersString
-
--
- getName
-
--
- getNamespaceName
-
--
- getObjectId
-
--
- getParameters
-
--
- getParametersString
-
--
- getReturnType
-
--
- getRootEntity
-
--
- getRootEntityCollection
- - Get parent collection of entities
--
- getShortName
-
--
- getStartColumn
-
--
- getStartLine
-
--
- isDynamic
-
--
- isInitialization
-
--
- isPrivate
-
--
- isProtected
-
--
- isPublic
-
--
- isStatic
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```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 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 getImplementingClassName(): string;
-```
-
-
-
-
Parameters: not specified
-
-
Return value: string
-
-
-
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 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\FilterCondition\CommonFilterCondition;
-
-final class FalseCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface
-```
-
-False conditions, any object is not available
-
-
-
-
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getFinder
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\Iterator $fileInfoIterator);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $substring);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $substring |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct();
-```
-
-
-
-
Parameters: not specified
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct();
-```
-
-
-
-
Parameters: not specified
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct();
-```
-
-
-
-
Parameters: not specified
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct();
-```
-
-
-
-
Parameters: not specified
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct();
-```
-
-
-
-
Parameters: not specified
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct();
-```
-
-
-
-
Parameters: not specified
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct();
-```
-
-
-
-
Parameters: not specified
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct();
-```
-
-
-
-
Parameters: not specified
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct();
-```
-
-
-
-
Parameters: not specified
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, array $directories = []);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, array $directories = []);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity;
-
-final class MethodEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- add
-
--
- get
-
--
- getAllExceptInitializations
-
--
- getInitializations
-
--
- getIterator
- - Retrieve an external iterator
--
- has
-
--
- isEmpty
-
--
- loadMethodEntities
-
--
- remove
-
--
- unsafeGet
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
\ 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
-
-
-
-
-
-
-
-```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:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser;
-
-final class ProjectParser
-```
-
-Entity for project parsing using source locators
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- parse
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
\ 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity;
-
-final class PropertyEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- add
-
--
- get
-
--
- getIterator
- - Retrieve an external iterator
--
- has
-
--
- isEmpty
-
--
- loadPropertyEntities
-
--
- remove
-
--
- unsafeGet
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
\ 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getFinder
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(array $directories, array $exclude = [], bool $abortExecutionIfPartOfDirsNotExists = true);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $directories |
- array |
- - |
-
-
- $exclude |
- array |
- - |
-
-
- $abortExecutionIfPartOfDirsNotExists |
- bool |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity;
-
-abstract class RootEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- findEntity
-
--
- get
-
--
- getEntityCollectionName
-
--
- getEntityLinkData
-
--
- getIterator
- - Retrieve an external iterator
--
- getLoadedOrCreateNew
-
--
- has
-
--
- isEmpty
-
--
- remove
-
--
- updateEntitiesCache
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $search |
- string |
- - |
-
-
- $useUnsafeKeys |
- bool |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $rawLink |
- string |
- Raw link to an entity or entity element |
-
-
- $defaultEntityName |
- string | null |
- Entity name to use if the link does not contain a valid or existing entity name,
- but only a cursor on an entity element |
-
-
- $useUnsafeKeys |
- bool |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
- $withAddClassEntityToCollectionEvent |
- bool |
- - |
-
-
-
-
-
Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface
-
-
-
-
See:
-
-
-
-
-
-
-
-```php
-// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection
-
-public function has(string $objectName): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getFinder
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $filename);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $filename |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\SourceLocator;
-
-interface SourceLocatorInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- getFinder
-
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\FilterCondition\CommonFilterCondition;
-
-final class TrueCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface
-```
-
-True conditions, any object is available
-
-
-
-
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\ClassConstantFilterCondition;
-
-final class VisibilityCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface
-```
-
-Constant access modifier check
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string ...$visibilityModifiers);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $visibilityModifiers (variadic) |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\MethodFilterCondition;
-
-final class VisibilityCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface
-```
-
-Method access modifier check
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string ...$visibilityModifiers);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $visibilityModifiers (variadic) |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\FilterCondition\PropertyFilterCondition;
-
-final class VisibilityCondition implements \BumbleDocGen\Core\Parser\FilterCondition\ConditionInterface
-```
-
-Property access modifier check
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canAddToCollection
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string ...$visibilityModifiers);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $visibilityModifiers (variadic) |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterface $entity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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 class |
- Name in twig template |
- PL |
- Description |
-
-
- ClassEntityCollection |
- phpClassEntityCollection |
- PHP |
- Collection 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:
-
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Twig\Filter;
-
-final class AddIndentFromLeft implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface
-```
-
-Filter adds indent from left
-
-
-
-
-Settings:
-
-
-
- name |
- value |
-
-
- Filter name: |
- addIndentFromLeft |
-
-
-
-
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __invoke(string $text, int $identLength = 4, bool $skipFirstIdent = false): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $text |
- string |
- Processed text |
-
-
- $identLength |
- int |
- Indent size |
-
-
- $skipFirstIdent |
- bool |
- Skip 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Twig\Function;
-
-interface CustomFunctionInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Context;
-
-final class DocumentedEntityWrapper
-```
-
-Wrapper for the entity that was requested for documentation
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getDocRender
-
--
- getDocUrl
- - Get the relative path to the document to be generated
--
- getDocumentTransformableEntity
- - Get entity that is allowed to be documented
--
- getEntityName
-
--
- getFileName
- - The name of the file to be generated
--
- getKey
- - Get document key
--
- getParentDocFilePath
-
--
- setParentDocFilePath
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\Context\DocumentTransformableEntityInterface $documentTransformableEntity, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, string $parentDocFilePath);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function getDocUrl(): string;
-```
-
-
Get the relative path to the document to be generated
-
-
Parameters: not specified
-
-
Return value: string
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $parentDocFilePath |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- convertDirectoryStructureToFormattedString
-
--
- getDirectoryStructure
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function __invoke(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection ...$classEntityCollections): string;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: string
-
-
-
Throws:
-
-
-
-
-
-
-
-- #
- convertDirectoryStructureToFormattedString
- | source code
-
-
-```php
-public function convertDirectoryStructureToFormattedString(array $structure, string $prefix = '│', string $path = '/'): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $structure |
- array |
- - |
-
-
- $prefix |
- string |
- - |
-
-
- $path |
- string |
- - |
-
-
-
-
-
Return value: string
-
-
-
-
-
-
-
-
-```php
-public function getDirectoryStructure(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection ...$classEntityCollections): array;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity, string $cursor = '', bool $useShortName = true): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $entity |
- \BumbleDocGen\Core\Parser\Entity\RootEntityInterface |
- The entity for which we want to get the link |
-
-
- $cursor |
- string |
- Reference to an element inside an entity, for example, the name of a function/constant/property |
-
-
- $useShortName |
- bool |
- Use 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function __invoke(string $resourceName): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $resourceName |
- string |
- Resource 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
-
-
-
-
-
-
-
-```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:
-
-
-
- name |
- value |
-
-
- Filter name: |
- fixStrSize |
-
-
-
-
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __invoke(string $text, int $size, string $symbol = ' '): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $text |
- string |
- Processed text |
-
-
- $size |
- int |
- Required string size |
-
-
- $symbol |
- string |
- The 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function __invoke(string $currentPageTitle, string $templatePath, bool $skipFirstTemplatePage = true): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $currentPageTitle |
- string |
- Title of the current page |
-
-
- $templatePath |
- string |
- Path to the template from which the breadcrumbs will be generated |
-
-
- $skipFirstTemplatePage |
- bool |
- If 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-Constants:
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper $breadcrumbsHelper, \Psr\Log\LoggerInterface $logger);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function __invoke(string $key): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- The 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-: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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function __invoke(string $content, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity, string $blockType): string;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- beforeCreatingDocFile
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```php
-// Implemented in BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker
-
-public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile $event): void;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Twig\Filter;
-
-final class PregMatch implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface
-```
-
-Perform a regular expression match
-
-See:
-
-
-
-
-
-Settings:
-
-
-
- name |
- value |
-
-
- Filter name: |
- preg_match |
-
-
-
-
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __invoke(string $text, string $pattern): array;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $text |
- string |
- Processed text |
-
-
- $pattern |
- string |
- The 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
-
-
-
-
-
-
-
-```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:
-
-
-
- name |
- value |
-
-
- Filter name: |
- prepareSourceLink |
-
-
-
-
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __invoke(string $text): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $text |
- string |
- Processed 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, string $type = 'ul', bool $skipDescription = false, bool $useFullName = false): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $rootEntityCollection |
- \BumbleDocGen\Core\Parser\Entity\RootEntityCollection |
- Processed entity collection |
-
-
- $type |
- string |
- List tag type ( |
-
-
- $skipDescription |
- bool |
- Don't print description of this entities |
-
-
- $useFullName |
- bool |
- Use 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Twig\Filter;
-
-final class Quotemeta implements \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFilterInterface
-```
-
-Quote meta characters
-
-See:
-
-
-
-
-
-Settings:
-
-
-
- name |
- value |
-
-
- Filter name: |
- quotemeta |
-
-
-
-
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __invoke(string $text): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $text |
- string |
- Processed 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```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:
-
-
-
- name |
- value |
-
-
- Filter name: |
- removeLineBrakes |
-
-
-
-
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __invoke(string $text): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $text |
- string |
- Processed 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Context;
-
-final class RendererContext
-```
-
-Document rendering context
-
-
-
-
-
-
-
-Methods:
-
-
--
- addDependency
-
--
- clearDependencies
-
--
- getCurrentDocumentedEntityWrapper
-
--
- getCurrentTemplateFilePatch
- - Getting the path to the template file that is currently being worked on
--
- getDependencies
-
--
- setCurrentDocumentedEntityWrapper
-
--
- setCurrentTemplateFilePatch
- - Saving the path to the template file that is currently being worked on in the context
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function addDependency(\BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyInterface $dependency): void;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function clearDependencies(): void;
-```
-
-
-
-
Parameters: not specified
-
-
Return value: void
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $currentTemplateFilePath |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
-
- name |
- value |
-
-
- Filter name: |
- strTypeToUrl |
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __invoke
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper, \BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction, \Monolog\Logger $logger);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function __invoke(string $text, \BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, bool $useShortLinkVersion = false, bool $createDocument = false): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $text |
- string |
- Processed text |
-
-
- $rootEntityCollection |
- \BumbleDocGen\Core\Parser\Entity\RootEntityCollection |
- - |
-
-
- $useShortLinkVersion |
- bool |
- Shorten or not the link name. When shortening, only the shortName of the entity will be shown |
-
-
- $createDocument |
- bool |
- If 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getClassEntityCollection
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```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:
-
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-```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:
-
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
--
- onGettingResourceLink
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getContent
-
--
- getContext
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- setContent
-
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $content, \BumbleDocGen\Core\Renderer\Context\RendererContext $context);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function getContent(): 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 setContent(string $content): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $content |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-```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:
-
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-```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:
-
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
--
- onCreateDocumentedEntityWrapper
-
--
- onGetProjectTemplatesDirs
-
--
- onGetTemplatePathByRelativeDocPath
-
-
-
-
-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:
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function onGetProjectTemplatesDirs(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetProjectTemplatesDirs $event): void;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function onGetTemplatePathByRelativeDocPath(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetTemplatePathByRelativeDocPath $event): void;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- beforeCreatingDocFile
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $context, \BumbleDocGen\Core\Configuration\Configuration $configuration);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile $event): void;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getClassEntityCollection
-
--
- getRootEntity
-
--
- getUniqueExecutionId
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- disableClassLoading
-
--
- getEntity
-
--
- isClassCanBeLoad
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-Properties:
-
-
- -
- classCanBeLoad
-
-
-
-
-Property details:
-
-
-* #
- $classCanBeLoad
- **|** source code
-```php
-public bool $classCanBeLoad;
-
-```
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $entity);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function disableClassLoading(): void;
-```
-
-
-
-
Parameters: not specified
-
-
Return value: void
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getDocumentedEntityWrapper
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper $documentedEntityWrapper);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- addTemplatesDir
-
--
- getTemplatesDirs
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(array $templatesDirs);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $templatesDirs |
- array |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function addTemplatesDir(string $dirName): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $dirName |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getCustomTemplateFilePath
-
--
- getTemplateName
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- setCustomTemplateFilePath
-
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $templateName);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $templateName |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $customTemplateFilePath |
- string | 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getResourceName
-
--
- getResourceUrl
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- setResourceUrl
-
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $resourceName);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $resourceName |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $resourceUrl |
- string | 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- addBlockContentPluginResult
-
--
- getBlockContent
-
--
- getBlockContentPluginResults
-
--
- getBlockType
-
--
- getEntity
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $blockContent, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity, string $blockType);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function addBlockContentPluginResult(string $pluginResult): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $pluginResult |
- string |
- - |
-
-
-
-
-
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
-// 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Plugin\Event\Parser;
-
-final class OnLoadSourceLocatorsCollection extends \Symfony\Contracts\EventDispatcher\Event
-```
-
-Called when source locators are loaded
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getSourceLocatorsCollection
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection $sourceLocatorsCollection);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- beforeCreatingDocFile
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```php
-// Implemented in BumbleDocGen\Core\Plugin\CorePlugin\PageLinker\BasePageLinker
-
-public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile $event): void;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
--
- onCheckIsClassEntityCanBeLoad
-
--
- onGettingResourceLink
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink $event): void;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
--
- onCheckIsClassEntityCanBeLoad
-
--
- onGettingResourceLink
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink $event): void;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Plugin;
-
-interface PluginInterface extends \\Symfony\Component\EventDispatcher\EventSubscriberInterface implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
\ 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
--
- onCheckIsClassEntityCanBeLoad
-
--
- onGettingResourceLink
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser $composerParser);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
Return value: void
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function onGettingResourceLink(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink $event): void;
-```
-
-
-
-
Parameters:
-
-
-
-
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.
-
-
-
- Plugin |
- PL |
- Handles events |
- Description |
-
-
- LastPageCommitter |
- any |
-
-
- |
- Plugin for adding a block with information about the last commit and date of page update to the generated document |
-
-
- PageHtmlLinkerPlugin |
- any |
-
-
- |
- Adds URLs to empty links in HTML format;
- Links may contain:
- 1) Short entity name
- 2) Full entity name
- 3) Relative link to the entity file from the root directory of the project
- 4) Page title ( title )
- 5) Template key ( BreadcrumbsHelper::getTemplateLinkKey() )
- 6) Relative reference to the entity document from the root directory of the documentation |
-
-
- PageLinkerPlugin |
- any |
-
-
- |
- Adds URLs to empty links in HTML format;
- Links may contain:
- 1) Short entity name
- 2) Full entity name
- 3) Relative link to the entity file from the root directory of the project
- 4) Page title ( title )
- 5) Template key ( BreadcrumbsHelper::getTemplateLinkKey() )
- 6) Relative reference to the entity document from the root directory of the documentation |
-
-
- PageRstLinkerPlugin |
- any |
-
-
- |
- 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 |
-
-
- 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 |
-
-
- StubberPlugin |
- PHP |
-
-
- |
- The plugin allows you to automatically provide links to github repositories for documented classes from libraries included in composer |
-
-
- EntityDocUnifiedPlacePlugin |
- PHP |
-
-
- |
- 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
@@ -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:
-
-
--
- addArgument
- - Adds an argument.
--
- addOption
- - Adds an option.
--
- addUsage
- - Add a command usage example, it'll be prefixed with the command name.
--
- complete
- - Adds suggestions to $suggestions for the current completion input (e.g. option or argument).
--
- getAliases
- - Returns the aliases for the command.
--
- getApplication
- - Gets the application instance for this command.
--
- getDefaultDescription
-
--
- getDefaultName
-
--
- getDefinition
- - Gets the InputDefinition attached to this Command.
--
- getDescription
- - Returns the description for the command.
--
- getHelp
- - Returns the help for the command.
--
- getHelper
- - Gets a helper instance by name.
--
- getHelperSet
- - Gets the helper set.
--
- getName
- - Returns the command name.
--
- getNativeDefinition
- - Gets the InputDefinition to be used to create representations of this Command.
--
- getProcessedHelp
- - Returns the processed help for the command replacing the %command.name% and %command.full_name% patterns with the real values dynamically.
--
- getSynopsis
- - Returns the synopsis for the command.
--
- getUsages
- - Returns alternative usages of the command.
--
- ignoreValidationErrors
- - Ignores validation errors.
--
- isEnabled
- - Checks whether the command is enabled or not in the current environment.
--
- isHidden
-
--
- mergeApplicationDefinition
- - Merges the application definition with the command definition.
--
- run
- - Runs the command.
--
- setAliases
- - Sets the aliases for the command.
--
- setApplication
-
--
- setCode
- - Sets the code to execute when running this command.
--
- setDefinition
- - Sets an array of argument and option instances.
--
- setDescription
- - Sets the description for the command.
--
- setHelp
- - Sets the help for the command.
--
- setHelperSet
-
--
- setHidden
-
--
- setName
- - Sets the name of the command.
--
- setProcessTitle
- - Sets the process title of the command.
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $mode |
- int |
- The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL |
-
-
- $description |
- string |
- - |
-
-
- $default |
- mixed |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $shortcut |
- string | array |
- The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts |
-
-
- $mode |
- int |
- The option mode: One of the InputOption::VALUE_* constants |
-
-
- $description |
- string |
- - |
-
-
- $default |
- mixed |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $usage |
- string |
- - |
-
-
-
-
-
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:
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $short |
- bool |
- Whether 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $mergeArgs |
- bool |
- Whether 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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $aliases |
- iterable |
- An 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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $code |
- callable |
- A 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:
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setDescription(string $description): static;
-```
-
-
Sets the description for the command.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $description |
- string |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHelp(string $help): static;
-```
-
-
Sets the help for the command.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $help |
- string |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHelperSet(\Symfony\Component\Console\Helper\HelperSet $helperSet): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHidden(bool $hidden = true): static;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $hidden |
- bool |
- Whether 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $title |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Console\Command;
-
-final class AdditionalCommandCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- add
-
--
- create
-
--
- getIterator
- - Retrieve an external iterator
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getClassEntityCollection
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-
-
-```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
+
+
+
+
+
+
+
+```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:
+
+
+-
+ __construct
+
+
+
+Methods:
+
+
+-
+ getPhpEntitiesCollection
+
+
+
+
+
+
+
+
+
+Method details:
+
+
+
+
+
+```php
+public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\PhpEntitiesCollection $entitiesCollection);
+```
+
+
+
+
Parameters:
+
+
+
+
+
+
+
+
+
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:
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
@@ -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:
-
-
--
- add
- - Adds a command object.
--
- addCommands
- - Adds an array of command objects.
--
- all
- - Gets the commands (registered in the given namespace if provided).
--
- areExceptionsCaught
- - Gets whether to catch exceptions or not during commands execution.
--
- complete
- - Adds suggestions to $suggestions for the current completion input (e.g. option or argument).
--
- doRun
- - Runs the current application.
--
- extractNamespace
- - Returns the namespace part of the command name.
--
- find
- - Finds a command by name or alias.
--
- findNamespace
- - Finds a registered namespace by a name or an abbreviation.
--
- get
- - Returns a registered command by name or alias.
--
- getAbbreviations
- - Returns an array of possible abbreviations given a set of names.
--
- getDefinition
- - Gets the InputDefinition related to this Application.
--
- getHelp
- - Gets the help message.
--
- getHelperSet
- - Get the helper set associated with the command.
--
- getLongVersion
- - Returns the long version of the application.
--
- getName
- - Gets the name of the application.
--
- getNamespaces
- - Returns an array of all unique namespaces used by currently registered commands.
--
- getSignalRegistry
-
--
- getVersion
- - Gets the application version.
--
- has
- - Returns true if the command exists, false otherwise.
--
- isAutoExitEnabled
- - Gets whether to automatically exit after a command execution or not.
--
- isSingleCommand
-
--
- register
- - Registers a new command.
--
- renderThrowable
-
--
- reset
-
--
- run
- - Runs the current application.
--
- setAutoExit
- - Sets whether to automatically exit after a command execution or not.
--
- setCatchExceptions
- - Sets whether to catch exceptions or not during commands execution.
--
- setCommandLoader
-
--
- setDefaultCommand
- - Sets the default Command name.
--
- setDefinition
-
--
- setDispatcher
-
--
- setHelperSet
-
--
- setName
- - Sets the application name.
--
- setSignalsToDispatchEvent
-
--
- setVersion
- - Sets the application version.
-
@@ -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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $commands |
- array |
- An 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $namespace |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $limit |
- int |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $namespace |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $names |
- array |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $boolean |
- bool |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $boolean |
- bool |
- - |
-
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Application
-
-public function setCommandLoader(\Symfony\Component\Console\CommandLoader\CommandLoaderInterface $commandLoader): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $commandName |
- string |
- - |
-
-
- $isSingleCommand |
- bool |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Application
-
-public function setDefinition(\Symfony\Component\Console\Input\InputDefinition $definition): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Application
-
-public function setDispatcher(\Symfony\Contracts\EventDispatcher\EventDispatcherInterface $dispatcher): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Application
-
-public function setHelperSet(\Symfony\Component\Console\Helper\HelperSet $helperSet): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Application
-
-public function setName(string $name): mixed;
-```
-
-
Sets the application name.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Application
-
-public function setSignalsToDispatchEvent(int ...$signalsToDispatchEvent): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $signalsToDispatchEvent (variadic) |
- int |
- - |
-
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Application
-
-public function setVersion(string $version): mixed;
-```
-
-
Sets the application version.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $version |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- resolveValue
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function resolveValue(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, mixed $value): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getFinder
-
--
- getSourceLocator
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, array $psr4FileMap, array $classMap);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```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/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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Console\Command;
-
-abstract class BaseCommand extends \Symfony\Component\Console\Command\Command
-```
-
-Base class for all commands.
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- addArgument
- - Adds an argument.
--
- addOption
- - Adds an option.
--
- addUsage
- - Add a command usage example, it'll be prefixed with the command name.
--
- complete
- - Adds suggestions to $suggestions for the current completion input (e.g. option or argument).
--
- getAliases
- - Returns the aliases for the command.
--
- getApplication
- - Gets the application instance for this command.
--
- getDefaultDescription
-
--
- getDefaultName
-
--
- getDefinition
- - Gets the InputDefinition attached to this Command.
--
- getDescription
- - Returns the description for the command.
--
- getHelp
- - Returns the help for the command.
--
- getHelper
- - Gets a helper instance by name.
--
- getHelperSet
- - Gets the helper set.
--
- getName
- - Returns the command name.
--
- getNativeDefinition
- - Gets the InputDefinition to be used to create representations of this Command.
--
- getProcessedHelp
- - Returns the processed help for the command replacing the %command.name% and %command.full_name% patterns with the real values dynamically.
--
- getSynopsis
- - Returns the synopsis for the command.
--
- getUsages
- - Returns alternative usages of the command.
--
- ignoreValidationErrors
- - Ignores validation errors.
--
- isEnabled
- - Checks whether the command is enabled or not in the current environment.
--
- isHidden
-
--
- mergeApplicationDefinition
- - Merges the application definition with the command definition.
--
- run
- - Runs the command.
--
- setAliases
- - Sets the aliases for the command.
--
- setApplication
-
--
- setCode
- - Sets the code to execute when running this command.
--
- setDefinition
- - Sets an array of argument and option instances.
--
- setDescription
- - Sets the description for the command.
--
- setHelp
- - Sets the help for the command.
--
- setHelperSet
-
--
- setHidden
-
--
- setName
- - Sets the name of the command.
--
- setProcessTitle
- - Sets the process title of the command.
-
-
-
-Constants:
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $name = null);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $mode |
- int |
- The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL |
-
-
- $description |
- string |
- - |
-
-
- $default |
- mixed |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $shortcut |
- string | array |
- The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts |
-
-
- $mode |
- int |
- The option mode: One of the InputOption::VALUE_* constants |
-
-
- $description |
- string |
- - |
-
-
- $default |
- mixed |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $usage |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $short |
- bool |
- Whether 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $mergeArgs |
- bool |
- Whether 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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $aliases |
- iterable |
- An 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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $code |
- callable |
- A 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:
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setDescription(string $description): static;
-```
-
-
Sets the description for the command.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $description |
- string |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHelp(string $help): static;
-```
-
-
Sets the help for the command.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $help |
- string |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHelperSet(\Symfony\Component\Console\Helper\HelperSet $helperSet): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHidden(bool $hidden = true): static;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $hidden |
- bool |
- Whether 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $title |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity;
-
-abstract class BaseEntity implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface, \BumbleDocGen\Core\Parser\Entity\EntityInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- entityCacheIsOutdated
-
--
- getAbsoluteFileName
- - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
--
- getCacheKey
-
--
- getCachedEntityDependencies
-
--
- getDescription
-
--
- getDescriptionLinks
- - Get parsed links from description and doc blocks `see` and `link`
--
- getDocBlock
-
--
- getDocComment
- - Get the doc comment of an entity
--
- getDocCommentEntity
-
--
- getDocNote
-
--
- getExamples
- - Get parsed examples from `examples` doc block
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
--
- getFileSourceLink
-
--
- getFirstExample
- - Get first example from @examples doc block
--
- getImplementingReflectionClass
-
--
- getName
-
--
- getObjectId
- - Get entity unique ID
--
- getPhpHandlerSettings
-
--
- getRootEntityCollection
- - Get parent collection of entities
--
- getShortName
-
--
- getStartLine
-
--
- getThrows
- - Get parsed throws from `throws` doc block
--
- hasDescriptionLinks
-
--
- hasExamples
-
--
- hasThrows
-
--
- isDeprecated
-
--
- isEntityDataCacheOutdated
-
--
- isEntityFileCanBeLoad
-
--
- isInternal
-
--
- reloadEntityDependenciesCache
-
--
- removeEntityValueFromCache
-
--
- removeNotUsedEntityDataCache
-
-
-
-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 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $withLine |
- bool |
- - |
-
-
-
-
-
Return value: string |
null
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getFirstExample(): string;
-```
-
-
Get first example from @examples doc block
-
-
Parameters: not specified
-
-
Return value: string
-
-
-
-
-
-
-
-
-
-
-```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
-// 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity;
-
-abstract class BaseEntityCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- get
-
--
- getIterator
- - Retrieve an external iterator
--
- has
-
--
- isEmpty
-
--
- remove
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function get(string $objectName): \BumbleDocGen\Core\Parser\Entity\EntityInterface|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public function isEmpty(): bool;
-```
-
-
-
-
Parameters: not specified
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public function remove(string $objectName): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Plugin\CorePlugin\PageLinker;
-
-abstract class BasePageLinker implements \BumbleDocGen\Core\Plugin\PluginInterface, \Symfony\Component\EventDispatcher\EventSubscriberInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- beforeCreatingDocFile
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\BeforeCreatingDocFile $event): void;
-```
-
-
-
-
Parameters:
-
-
-
-
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
@@ -28,7 +27,10 @@ final class BasePhpStubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInte
-
getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
+
+-
+ onCheckIsEntityCanBeLoaded
+
-
onGettingResourceLink
@@ -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:
+
+
+
+
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\SourceLocator;
-
-abstract class BaseSourceLocator implements \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getFinder
-
-
-
-
-
-
-
-
-
-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
@@ -37,17 +36,14 @@ final class BeforeCreatingDocFile extends \Symfony\Contracts\EventDispatcher\Eve
getContent
-
- getContext
+ getOutputFilePatch
--
- isPropagationStopped
- - Is propagation stopped?
-
setContent
-
- stopPropagation
- - Stops the propagation of the event to further event listeners.
+ 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
-// 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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $outputFilePatch |
+ string |
+ - |
+
+
+
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
@@ -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:
+
+
+-
+ __construct
+
+
Methods:
-
- formatDataPrompt
+ getContent
-
- getName
+ getOutputFilePatch
-
- getSystemPrompt
+ setContent
-
- 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
+
+
+
+
+
+
+
+```php
+namespace BumbleDocGen\Core\Plugin\Event\Parser;
+
+final class BeforeParsingProcess extends \Symfony\Contracts\EventDispatcher\Event
+```
+
+
+
+
+
+
+
+
+
Initialization methods:
+
+
+-
+ __construct
+
+
+
+
+
+
+
+
+
+
+
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:
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-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:
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Breadcrumbs;
-
-final class BreadcrumbsHelper
-```
-
-Helper entity for working with breadcrumbs
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getAllPageLinks
-
--
- getBreadcrumbs
- - Get breadcrumbs as an array
--
- getBreadcrumbsForTemplates
-
--
- getNearestIndexFile
-
--
- getPageDataByKey
-
--
- getPageDocFileByKey
-
--
- getPageLinkByKey
-
--
- getTemplateLinkKey
-
--
- getTemplateTitle
- - Get the name of a template by its URL.
--
- renderBreadcrumbs
- - Returns an HTML string with rendered breadcrumbs
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $filePatch |
- string |
- - |
-
-
- $fromCurrent |
- bool |
- - |
-
-
-
-
-
Return value: array
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getBreadcrumbsForTemplates(string $filePatch, bool $fromCurrent = true): array;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $filePatch |
- string |
- - |
-
-
- $fromCurrent |
- bool |
- - |
-
-
-
-
-
Return value: array
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getNearestIndexFile(string $templateName): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $templateName |
- string |
- - |
-
-
-
-
-
Return value: string
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getPageDataByKey(string $key): array|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
-
-
-
Return value: array |
null
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getPageDocFileByKey(string $key): string|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
-
-
-
Return value: string |
null
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getPageLinkByKey(string $key): string|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
-
-
-
Return value: string |
null
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getTemplateLinkKey(string $templateName): string|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $templateName |
- string |
- - |
-
-
-
-
-
Return value: string |
null
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getTemplateTitle(string $templateName): string;
-```
-
-
Get the name of a template by its URL.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $templateName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $currentPageTitle |
- string |
- - |
-
-
- $filePatch |
- string |
- - |
-
-
- $fromCurrent |
- bool |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Breadcrumbs;
-
-final class BreadcrumbsTwigEnvironment
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- render
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct();
-```
-
-
-
-
Parameters: not specified
-
-
-
-
-
-
-
-
-
-```php
-public function render(mixed $name, array $context = []): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- mixed |
- - |
-
-
- $context |
- array |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\Cache\CacheKey;
-
-interface CacheKeyGeneratorInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- generateKey
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public static function generateKey(string $cacheNamespace, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface $entity, array $args): string;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\Cache;
-
-interface CacheableEntityInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- entityCacheIsOutdated
-
--
- getCacheKey
-
--
- getObjectId
-
--
- isEntityDataCacheOutdated
-
--
- isEntityFileCanBeLoad
-
--
- reloadEntityDependenciesCache
-
--
- removeNotUsedEntityDataCache
-
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\Cache;
-
-trait CacheableEntityTrait
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- entityCacheIsOutdated
-
--
- getCacheKey
-
--
- isEntityDataCacheOutdated
-
--
- removeEntityValueFromCache
-
--
- removeNotUsedEntityDataCache
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\Cache;
-
-final class CacheableEntityWrapperFactory
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- createWrappedEntityClass
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function createWrappedEntityClass(string $className, string $wrapperName): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $className |
- string |
- - |
-
-
- $wrapperName |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\Cache;
-
-trait CacheableEntityWrapperTrait
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- entityCacheIsOutdated
-
--
- getCacheKey
-
--
- isEntityDataCacheOutdated
-
--
- isEntityFileCanBeLoad
-
--
- removeEntityValueFromCache
-
--
- removeNotUsedEntityDataCache
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\Cache;
-
-final class CacheableMethod
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getCacheKeyGeneratorClass
-
--
- getCacheSeconds
-
-
-
-
-Constants:
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(int $cacheSeconds = self::MONTH_SECONDS, string $cacheKeyGeneratorClass = \BumbleDocGen\Core\Parser\Entity\Cache\CacheKey\DefaultCacheKeyGenerator::class);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $cacheSeconds |
- int |
- - |
-
-
- $cacheKeyGeneratorClass |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Cache;
-
-final class CacheablePhpEntityFactory
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- createClassEntity
-
--
- createClassEntityByReflection
-
--
- createConstantEntity
-
--
- createDynamicMethodEntity
-
--
- createMethodEntity
-
--
- createPropertyEntity
-
--
- createSubClassEntity
-
--
- createSubClassEntityByReflection
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function createClassEntity(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection, string $className, string|null $relativeFileName = null): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity;
-```
-
-
-
-
Parameters:
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
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
-
-
-
-
-
-
-:warning: Is internal
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\Internal;
-
-final class CachedSourceLocator implements \Roave\BetterReflection\SourceLocator\Type\SourceLocator
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- locateIdentifier
-
--
- locateIdentifiersByType
- - Find all identifiers of a type
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\Roave\BetterReflection\SourceLocator\Type\SourceLocator $sourceLocator, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Cache\SourceLocatorCacheItemPool $cache);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function locateIdentifier(\Roave\BetterReflection\Reflector\Reflector $reflector, \Roave\BetterReflection\Identifier\Identifier $identifier): \Roave\BetterReflection\Reflection\Reflection|null;
-```
-
-
-
-
Parameters:
-
-
-
-
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:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- cursorToDocAttributeLinkFragment
-
--
- documentCreationAllowed
-
--
- entityCacheIsOutdated
-
--
- entityDataCanBeLoaded
-
--
- getAbsoluteFileName
- - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
--
- getCacheKey
-
--
- getCachedEntityDependencies
-
--
- getCasesNames
-
--
- getConstant
-
--
- getConstantEntity
-
--
- getConstantEntityCollection
-
--
- getConstants
-
--
- getConstantsData
-
--
- getDescription
-
--
- getDescriptionLinks
- - Get parsed links from description and doc blocks `see` and `link`
--
- getDocBlock
-
--
- getDocComment
- - Get the doc comment of an entity
--
- getDocCommentEntity
-
--
- getDocNote
-
--
- getDocRender
-
--
- getEndLine
-
--
- getEntityDependencies
-
--
- getExamples
- - Get parsed examples from `examples` doc block
--
- getExtends
-
--
- getFileContent
-
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
--
- getFileSourceLink
-
--
- getFirstExample
- - Get first example from @examples doc block
--
- getFullFileName
-
--
- getImplementingReflectionClass
-
--
- getInterfaceNames
-
--
- getInterfacesEntities
-
--
- getInterfacesString
-
--
- getMethodEntity
-
--
- getMethodEntityCollection
-
--
- getMethodsData
-
--
- getModifiersString
-
--
- getName
-
--
- getNamespaceName
-
--
- getObjectId
- - Get entity unique ID
--
- getParentClass
-
--
- getParentClassName
-
--
- getParentClassNames
-
--
- getPhpHandlerSettings
-
--
- getPluginData
-
--
- getPropertiesData
-
--
- getPropertyEntity
-
--
- getPropertyEntityCollection
-
--
- getReflector
-
--
- getRelativeFileName
-
--
- getRootEntityCollection
- - Get parent collection of entities
--
- getShortName
-
--
- getStartLine
-
--
- getThrows
- - Get parsed throws from `throws` doc block
--
- getTraitsNames
-
--
- hasAnnotationKey
-
--
- hasConstant
-
--
- hasDescriptionLinks
-
--
- hasExamples
-
--
- hasMethod
-
--
- hasParentClass
-
--
- hasProperty
-
--
- hasThrows
-
--
- hasTraits
-
--
- implementsInterface
-
--
- isAbstract
-
--
- isClassLoad
-
--
- isDeprecated
-
--
- isEntityDataCacheOutdated
-
--
- isEntityFileCanBeLoad
-
--
- isEntityNameValid
- - Check if entity name is valid
--
- isEnum
-
--
- isExternalLibraryEntity
- - The entity is loaded from a third party library and should not be treated the same as a standard one
--
- isInGit
- - Checking if class file is in git repository
--
- isInstantiable
-
--
- isInterface
-
--
- isInternal
-
--
- isSubclassOf
-
--
- isTrait
-
--
- loadPluginData
-
--
- reloadEntityDependenciesCache
-
--
- removeEntityValueFromCache
-
--
- removeNotUsedEntityDataCache
-
--
- setReflectionClass
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $cursor |
- string |
- - |
-
-
- $isForDocument |
- bool |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $constantName |
- string |
- - |
-
-
- $unsafe |
- bool |
- - |
-
-
-
-
-
Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ConstantEntity |
null
-
-
-
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
-// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity
-
-public function getDocNote(): string;
-```
-
-
-
-
Parameters: not specified
-
-
Return value: string
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $withLine |
- bool |
- - |
-
-
-
-
-
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 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $methodName |
- string |
- - |
-
-
- $unsafe |
- bool |
- - |
-
-
-
-
-
Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\MethodEntity |
null
-
-
-
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 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 getPluginData(string $pluginKey): array|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $pluginKey |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $propertyName |
- string |
- - |
-
-
- $unsafe |
- bool |
- - |
-
-
-
-
-
Return value: \BumbleDocGen\LanguageHandler\Php\Parser\Entity\PropertyEntity |
null
-
-
-
Throws:
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function getRelativeFileName(bool $loadIfEmpty = true): string|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $loadIfEmpty |
- bool |
- - |
-
-
-
-
-
Return value: string |
null
-
-
-
Throws:
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $annotationKey |
- string |
- - |
-
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public function hasConstant(string $constant): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $constant |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $method |
- string |
- - |
-
-
-
-
-
Return value: bool
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function hasParentClass(string $parentClassName): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $parentClassName |
- string |
- - |
-
-
-
-
-
Return value: bool
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function hasProperty(string $property): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $property |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $interfaceName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $entityName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $className |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $pluginKey |
- string |
- - |
-
-
- $data |
- array |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\CollectionLogOperation;
-
-final class CloneOperation implements \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- call
-
--
- getKey
-
--
- getOperationsCollection
-
--
- incrementUsageCount
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $functionName, array $args, \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationsCollection $operationsCollection);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function call(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection): \BumbleDocGen\Core\Parser\Entity\RootEntityCollection;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityCollection
-
-
-
-
-
-
-
-
-```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/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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser;
-
-final class ComposerParser
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getComposerPackageDataByClassName
-
--
- getComposerPackages
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function getComposerPackageDataByClassName(string $className): array|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $className |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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
isCheckFileInGitBeforeCreatingDocEnabled
+
+ renderWithFrontMatter
+
useSharedCache
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -511,7 +513,7 @@ public function getProjectRoot(): string;
Throws:
@@ -542,7 +544,7 @@ public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\Sou
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+
\BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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:
-
-
--
- addArgument
- - Adds an argument.
--
- addOption
- - Adds an option.
--
- addUsage
- - Add a command usage example, it'll be prefixed with the command name.
--
- complete
- - Adds suggestions to $suggestions for the current completion input (e.g. option or argument).
--
- getAliases
- - Returns the aliases for the command.
--
- getApplication
- - Gets the application instance for this command.
--
- getDefaultDescription
-
--
- getDefaultName
-
--
- getDefinition
- - Gets the InputDefinition attached to this Command.
--
- getDescription
- - Returns the description for the command.
--
- getHelp
- - Returns the help for the command.
--
- getHelper
- - Gets a helper instance by name.
--
- getHelperSet
- - Gets the helper set.
--
- getName
- - Returns the command name.
--
- getNativeDefinition
- - Gets the InputDefinition to be used to create representations of this Command.
--
- getProcessedHelp
- - Returns the processed help for the command replacing the %command.name% and %command.full_name% patterns with the real values dynamically.
--
- getSynopsis
- - Returns the synopsis for the command.
--
- getUsages
- - Returns alternative usages of the command.
--
- ignoreValidationErrors
- - Ignores validation errors.
--
- isEnabled
- - Checks whether the command is enabled or not in the current environment.
--
- isHidden
-
--
- mergeApplicationDefinition
- - Merges the application definition with the command definition.
--
- run
- - Runs the command.
--
- setAliases
- - Sets the aliases for the command.
--
- setApplication
-
--
- setCode
- - Sets the code to execute when running this command.
--
- setDefinition
- - Sets an array of argument and option instances.
--
- setDescription
- - Sets the description for the command.
--
- setHelp
- - Sets the help for the command.
--
- setHelperSet
-
--
- setHidden
-
--
- setName
- - Sets the name of the command.
--
- setProcessTitle
- - Sets the process title of the command.
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $mode |
- int |
- The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL |
-
-
- $description |
- string |
- - |
-
-
- $default |
- mixed |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $shortcut |
- string | array |
- The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts |
-
-
- $mode |
- int |
- The option mode: One of the InputOption::VALUE_* constants |
-
-
- $description |
- string |
- - |
-
-
- $default |
- mixed |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $usage |
- string |
- - |
-
-
-
-
-
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:
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $short |
- bool |
- Whether 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $mergeArgs |
- bool |
- Whether 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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $aliases |
- iterable |
- An 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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $code |
- callable |
- A 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:
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setDescription(string $description): static;
-```
-
-
Sets the description for the command.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $description |
- string |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHelp(string $help): static;
-```
-
-
Sets the help for the command.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $help |
- string |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHelperSet(\Symfony\Component\Console\Helper\HelperSet $helperSet): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHidden(bool $hidden = true): static;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $hidden |
- bool |
- Whether 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $title |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Configuration;
-
-final class ConfigurationKey
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- all
-
-
-
-
-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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Configuration;
-
-final class ConfigurationParameterBag
-```
-
-Wrapper for getting raw configuration file data
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- addValueFromFileIfNotExists
-
--
- addValueIfNotExists
-
--
- get
-
--
- getAll
-
--
- getConfigValues
-
--
- getConfigVersion
-
--
- getSubConfigurationParameterBag
-
--
- has
-
--
- loadFromArray
-
--
- loadFromFiles
-
--
- resolveValue
-
--
- set
-
--
- validateAndGetBooleanValue
-
--
- validateAndGetClassListValue
-
--
- validateAndGetClassValue
-
--
- validateAndGetDirectoryPathValue
-
--
- validateAndGetFilePathValue
-
--
- validateAndGetStringValue
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\ValueTransformer\ValueToClassTransformer $valueToClassTransformer, array $resolvers);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function addValueFromFileIfNotExists(string $name, string ...$fileNames): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $fileNames (variadic) |
- string |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function addValueIfNotExists(string $name, mixed $value): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $value |
- mixed |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function get(string $name, bool $useResolvers = true): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $useResolvers |
- bool |
- - |
-
-
-
-
-
Return value: mixed
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getAll(bool $useResolvers = true): array;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $useResolvers |
- bool |
- - |
-
-
-
-
-
Return value: array
-
-
-
-
-
-
-
-
-```php
-public function getConfigValues(string ...$configurationFiles): array;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $parentKey |
- string |
- - |
-
-
-
-
-
Return value: \BumbleDocGen\Core\Configuration\ConfigurationParameterBag
-
-
-
-
-
-
-
-
-```php
-public function has(mixed $name): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- mixed |
- - |
-
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public function loadFromArray(array $parameters): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $parameters |
- array |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function loadFromFiles(string ...$fileNames): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $fileNames (variadic) |
- string |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function resolveValue(mixed $value): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $value |
- mixed |
- - |
-
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-public function set(string $name, mixed $value): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $value |
- mixed |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function validateAndGetBooleanValue(string $parameterName): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $parameterName |
- string |
- - |
-
-
-
-
-
Return value: bool
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function validateAndGetClassListValue(string $parameterName, string $classInterfaceName, bool $nullable = true): array;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $parameterName |
- string |
- - |
-
-
- $classInterfaceName |
- string |
- - |
-
-
- $nullable |
- bool |
- - |
-
-
-
-
-
Return value: array
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function validateAndGetClassValue(string $parameterName, string $classInterfaceName): object;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $parameterName |
- string |
- - |
-
-
- $classInterfaceName |
- string |
- - |
-
-
-
-
-
Return value: object
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function validateAndGetDirectoryPathValue(string $parameterName, bool $nullable = true): string|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $parameterName |
- string |
- - |
-
-
- $nullable |
- bool |
- - |
-
-
-
-
-
Return value: string |
null
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function validateAndGetFilePathValue(string $parameterName, array $fileExtensions, bool $nullable = true): string|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $parameterName |
- string |
- - |
-
-
- $fileExtensions |
- string[] |
- - |
-
-
- $nullable |
- bool |
- - |
-
-
-
-
-
Return value: string |
null
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function validateAndGetStringValue(string $parameterName, bool $nullable = true): string|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $parameterName |
- string |
- - |
-
-
- $nullable |
- bool |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Twig\Filter;
-
-interface CustomFilterInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- getName
-
--
- getOptions
-
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Twig\Filter;
-
-final class CustomFiltersCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- add
-
--
- create
-
--
- get
-
--
- getIterator
- - Retrieve an external iterator
--
- getTwigFilters
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Twig\Function;
-
-final class CustomFunctionsCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- add
-
--
- create
-
--
- get
-
--
- getIterator
- - Retrieve an external iterator
--
- getTwigFunctions
-
--
- has
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator;
-
-interface CustomSourceLocatorInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- getSourceLocator
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
\ 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:
+
+
+-
+ __construct
+
+
+
+Methods:
+
+
+-
+ afterRenderingEntities
+
+-
+ beforeCreatingDocFile
+
+-
+ getSubscribedEvents
+
+-
+ onCreateDocumentedEntityWrapper
+
+-
+ onGetProjectTemplatesDirs
+
+-
+ onGetTemplatePathByRelativeDocPath
+
+
+
+
+Constants:
+
+
+
+
+
+
+Method details:
+
+
+
+
+
+```php
+public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper $breadcrumbsHelper);
+```
+
+
+
+
Parameters:
+
+
+
+
+
+
+
+
+
+
+
+```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:
+
+
+
+
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:
+
+
+
+
Return value: void
+
+
+
+
+
+
+
+
+```php
+public function onGetProjectTemplatesDirs(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetProjectTemplatesDirs $event): void;
+```
+
+
+
+
Parameters:
+
+
+
+
Return value: void
+
+
+
+
+
+
+
+
+```php
+public function onGetTemplatePathByRelativeDocPath(\BumbleDocGen\Core\Plugin\Event\Renderer\OnGetTemplatePathByRelativeDocPath $event): void;
+```
+
+
+
+
Parameters:
+
+
+
+
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\Cache\CacheKey;
-
-final class DefaultCacheKeyGenerator implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheKey\CacheKeyGeneratorInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- generateKey
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public static function generateKey(string $cacheNamespace, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface $entity, array $args): string;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Context\Dependency;
-
-final class DirectoryDependency implements \BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- create
-
--
- isChanged
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $dirInternalLink, string $hash);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $dirInternalLink |
- string |
- - |
-
-
- $hash |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function isChanged(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\AI\Generators;
-
-final class DocBlocksGenerator
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- generateDocBlocksForMethodsWithoutIt
-
--
- hasMethodsWithoutDocBlocks
-
-
-
-
-Constants:
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\AI\ProviderInterface $aiProvider, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function generateDocBlocksForMethodsWithoutIt(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $rootEntity, int $mode = self::MODE_READ_ONLY_SIGNATURES): array;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: array
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function hasMethodsWithoutDocBlocks(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $rootEntity): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
@@ -35,16 +34,31 @@ final class DocGenerator
-
addDocBlocks
- - 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
+-
+ addPlugin
+
-
generate
- Generates documentation using configuration
-
generateReadmeTemplate
+ - Creates a `README.md` template filled with basic information using LLM
+-
+ getConfiguration
+
+-
+ getConfigurationKey
+
+-
+ getConfigurationKeys
-
parseAndGetRootEntityCollectionsGroup
+-
+ 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:
+
+
+
+
+
+
+
+```php
+public function addPlugin(\BumbleDocGen\Core\Plugin\PluginInterface|string $plugin): void;
+```
+
+
+
+
Parameters:
+
+
+
+
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 getConfigurationKey(string $key): void;
+```
+
+
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $key |
+ string |
+ - |
+
+
+
+
+
Return value: void
+
+
+
Throws:
+
+
+
+
+
+
+
+
+
+```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:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $afterPreparation |
+ callable | null |
+ - |
+
+
+ $afterDocChanged |
+ callable | null |
+ - |
+
+
+ $timeout |
+ int |
+ - |
+
+
+
+
+
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen;
-
-final class DocGeneratorFactory
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- create
-
--
- createByConfigArray
-
--
- createConfiguration
-
--
- setCustomConfigurationParameters
-
--
- setCustomDiDefinitions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $diConfig = __DIR__ . '/di-config.php');
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $diConfig |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function create(string|null ...$configurationFiles): \BumbleDocGen\DocGenerator;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $configurationFiles (variadic) |
- string | null |
- - |
-
-
-
-
-
Return value: \BumbleDocGen\DocGenerator
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function createByConfigArray(array $config): \BumbleDocGen\DocGenerator;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $config |
- array |
- - |
-
-
-
-
-
Return value: \BumbleDocGen\DocGenerator
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function createConfiguration(string ...$configurationFiles): \BumbleDocGen\Core\Configuration\Configuration;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $configurationFiles (variadic) |
- string |
- - |
-
-
-
-
-
Return value: \BumbleDocGen\Core\Configuration\Configuration
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function setCustomConfigurationParameters(array $customConfigurationParameters): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $customConfigurationParameters |
- array |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function setCustomDiDefinitions(array $definitions): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $definitions |
- array |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Context;
-
-interface DocumentTransformableEntityInterface
-```
-
-Interface for entities that can be generated into documents
-
-
-
-
-
-
-
-Methods:
-
-
--
- cursorToDocAttributeLinkFragment
-
--
- documentCreationAllowed
-
--
- entityCacheIsOutdated
-
--
- getDocRender
-
--
- getName
-
--
- getRootEntityCollection
-
--
- getShortName
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocument = true): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $cursor |
- string |
- - |
-
-
- $isForDocument |
- bool |
- - |
-
-
-
-
-
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 getName(): string;
-```
-
-
-
-
Parameters: not specified
-
-
Return value: string
-
-
-
-
-
-
-
-
-
-
-```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
-
count
- - Count elements of an object
+
-
createAndAddDocumentedEntityWrapper
@@ -44,7 +43,7 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T
-
getIterator
- - Retrieve an external iterator
+
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
@@ -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
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
\DI\DependencyException
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Cache;
-
-final class EntityCacheItemPool implements \Psr\Cache\CacheItemPoolInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- clear
- - Deletes all items in the pool.
--
- commit
- - Persists any deferred cache items.
--
- deleteItem
- - Removes the item from the pool.
--
- deleteItems
- - Removes multiple items from the pool.
--
- getItem
- - Returns a Cache Item representing the specified key.
--
- getItems
- - Returns a traversable set of cache items.
--
- hasItem
- - Confirms if the cache contains specified cache item.
--
- save
- - Persists a cache item immediately.
--
- saveDeferred
- - Sets a cache item to be persisted later.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- The key to delete. |
-
-
-
-
-
Return value: bool
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function deleteItems(array $keys): bool;
-```
-
-
Removes multiple items from the pool.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $keys |
- string[] |
- 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $keys |
- string[] |
- 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- The 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:
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public function saveDeferred(\Psr\Cache\CacheItemInterface $item): bool;
-```
-
-
Sets a cache item to be persisted later.
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-:warning: Is internal
-```php
-namespace BumbleDocGen\Core\Parser\Entity\Cache;
-
-final class EntityCacheStorageHelper
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- addItemValueToCache
-
--
- getItemValueFromCache
-
--
- getItemValues
-
--
- getUsedCacheItemsKeys
-
--
- removeItemValueFromCache
-
--
- saveCache
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Cache\EntityCacheItemPool $cacheItemPool);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function addItemValueToCache(string $cacheKey, string $itemKey, mixed $value, int $expiresAfter): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $cacheKey |
- string |
- - |
-
-
- $itemKey |
- string |
- - |
-
-
- $value |
- mixed |
- - |
-
-
- $expiresAfter |
- int |
- - |
-
-
-
-
-
Return value: void
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getItemValueFromCache(string $cacheKey, string $itemKey): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $cacheKey |
- string |
- - |
-
-
- $itemKey |
- string |
- - |
-
-
-
-
-
Return value: mixed
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getItemValues(string $cacheKey): array;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $cacheKey |
- string |
- - |
-
-
-
-
-
Return value: array
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getUsedCacheItemsKeys(string $cacheKey): array;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $cacheKey |
- string |
- - |
-
-
-
-
-
Return value: array
-
-
-
-
-
-
-
-
-```php
-public function removeItemValueFromCache(string $cacheKey, string $itemKey): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $cacheKey |
- string |
- - |
-
-
- $itemKey |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer;
-
-final class EntityDocRendererHelper
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getEntityDataByLink
-
--
- getEntityUrlDataByLink
-
-
-
-
-Constants:
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup, \BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl $getDocumentedEntityUrlFunction);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function getEntityDataByLink(string $linkString, \BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, string|null $defaultEntityName = null, bool $useUnsafeKeys = true): array;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: array
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getEntityUrlDataByLink(string $linkString, string|null $defaultEntityClassName = null, bool $createDocument = true): array;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $linkString |
- string |
- - |
-
-
- $defaultEntityClassName |
- string | null |
- - |
-
-
- $createDocument |
- bool |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\EntityDocRenderer;
-
-interface EntityDocRendererInterface
-```
-
-Entity documentation renderer interface
-
-
-
-
-
-
-
-Methods:
-
-
--
- getDocFileExtension
-
--
- getDocFileNamespace
-
--
- getRenderedText
- - Get rendered documentation for an entity
--
- isAvailableForEntity
- - Can this render be used to create entity documentation
-
-
-
-
-
-
-
-
-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:
-
-
-
-
Return value: string
-
-
-
-
-
-
-
-
-```php
-public function isAvailableForEntity(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity): bool;
-```
-
-
Can this render be used to create entity documentation
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\EntityDocRenderer;
-
-final class EntityDocRenderersCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- add
-
--
- getFirstMatchingRender
-
--
- getIterator
- - Retrieve an external iterator
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-
-
-
-
-```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.
-
getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
+
-
onCreateDocumentedEntityWrapper
@@ -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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity;
-
-interface EntityInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- entityCacheIsOutdated
-
--
- getAbsoluteFileName
- - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
--
- getName
-
--
- getObjectId
-
--
- getRootEntityCollection
- - Get parent collection of entities
--
- getShortName
-
-
-
-
-
-
-
-
-
-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 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Context\Dependency;
-
-final class FileDependency implements \BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __serialize
-
--
- __unserialize
-
--
- create
-
--
- isChanged
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $fileInternalLink, string $hash, string|null $contentFilterRegex, int|null $matchIndex);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $fileInternalLink |
- string |
- - |
-
-
- $hash |
- string |
- - |
-
-
- $contentFilterRegex |
- string | null |
- - |
-
-
- $matchIndex |
- int | null |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function __serialize(): array;
-```
-
-
-
-
Parameters: not specified
-
-
Return value: array
-
-
-
-
-
-
-
-
-```php
-public function __unserialize(array $data): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $data |
- array |
- - |
-
-
-
-
-
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:
-
-
-
-
Return value: \BumbleDocGen\Core\Renderer\Context\Dependency\FileDependency
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function isChanged(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
@@ -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:
-
-
--
- addArgument
- - Adds an argument.
--
- addOption
- - Adds an option.
--
- addUsage
- - Add a command usage example, it'll be prefixed with the command name.
--
- complete
- - Adds suggestions to $suggestions for the current completion input (e.g. option or argument).
--
- getAliases
- - Returns the aliases for the command.
--
- getApplication
- - Gets the application instance for this command.
--
- getDefaultDescription
-
--
- getDefaultName
-
--
- getDefinition
- - Gets the InputDefinition attached to this Command.
--
- getDescription
- - Returns the description for the command.
--
- getHelp
- - Returns the help for the command.
--
- getHelper
- - Gets a helper instance by name.
--
- getHelperSet
- - Gets the helper set.
--
- getName
- - Returns the command name.
--
- getNativeDefinition
- - Gets the InputDefinition to be used to create representations of this Command.
--
- getProcessedHelp
- - Returns the processed help for the command replacing the %command.name% and %command.full_name% patterns with the real values dynamically.
--
- getSynopsis
- - Returns the synopsis for the command.
--
- getUsages
- - Returns alternative usages of the command.
--
- ignoreValidationErrors
- - Ignores validation errors.
--
- isEnabled
- - Checks whether the command is enabled or not in the current environment.
--
- isHidden
-
--
- mergeApplicationDefinition
- - Merges the application definition with the command definition.
--
- run
- - Runs the command.
--
- setAliases
- - Sets the aliases for the command.
--
- setApplication
-
--
- setCode
- - Sets the code to execute when running this command.
--
- setDefinition
- - Sets an array of argument and option instances.
--
- setDescription
- - Sets the description for the command.
--
- setHelp
- - Sets the help for the command.
--
- setHelperSet
-
--
- setHidden
-
--
- setName
- - Sets the name of the command.
--
- setProcessTitle
- - Sets the process title of the command.
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $mode |
- int |
- The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL |
-
-
- $description |
- string |
- - |
-
-
- $default |
- mixed |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $shortcut |
- string | array |
- The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts |
-
-
- $mode |
- int |
- The option mode: One of the InputOption::VALUE_* constants |
-
-
- $description |
- string |
- - |
-
-
- $default |
- mixed |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $usage |
- string |
- - |
-
-
-
-
-
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:
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $short |
- bool |
- Whether 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $mergeArgs |
- bool |
- Whether 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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $aliases |
- iterable |
- An 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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $code |
- callable |
- A 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:
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setDescription(string $description): static;
-```
-
-
Sets the description for the command.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $description |
- string |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHelp(string $help): static;
-```
-
-
Sets the help for the command.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $help |
- string |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHelperSet(\Symfony\Component\Console\Helper\HelperSet $helperSet): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHidden(bool $hidden = true): static;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $hidden |
- bool |
- Whether 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $title |
- string |
- - |
-
-
-
-
-
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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \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
@@ -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:
-
-
--
- addArgument
- - Adds an argument.
--
- addOption
- - Adds an option.
--
- addUsage
- - Add a command usage example, it'll be prefixed with the command name.
--
- complete
- - Adds suggestions to $suggestions for the current completion input (e.g. option or argument).
--
- getAliases
- - Returns the aliases for the command.
--
- getApplication
- - Gets the application instance for this command.
--
- getDefaultDescription
-
--
- getDefaultName
-
--
- getDefinition
- - Gets the InputDefinition attached to this Command.
--
- getDescription
- - Returns the description for the command.
--
- getHelp
- - Returns the help for the command.
--
- getHelper
- - Gets a helper instance by name.
--
- getHelperSet
- - Gets the helper set.
--
- getName
- - Returns the command name.
--
- getNativeDefinition
- - Gets the InputDefinition to be used to create representations of this Command.
--
- getProcessedHelp
- - Returns the processed help for the command replacing the %command.name% and %command.full_name% patterns with the real values dynamically.
--
- getSynopsis
- - Returns the synopsis for the command.
--
- getUsages
- - Returns alternative usages of the command.
--
- ignoreValidationErrors
- - Ignores validation errors.
--
- isEnabled
- - Checks whether the command is enabled or not in the current environment.
--
- isHidden
-
--
- mergeApplicationDefinition
- - Merges the application definition with the command definition.
--
- run
- - Runs the command.
--
- setAliases
- - Sets the aliases for the command.
--
- setApplication
-
--
- setCode
- - Sets the code to execute when running this command.
--
- setDefinition
- - Sets an array of argument and option instances.
--
- setDescription
- - Sets the description for the command.
--
- setHelp
- - Sets the help for the command.
--
- setHelperSet
-
--
- setHidden
-
--
- setName
- - Sets the name of the command.
--
- setProcessTitle
- - Sets the process title of the command.
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $mode |
- int |
- The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL |
-
-
- $description |
- string |
- - |
-
-
- $default |
- mixed |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
- $shortcut |
- string | array |
- The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts |
-
-
- $mode |
- int |
- The option mode: One of the InputOption::VALUE_* constants |
-
-
- $description |
- string |
- - |
-
-
- $default |
- mixed |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $usage |
- string |
- - |
-
-
-
-
-
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:
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $short |
- bool |
- Whether 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $mergeArgs |
- bool |
- Whether 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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $aliases |
- iterable |
- An 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:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $code |
- callable |
- A 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:
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setDescription(string $description): static;
-```
-
-
Sets the description for the command.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $description |
- string |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHelp(string $help): static;
-```
-
-
Sets the help for the command.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $help |
- string |
- - |
-
-
-
-
-
Return value: static
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHelperSet(\Symfony\Component\Console\Helper\HelperSet $helperSet): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\Console\Command\Command
-
-public function setHidden(bool $hidden = true): static;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $hidden |
- bool |
- Whether 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $title |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- __destruct
-
--
- __sleep
-
--
- addRecords
-
--
- close
- - Closes the handler.
--
- getBubble
- - Gets the bubbling behavior.
--
- getFormatter
- - {@inheritDoc}
--
- getLevel
- - Gets minimum logging level at which this handler will be triggered.
--
- getRecords
-
--
- handle
- - Handles a record.
--
- handleBatch
- - Handles a set of records at once.
--
- isHandling
- - Checks whether the given record will be handled by this handler.
--
- popProcessor
- - {@inheritDoc}
--
- pushProcessor
- - {@inheritDoc}
--
- reset
-
--
- setBubble
- - Sets the bubbling behavior.
--
- setFormatter
- - {@inheritDoc}
--
- setLevel
- - Sets minimum logging level at which this handler will be triggered.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $rendererContext, int|string $level = \Monolog\Logger::WARNING, bool $bubble = true);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $records |
- array |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $record |
- array |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $records |
- array |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $record |
- array |
- Partial 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $callback |
- callable |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $bubble |
- bool |
- true 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:
-
-
-
-
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:
-
-
-
-
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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
@@ -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
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
@@ -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
@@ -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
- \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
+ \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
\DI\NotFoundException
-
- \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
-
@@ -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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\PageLinkProcessor;
-
-class GithubPagesLinkProcessor implements \BumbleDocGen\Core\Renderer\PageLinkProcessor\PageLinkProcessorInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getAbsoluteUrl
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, array $docFilesExtensions = ['md', 'html']);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function getAbsoluteUrl(string $relativeUrl): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $relativeUrl |
- string |
- - |
-
-
-
-
-
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
@@ -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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- resolveValue
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(array $internalValuesMap);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $internalValuesMap |
- array |
- see BumbleDocGen/di-config.php |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function resolveValue(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, mixed $value): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
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:
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-Methods:
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\CollectionLogOperation;
-
-final class IterateEntitiesOperation implements \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- call
-
--
- getEntitiesData
-
--
- getKey
-
--
- hasEntity
-
--
- incrementUsageCount
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(array $entities);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $entities |
- array |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function call(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection): array;
-```
-
-
-
-
Parameters:
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $entityName |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler;
-
-interface LanguageHandlerInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- getCustomTwigFilters
- - Additional twig filters that are added to the built-in ones when a language handler is included
--
- getCustomTwigFunctions
- - Additional twig functions that are added to the built-in ones when a language handler is included
--
- getEntityCollection
-
--
- getLanguageKey
- - Unique language handler key
-
-
-
-
-
-
-
-
-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:
-
-
-
-
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:
-
-
-
-
Return value: \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler;
-
-final class LanguageHandlersCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- add
-
--
- create
-
--
- get
-
--
- getIterator
- - Retrieve an external iterator
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-
-
-```php
-public static function create(\BumbleDocGen\LanguageHandler\LanguageHandlerInterface ...$languageHandlers): \BumbleDocGen\LanguageHandler\LanguageHandlersCollection;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: \BumbleDocGen\LanguageHandler\LanguageHandlersCollection
-
-
-
-
-
-
-
-
-
-
-```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
getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
+
@@ -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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Cache\LocalCache;
-
-final class LocalObjectCache
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- cacheMethodResult
-
--
- getMethodCachedResult
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function cacheMethodResult(string $methodKey, string $objectId, mixed $methodResult): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $methodKey |
- string |
- - |
-
-
- $objectId |
- string |
- - |
-
-
- $methodResult |
- mixed |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function getMethodCachedResult(string $methodKey, string $objectId): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $methodKey |
- string |
- - |
-
-
- $objectId |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getFilters
- - List of twig filters
--
- getFunctions
- - List of twig functions
--
- getLanguageHandlersCollection
-
--
- getNodeVisitors
- - Returns the node visitor instances to add to the existing list.
--
- getOperators
- - Returns a list of operators to add to the existing list.
--
- getTests
- - Returns a list of tests to add to the existing list.
--
- getTokenParsers
- - Returns the token parser instances to add to the existing list.
--
- setDefaultFilters
-
--
- setDefaultFunctions
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $context, \BumbleDocGen\Core\Configuration\Configuration $configuration);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
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
-// 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Twig;
-
-final class MainTwigEnvironment
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- render
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Renderer\Twig\MainExtension $mainExtension, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function render(mixed $name, array $context = []): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- mixed |
- - |
-
-
- $context |
- array |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity;
-
-interface MethodEntityInterface extends \\BumbleDocGen\Core\Parser\Entity\EntityInterface implements \BumbleDocGen\Core\Parser\Entity\EntityInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- entityCacheIsOutdated
-
--
- getAbsoluteFileName
- - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
--
- getBodyCode
-
--
- getDescription
-
--
- getEndLine
-
--
- getFileName
- - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
--
- getFirstReturnValue
-
--
- getImplementingClass
-
--
- getImplementingClassName
-
--
- getModifiersString
-
--
- getName
-
--
- getObjectId
-
--
- getParameters
-
--
- getParametersString
-
--
- getReturnType
-
--
- getRootEntityCollection
- - Get parent collection of entities
--
- getShortName
-
--
- getStartColumn
-
--
- getStartLine
-
--
- isDynamic
-
--
- isInitialization
-
--
- isPrivate
-
--
- isProtected
-
--
- isPublic
-
-
-
-
-
-
-
-
-
-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 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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/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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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/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
getUniqueExecutionId
-
- isPropagationStopped
- - Is propagation stopped?
-
- 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- disableClassLoading
-
--
- getEntity
-
--
- isClassCanBeLoad
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-Properties:
-
-
- -
- classCanBeLoad
-
-
-
-
-Property details:
-
-
-* #
- $classCanBeLoad
- **|** source code
-```php
-public bool $classCanBeLoad;
-
-```
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $entity);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function disableClassLoading(): void;
-```
-
-
-
-
Parameters: not specified
-
-
Return value: void
-
-
-
-
-
-
-
-
-
-
-```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
+
+
+
+
+
+
+
+```php
+namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity;
+
+final class OnCheckIsEntityCanBeLoaded extends \Symfony\Contracts\EventDispatcher\Event
+```
+
+
+
+
+
+
+
+
+Initialization methods:
+
+
+-
+ __construct
+
+
+
+Methods:
+
+
+-
+ disableEntityLoading
+
+-
+ getEntity
+
+-
+ isEntityCanBeLoaded
+
+
+
+
+
+Properties:
+
+
+ -
+ isEntityCanBeLoaded
+
+
+
+
+Property details:
+
+
+* #
+ $isEntityCanBeLoaded
+ **|** source code
+```php
+public bool $isEntityCanBeLoaded;
+
+```
+
+
+
+
+Method details:
+
+
+
+
+
+```php
+public function __construct(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity);
+```
+
+
+
+
Parameters:
+
+
+
+
+
+
+
+
+
+
+
+```php
+public function disableEntityLoading(): void;
+```
+
+
+
+
Parameters: not specified
+
+
Return value: void
+
+
+
+
+
+
+
+
+
+
+```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
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Plugin\Event\Parser;
-
-final class OnLoadSourceLocatorsCollection extends \Symfony\Contracts\EventDispatcher\Event
-```
-
-Called when source locators are loaded
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getSourceLocatorsCollection
-
--
- isPropagationStopped
- - Is propagation stopped?
--
- stopPropagation
- - Stops the propagation of the event to further event listeners.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection $sourceLocatorsCollection);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Plugin;
-
-interface OnlySingleExecutionEvent
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- getUniqueExecutionId
-
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\CollectionLogOperation;
-
-interface OperationInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- getKey
-
--
- incrementUsageCount
-
-
-
-
-
-
-
-
-
-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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\CollectionLogOperation;
-
-final class OperationsCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- __serialize
-
--
- __unserialize
-
--
- add
-
--
- getIterator
- - Retrieve an external iterator
--
- isFoundEntitiesCacheOutdated
-
--
- removeSearchDuplicates
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __serialize(): array;
-```
-
-
-
-
Parameters: not specified
-
-
Return value: array
-
-
-
-
-
-
-
-
-```php
-public function __unserialize(array $data): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $data |
- array |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function add(\BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationInterface $operation): void;
-```
-
-
-
-
Parameters:
-
-
-
-
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:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\PageLinkProcessor;
-
-interface PageLinkProcessorInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- getAbsoluteUrl
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function getAbsoluteUrl(string $relativeUrl): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $relativeUrl |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser;
-
-final class ParserHelper
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getBuiltInClassNames
-
--
- getClassFromFile
-
--
- getDocBlock
-
--
- getDocBlockContext
-
--
- getFilesInGit
-
--
- getMethodReturnValue
-
--
- getUsesListByClassEntity
-
--
- isBuiltInClass
-
--
- isBuiltInType
-
--
- isClassLoaded
-
--
- isCorrectClassName
-
--
- parseFullClassName
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public static function getBuiltInClassNames(): array;
-```
-
-
-
-
Parameters: not specified
-
-
Return value: array
-
-
-
-
-
-
-
-
-```php
-public function getClassFromFile(mixed $file): string|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $file |
- mixed |
- - |
-
-
-
-
-
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:
-
-
-
-
Return value: \phpDocumentor\Reflection\DocBlock
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getDocBlockContext(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity): \phpDocumentor\Reflection\Types\Context;
-```
-
-
-
-
Parameters:
-
-
-
-
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:
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-public function getUsesListByClassEntity(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $classEntity, bool $extended = true): array;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: array
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public static function isBuiltInClass(string $className): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $className |
- string |
- - |
-
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public static function isBuiltInType(string $name): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public function isClassLoaded(string $className): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $className |
- string |
- - |
-
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public static function isCorrectClassName(string $className, bool $checkBuiltIns = true): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $className |
- string |
- - |
-
-
- $checkBuiltIns |
- bool |
- - |
-
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public function parseFullClassName(string $searchClassName, \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity $parentClassEntity, bool $extended = true): string;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\PhpClassToMd;
-
-final class PhpClassRendererTwigEnvironment
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- render
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\Twig\MainExtension $mainExtension);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function render(mixed $name, array $context = []): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- mixed |
- - |
-
-
- $context |
- array |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getDocFileExtension
-
--
- getDocFileNamespace
-
--
- getRenderedText
-
--
- isAvailableForEntity
- - Can this render be used to create entity documentation
-
-
-
-Constants:
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\LanguageHandler\Php\Renderer\EntityDocRenderer\PhpClassToMd\PhpClassRendererTwigEnvironment $classRendererTwig);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
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:
-
-
-
-
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
-
getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
+
-
- onCheckIsClassEntityCanBeLoad
+ onCheckIsEntityCanBeLoaded
-
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;
-
-
\ 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php;
-
-final class PhpHandler implements \BumbleDocGen\LanguageHandler\LanguageHandlerInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getCustomTwigFilters
-
--
- getCustomTwigFunctions
-
--
- getEntityCollection
-
--
- getLanguageKey
- - Unique language handler key
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection $classEntityCollection, \BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings $phpHandlerSettings);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```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
-
getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
+
-
- onCheckIsClassEntityCanBeLoad
+ onCheckIsEntityCanBeLoaded
-
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;
-
-
\ 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- addListener
- - Adds an event listener that listens on the specified events.
--
- addSubscriber
- - Adds an event subscriber.
--
- dispatch
- - Dispatches an event to all registered listeners.
--
- getListenerPriority
- - Gets the listener priority for a specific event.
--
- getListeners
- - Gets the listeners of a specific event or all listeners sorted by descending priority.
--
- hasListeners
- - Checks whether an event has any registered listeners.
--
- removeListener
- - Removes an event listener from the specified events.
--
- removeSubscriber
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\Monolog\Logger $logger);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $eventName |
- string |
- - |
-
-
- $listener |
- callable | array |
- - |
-
-
- $priority |
- int |
- The 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:
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-public function dispatch(object $event, string $eventName = null): object;
-```
-
-
Dispatches an event to all registered listeners.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $event |
- object |
- The event to pass to the event handlers/listeners |
-
-
- $eventName |
- string |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $eventName |
- string |
- - |
-
-
- $listener |
- callable | 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $eventName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $eventName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $eventName |
- string |
- - |
-
-
- $listener |
- callable | array |
- - |
-
-
-
-
-
Return value: mixed
-
-
-
-
-
-
-
-
-```php
-// Implemented in Symfony\Component\EventDispatcher\EventDispatcher
-
-public function removeSubscriber(\Symfony\Component\EventDispatcher\EventSubscriberInterface $subscriber): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
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:
-
--
- getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
-
-
-Method details:
-
-
-
-
-
\ 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Plugin;
-
-final class PluginsCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- add
-
--
- create
-
--
- get
-
--
- getIterator
- - Retrieve an external iterator
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function add(\BumbleDocGen\Core\Plugin\PluginInterface ...$plugins): \BumbleDocGen\Core\Plugin\PluginsCollection;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: \BumbleDocGen\Core\Plugin\PluginsCollection
-
-
-
-
-
-
-
-
-```php
-public static function create(\BumbleDocGen\Core\Plugin\PluginInterface ...$plugins): \BumbleDocGen\Core\Plugin\PluginsCollection;
-```
-
-
-
-
Parameters:
-
-
-
-
Return value: \BumbleDocGen\Core\Plugin\PluginsCollection
-
-
-
-
-
-
-
-
-```php
-public function get(string $key): \BumbleDocGen\Core\Plugin\PluginInterface|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Console\ProgressBar;
-
-final class ProgressBarFactory
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- createStylizedProgressBar
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\Symfony\Component\Console\Style\OutputStyle $io);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
\ 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser;
-
-final class ProjectParser
-```
-
-Entity for project parsing using source locators
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- parse
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsGroup $rootEntityCollectionsGroup);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
\ 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\AI\Providers\OpenAI;
-
-final class Provider implements \BumbleDocGen\AI\ProviderInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- formatDataPrompt
-
--
- getAvailableModels
-
--
- getName
-
--
- getSystemPrompt
-
--
- sendPrompts
-
-
-
-
-Constants:
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $bearerToken, string|null $model);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $bearerToken |
- string |
- - |
-
-
- $model |
- string | null |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function formatDataPrompt(string $title, string $content): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $title |
- string |
- - |
-
-
- $content |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $fileName |
- string |
- - |
-
-
-
-
-
Return value: string
-
-
-
-
-
-
-
-
-```php
-public function sendPrompts(array $prompts, string $system): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $prompts |
- array |
- - |
-
-
- $system |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\AI;
-
-final class ProviderFactory
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- create
-
-
-
-
-Constants:
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public static function create(string $provider, string $apiKey, string|null $model = null): \BumbleDocGen\AI\ProviderInterface;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $provider |
- string |
- - |
-
-
- $apiKey |
- string |
- - |
-
-
- $model |
- string | 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\AI\Generators;
-
-final class ReadmeTemplateGenerator
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- generateReadmeFileContent
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\AI\ProviderInterface $aiProvider);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function generateReadmeFileContent(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, array $entryPoints = [], string|null $composerJsonFile = null, string|null $additionalPrompt = null): string;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- resolveValue
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function resolveValue(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, mixed $value): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
- - Construct the exception. Note: The message is NOT binary safe.
-
-
-Methods:
-
-
--
- __toString
- - String representation of the exception
--
- __wakeup
-
--
- getCode
- - Gets the Exception code
--
- getFile
- - Gets the file in which the exception occurred
--
- getLine
- - Gets the line in which the exception occurred
--
- getMessage
- - Gets the Exception message
--
- getPrevious
- - Returns previous Exception
--
- getTrace
- - Gets the stack trace
--
- getTraceAsString
- - Gets the stack trace as a string
-
-
-
-
-
-
-
-
-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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $message |
- string |
- [optional] The Exception message to throw. |
-
-
- $code |
- int |
- [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:
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Reflection;
-
-final class ReflectorWrapper implements \Roave\BetterReflection\Reflector\Reflector
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- reflectAllClasses
-
--
- reflectAllConstants
-
--
- reflectAllFunctions
-
--
- reflectClass
-
--
- reflectConstant
-
--
- reflectFunction
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $identifierName |
- string |
- - |
-
-
-
-
-
Return value: \Roave\BetterReflection\Reflection\ReflectionClass
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function reflectConstant(string $identifierName): \Roave\BetterReflection\Reflection\ReflectionConstant;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $identifierName |
- string |
- - |
-
-
-
-
-
Return value: \Roave\BetterReflection\Reflection\ReflectionConstant
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function reflectFunction(string $identifierName): \Roave\BetterReflection\Reflection\ReflectionFunction;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $identifierName |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer;
-
-final class Renderer
-```
-
-Generates and processes files from directory TemplatesDir saving them to directory OutputDir
-
-See:
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- run
- - Starting the rendering process
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\Cache\CacheKey;
-
-final class RendererContextCacheKeyGenerator implements \BumbleDocGen\Core\Parser\Entity\Cache\CacheKey\CacheKeyGeneratorInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- generateKey
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public static function generateKey(string $cacheNamespace, \BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface $entity, array $args): string;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Context\Dependency;
-
-final class RendererDependencyFactory
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- createDirectoryDependency
-
--
- createFileDependency
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function createFileDependency(string $filePath, string|null $contentFilterRegex = null, int|null $matchIndex = null): \BumbleDocGen\Core\Renderer\Context\Dependency\FileDependency;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $filePath |
- string |
- - |
-
-
- $contentFilterRegex |
- string | null |
- - |
-
-
- $matchIndex |
- int | 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer\Context\Dependency;
-
-interface RendererDependencyInterface
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- isChanged
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function isChanged(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer;
-
-final class RendererHelper
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- fileInternalLinkToFilePath
-
--
- filePathToFileInternalLink
-
--
- getPreloadResourceLink
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher, \BumbleDocGen\Core\Configuration\Configuration $configuration);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function fileInternalLinkToFilePath(string $fileInternalLink): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $fileInternalLink |
- string |
- - |
-
-
-
-
-
Return value: string
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function filePathToFileInternalLink(string $fileName): string;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $fileName |
- string |
- - |
-
-
-
-
-
Return value: string
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function getPreloadResourceLink(string $resourceName): string|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $resourceName |
- string |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer;
-
-final class RendererIteratorFactory
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getDocumentedEntityWrappersWithOutdatedCache
-
--
- getFilesToRemove
-
--
- getTemplatesWithOutdatedCache
-
-
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-
-
-
-
-
-- #
- 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity;
-
-abstract class RootEntityCollection extends \BumbleDocGen\Core\Parser\Entity\BaseEntityCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- findEntity
-
--
- get
-
--
- getEntityCollectionName
-
--
- getEntityLinkData
-
--
- getIterator
- - Retrieve an external iterator
--
- getLoadedOrCreateNew
-
--
- has
-
--
- isEmpty
-
--
- remove
-
--
- updateEntitiesCache
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function findEntity(string $search, bool $useUnsafeKeys = true): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $search |
- string |
- - |
-
-
- $useUnsafeKeys |
- bool |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $rawLink |
- string |
- Raw link to an entity or entity element |
-
-
- $defaultEntityName |
- string | null |
- Entity name to use if the link does not contain a valid or existing entity name,
- but only a cursor on an entity element |
-
-
- $useUnsafeKeys |
- bool |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
- $withAddClassEntityToCollectionEvent |
- bool |
- - |
-
-
-
-
-
Return value: \BumbleDocGen\Core\Parser\Entity\RootEntityInterface
-
-
-
-
See:
-
-
-
-
-
-
-
-```php
-// Implemented in BumbleDocGen\Core\Parser\Entity\BaseEntityCollection
-
-public function has(string $objectName): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $objectName |
- string |
- - |
-
-
-
-
-
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
+
+
+
+
+
+
+
+```php
+namespace BumbleDocGen\Console\Command;
+
+final class ServeCommand extends \BumbleDocGen\Console\Command\BaseCommand
+```
+
+
+
+
+
+
+
+
+Initialization methods:
+
+
+-
+ __construct
+
+
+
+
+
+
+
+
+
+
+Method details:
+
+
+
+
+
+```php
+// Implemented in BumbleDocGen\Console\Command\BaseCommand
+
+public function __construct(string $name = null);
+```
+
+
+
+
Parameters:
+
+
+
+
+ Name |
+ Type |
+ Description |
+
+
+
+
+ $name |
+ string |
+ - |
+
+
+
+
+
+
+
+
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
-
-
-
-
-
-
-
-```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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Cache;
-
-final class SharedCompressedDocumentFileCache
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- get
-
--
- getCacheFileName
-
--
- removeNotUsedKeys
-
--
- saveChanges
-
--
- set
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function get(string $key, mixed $defaultValue = null): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
- $defaultValue |
- mixed |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- - |
-
-
- $data |
- mixed |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\Entity\CollectionLogOperation;
-
-final class SingleEntitySearchOperation implements \BumbleDocGen\Core\Parser\Entity\CollectionLogOperation\OperationInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- call
-
--
- getArgs
-
--
- getArgsHash
-
--
- getEntityName
-
--
- getFunctionName
-
--
- getKey
-
--
- getRequestedEntityName
-
--
- incrementUsageCount
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $functionName, array $args, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null $entity);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function call(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection): \BumbleDocGen\Core\Parser\Entity\RootEntityInterface|null;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Cache;
-
-final class SourceLocatorCacheItemPool implements \Psr\Cache\CacheItemPoolInterface
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- clear
- - Deletes all items in the pool.
--
- commit
- - Persists any deferred cache items.
--
- deleteItem
- - Removes the item from the pool.
--
- deleteItems
- - Removes multiple items from the pool.
--
- getItem
- - Returns a Cache Item representing the specified key.
--
- getItems
- - Returns a traversable set of cache items.
--
- hasItem
- - Confirms if the cache contains specified cache item.
--
- save
- - Persists a cache item immediately.
--
- saveDeferred
- - Sets a cache item to be persisted later.
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- The key to delete. |
-
-
-
-
-
Return value: bool
-
-
-
Throws:
-
-
-
-
-
-
-
-
-```php
-public function deleteItems(array $keys): bool;
-```
-
-
Removes multiple items from the pool.
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $keys |
- string[] |
- 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- The 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $keys |
- string[] |
- 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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $key |
- string |
- The 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:
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public function saveDeferred(\Psr\Cache\CacheItemInterface $item): bool;
-```
-
-
Sets a cache item to be persisted later.
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Parser\SourceLocator;
-
-final class SourceLocatorsCollection implements \IteratorAggregate, \Traversable
-```
-
-
-
-
-
-
-
-
-
-Methods:
-
-
--
- add
-
--
- create
-
--
- getCommonFinder
-
--
- getIterator
- - Retrieve an external iterator
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-
-
-
-
-```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,
-
getSubscribedEvents
- - Returns an array of event names this subscriber wants to listen to.
+
-
- onCheckIsClassEntityCanBeLoad
+ onCheckIsEntityCanBeLoaded
-
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;
-
-
\ 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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Console\ProgressBar;
-
-final class StylizedProgressBar
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- advance
-
--
- finish
-
--
- iterate
-
--
- setMaxSteps
-
--
- setName
-
--
- setStepDescription
-
--
- start
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\Symfony\Component\Console\Style\OutputStyle $io);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function advance(int $step): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $step |
- int |
- - |
-
-
-
-
-
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:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $iterable |
- iterable |
- - |
-
-
- $max |
- int | null |
- - |
-
-
-
-
-
Return value: \Generator
-
-
-
-
-
-
-
-
-```php
-public function setMaxSteps(int $maxSteps): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $maxSteps |
- int |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function setName(string $name): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $name |
- string |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function setStepDescription(string $stepDescription): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $stepDescription |
- string |
- - |
-
-
-
-
-
Return value: void
-
-
-
-
-
-
-
-
-```php
-public function start(int|null $max = null): void;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $max |
- int | 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
-
-
-
-
-
-
-:warning: Is internal
-```php
-namespace BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\Internal;
-
-final class SystemAsyncSourceLocator extends \Roave\BetterReflection\SourceLocator\Type\AbstractSourceLocator
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- getClassLoader
-
--
- getLocatedSource
-
--
- locateIdentifier
- - Locate some source code.
--
- locateIdentifiersByType
- - Find all identifiers of a type
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\Roave\BetterReflection\SourceLocator\Ast\Locator $astLocator, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, array $psr4FileMap, array $classMap);
-```
-
-
-
-
Parameters:
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function getClassLoader(array $psr4FileMap, array $classMap): \Composer\Autoload\ClassLoader;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $psr4FileMap |
- array |
- - |
-
-
- $classMap |
- array |
- - |
-
-
-
-
-
Return value: \Composer\Autoload\ClassLoader
-
-
-
-
-
-
-
-
-
-
-```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:
-
-
-
-
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:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Renderer;
-
-final class TemplateFile
-```
-
-
-
-
-
-
-
-
-Initialization methods:
-
-
--
- __construct
-
--
- create
-
-
-
-Methods:
-
-
--
- getRealPath
-
--
- getRelativeDocPath
-
--
- getRelativeDocPathByTemplatePath
-
--
- getRelativeTemplatePath
-
--
- getTemplatePathByRelativeDocPath
-
--
- isTemplate
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(string $realPath, string $relativeDocPath);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $realPath |
- string |
- - |
-
-
- $relativeDocPath |
- string |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public static function create(\Symfony\Component\Finder\SplFileInfo $fileInfo, \BumbleDocGen\Core\Configuration\Configuration $configuration, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher): self;
-```
-
-
-
-
Parameters:
-
-
-
-
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:
-
-
-
-
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:
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Configuration\ValueResolver;
-
-interface ValueResolverInterface
-```
-
-Class interface to resolve value from config file
-
-
-
-
-
-
-
-Methods:
-
-
--
- resolveValue
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function resolveValue(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, mixed $value): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
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
-
-
-
-
-
-
-
-```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:
-
-
--
- __construct
-
-
-
-Methods:
-
-
--
- canTransform
-
--
- transform
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function __construct(\DI\Container $diContainer);
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $diContainer |
- \DI\Container |
- - |
-
-
-
-
-
-
-
-
-
-
-
-
-```php
-public function canTransform(mixed $value): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $value |
- mixed |
- - |
-
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public function transform(mixed $value): object|null;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $value |
- mixed |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```php
-namespace BumbleDocGen\Core\Configuration\ValueTransformer;
-
-interface ValueTransformerInterface
-```
-
-Interface defining classes that transform text configuration values into objects
-
-
-
-
-
-
-
-Methods:
-
-
--
- canTransform
-
--
- transform
-
-
-
-
-
-
-
-
-
-Method details:
-
-
-
-
-
-```php
-public function canTransform(mixed $value): bool;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $value |
- mixed |
- - |
-
-
-
-
-
Return value: bool
-
-
-
-
-
-
-
-
-```php
-public function transform(mixed $value): mixed;
-```
-
-
-
-
Parameters:
-
-
-
-
- Name |
- Type |
- Description |
-
-
-
-
- $value |
- mixed |
- - |
-
-
-
-
-
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
-
-
-
-
-
-
-
-```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
PL |
Description |
- {% 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') %}
- {{ drawDocumentedEntityLink(entityCollection) }} |
- {{ entityCollection.getMethodEntity('getEntityCollectionName').getFirstReturnValue() }} |
+ {{ drawDocumentedEntityLink(entitiesCollection) }} |
+ {{ entitiesCollection.getMethod('getEntityCollectionName', true).getFirstReturnValue() }} |
{{ match[2] | upper }} |
- {{ entityCollection.getDescription() }} |
+ {{ entitiesCollection.getDescription() }} |
{% endfor %}
@@ -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') }}
+
+
+
+ Command |
+ Parameters |
+ Description |
+
+{% for consoleCommandData in getConsoleCommands() %}
+
+ {{ consoleCommandData.name }} |
+ {{ consoleCommandData.synopsis|raw }} |
+ {{ consoleCommandData.description }} |
+
+{% endfor %}
+
+
+{{ "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') }}
+
+
+Name | Namespace |
+Abstract classes |
+{% for abstractClassEntity in phpEntities.getOnlyAbstractClasses() %}
+[a x-title='{{ classEntity.getShortName() }}']{{ abstractClassEntity.getName() }}[/a] | {{ abstractClassEntity.getNamespaceName() }} |
+{% endfor %}
+Classes |
+{% for classEntity in phpEntities.getOnlyInstantiable() %}
+[a x-title='{{ classEntity.getShortName() }}']{{ classEntity.getName() }}[/a] | {{ classEntity.getNamespaceName() }} |
+{% endfor %}
+
\ 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') }}
+
+
+Name | Namespace |
+{% for interfaceEntity in phpEntities.getOnlyInterfaces() %}
+[a x-title='{{ interfaceEntity.getShortName() }}']{{ interfaceEntity.getName() }}[/a] | {{ interfaceEntity.getNamespaceName() }} |
+{% endfor %}
+
\ 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') }}
+
+
+Name | Namespace |
+{% for traitEntity in phpEntities.getOnlyTraits() %}
+[a x-title='{{ traitEntity.getShortName() }}']{{ traitEntity.getName() }}[/a] | {{ traitEntity.getNamespaceName() }} |
+{% endfor %}
+
\ 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 @@
Name | Namespace |
Abstract classes |
-{% for abstractClassEntity in phpClassEntityCollection.getOnlyAbstractClasses() %}
+{% for abstractClassEntity in phpEntities.getOnlyAbstractClasses() %}
[a x-title='{{ classEntity.getShortName() }}']{{ abstractClassEntity.getName() }}[/a] | {{ abstractClassEntity.getNamespaceName() }} |
{% endfor %}
Classes |
-{% for classEntity in phpClassEntityCollection.getOnlyInstantiable() %}
+{% for classEntity in phpEntities.getOnlyInstantiable() %}
[a x-title='{{ classEntity.getShortName() }}']{{ classEntity.getName() }}[/a] | {{ classEntity.getNamespaceName() }} |
{% endfor %}
\ 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') }}
Name | Namespace |
-{% for interfaceEntity in phpClassEntityCollection.getOnlyInterfaces() %}
+{% for interfaceEntity in phpEntities.getOnlyInterfaces() %}
[a x-title='{{ interfaceEntity.getShortName() }}']{{ interfaceEntity.getName() }}[/a] | {{ interfaceEntity.getNamespaceName() }} |
{% endfor %}
\ 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') }}
Name | Namespace |
-{% for traitEntity in phpClassEntityCollection.getOnlyTraits() %}
+{% for traitEntity in phpEntities.getOnlyTraits() %}
[a x-title='{{ traitEntity.getShortName() }}']{{ traitEntity.getName() }}[/a] | {{ traitEntity.getNamespaceName() }} |
{% endfor %}
\ 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 %}
-
{% 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() %}
-
{{ propertyEntity.getName() }} {% if propertyEntity.getDescription() %}-
{{ propertyEntity.getDescription() | removeLineBrakes }}{% endif %}
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;
|