diff --git a/.gitignore b/.gitignore index 3f72cc73..23f21656 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,14 @@ composer.phar /vendor/ .idea -/demo/demo1/docs/ -/demo/demo1/__cache/ -/demo/demo2-templates-generation/__cache/ -/demo/demo2-templates-generation/docs/ -/demo/demo3-add-missing-doc-blocks/__cache/ -/demo/demo4-generating-readme-file/__cache/ -/demo/demo4-generating-readme-file/docs/ -/demo/demo4-generating-readme-file/templates/ +/.bumbleDocGenCache/ /last_run.log /.phpunit.result.cache +/demo/*/__cache/ +/demo/*/.cache/ +/demo/*/docs/ +/demo/*/last_run.log + +/demo/demo1/docs/ /demo/demo2-templates-generation/templates/ -/.bumbleDocGenCache/ -/demo/demo5-config-array/docs/ -/demo/demo5-config-array/.cache/ +/demo/demo3-generating-readme-file/templates/ diff --git a/SECURITY.md b/SECURITY.md index fa44755b..4473957c 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -8,11 +8,12 @@ Security updates will be applied to certain versions of our software. Please ref | Version | Supported | Notes | |---------|--------------------|----------------------------------------| -| 1.4.x | :white_check_mark: | Current version, fully supported. | -| 1.3.x | :x: | Not supported, please upgrade to 1.4.x | -| 1.2.x | :x: | Not supported, please upgrade to 1.4.x | -| 1.1.x | :x: | Not supported, please upgrade to 1.4.x | -| 1.0.x | :x: | Not supported, please upgrade to 1.4.x | +| 1.5.x | :white_check_mark: | Current version, fully supported. | +| 1.4.x | :x: | Not supported, please upgrade to 1.5.x | +| 1.3.x | :x: | Not supported, please upgrade to 1.5.x | +| 1.2.x | :x: | Not supported, please upgrade to 1.5.x | +| 1.1.x | :x: | Not supported, please upgrade to 1.5.x | +| 1.0.x | :x: | Not supported, please upgrade to 1.5.x | ## Reporting a Vulnerability diff --git a/captainhook.json b/captainhook.json index 665aed09..98faea5d 100644 --- a/captainhook.json +++ b/captainhook.json @@ -5,8 +5,8 @@ { "action": "\\CaptainHook\\App\\Hook\\Message\\Action\\Beams", "options": { - "subjectLength": 50, - "bodyLineLength": 72 + "subjectLength": 100, + "bodyLineLength": 200 } } ] diff --git a/composer.json b/composer.json index 865e2794..effb2fce 100644 --- a/composer.json +++ b/composer.json @@ -33,11 +33,11 @@ "php-di/php-di": "^7.0", "symfony/yaml": "^6.0", "hassankhan/config": "^3.1", - "tectalic/openai": "^1.5", - "guzzlehttp/guzzle": "^7.7", + "guzzlehttp/guzzle": "^7.8", "symfony/filesystem": "^6.0" }, "require-dev": { + "roave/security-advisories": "dev-latest", "phpunit/phpunit": "^9.5", "dg/bypass-finals": "^1.4", "squizlabs/php_codesniffer": "3.*", diff --git a/composer.lock b/composer.lock index dd65f70b..3bac40c4 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": "edc0d594bf655060ddb4128634082d53", + "content-hash": "86a6a7f6923c44c4dc1e5190ec5a3510", "packages": [ { "name": "bramus/ansi-php", @@ -96,72 +96,6 @@ }, "time": "2021-12-05T09:10:49+00:00" }, - { - "name": "clue/stream-filter", - "version": "v1.6.0", - "source": { - "type": "git", - "url": "https://github.com/clue/stream-filter.git", - "reference": "d6169430c7731d8509da7aecd0af756a5747b78e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/clue/stream-filter/zipball/d6169430c7731d8509da7aecd0af756a5747b78e", - "reference": "d6169430c7731d8509da7aecd0af756a5747b78e", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "Clue\\StreamFilter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christian Lück", - "email": "christian@clue.engineering" - } - ], - "description": "A simple and modern approach to stream filtering in PHP", - "homepage": "https://github.com/clue/php-stream-filter", - "keywords": [ - "bucket brigade", - "callback", - "filter", - "php_user_filter", - "stream", - "stream_filter_append", - "stream_filter_register" - ], - "support": { - "issues": "https://github.com/clue/stream-filter/issues", - "source": "https://github.com/clue/stream-filter/tree/v1.6.0" - }, - "funding": [ - { - "url": "https://clue.engineering/support", - "type": "custom" - }, - { - "url": "https://github.com/clue", - "type": "github" - } - ], - "time": "2022-02-21T13:15:14+00:00" - }, { "name": "doctrine/annotations", "version": "1.14.3", @@ -1171,84 +1105,6 @@ }, "time": "2023-08-13T19:53:39+00:00" }, - { - "name": "nyholm/psr7", - "version": "1.8.0", - "source": { - "type": "git", - "url": "https://github.com/Nyholm/psr7.git", - "reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Nyholm/psr7/zipball/3cb4d163b58589e47b35103e8e5e6a6a475b47be", - "reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be", - "shasum": "" - }, - "require": { - "php": ">=7.2", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.1 || ^2.0" - }, - "provide": { - "php-http/message-factory-implementation": "1.0", - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "http-interop/http-factory-tests": "^0.9", - "php-http/message-factory": "^1.0", - "php-http/psr7-integration-tests": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", - "symfony/error-handler": "^4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } - }, - "autoload": { - "psr-4": { - "Nyholm\\Psr7\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com" - }, - { - "name": "Martijn van der Ven", - "email": "martijn@vanderven.se" - } - ], - "description": "A fast PHP7 implementation of PSR-7", - "homepage": "https://tnyholm.se", - "keywords": [ - "psr-17", - "psr-7" - ], - "support": { - "issues": "https://github.com/Nyholm/psr7/issues", - "source": "https://github.com/Nyholm/psr7/tree/1.8.0" - }, - "funding": [ - { - "url": "https://github.com/Zegnat", - "type": "github" - }, - { - "url": "https://github.com/nyholm", - "type": "github" - } - ], - "time": "2023-05-02T11:26:24+00:00" - }, { "name": "php-di/invoker", "version": "2.3.4", @@ -1377,209 +1233,6 @@ ], "time": "2023-08-10T14:57:56+00:00" }, - { - "name": "php-http/discovery", - "version": "1.19.1", - "source": { - "type": "git", - "url": "https://github.com/php-http/discovery.git", - "reference": "57f3de01d32085fea20865f9b16fb0e69347c39e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/57f3de01d32085fea20865f9b16fb0e69347c39e", - "reference": "57f3de01d32085fea20865f9b16fb0e69347c39e", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "nyholm/psr7": "<1.0", - "zendframework/zend-diactoros": "*" - }, - "provide": { - "php-http/async-client-implementation": "*", - "php-http/client-implementation": "*", - "psr/http-client-implementation": "*", - "psr/http-factory-implementation": "*", - "psr/http-message-implementation": "*" - }, - "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "graham-campbell/phpspec-skip-example-extension": "^5.0", - "php-http/httplug": "^1.0 || ^2.0", - "php-http/message-factory": "^1.0", - "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", - "symfony/phpunit-bridge": "^6.2" - }, - "type": "composer-plugin", - "extra": { - "class": "Http\\Discovery\\Composer\\Plugin", - "plugin-optional": true - }, - "autoload": { - "psr-4": { - "Http\\Discovery\\": "src/" - }, - "exclude-from-classmap": [ - "src/Composer/Plugin.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", - "homepage": "http://php-http.org", - "keywords": [ - "adapter", - "client", - "discovery", - "factory", - "http", - "message", - "psr17", - "psr7" - ], - "support": { - "issues": "https://github.com/php-http/discovery/issues", - "source": "https://github.com/php-http/discovery/tree/1.19.1" - }, - "time": "2023-07-11T07:02:26+00:00" - }, - { - "name": "php-http/message", - "version": "1.16.0", - "source": { - "type": "git", - "url": "https://github.com/php-http/message.git", - "reference": "47a14338bf4ebd67d317bf1144253d7db4ab55fd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/message/zipball/47a14338bf4ebd67d317bf1144253d7db4ab55fd", - "reference": "47a14338bf4ebd67d317bf1144253d7db4ab55fd", - "shasum": "" - }, - "require": { - "clue/stream-filter": "^1.5", - "php": "^7.2 || ^8.0", - "psr/http-message": "^1.1 || ^2.0" - }, - "provide": { - "php-http/message-factory-implementation": "1.0" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2.6", - "ext-zlib": "*", - "guzzlehttp/psr7": "^1.0 || ^2.0", - "laminas/laminas-diactoros": "^2.0 || ^3.0", - "php-http/message-factory": "^1.0.2", - "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1", - "slim/slim": "^3.0" - }, - "suggest": { - "ext-zlib": "Used with compressor/decompressor streams", - "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories", - "laminas/laminas-diactoros": "Used with Diactoros Factories", - "slim/slim": "Used with Slim Framework PSR-7 implementation" - }, - "type": "library", - "autoload": { - "files": [ - "src/filters.php" - ], - "psr-4": { - "Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "HTTP Message related tools", - "homepage": "http://php-http.org", - "keywords": [ - "http", - "message", - "psr-7" - ], - "support": { - "issues": "https://github.com/php-http/message/issues", - "source": "https://github.com/php-http/message/tree/1.16.0" - }, - "time": "2023-05-17T06:43:38+00:00" - }, - { - "name": "php-http/multipart-stream-builder", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/php-http/multipart-stream-builder.git", - "reference": "f5938fd135d9fa442cc297dc98481805acfe2b6a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/f5938fd135d9fa442cc297dc98481805acfe2b6a", - "reference": "f5938fd135d9fa442cc297dc98481805acfe2b6a", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0", - "php-http/discovery": "^1.15", - "psr/http-factory-implementation": "^1.0" - }, - "require-dev": { - "nyholm/psr7": "^1.0", - "php-http/message": "^1.5", - "php-http/message-factory": "^1.0.2", - "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Http\\Message\\MultipartStream\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com" - } - ], - "description": "A builder class that help you create a multipart stream", - "homepage": "http://php-http.org", - "keywords": [ - "factory", - "http", - "message", - "multipart stream", - "stream" - ], - "support": { - "issues": "https://github.com/php-http/multipart-stream-builder/issues", - "source": "https://github.com/php-http/multipart-stream-builder/tree/1.3.0" - }, - "time": "2023-04-28T14:10:22+00:00" - }, { "name": "phpdocumentor/reflection-common", "version": "2.2.0", @@ -2315,68 +1968,6 @@ }, "time": "2022-10-10T08:44:53+00:00" }, - { - "name": "spatie/data-transfer-object", - "version": "1.14.1", - "source": { - "type": "git", - "url": "https://github.com/spatie/data-transfer-object.git", - "reference": "12c25e15f08684f1c57c88ccfb3a38a677a11314" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/data-transfer-object/zipball/12c25e15f08684f1c57c88ccfb3a38a677a11314", - "reference": "12c25e15f08684f1c57c88ccfb3a38a677a11314", - "shasum": "" - }, - "require": { - "php": "^7.1|^8.0" - }, - "require-dev": { - "larapack/dd": "^1.1", - "phpunit/phpunit": "^7.0|^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Spatie\\DataTransferObject\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Brent Roose", - "email": "brent@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "Data transfer objects with batteries included", - "homepage": "https://github.com/spatie/data-transfer-object", - "keywords": [ - "data-transfer-object", - "spatie" - ], - "support": { - "issues": "https://github.com/spatie/data-transfer-object/issues", - "source": "https://github.com/spatie/data-transfer-object/tree/1.14.1" - }, - "funding": [ - { - "url": "https://spatie.be/open-source/support-us", - "type": "custom" - }, - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "abandoned": "spatie/laravel-data", - "time": "2021-12-15T07:25:06+00:00" - }, { "name": "symfony/cache", "version": "v6.0.19", @@ -3640,81 +3231,6 @@ ], "time": "2023-01-11T11:50:03+00:00" }, - { - "name": "tectalic/openai", - "version": "v1.6.0", - "source": { - "type": "git", - "url": "https://github.com/tectalichq/public-openai-client-php.git", - "reference": "aa321d55bdd01511515e7b3436c092325fa651f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tectalichq/public-openai-client-php/zipball/aa321d55bdd01511515e7b3436c092325fa651f4", - "reference": "aa321d55bdd01511515e7b3436c092325fa651f4", - "shasum": "" - }, - "require": { - "ext-json": "*", - "nyholm/psr7": "^1.4", - "php": "^7.2.5 || ^8.0", - "php-http/message": "^1.11", - "php-http/multipart-stream-builder": "^1.2", - "psr/http-client": "^1.0.1", - "spatie/data-transfer-object": "^1.14" - }, - "conflict": { - "cebe/php-openapi": "<1.7", - "riverline/multipart-parser": "<2.0.9", - "symfony/yaml": "<3.4.31 || >4.0 <4.3.4" - }, - "require-dev": { - "league/openapi-psr7-validator": "^0.17.0", - "mikey179/vfsstream": "^1.6.10", - "php-http/mock-client": "^1.5", - "phpstan/phpstan": "^1.4", - "phpunit/phpunit": "^8.5.14 || ^9.5 || ^10.0", - "squizlabs/php_codesniffer": "^3.6", - "symfony/http-client": "^5.3" - }, - "suggest": { - "php-http/mock-client": "Simplify testing by using a mock HTTP client" - }, - "type": "library", - "autoload": { - "psr-4": { - "Tectalic\\OpenAi\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "An OpenAI REST API Client with support for ChatGPT, GPT-4, GPT-3.5, GPT-3, Codex, DALL·E, Whisper, Embeddings, Fine-Tuning and Moderation models. Includes fully typed Data Transfer Objects (DTOs) for all requests and responses and IDE autocomplete support.", - "homepage": "https://tectalic.com/apis/openai", - "keywords": [ - "ChatGpt", - "GPT-3", - "ai", - "api", - "dall-e", - "dalle", - "fine-tuning", - "gpt-3.5", - "gpt-4", - "gpt3", - "gpt3.5", - "gpt4", - "openai", - "rest", - "tectalic", - "whisper" - ], - "support": { - "source": "https://github.com/tectalichq/public-openai-client-php/tree/v1.6.0" - }, - "time": "2023-09-06T02:15:29+00:00" - }, { "name": "twig/twig", "version": "v3.7.1", @@ -4699,6 +4215,687 @@ ], "time": "2023-09-19T05:39:22+00:00" }, + { + "name": "roave/security-advisories", + "version": "dev-latest", + "source": { + "type": "git", + "url": "https://github.com/Roave/SecurityAdvisories.git", + "reference": "66dba7265a37e4081f443ed8211d507cd3cce5ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/66dba7265a37e4081f443ed8211d507cd3cce5ef", + "reference": "66dba7265a37e4081f443ed8211d507cd3cce5ef", + "shasum": "" + }, + "conflict": { + "3f/pygmentize": "<1.2", + "admidio/admidio": "<4.2.11", + "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", + "akaunting/akaunting": "<2.1.13", + "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53", + "alextselegidis/easyappointments": "<1.5", + "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", + "amazing/media2click": ">=1,<1.3.3", + "amphp/artax": "<1.0.6|>=2,<2.0.6", + "amphp/http": "<1.0.1", + "amphp/http-client": ">=4,<4.4", + "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", + "andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5", + "apache-solr-for-typo3/solr": "<2.8.3", + "apereo/phpcas": "<1.6", + "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6|>=2.6,<2.7.10|>=3,<3.0.12|>=3.1,<3.1.3", + "appwrite/server-ce": "<=1.2.1", + "arc/web": "<3", + "area17/twill": "<1.2.5|>=2,<2.5.3", + "artesaos/seotools": "<0.17.2", + "asymmetricrypt/asymmetricrypt": "<9.9.99", + "athlon1600/php-proxy": "<=5.1", + "athlon1600/php-proxy-app": "<=3", + "austintoddj/canvas": "<=3.4.2", + "automad/automad": "<1.8", + "awesome-support/awesome-support": "<=6.0.7", + "aws/aws-sdk-php": ">=3,<3.2.1", + "azuracast/azuracast": "<0.18.3", + "backdrop/backdrop": "<1.24.2", + "backpack/crud": "<3.4.9", + "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", + "bassjobsen/bootstrap-3-typeahead": ">4.0.2", + "bigfork/silverstripe-form-capture": ">=3,<3.1.1", + "billz/raspap-webgui": "<=2.9.2", + "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", + "bolt/core": "<=4.2", + "bottelet/flarepoint": "<2.2.1", + "brightlocal/phpwhois": "<=4.2.5", + "brotkrueml/codehighlight": "<2.7", + "brotkrueml/schema": "<1.13.1|>=2,<2.5.1", + "brotkrueml/typo3-matomo-integration": "<1.3.2", + "buddypress/buddypress": "<7.2.1", + "bugsnag/bugsnag-laravel": "<2.0.2", + "bytefury/crater": "<6.0.2", + "cachethq/cachet": "<2.5.1", + "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", + "cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", + "cardgate/magento2": "<2.0.33", + "cardgate/woocommerce": "<=3.1.15", + "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", + "cartalyst/sentry": "<=2.1.6", + "catfan/medoo": "<1.7.5", + "cecil/cecil": "<7.47.1", + "centreon/centreon": "<22.10.0.0-beta1", + "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", + "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", + "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/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", + "contao/core": ">=2,<3.5.39", + "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", + "cosenary/instagram": "<=2.3", + "craftcms/cms": "<=4.4.14", + "croogo/croogo": "<4", + "cuyz/valinor": "<0.12", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", + "datadog/dd-trace": ">=0.30,<0.30.2", + "datatables/datatables": "<1.10.10", + "david-garcia/phpwhois": "<=4.3.1", + "dbrisinajumi/d2files": "<1", + "dcat/laravel-admin": "<=2.1.3.0-beta", + "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", + "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/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", + "drupal/drupal": ">=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "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", + "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", + "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", + "ezsystems/ez-support-tools": ">=2.2,<2.2.3", + "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev", + "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev", + "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", + "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-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", + "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev", + "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/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", + "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<=2022.08", + "feehi/cms": "<=2.1.1", + "feehi/feehicms": "<=2.1.1", + "fenom/fenom": "<=2.12.1", + "filegator/filegator": "<7.8", + "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/mentions": "<1.6.3", + "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15", + "flarum/tags": "<=0.1.0.0-beta13", + "fluidtypo3/vhs": "<5.1.1", + "fof/byobu": ">=0.3.0.0-beta2,<1.1.7", + "fof/upload": "<1.2.3", + "fooman/tcpdf": "<6.2.22", + "forkcms/forkcms": "<5.11.1", + "fossar/tcpdf-parser": "<6.2.22", + "francoisjacquet/rosariosis": "<11", + "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2", + "friendsofsymfony/oauth2-php": "<1.3", + "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", + "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", + "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", + "fuel/core": "<1.8.1", + "funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3", + "gaoming13/wechat-php-sdk": "<=1.10.2", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<=1.7.42.1", + "getkirby/cms": "<3.5.8.3-dev|>=3.6,<3.6.6.3-dev|>=3.7,<3.7.5.2-dev|>=3.8,<3.8.4.1-dev|>=3.9,<3.9.6", + "getkirby/kirby": "<=2.5.12", + "getkirby/panel": "<2.5.14", + "getkirby/starterkit": "<=3.7.0.2", + "gilacms/gila": "<=1.11.4", + "gleez/cms": "<=1.2|==2", + "globalpayments/php-sdk": "<2", + "gogentooss/samlbase": "<1.2.7", + "google/protobuf": "<3.15", + "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", + "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", + "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2", + "harvesthq/chosen": "<1.8.7", + "helloxz/imgurl": "<=2.31", + "hhxsv5/laravel-s": "<3.7.36", + "hillelcoren/invoice-ninja": "<5.3.35", + "himiklab/yii2-jqgrid-widget": "<1.0.8", + "hjue/justwriting": "<=1", + "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "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/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", + "ibexa/post-install": "<=1.0.4", + "ibexa/user": ">=4,<4.4.3", + "icecoder/icecoder": "<=8.1", + "idno/known": "<=1.3.1", + "illuminate/auth": ">=4,<4.0.99|>=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.10", + "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4", + "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40", + "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/ipandlanguageredirect": "<5.1.2", + "in2code/lux": "<17.6.1|>=18,<24.0.2", + "innologi/typo3-appointments": "<2.0.6", + "intelliants/subrion": "<4.2.2", + "islandora/islandora": ">=2,<2.4.1", + "ivankristianto/phpwhois": "<=4.3", + "jackalope/jackalope-doctrine-dbal": "<1.7.4", + "james-heinrich/getid3": "<1.9.21", + "james-heinrich/phpthumb": "<1.7.12", + "jasig/phpcas": "<1.3.3", + "jcbrand/converse.js": "<3.3.3", + "joomla/application": "<1.0.13", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/framework": ">=2.5.4,<=3.8.12", + "joomla/input": ">=2,<2.0.2", + "joomla/joomla-cms": ">=2.5,<3.9.12", + "joomla/session": "<1.3.1", + "joyqi/hyper-down": "<=2.4.27", + "jsdecena/laracom": "<2.0.9", + "jsmitty12/phpwhois": "<5.1", + "kazist/phpwhois": "<=4.2.6", + "kelvinmo/simplexrd": "<3.1.1", + "kevinpapst/kimai2": "<1.16.7", + "khodakhah/nodcms": "<=3", + "kimai/kimai": "<1.1", + "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", + "klaviyo/magento2-extension": ">=1,<3", + "knplabs/knp-snappy": "<=1.4.2", + "kohana/core": "<3.3.3", + "krayin/laravel-crm": "<1.2.2", + "kreait/firebase-php": ">=3.2,<3.8.1", + "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", + "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", + "laravel/framework": "<6.20.44|>=7,<7.30.6|>=8,<8.75", + "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", + "latte/latte": "<2.10.8", + "lavalite/cms": "<=9", + "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5", + "league/commonmark": "<0.18.3", + "league/flysystem": "<1.1.4|>=2,<2.1.1", + "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3", + "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", + "librenms/librenms": "<2017.08.18", + "liftkit/database": "<2.13.2", + "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", + "livewire/livewire": ">2.2.4,<2.2.6", + "lms/routes": "<2.1.1", + "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", + "luyadev/yii-helpers": "<1.2.1", + "magento/community-edition": "<=2.4", + "magento/magento1ce": "<1.9.4.3-dev", + "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", + "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", + "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", + "miniorange/miniorange-saml": "<1.4.3", + "mittwald/typo3_forum": "<1.2.1", + "mobiledetect/mobiledetectlib": "<2.8.32", + "modx/revolution": "<=2.8.3.0-patch", + "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", + "movim/moxl": ">=0.8,<=0.10", + "mpdf/mpdf": "<=7.1.7", + "mustache/mustache": ">=2,<2.14.1", + "namshi/jose": "<2.2", + "neoan3-apps/template": "<1.1.1", + "neorazorx/facturascripts": "<2022.04", + "neos/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", + "neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3", + "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.9.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2", + "neos/neos-ui": "<=8.3.3", + "neos/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15", + "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", + "notrinos/notrinos-erp": "<=0.7", + "noumo/easyii": "<=0.9", + "nukeviet/nukeviet": "<4.5.02", + "nyholm/psr7": "<1.6.1", + "nystudio107/craft-seomatic": "<3.4.12", + "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", + "october/backend": "<1.1.2", + "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", + "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", + "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/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", + "oxid-esales/oxideshop-ce": "<4.5", + "packbackbooks/lti-1-3-php-library": "<5", + "padraic/humbug_get_contents": "<1.1.2", + "pagarme/pagarme-php": "<3", + "pagekit/pagekit": "<=1.0.18", + "paragonie/random_compat": "<2", + "passbolt/passbolt_api": "<2.11", + "paypal/merchant-sdk-php": "<3.12", + "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", + "pear/pear": "<=1.10.1", + "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", + "personnummer/personnummer": "<3.0.2", + "phanan/koel": "<5.1.4", + "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", + "phpmailer/phpmailer": "<6.5", + "phpmussel/phpmussel": ">=1,<1.6", + "phpmyadmin/phpmyadmin": "<5.2.1", + "phpmyfaq/phpmyfaq": "<=3.1.7", + "phpoffice/phpexcel": "<1.8", + "phpoffice/phpspreadsheet": "<1.16", + "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.19", + "phpservermon/phpservermon": "<3.6", + "phpsysinfo/phpsysinfo": "<3.2.5", + "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/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", + "pixelfed/pixelfed": "<=0.11.4", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<=4.23|>=5,<5.3.1", + "pressbooks/pressbooks": "<5.18", + "prestashop/autoupgrade": ">=4,<4.10.1", + "prestashop/blockwishlist": ">=2,<2.1.1", + "prestashop/contactform": ">=1.0.1,<4.3", + "prestashop/gamification": "<2.3.2", + "prestashop/prestashop": "<8.1.2", + "prestashop/productcomments": "<5.0.2", + "prestashop/ps_emailsubscription": "<2.6.1", + "prestashop/ps_facetedsearch": "<3.4.1", + "prestashop/ps_linklist": "<3.1", + "privatebin/privatebin": "<1.4", + "processwire/processwire": "<=3.0.200", + "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7", + "propel/propel1": ">=1,<=1.7.1", + "pterodactyl/panel": "<1.7", + "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2", + "ptrofimov/beanstalk_console": "<1.7.14", + "pusher/pusher-php-server": "<2.2.1", + "pwweb/laravel-core": "<=0.3.6.0-beta", + "pyrocms/pyrocms": "<=3.9.1", + "rainlab/blog-plugin": "<1.4.1", + "rainlab/debugbar-plugin": "<3.1", + "rainlab/user-plugin": "<=1.4.5", + "rankmath/seo-by-rank-math": "<=1.0.95", + "rap2hpoutre/laravel-log-viewer": "<0.13", + "react/http": ">=0.7,<1.9", + "really-simple-plugins/complianz-gdpr": "<6.4.2", + "remdex/livehelperchat": "<3.99", + "rmccue/requests": ">=1.6,<1.8", + "robrichards/xmlseclibs": "<3.0.4", + "roots/soil": "<4.1", + "rudloff/alltube": "<3.0.3", + "s-cart/core": "<6.9", + "s-cart/s-cart": "<6.9", + "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", + "sabre/dav": "<1.7.11|>=1.8,<1.8.9", + "scheb/two-factor-bundle": "<3.26|>=4,<4.11", + "sensiolabs/connect": "<4.2.3", + "serluck/phpwhois": "<=4.2.6", + "sfroemken/url_redirect": "<=1.2.1", + "sheng/yiicms": "<=1.2", + "shopware/core": "<=6.4.20", + "shopware/platform": "<=6.4.20", + "shopware/production": "<=6.3.5.2", + "shopware/shopware": "<=5.7.17", + "shopware/storefront": "<=6.4.8.1", + "shopxo/shopxo": "<2.2.6", + "showdoc/showdoc": "<2.10.4", + "silverstripe-australia/advancedreports": ">=1,<=2", + "silverstripe/admin": "<1.13.6", + "silverstripe/assets": ">=1,<1.11.1", + "silverstripe/cms": "<4.11.3", + "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/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", + "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", + "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1", + "silverstripe/subsites": ">=2,<2.6.1", + "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", + "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/simplesamlphp": "<1.18.6", + "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", + "simplesamlphp/simplesamlphp-module-openid": "<1", + "simplesamlphp/simplesamlphp-module-openidprovider": "<0.9", + "simplito/elliptic-php": "<1.0.6", + "sitegeist/fluid-components": "<3.5", + "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3", + "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1", + "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", + "socalnick/scn-social-auth": "<1.15.2", + "socialiteproviders/steam": "<1.1", + "spatie/browsershot": "<3.57.4", + "spipu/html2pdf": "<5.2.8", + "spoon/library": "<1.4.1", + "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", + "stormpath/sdk": "<9.9.99", + "studio-42/elfinder": "<2.1.62", + "subhh/libconnect": "<7.0.8|>=8,<8.1", + "sukohi/surpass": "<1", + "sulu/sulu": "<1.6.44|>=2,<2.2.18|>=2.3,<2.3.8|==2.4.0.0-RC1|>=2.5,<2.5.10", + "sumocoders/framework-user-bundle": "<1.4", + "swag/paypal": "<5.4.4", + "swiftmailer/swiftmailer": ">=4,<5.4.5", + "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", + "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1", + "sylius/resource-bundle": "<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", + "symbiote/silverstripe-multivaluefield": ">=3,<3.0.99", + "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", + "symbiote/silverstripe-seed": "<6.0.3", + "symbiote/silverstripe-versionedfiles": "<=2.0.3", + "symfont/process": ">=0", + "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", + "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", + "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", + "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", + "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1", + "symfony/mime": ">=4.3,<4.3.8", + "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/polyfill": ">=1,<1.10", + "symfony/polyfill-php55": ">=1,<1.10", + "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/routing": ">=2,<2.0.19", + "symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8", + "symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", + "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/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/translation": ">=2,<2.0.17", + "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/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", + "t3/dce": "<0.11.5|>=2.2,<2.6.2", + "t3g/svg-sanitizer": "<1.0.3", + "tastyigniter/tastyigniter": "<3.3", + "tcg/voyager": "<=1.4", + "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", + "thelia/backoffice-default-template": ">=2.1,<2.1.2", + "thelia/thelia": ">=2.1,<2.1.3", + "theonedemon/phpwhois": "<=4.2.5", + "thinkcmf/thinkcmf": "<=5.1.7", + "thorsten/phpmyfaq": "<3.2.0.0-beta2", + "tikiwiki/tiki-manager": "<=17.1", + "tinymce/tinymce": "<5.10.7|>=6,<6.3.1", + "tinymighty/wiki-seo": "<1.2.2", + "titon/framework": "<9.9.99", + "tobiasbg/tablepress": "<=2.0.0.0-RC1", + "topthink/framework": "<6.0.14", + "topthink/think": "<=6.1.1", + "topthink/thinkphp": "<=3.2.3", + "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2", + "tribalsystems/zenario": "<=9.4.59197", + "truckersmp/phpwhois": "<=4.3.1", + "ttskch/pagination-service-provider": "<1", + "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-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-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/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", + "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", + "vova07/yii2-fileapi-widget": "<0.1.9", + "vrana/adminer": "<4.8.1", + "waldhacker/hcaptcha": "<2.1.2", + "wallabag/tcpdf": "<6.2.22", + "wallabag/wallabag": "<2.6.7", + "wanglelecc/laracms": "<=1.0.3", + "web-auth/webauthn-framework": ">=3.3,<3.3.4", + "webbuilders-group/silverstripe-kapost-bridge": "<0.4", + "webcoast/deferred-image-processing": "<1.0.2", + "webklex/laravel-imap": "<5.3", + "webklex/php-imap": "<5.3", + "webpa/webpa": "<3.1.2", + "wikibase/wikibase": "<=1.39.3", + "wikimedia/parsoid": "<0.12.2", + "willdurand/js-translation-bundle": "<2.1.1", + "wintercms/winter": "<1.2.3", + "woocommerce/woocommerce": "<6.6", + "wp-cli/wp-cli": "<2.5", + "wp-graphql/wp-graphql": "<=1.14.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wpcloud/wp-stateless": "<3.2", + "wwbn/avideo": "<=12.4", + "xataface/xataface": "<3", + "xpressengine/xpressengine": "<3.0.15", + "yeswiki/yeswiki": "<4.1", + "yetiforce/yetiforce-crm": "<=6.4", + "yidashi/yii2cmf": "<=2", + "yii2mod/yii2-cms": "<1.9.2", + "yiisoft/yii": "<1.1.27", + "yiisoft/yii2": "<2.0.38", + "yiisoft/yii2-bootstrap": "<2.0.4", + "yiisoft/yii2-dev": "<2.0.43", + "yiisoft/yii2-elasticsearch": "<2.0.5", + "yiisoft/yii2-gii": "<=2.2.4", + "yiisoft/yii2-jui": "<2.0.4", + "yiisoft/yii2-redis": "<2.0.8", + "yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6", + "yoast-seo-for-typo3/yoast_seo": "<7.2.3", + "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-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", + "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", + "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-http": "<2.8.1", + "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", + "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", + "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4", + "zendframework/zend-validator": ">=2.3,<2.3.6", + "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zendframework": "<=3", + "zendframework/zendframework1": "<1.12.20", + "zendframework/zendopenid": "<2.0.2", + "zendframework/zendrest": "<2.0.2", + "zendframework/zendservice-amazon": "<2.0.3", + "zendframework/zendservice-api": "<1", + "zendframework/zendservice-audioscrobbler": "<2.0.2", + "zendframework/zendservice-nirvanix": "<2.0.2", + "zendframework/zendservice-slideshare": "<2.0.2", + "zendframework/zendservice-technorati": "<2.0.2", + "zendframework/zendservice-windowsazure": "<2.0.2", + "zendframework/zendxml": "<1.0.1", + "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", + "zfr/zfr-oauth2-server-module": "<0.1.2", + "zoujingli/thinkadmin": "<6.0.22" + }, + "default-branch": true, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "role": "maintainer" + }, + { + "name": "Ilya Tribusean", + "email": "slash3b@gmail.com", + "role": "maintainer" + } + ], + "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "keywords": [ + "dev" + ], + "support": { + "issues": "https://github.com/Roave/SecurityAdvisories/issues", + "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", + "type": "tidelift" + } + ], + "time": "2023-10-09T22:04:13+00:00" + }, { "name": "sebastian/cli-parser", "version": "1.0.1", @@ -6009,7 +6206,9 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "roave/security-advisories": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": { @@ -6018,5 +6217,5 @@ "ext-mbstring": "*" }, "platform-dev": [], - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.3.0" } diff --git a/demo/demo4-generating-readme-file/demo-config.yaml b/demo/demo2-add-missing-doc-blocks/demo-config.yaml similarity index 67% rename from demo/demo4-generating-readme-file/demo-config.yaml rename to demo/demo2-add-missing-doc-blocks/demo-config.yaml index d4854c6d..228705e0 100644 --- a/demo/demo4-generating-readme-file/demo-config.yaml +++ b/demo/demo2-add-missing-doc-blocks/demo-config.yaml @@ -1,6 +1,6 @@ project_root: '%DOC_GEN_LIB_PATH%' -cache_dir: '%WORKING_DIR%/demo/demo4-generating-readme-file/__cache' -templates_dir: '%WORKING_DIR%/demo/demo4-generating-readme-file/templates' +cache_dir: '%WORKING_DIR%/demo/demo2-add-missing-doc-blocks/__cache' +templates_dir: '%WORKING_DIR%/demo/demo2-add-missing-doc-blocks/templates' language_handlers: php: class: \BumbleDocGen\LanguageHandler\Php\PhpHandler @@ -10,4 +10,4 @@ source_locators: - class: \BumbleDocGen\Core\Parser\SourceLocator\RecursiveDirectoriesSourceLocator arguments: directories: - - "%project_root%" \ No newline at end of file + - "%project_root%/src" diff --git a/demo/demo2-add-missing-doc-blocks/demoScript.php b/demo/demo2-add-missing-doc-blocks/demoScript.php new file mode 100644 index 00000000..e1bbf39c --- /dev/null +++ b/demo/demo2-add-missing-doc-blocks/demoScript.php @@ -0,0 +1,23 @@ +#!/usr/bin/env php + AddDocBlocksCommand::NAME, + '--config' => 'demo/demo2-add-missing-doc-blocks/demo-config.yaml', + '--ai_provider' => 'openai', + '--ai_model' => 'gpt-4', + ]); + $application->run($input); +} catch (\Exception $e) { + die($e->getMessage()); +} diff --git a/demo/demo2-templates-generation/demo-config.yaml b/demo/demo2-templates-generation/demo-config.yaml deleted file mode 100644 index 2d5be500..00000000 --- a/demo/demo2-templates-generation/demo-config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -project_root: '%DOC_GEN_LIB_PATH%' -templates_dir: '%WORKING_DIR%/demo/demo2-templates-generation/templates' -cache_dir: '%WORKING_DIR%/demo/demo2-templates-generation/__cache' -language_handlers: - php: - 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 diff --git a/demo/demo2-templates-generation/demoScript.php b/demo/demo2-templates-generation/demoScript.php deleted file mode 100644 index 27f1080b..00000000 --- a/demo/demo2-templates-generation/demoScript.php +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env php -create(__DIR__ . '/demo-config.yaml'); - $docGen->generateProjectTemplatesStructure(); -} catch (\Exception | \Psr\Cache\InvalidArgumentException $e) { - die($e->getMessage()); -} diff --git a/demo/demo3-add-missing-doc-blocks/demoScript.php b/demo/demo3-add-missing-doc-blocks/demoScript.php deleted file mode 100644 index 93702bce..00000000 --- a/demo/demo3-add-missing-doc-blocks/demoScript.php +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env php -create(__DIR__ . '/demo-config.yaml'); - $docGen->addMissingDocBlocks(); -} catch (\Exception | \Psr\Cache\InvalidArgumentException $e) { - die($e->getMessage()); -} diff --git a/demo/demo3-add-missing-doc-blocks/demo-config.yaml b/demo/demo3-generating-readme-file/demo-config.yaml similarity index 67% rename from demo/demo3-add-missing-doc-blocks/demo-config.yaml rename to demo/demo3-generating-readme-file/demo-config.yaml index d5d59162..bca8adfc 100644 --- a/demo/demo3-add-missing-doc-blocks/demo-config.yaml +++ b/demo/demo3-generating-readme-file/demo-config.yaml @@ -1,6 +1,6 @@ project_root: '%DOC_GEN_LIB_PATH%' -cache_dir: '%WORKING_DIR%/demo/demo3-add-missing-doc-blocks/__cache' -templates_dir: '%WORKING_DIR%/demo/demo3-add-missing-doc-blocks/templates' +cache_dir: '%WORKING_DIR%/demo/demo3-generating-readme-file/__cache' +templates_dir: '%WORKING_DIR%/demo/demo3-generating-readme-file/templates' language_handlers: php: class: \BumbleDocGen\LanguageHandler\Php\PhpHandler @@ -10,4 +10,4 @@ source_locators: - class: \BumbleDocGen\Core\Parser\SourceLocator\RecursiveDirectoriesSourceLocator arguments: directories: - - "%project_root%" \ No newline at end of file + - "%project_root%/src" diff --git a/demo/demo3-generating-readme-file/demoScript.php b/demo/demo3-generating-readme-file/demoScript.php new file mode 100644 index 00000000..055b061b --- /dev/null +++ b/demo/demo3-generating-readme-file/demoScript.php @@ -0,0 +1,23 @@ +#!/usr/bin/env php + GenerateReadMeTemplateCommand::NAME, + '--config' => 'demo/demo3-generating-readme-file/demo-config.yaml', + '--ai_provider' => 'openai', + '--ai_model' => 'gpt-4', + ]); + $application->run($input); +} catch (\Exception $e) { + die($e->getMessage()); +} diff --git a/demo/demo5-config-array/demoScript.php b/demo/demo4-config-array/demoScript.php similarity index 95% rename from demo/demo5-config-array/demoScript.php rename to demo/demo4-config-array/demoScript.php index 7c733bd3..701a7c17 100644 --- a/demo/demo5-config-array/demoScript.php +++ b/demo/demo4-config-array/demoScript.php @@ -9,7 +9,7 @@ $docGen = (new \BumbleDocGen\DocGeneratorFactory()) ->createByConfigArray([ 'project_root' => '%WORKING_DIR%/vendor/doctrine', - 'demo_dir' => '%WORKING_DIR%/demo/demo5-config-array', // <= custom parameter + 'demo_dir' => '%WORKING_DIR%/demo/demo4-config-array', // <= custom parameter 'cache_dir' => '%demo_dir%/.cache', 'templates_dir' => '%demo_dir%/templates', 'output_dir' => "%demo_dir%/docs", diff --git a/demo/demo5-config-array/templates/README.md.twig b/demo/demo4-config-array/templates/README.md.twig similarity index 73% rename from demo/demo5-config-array/templates/README.md.twig rename to demo/demo4-config-array/templates/README.md.twig index c9231639..f370c324 100644 --- a/demo/demo5-config-array/templates/README.md.twig +++ b/demo/demo4-config-array/templates/README.md.twig @@ -6,4 +6,4 @@ To update this documentation, run the following command: -{{ 'php demo/demo5-config-array/demoScript.php' | textToCodeBlock('console') }} \ No newline at end of file +{{ 'php demo/demo4-config-array/demoScript.php' | textToCodeBlock('console') }} diff --git a/demo/demo4-generating-readme-file/demoScript.php b/demo/demo4-generating-readme-file/demoScript.php deleted file mode 100644 index d287e7d0..00000000 --- a/demo/demo4-generating-readme-file/demoScript.php +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env php -create(__DIR__ . '/demo-config.yaml'); - $docGen->fillInReadmeMdTemplate(); -} catch (\Exception | \Psr\Cache\InvalidArgumentException $e) { - die($e->getMessage()); -} diff --git a/demo/demo6-unified-document-structure/.gitignore b/demo/demo5-unified-document-structure/.gitignore similarity index 100% rename from demo/demo6-unified-document-structure/.gitignore rename to demo/demo5-unified-document-structure/.gitignore diff --git a/demo/demo6-unified-document-structure/demo-config.yaml b/demo/demo5-unified-document-structure/demo-config.yaml similarity index 75% rename from demo/demo6-unified-document-structure/demo-config.yaml rename to demo/demo5-unified-document-structure/demo-config.yaml index 282d3021..92c129f4 100644 --- a/demo/demo6-unified-document-structure/demo-config.yaml +++ b/demo/demo5-unified-document-structure/demo-config.yaml @@ -1,6 +1,6 @@ parent_configuration: '%WORKING_DIR%/bumble_doc_gen.yaml' -demo_dir: '%WORKING_DIR%/demo/demo6-unified-document-structure' # Here I define a template configuration variable +demo_dir: '%WORKING_DIR%/demo/demo5-unified-document-structure' # Here I define a template configuration variable output_dir: "%demo_dir%/docs" cache_dir: '%demo_dir%/.bumbleDocGenCache' plugins: # Connecting this built-in plugin will change the structure of the configured document - - class: \BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\EntityDocUnifiedPlace\EntityDocUnifiedPlacePlugin \ No newline at end of file + - class: \BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\EntityDocUnifiedPlace\EntityDocUnifiedPlacePlugin diff --git a/demo/demo6-unified-document-structure/demoScript.php b/demo/demo5-unified-document-structure/demoScript.php similarity index 100% rename from demo/demo6-unified-document-structure/demoScript.php rename to demo/demo5-unified-document-structure/demoScript.php diff --git a/docs/README.md b/docs/README.md index fdf78ebd..99ec2743 100644 --- a/docs/README.md +++ b/docs/README.md @@ -95,4 +95,4 @@ To update this documentation, run the following command:

-Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
Last modified date: Sat Oct 28 11:03:31 2023 +0300
Page content update date: Tue Oct 31 2023
Made with Bumble Documentation Generator
\ No newline at end of file +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/classes/DocGenerator.md b/docs/classes/DocGenerator.md index c40ae41f..f52e4fcb 100644 --- a/docs/classes/DocGenerator.md +++ b/docs/classes/DocGenerator.md @@ -2,7 +2,7 @@ BumbleDocGen / DocGenerator

- DocGenerator class: + DocGenerator class:

@@ -34,17 +34,14 @@ final class DocGenerator
  1. - addMissingDocBlocks + addDocBlocks - Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
  2. -
  3. - fillInReadmeMdTemplate -
  4. generate - Generates documentation using configuration
  5. - generateProjectTemplatesStructure - - Generate documentation structure with blank templates using AI tools
  6. + generateReadmeTemplate +
  7. parseAndGetRootEntityCollectionsGroup
  8. @@ -55,11 +52,11 @@ final class DocGenerator @@ -74,7 +71,7 @@ final class DocGenerator ```php @@ -154,18 +151,35 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo
    ```php -public function addMissingDocBlocks(): void; +public function addDocBlocks(\BumbleDocGen\AI\ProviderInterface $aiProvider): void; ```
    Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
    -Parameters: not specified +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $aiProvider\BumbleDocGen\AI\ProviderInterface-
    Return value: void @@ -184,49 +198,6 @@ public function addMissingDocBlocks(): void;
  9. \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  10. -
  11. - \Tectalic\OpenAi\ClientException
  12. - - - -
    -
    -
    - - - -```php -public function fillInReadmeMdTemplate(): void; -``` - - - -Parameters: not specified - -Return value: void - - -Throws: -
    @@ -236,7 +207,7 @@ public function fillInReadmeMdTemplate(): void; ```php @@ -265,36 +236,50 @@ public function generate(): void;
    ```php -public function generateProjectTemplatesStructure(): void; +public function generateReadmeTemplate(\BumbleDocGen\AI\ProviderInterface $aiProvider): void; ``` -
    Generate documentation structure with blank templates using AI tools
    -Parameters: not specified + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $aiProvider\BumbleDocGen\AI\ProviderInterface-
    Return value: void Throws: +
    +
    +
    + + + +```php +public function getConfigurationVersion(): string; +``` + + + +Parameters: not specified + +Return value: string + +

    @@ -215,7 +242,7 @@ public function getCacheDir(): string|null; ```php @@ -236,7 +263,7 @@ public function getDocGenLibDir(): string; ```php @@ -250,6 +277,51 @@ public function getGitClientPath(): string; Return value: string +Throws: + + +
    +
    +
    + + + +```php +public function getIfExists(mixed $key): string|null; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keymixed-
    + +Return value: string | null + + Throws:

    @@ -172,7 +184,7 @@ public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\En ```php @@ -193,7 +205,7 @@ public function getDocumentedEntitiesRelations(): array; ```php diff --git a/docs/tech/1.configuration/classes/GetDocumentedEntityUrl.md b/docs/tech/1.configuration/classes/GetDocumentedEntityUrl.md index 5a6f875c..2a57a65e 100644 --- a/docs/tech/1.configuration/classes/GetDocumentedEntityUrl.md +++ b/docs/tech/1.configuration/classes/GetDocumentedEntityUrl.md @@ -25,7 +25,7 @@ See:
  13. \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrappersCollection
  14. - \BumbleDocGen\Core\Renderer\Context\RendererContext::$entityWrappersCollection
  15. + \BumbleDocGen\Core\Renderer\Context\RendererContext::$entityWrappersCollection diff --git a/docs/tech/1.configuration/classes/StrTypeToUrl.md b/docs/tech/1.configuration/classes/StrTypeToUrl.md index cc710cab..cda69c1d 100644 --- a/docs/tech/1.configuration/classes/StrTypeToUrl.md +++ b/docs/tech/1.configuration/classes/StrTypeToUrl.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Configuration files / StrTypeToUrl

    - StrTypeToUrl class: + StrTypeToUrl class:

    @@ -77,7 +77,7 @@ See: ```php @@ -124,7 +124,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $renderer ```php @@ -170,22 +170,6 @@ public function __invoke(string $text, \BumbleDocGen\Core\Parser\Entity\RootEnti Return value: string -Throws: - -

    @@ -193,7 +177,7 @@ public function __invoke(string $text, \BumbleDocGen\Core\Parser\Entity\RootEnti ```php @@ -214,7 +198,7 @@ public static function getName(): string; ```php diff --git a/docs/tech/1.configuration/readme.md b/docs/tech/1.configuration/readme.md index 15428d00..d9796223 100644 --- a/docs/tech/1.configuration/readme.md +++ b/docs/tech/1.configuration/readme.md @@ -222,4 +222,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: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Mon Nov 06 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file diff --git a/docs/tech/2.parser/classes/ClassEntity.md b/docs/tech/2.parser/classes/ClassEntity.md index 248a7bec..72861a06 100644 --- a/docs/tech/2.parser/classes/ClassEntity.md +++ b/docs/tech/2.parser/classes/ClassEntity.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / ClassEntity

    - ClassEntity class: + ClassEntity class:

    @@ -249,6 +249,9 @@ class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEn
  16. isEnum
  17. +
  18. + isExternalLibraryEntity + - The entity is loaded from a third party library and should not be treated the same as a standard one
  19. isInGit - Checking if class file is in git repository
  20. @@ -273,6 +276,9 @@ class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEn
  21. reloadEntityDependenciesCache
  22. +
  23. + removeEntityValueFromCache +
  24. removeNotUsedEntityDataCache
  25. @@ -294,11 +300,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\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\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); ``` @@ -338,6 +344,11 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $parserHelper \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper - + + + $composerParser + \BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser + - $localObjectCache @@ -371,7 +382,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -430,7 +441,7 @@ public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocu ```php @@ -461,7 +472,7 @@ public function documentCreationAllowed(): bool; ```php @@ -494,7 +505,7 @@ public function entityCacheIsOutdated(): bool; ```php @@ -516,6 +527,9 @@ public function entityDataCanBeLoaded(): bool;
  26. \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  27. +
  28. + \Exception
  29. + @@ -525,7 +539,7 @@ public function entityDataCanBeLoaded(): bool; ```php @@ -555,11 +569,11 @@ public function getAbsoluteFileName(): string|null; ```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait public function getCacheKey(): string; ``` @@ -578,7 +592,7 @@ public function getCacheKey(): string; ```php @@ -608,7 +622,7 @@ public function getCachedEntityDependencies(): array; ```php @@ -639,7 +653,7 @@ public function getCasesNames(): array; ```php @@ -687,7 +701,7 @@ public function getConstant(string $name): string|array|int|bool|null|float; ```php @@ -746,7 +760,7 @@ public function getConstantEntity(string $constantName, bool $unsafe = true): \B ```php @@ -783,7 +797,7 @@ public function getConstantEntityCollection(): \BumbleDocGen\LanguageHandler\Php ```php @@ -814,7 +828,7 @@ public function getConstants(): array; ```php @@ -845,7 +859,7 @@ public function getConstantsData(): array; ```php @@ -882,7 +896,7 @@ public function getDescription(): string; ```php @@ -915,7 +929,7 @@ public function getDescriptionLinks(): array; ```php @@ -952,7 +966,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; ```php @@ -985,7 +999,7 @@ public function getDocComment(): string; ```php @@ -1022,7 +1036,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -1045,7 +1059,7 @@ public function getDocNote(): string; ```php @@ -1076,7 +1090,7 @@ public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\En ```php @@ -1107,7 +1121,7 @@ public function getEndLine(): int; ```php @@ -1128,7 +1142,7 @@ public function getEntityDependencies(): array; ```php @@ -1151,7 +1165,7 @@ public function getExamples(): array; ```php @@ -1182,7 +1196,7 @@ public function getExtends(): string|null; ```php @@ -1210,7 +1224,7 @@ public function getFileContent(): string; ```php @@ -1231,7 +1245,7 @@ public function getFileName(): string|null; ```php @@ -1278,7 +1292,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -1301,7 +1315,7 @@ public function getFirstExample(): string; ```php @@ -1332,7 +1346,7 @@ public function getFullFileName(): string|null; ```php @@ -1363,7 +1377,7 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php @@ -1394,7 +1408,7 @@ public function getInterfaceNames(): array; ```php @@ -1425,7 +1439,7 @@ public function getInterfacesEntities(): array; ```php @@ -1456,7 +1470,7 @@ public function getInterfacesString(): string; ```php @@ -1515,7 +1529,7 @@ public function getMethodEntity(string $methodName, bool $unsafe = true): \Bumbl ```php @@ -1552,7 +1566,7 @@ public function getMethodEntityCollection(): \BumbleDocGen\LanguageHandler\Php\P ```php @@ -1583,7 +1597,7 @@ public function getMethodsData(): array; ```php @@ -1614,7 +1628,7 @@ public function getModifiersString(): string; ```php @@ -1635,7 +1649,7 @@ public function getName(): string; ```php @@ -1666,7 +1680,7 @@ public function getNamespaceName(): string; ```php @@ -1687,7 +1701,7 @@ public function getObjectId(): string; ```php @@ -1718,7 +1732,7 @@ public function getParentClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entit ```php @@ -1749,7 +1763,7 @@ public function getParentClassName(): string|null; ```php @@ -1780,7 +1794,7 @@ public function getParentClassNames(): array; ```php @@ -1801,7 +1815,7 @@ public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHa ```php @@ -1839,7 +1853,7 @@ public function getPluginData(string $pluginKey): array|null; ```php @@ -1870,7 +1884,7 @@ public function getPropertiesData(): array; ```php @@ -1929,7 +1943,7 @@ public function getPropertyEntity(string $propertyName, bool $unsafe = true): \B ```php @@ -1966,7 +1980,7 @@ public function getPropertyEntityCollection(): \BumbleDocGen\LanguageHandler\Php ```php @@ -1987,7 +2001,7 @@ public function getReflector(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ ```php @@ -2035,7 +2049,7 @@ public function getRelativeFileName(bool $loadIfEmpty = true): string|null; ```php @@ -2056,7 +2070,7 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php @@ -2077,7 +2091,7 @@ public function getShortName(): string; ```php @@ -2108,7 +2122,7 @@ public function getStartLine(): int; ```php @@ -2141,7 +2155,7 @@ public function getThrows(): array; ```php @@ -2172,7 +2186,7 @@ public function getTraitsNames(): array; ```php @@ -2210,7 +2224,7 @@ public function hasAnnotationKey(string $annotationKey): bool; ```php @@ -2258,7 +2272,7 @@ public function hasConstant(string $constant): bool; ```php @@ -2288,7 +2302,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -2311,7 +2325,7 @@ public function hasExamples(): bool; ```php @@ -2359,7 +2373,7 @@ public function hasMethod(string $method): bool; ```php @@ -2407,7 +2421,7 @@ public function hasParentClass(string $parentClassName): bool; ```php @@ -2455,7 +2469,7 @@ public function hasProperty(string $property): bool; ```php @@ -2478,7 +2492,7 @@ public function hasThrows(): bool; ```php @@ -2509,7 +2523,7 @@ public function hasTraits(): bool; ```php @@ -2557,7 +2571,7 @@ public function implementsInterface(string $interfaceName): bool; ```php @@ -2588,7 +2602,7 @@ public function isAbstract(): bool; ```php @@ -2609,7 +2623,7 @@ public function isClassLoad(): bool; ```php @@ -2632,7 +2646,7 @@ public function isDeprecated(): bool; ```php @@ -2662,7 +2676,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -2695,7 +2709,7 @@ public function isEntityFileCanBeLoad(): bool; ```php @@ -2733,7 +2747,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php @@ -2757,6 +2771,27 @@ 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
    + +Parameters: not specified + +Return value: bool + +

    @@ -2764,7 +2799,7 @@ public function isEnum(): bool; ```php @@ -2795,7 +2830,7 @@ public function isInGit(): bool; ```php @@ -2826,7 +2861,7 @@ public function isInstantiable(): bool; ```php @@ -2857,7 +2892,7 @@ public function isInterface(): bool; ```php @@ -2880,7 +2915,7 @@ public function isInternal(): bool; ```php @@ -2928,7 +2963,7 @@ public function isSubclassOf(string $className): bool; ```php @@ -2959,7 +2994,7 @@ public function isTrait(): bool; ```php @@ -3002,20 +3037,20 @@ public function loadPluginData(string $pluginKey, array $data): void; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function reloadEntityDependenciesCache(): void; +public function reloadEntityDependenciesCache(): array; ``` Parameters: not specified -Return value: void +Return value: array Throws: @@ -3025,6 +3060,46 @@ public function reloadEntityDependenciesCache(): void; +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + +

    @@ -3032,7 +3107,7 @@ public function reloadEntityDependenciesCache(): void; ```php @@ -3062,7 +3137,7 @@ public function removeNotUsedEntityDataCache(): void; ```php diff --git a/docs/tech/2.parser/classes/ConstantEntity.md b/docs/tech/2.parser/classes/ConstantEntity.md index cfb51506..4c4312f3 100644 --- a/docs/tech/2.parser/classes/ConstantEntity.md +++ b/docs/tech/2.parser/classes/ConstantEntity.md @@ -147,6 +147,9 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
  30. reloadEntityDependenciesCache
  31. +
  32. + removeEntityValueFromCache +
  33. removeNotUsedEntityDataCache
  34. @@ -237,7 +240,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -270,7 +273,7 @@ public function entityCacheIsOutdated(): bool; ```php @@ -300,11 +303,11 @@ public function getAbsoluteFileName(): string|null; ```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait public function getCacheKey(): string; ``` @@ -323,7 +326,7 @@ public function getCacheKey(): string; ```php @@ -384,7 +387,7 @@ public function getDescription(): string; ```php @@ -448,7 +451,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; ```php @@ -502,7 +505,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -556,7 +559,7 @@ public function getEndLine(): int; ```php @@ -610,7 +613,7 @@ public function getFileName(): string|null; ```php @@ -657,7 +660,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -805,7 +808,7 @@ public function getNamespaceName(): string; ```php @@ -943,7 +946,7 @@ public function getStartLine(): int; ```php @@ -976,7 +979,7 @@ public function getThrows(): array; ```php @@ -1006,7 +1009,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1029,7 +1032,7 @@ public function hasExamples(): bool; ```php @@ -1052,7 +1055,7 @@ public function hasThrows(): bool; ```php @@ -1075,7 +1078,7 @@ public function isDeprecated(): bool; ```php @@ -1105,7 +1108,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1138,7 +1141,7 @@ public function isEntityFileCanBeLoad(): bool; ```php @@ -1254,20 +1257,20 @@ public function isPublic(): bool; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function reloadEntityDependenciesCache(): void; +public function reloadEntityDependenciesCache(): array; ``` Parameters: not specified -Return value: void +Return value: array Throws: @@ -1277,6 +1280,46 @@ public function reloadEntityDependenciesCache(): void; +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + +

    @@ -1284,7 +1327,7 @@ public function reloadEntityDependenciesCache(): void; ```php diff --git a/docs/tech/2.parser/classes/InvalidConfigurationParameterException_2.md b/docs/tech/2.parser/classes/InvalidConfigurationParameterException_2.md deleted file mode 100644 index aacfc757..00000000 --- a/docs/tech/2.parser/classes/InvalidConfigurationParameterException_2.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Parser / Entity filter conditions / InvalidConfigurationParameterException
    - -

    - InvalidConfigurationParameterException class: -

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

    Initialization methods:

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

    Methods:

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

    Method details:

    - -
    - -
      -
    • # - __construct -
    • -
    - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
    Construct the exception. Note: The message is NOT binary safe.
    - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $messagestring[optional] The Exception message to throw.
    $codeint[optional] The Exception code.
    $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
    - - - - -See: - -
    -
    -
    - -
      -
    • # - __toString -
    • -
    - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
    String representation of the exception
    - -Parameters: not specified - -Return value: string - - - -See: - -
    -
    -
    - -
      -
    • # - __wakeup -
    • -
    - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
    -
    -
    - -
      -
    • # - getCode -
    • -
    - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
    Gets the Exception code
    - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
    -
    -
    - -
      -
    • # - getFile -
    • -
    - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
    Gets the file in which the exception occurred
    - -Parameters: not specified - -Return value: string - - - -See: - -
    -
    -
    - -
      -
    • # - getLine -
    • -
    - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
    Gets the line in which the exception occurred
    - -Parameters: not specified - -Return value: int - - - -See: - -
    -
    -
    - -
      -
    • # - getMessage -
    • -
    - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
    Gets the Exception message
    - -Parameters: not specified - -Return value: string - - - -See: - -
    -
    -
    - -
      -
    • # - getPrevious -
    • -
    - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
    Returns previous Exception
    - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
    -
    -
    - -
      -
    • # - getTrace -
    • -
    - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
    Gets the stack trace
    - -Parameters: not specified - -Return value: array - - - -See: - -
    -
    -
    - -
      -
    • # - getTraceAsString -
    • -
    - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
    Gets the stack trace as a string
    - -Parameters: not specified - -Return value: string - - - -See: - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/2.parser/classes/LocatedInCondition.md b/docs/tech/2.parser/classes/LocatedInCondition.md index e71384a0..928c362e 100644 --- a/docs/tech/2.parser/classes/LocatedInCondition.md +++ b/docs/tech/2.parser/classes/LocatedInCondition.md @@ -132,7 +132,7 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf Throws: diff --git a/docs/tech/2.parser/classes/LocatedNotInCondition.md b/docs/tech/2.parser/classes/LocatedNotInCondition.md index d9e0eef3..2becdf60 100644 --- a/docs/tech/2.parser/classes/LocatedNotInCondition.md +++ b/docs/tech/2.parser/classes/LocatedNotInCondition.md @@ -132,7 +132,7 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf Throws: diff --git a/docs/tech/2.parser/classes/MethodEntity.md b/docs/tech/2.parser/classes/MethodEntity.md index d9f75e11..5e958af8 100644 --- a/docs/tech/2.parser/classes/MethodEntity.md +++ b/docs/tech/2.parser/classes/MethodEntity.md @@ -201,6 +201,9 @@ class MethodEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseE
  35. reloadEntityDependenciesCache
  36. +
  37. + removeEntityValueFromCache +
  38. removeNotUsedEntityDataCache
  39. @@ -296,7 +299,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -329,7 +332,7 @@ public function entityCacheIsOutdated(): bool; ```php @@ -359,7 +362,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -390,11 +393,11 @@ public function getBodyCode(): string; ```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait public function getCacheKey(): string; ``` @@ -413,7 +416,7 @@ public function getCacheKey(): string; ```php @@ -443,7 +446,7 @@ public function getCachedEntityDependencies(): array; ```php @@ -480,7 +483,7 @@ public function getDescription(): string; ```php @@ -567,7 +570,7 @@ public function getDocBlock(bool $recursive = true): \phpDocumentor\Reflection\D ```php @@ -635,7 +638,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -666,7 +669,7 @@ public function getDocCommentLine(): int|null; ```php @@ -703,7 +706,7 @@ public function getDocCommentLineRecursive(): int|null; ```php @@ -740,7 +743,7 @@ public function getDocCommentRecursive(): string; ```php @@ -763,7 +766,7 @@ public function getDocNote(): string; ```php @@ -794,7 +797,7 @@ public function getEndLine(): int; ```php @@ -817,7 +820,7 @@ public function getExamples(): array; ```php @@ -848,7 +851,7 @@ public function getFileName(): string|null; ```php @@ -895,7 +898,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -918,7 +921,7 @@ public function getFirstExample(): string; ```php @@ -970,7 +973,7 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php @@ -1022,7 +1025,7 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php @@ -1053,7 +1056,7 @@ public function getModifiersString(): string; ```php @@ -1105,7 +1108,7 @@ public function getNamespaceName(): string; ```php @@ -1128,7 +1131,7 @@ public function getObjectId(): string; ```php @@ -1168,7 +1171,7 @@ public function getParameters(): array; ```php @@ -1226,7 +1229,7 @@ public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHa ```php @@ -1263,7 +1266,7 @@ public function getPrototype(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ ```php @@ -1363,7 +1366,7 @@ public function getShortName(): string; ```php @@ -1400,7 +1403,7 @@ public function getSignature(): string; ```php @@ -1431,7 +1434,7 @@ public function getStartColumn(): int; ```php @@ -1462,7 +1465,7 @@ public function getStartLine(): int; ```php @@ -1495,7 +1498,7 @@ public function getThrows(): array; ```php @@ -1525,7 +1528,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1548,7 +1551,7 @@ public function hasExamples(): bool; ```php @@ -1571,7 +1574,7 @@ public function hasThrows(): bool; ```php @@ -1592,7 +1595,7 @@ public function isConstructor(): bool; ```php @@ -1615,7 +1618,7 @@ public function isDeprecated(): bool; ```php @@ -1636,7 +1639,7 @@ public function isDynamic(): bool; ```php @@ -1666,7 +1669,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1699,7 +1702,7 @@ public function isEntityFileCanBeLoad(): bool; ```php @@ -1720,7 +1723,7 @@ public function isImplementedInParentClass(): bool; ```php @@ -1757,7 +1760,7 @@ public function isInitialization(): bool; ```php @@ -1780,7 +1783,7 @@ public function isInternal(): bool; ```php @@ -1811,7 +1814,7 @@ public function isPrivate(): bool; ```php @@ -1842,7 +1845,7 @@ public function isProtected(): bool; ```php @@ -1873,7 +1876,7 @@ public function isPublic(): bool; ```php @@ -1904,7 +1907,7 @@ public function isStatic(): bool; ```php @@ -1942,20 +1945,20 @@ public static function parseAnnotationParams(array $params): array; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function reloadEntityDependenciesCache(): void; +public function reloadEntityDependenciesCache(): array; ``` Parameters: not specified -Return value: void +Return value: array Throws: @@ -1965,6 +1968,46 @@ public function reloadEntityDependenciesCache(): void; +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + +

    @@ -1972,7 +2015,7 @@ public function reloadEntityDependenciesCache(): void; ```php diff --git a/docs/tech/2.parser/classes/PropertyEntity.md b/docs/tech/2.parser/classes/PropertyEntity.md index 71088233..617c0494 100644 --- a/docs/tech/2.parser/classes/PropertyEntity.md +++ b/docs/tech/2.parser/classes/PropertyEntity.md @@ -159,6 +159,9 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
  40. reloadEntityDependenciesCache
  41. +
  42. + removeEntityValueFromCache +
  43. removeNotUsedEntityDataCache
  44. @@ -249,7 +252,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -282,7 +285,7 @@ public function entityCacheIsOutdated(): bool; ```php @@ -312,11 +315,11 @@ public function getAbsoluteFileName(): string|null; ```php -// Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait public function getCacheKey(): string; ``` @@ -335,7 +338,7 @@ public function getCacheKey(): string; ```php @@ -365,7 +368,7 @@ public function getCachedEntityDependencies(): array; ```php @@ -396,7 +399,7 @@ public function getDefaultValue(): string|array|int|bool|null|float; ```php @@ -433,7 +436,7 @@ public function getDescription(): string; ```php @@ -503,7 +506,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; ```php @@ -573,7 +576,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -596,7 +599,7 @@ public function getDocNote(): string; ```php @@ -627,7 +630,7 @@ public function getEndLine(): int; ```php @@ -650,7 +653,7 @@ public function getExamples(): array; ```php @@ -681,7 +684,7 @@ public function getFileName(): string|null; ```php @@ -728,7 +731,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -751,7 +754,7 @@ public function getFirstExample(): string; ```php @@ -772,7 +775,7 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php @@ -824,7 +827,7 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php @@ -861,7 +864,7 @@ public function getModifiersString(): string; ```php @@ -882,7 +885,7 @@ public function getName(): string; ```php @@ -913,7 +916,7 @@ public function getNamespaceName(): string; ```php @@ -999,7 +1002,7 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php @@ -1020,7 +1023,7 @@ public function getShortName(): string; ```php @@ -1051,7 +1054,7 @@ public function getStartLine(): int; ```php @@ -1084,7 +1087,7 @@ public function getThrows(): array; ```php @@ -1121,7 +1124,7 @@ public function getType(): string; ```php @@ -1151,7 +1154,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1174,7 +1177,7 @@ public function hasExamples(): bool; ```php @@ -1197,7 +1200,7 @@ public function hasThrows(): bool; ```php @@ -1220,7 +1223,7 @@ public function isDeprecated(): bool; ```php @@ -1250,7 +1253,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1283,7 +1286,7 @@ public function isEntityFileCanBeLoad(): bool; ```php @@ -1304,7 +1307,7 @@ public function isImplementedInParentClass(): bool; ```php @@ -1327,7 +1330,7 @@ public function isInternal(): bool; ```php @@ -1358,7 +1361,7 @@ public function isPrivate(): bool; ```php @@ -1389,7 +1392,7 @@ public function isProtected(): bool; ```php @@ -1420,20 +1423,20 @@ public function isPublic(): bool; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function reloadEntityDependenciesCache(): void; +public function reloadEntityDependenciesCache(): array; ``` Parameters: not specified -Return value: void +Return value: array Throws: @@ -1443,6 +1446,46 @@ public function reloadEntityDependenciesCache(): void; +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + +

    @@ -1450,7 +1493,7 @@ public function reloadEntityDependenciesCache(): void; ```php diff --git a/docs/tech/2.parser/classes/ReflectionException.md b/docs/tech/2.parser/classes/ReflectionException.md index 484bd11f..3447c81b 100644 --- a/docs/tech/2.parser/classes/ReflectionException.md +++ b/docs/tech/2.parser/classes/ReflectionException.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / ReflectionException
    + BumbleDocGen / Technical description of the project / Parser / ReflectionException

    ReflectionException class: diff --git a/docs/tech/2.parser/classes/RootEntityInterface.md b/docs/tech/2.parser/classes/RootEntityInterface.md index 66a1490f..420020ae 100644 --- a/docs/tech/2.parser/classes/RootEntityInterface.md +++ b/docs/tech/2.parser/classes/RootEntityInterface.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / RootEntityInterface
    + BumbleDocGen / Technical description of the project / Parser / RootEntityInterface

    RootEntityInterface class: @@ -63,6 +63,9 @@ their entities need to correspond to the same interfaces
  45. isEntityNameValid - Check if entity name is valid
  46. +
  47. + isExternalLibraryEntity + - The entity is loaded from a third party library and should not be treated the same as a standard one
  48. isInGit - The entity file is in the git repository
  49. @@ -148,7 +151,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -169,7 +172,7 @@ public function getEntityDependencies(): array; ```php @@ -213,7 +216,7 @@ public function getFileName(): string|null; ```php @@ -374,6 +377,27 @@ public static function isEntityNameValid(string $entityName): bool; Return value: 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
    + +Parameters: not specified + +Return value: bool + +

    @@ -381,7 +405,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php diff --git a/docs/tech/2.parser/entity.md b/docs/tech/2.parser/entity.md index 9ad24f95..b3230099 100644 --- a/docs/tech/2.parser/entity.md +++ b/docs/tech/2.parser/entity.md @@ -123,4 +123,4 @@ These classes are a convenient wrapper for accessing data in templates:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +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/entityFilterCondition.md b/docs/tech/2.parser/entityFilterCondition.md index 72619891..6c18390d 100644 --- a/docs/tech/2.parser/entityFilterCondition.md +++ b/docs/tech/2.parser/entityFilterCondition.md @@ -78,4 +78,4 @@ Filter condition for working with entities PHP language handler:

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

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

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +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/01_templates.md b/docs/tech/3.renderer/01_templates.md index 4e9dcb57..72ce1bb5 100644 --- a/docs/tech/3.renderer/01_templates.md +++ b/docs/tech/3.renderer/01_templates.md @@ -101,4 +101,4 @@ Result after starting the documentation generation process:

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

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +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/03_documentStructure.md b/docs/tech/3.renderer/03_documentStructure.md index 158325da..f7a420ff 100644 --- a/docs/tech/3.renderer/03_documentStructure.md +++ b/docs/tech/3.renderer/03_documentStructure.md @@ -19,4 +19,4 @@ plugins:

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

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +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/05_twigCustomFunctions.md b/docs/tech/3.renderer/05_twigCustomFunctions.md index 5b2947ed..9a0db2a5 100644 --- a/docs/tech/3.renderer/05_twigCustomFunctions.md +++ b/docs/tech/3.renderer/05_twigCustomFunctions.md @@ -177,7 +177,7 @@ Here is a list of functions available by default: - getDocumentationPageUrl
    + getDocumentationPageUrl
    Creates an entity link by object @@ -193,7 +193,7 @@ 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
    @@ -385,4 +385,4 @@ Here is a list of functions available by default:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +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/BreadcrumbsHelper.md b/docs/tech/3.renderer/classes/BreadcrumbsHelper.md index b9f31d6e..3559f4cc 100644 --- a/docs/tech/3.renderer/classes/BreadcrumbsHelper.md +++ b/docs/tech/3.renderer/classes/BreadcrumbsHelper.md @@ -42,6 +42,9 @@ final class BreadcrumbsHelper
  50. getBreadcrumbsForTemplates
  51. +
  52. + getNearestIndexFile +
  53. getPageDataByKey
  54. @@ -139,7 +142,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -162,7 +165,7 @@ public function getAllPageLinks(): array; \DI\DependencyException
  55. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  56. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -173,7 +176,7 @@ public function getAllPageLinks(): array; ```php @@ -218,7 +221,7 @@ public function getBreadcrumbs(string $filePatch, bool $fromCurrent = true): arr \DI\DependencyException
  57. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  58. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -229,7 +232,7 @@ public function getBreadcrumbs(string $filePatch, bool $fromCurrent = true): arr ```php @@ -274,7 +277,52 @@ public function getBreadcrumbsForTemplates(string $filePatch, bool $fromCurrent \DI\DependencyException
  59. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  60. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException + + + + +
    +
    + + + +```php +public function getNearestIndexFile(string $templateName): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $templateNamestring-
    + +Return value: string + + +Throws: + @@ -285,7 +333,7 @@ public function getBreadcrumbsForTemplates(string $filePatch, bool $fromCurrent ```php @@ -322,7 +370,7 @@ public function getPageDataByKey(string $key): array|null; \DI\DependencyException
  61. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  62. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  63. \DI\NotFoundException
  64. @@ -336,7 +384,7 @@ public function getPageDataByKey(string $key): array|null; ```php @@ -373,7 +421,7 @@ public function getPageDocFileByKey(string $key): string|null; \DI\DependencyException
  65. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  66. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  67. \DI\NotFoundException
  68. @@ -387,7 +435,7 @@ public function getPageDocFileByKey(string $key): string|null; ```php @@ -424,7 +472,7 @@ public function getPageLinkByKey(string $key): string|null; \DI\DependencyException
  69. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  70. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  71. \DI\NotFoundException
  72. @@ -438,7 +486,7 @@ public function getPageLinkByKey(string $key): string|null; ```php @@ -472,7 +520,7 @@ public function getTemplateLinkKey(string $templateName): string|null; Throws: @@ -483,7 +531,7 @@ public function getTemplateLinkKey(string $templateName): string|null; ```php @@ -517,7 +565,7 @@ public function getTemplateTitle(string $templateName): string; Throws: @@ -539,7 +587,7 @@ $breadcrumbsHelper->getTemplateTitle() == 'Some template title'; // is true ```php @@ -598,7 +646,7 @@ public function renderBreadcrumbs(string $currentPageTitle, string $filePatch, b \Twig\Error\LoaderError
  73. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  74. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/ClassEntityCollection_2.md b/docs/tech/3.renderer/classes/ClassEntityCollection_2.md index 78de16c9..b8e21b37 100644 --- a/docs/tech/3.renderer/classes/ClassEntityCollection_2.md +++ b/docs/tech/3.renderer/classes/ClassEntityCollection_2.md @@ -254,10 +254,10 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity Throws: @@ -325,10 +325,10 @@ public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHan Throws: @@ -411,10 +411,10 @@ public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen Throws: @@ -459,10 +459,10 @@ public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\P Throws: @@ -749,7 +749,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit See:

    @@ -775,10 +775,10 @@ public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Pars Throws: @@ -806,10 +806,10 @@ public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\ Throws: @@ -837,10 +837,10 @@ public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\En Throws: @@ -868,10 +868,10 @@ public function getOnlyTraits(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity Throws: @@ -1125,10 +1125,10 @@ public function loadClassEntities(): void; \DI\DependencyException
  75. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  76. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  77. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  78. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/DocumentedEntityWrapper.md b/docs/tech/3.renderer/classes/DocumentedEntityWrapper.md index 14cf61fa..9303aeb1 100644 --- a/docs/tech/3.renderer/classes/DocumentedEntityWrapper.md +++ b/docs/tech/3.renderer/classes/DocumentedEntityWrapper.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates / DocumentedEntityWrapper
    + BumbleDocGen / Technical description of the project / Renderer / DocumentedEntityWrapper

    DocumentedEntityWrapper class: diff --git a/docs/tech/3.renderer/classes/DocumentedEntityWrapper_3.md b/docs/tech/3.renderer/classes/DocumentedEntityWrapper_3.md deleted file mode 100644 index f7d977a4..00000000 --- a/docs/tech/3.renderer/classes/DocumentedEntityWrapper_3.md +++ /dev/null @@ -1,303 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / DocumentedEntityWrapper
    - -

    - DocumentedEntityWrapper class: -

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

    Initialization methods:

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

    Methods:

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

    Method details:

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

    - DocumentedEntityWrappersCollection class: + DocumentedEntityWrappersCollection class:

    @@ -60,11 +60,11 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T ```php -public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $rendererContext, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher); +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); ``` @@ -89,6 +89,11 @@ public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $localObjectCache \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - + + + $breadcrumbsHelper + \BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper + - $pluginEventDispatcher @@ -107,7 +112,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext ```php @@ -134,7 +139,7 @@ public function count(): int; ```php @@ -165,6 +170,13 @@ public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\En Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper +Throws: + +
    @@ -172,7 +184,7 @@ public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\En ```php @@ -193,7 +205,7 @@ public function getDocumentedEntitiesRelations(): array; ```php diff --git a/docs/tech/3.renderer/classes/DocumentedEntityWrappersCollection_3.md b/docs/tech/3.renderer/classes/DocumentedEntityWrappersCollection_3.md deleted file mode 100644 index 54a1ffda..00000000 --- a/docs/tech/3.renderer/classes/DocumentedEntityWrappersCollection_3.md +++ /dev/null @@ -1,226 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / DocumentedEntityWrappersCollection
    - -

    - DocumentedEntityWrappersCollection class: -

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

    Initialization methods:

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

    Methods:

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

    Method details:

    - -
    - - - -```php -public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $rendererContext, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $rendererContext\BumbleDocGen\Core\Renderer\Context\RendererContext-
    $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
    $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
    - - - -
    -
    -
    - - - -```php -public function count(): int; -``` - -
    Count elements of an object
    - -Parameters: not specified - -Return value: int - - - -See: - -
    -
    -
    - - - -```php -public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $rootEntity): \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $rootEntity\BumbleDocGen\Core\Parser\Entity\RootEntityInterface-
    - -Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper - - -
    -
    -
    - - - -```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/3.renderer/classes/DrawClassMap.md b/docs/tech/3.renderer/classes/DrawClassMap.md index 1d07d031..84f0f7ed 100644 --- a/docs/tech/3.renderer/classes/DrawClassMap.md +++ b/docs/tech/3.renderer/classes/DrawClassMap.md @@ -165,13 +165,13 @@ public function __invoke(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEn \DI\NotFoundException
  79. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  80. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  81. \DI\DependencyException
  82. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  83. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -267,13 +267,13 @@ public function getDirectoryStructure(\BumbleDocGen\LanguageHandler\Php\Parser\E \DI\NotFoundException
  84. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  85. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  86. \DI\DependencyException
  87. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  88. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/DrawDocumentationMenu.md b/docs/tech/3.renderer/classes/DrawDocumentationMenu.md index 77fd7c92..39e7b383 100644 --- a/docs/tech/3.renderer/classes/DrawDocumentationMenu.md +++ b/docs/tech/3.renderer/classes/DrawDocumentationMenu.md @@ -21,7 +21,7 @@ and all links with this page are recursively collected for it, after which the h See: @@ -196,7 +196,7 @@ public function __invoke(string|null $startPageKey = null, int|null $maxDeep = n \DI\DependencyException
  89. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  90. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/DrawDocumentedEntityLink.md b/docs/tech/3.renderer/classes/DrawDocumentedEntityLink.md index 8355ffe1..21f61981 100644 --- a/docs/tech/3.renderer/classes/DrawDocumentedEntityLink.md +++ b/docs/tech/3.renderer/classes/DrawDocumentedEntityLink.md @@ -169,13 +169,13 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $e \DI\NotFoundException
  91. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  92. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  93. \DI\DependencyException
  94. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  95. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs.md b/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs.md index 7b7eee1e..b251ade9 100644 --- a/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs.md +++ b/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs.md @@ -175,7 +175,7 @@ public function __invoke(string $currentPageTitle, string $templatePath, bool $s \DI\NotFoundException
  96. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  97. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs_2.md b/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs_2.md index 3060d122..cbfa1200 100644 --- a/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs_2.md +++ b/docs/tech/3.renderer/classes/GeneratePageBreadcrumbs_2.md @@ -175,7 +175,7 @@ public function __invoke(string $currentPageTitle, string $templatePath, bool $s \DI\NotFoundException
  98. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  99. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/GetClassMethodsBodyCode.md b/docs/tech/3.renderer/classes/GetClassMethodsBodyCode.md index d73a9038..a34314a8 100644 --- a/docs/tech/3.renderer/classes/GetClassMethodsBodyCode.md +++ b/docs/tech/3.renderer/classes/GetClassMethodsBodyCode.md @@ -151,7 +151,7 @@ public function __invoke(string $className, array $methodsNames): string|null; Throws: diff --git a/docs/tech/3.renderer/classes/GetDocumentationPageUrl.md b/docs/tech/3.renderer/classes/GetDocumentationPageUrl.md index c3abac92..026c1f00 100644 --- a/docs/tech/3.renderer/classes/GetDocumentationPageUrl.md +++ b/docs/tech/3.renderer/classes/GetDocumentationPageUrl.md @@ -177,7 +177,7 @@ public function __invoke(string $key): string; \DI\DependencyException
  100. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  101. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  102. \DI\NotFoundException
  103. diff --git a/docs/tech/3.renderer/classes/GetDocumentationPageUrl_2.md b/docs/tech/3.renderer/classes/GetDocumentationPageUrl_2.md index 18f74b4b..13464c1f 100644 --- a/docs/tech/3.renderer/classes/GetDocumentationPageUrl_2.md +++ b/docs/tech/3.renderer/classes/GetDocumentationPageUrl_2.md @@ -177,7 +177,7 @@ public function __invoke(string $key): string; \DI\DependencyException
  104. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  105. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  106. \DI\NotFoundException
  107. diff --git a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl.md b/docs/tech/3.renderer/classes/GetDocumentedEntityUrl.md index 3c66c451..bfae4f01 100644 --- a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl.md +++ b/docs/tech/3.renderer/classes/GetDocumentedEntityUrl.md @@ -25,7 +25,7 @@ See:
  108. \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrappersCollection
  109. - \BumbleDocGen\Core\Renderer\Context\RendererContext::$entityWrappersCollection
  110. + \BumbleDocGen\Core\Renderer\Context\RendererContext::$entityWrappersCollection @@ -211,13 +211,13 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ \DI\DependencyException
  111. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  112. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  113. \DI\NotFoundException
  114. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  115. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException diff --git a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_2.md b/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_2.md index dc59f8b2..2ce0dbe3 100644 --- a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_2.md +++ b/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_2.md @@ -21,11 +21,11 @@ the `EntityDocRendererInterface::getDocFileExtension()` directory will be create See: @@ -211,13 +211,13 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ \DI\DependencyException
  116. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  117. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  118. \DI\NotFoundException
  119. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  120. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException diff --git a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_3.md b/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_3.md index d7fa2b43..94533a93 100644 --- a/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_3.md +++ b/docs/tech/3.renderer/classes/GetDocumentedEntityUrl_3.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Renderer / Template filters / GetDocumentedEntityUrl
    + BumbleDocGen / Technical description of the project / Renderer / GetDocumentedEntityUrl

    GetDocumentedEntityUrl class: @@ -21,11 +21,11 @@ the `EntityDocRendererInterface::getDocFileExtension()` directory will be create See: @@ -211,13 +211,13 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ \DI\DependencyException
  121. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  122. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  123. \DI\NotFoundException
  124. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  125. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException diff --git a/docs/tech/3.renderer/classes/InvalidConfigurationParameterException.md b/docs/tech/3.renderer/classes/InvalidConfigurationParameterException.md index e81d87c3..e5223cd5 100644 --- a/docs/tech/3.renderer/classes/InvalidConfigurationParameterException.md +++ b/docs/tech/3.renderer/classes/InvalidConfigurationParameterException.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates variables / InvalidConfigurationParameterException
    + BumbleDocGen / Technical description of the project / Renderer / InvalidConfigurationParameterException

    InvalidConfigurationParameterException class: diff --git a/docs/tech/3.renderer/classes/InvalidConfigurationParameterException_2.md b/docs/tech/3.renderer/classes/InvalidConfigurationParameterException_2.md deleted file mode 100644 index 53b4583e..00000000 --- a/docs/tech/3.renderer/classes/InvalidConfigurationParameterException_2.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates / InvalidConfigurationParameterException
    - -

    - InvalidConfigurationParameterException class: -

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

    Initialization methods:

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

    Methods:

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

    Method details:

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

    - InvalidConfigurationParameterException class: -

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

    Initialization methods:

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

    Methods:

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

    Method details:

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

    - InvalidConfigurationParameterException class: -

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

    Initialization methods:

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

    Methods:

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

    Method details:

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

    - InvalidConfigurationParameterException class: -

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

    Initialization methods:

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

    Methods:

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

    Method details:

    - -
    - -
      -
    • # - __construct -
    • -
    - -```php -// Implemented in Exception - -public function __construct(string $message = "", int $code, \Throwable|null $previous = \null); -``` - -
    Construct the exception. Note: The message is NOT binary safe.
    - -Parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $messagestring[optional] The Exception message to throw.
    $codeint[optional] The Exception code.
    $previous\Throwable | null[optional] The previous throwable used for the exception chaining.
    - - - - -See: - -
    -
    -
    - -
      -
    • # - __toString -
    • -
    - -```php -// Implemented in Exception - -public function __toString(): string; -``` - -
    String representation of the exception
    - -Parameters: not specified - -Return value: string - - - -See: - -
    -
    -
    - -
      -
    • # - __wakeup -
    • -
    - -```php -// Implemented in Exception - -public function __wakeup(): mixed; -``` - - - -Parameters: not specified - -Return value: mixed - - -
    -
    -
    - -
      -
    • # - getCode -
    • -
    - -```php -// Implemented in Exception - -public function getCode(): mixed|int; -``` - -
    Gets the Exception code
    - -Parameters: not specified - -Return value: mixed | int - - - -See: - -
    -
    -
    - -
      -
    • # - getFile -
    • -
    - -```php -// Implemented in Exception - -public function getFile(): string; -``` - -
    Gets the file in which the exception occurred
    - -Parameters: not specified - -Return value: string - - - -See: - -
    -
    -
    - -
      -
    • # - getLine -
    • -
    - -```php -// Implemented in Exception - -public function getLine(): int; -``` - -
    Gets the line in which the exception occurred
    - -Parameters: not specified - -Return value: int - - - -See: - -
    -
    -
    - -
      -
    • # - getMessage -
    • -
    - -```php -// Implemented in Exception - -public function getMessage(): string; -``` - -
    Gets the Exception message
    - -Parameters: not specified - -Return value: string - - - -See: - -
    -
    -
    - -
      -
    • # - getPrevious -
    • -
    - -```php -// Implemented in Exception - -public function getPrevious(): \Throwable|null; -``` - -
    Returns previous Exception
    - -Parameters: not specified - -Return value: \Throwable | null - - - -See: - -
    -
    -
    - -
      -
    • # - getTrace -
    • -
    - -```php -// Implemented in Exception - -public function getTrace(): array; -``` - -
    Gets the stack trace
    - -Parameters: not specified - -Return value: array - - - -See: - -
    -
    -
    - -
      -
    • # - getTraceAsString -
    • -
    - -```php -// Implemented in Exception - -public function getTraceAsString(): string; -``` - -
    Gets the stack trace as a string
    - -Parameters: not specified - -Return value: string - - - -See: - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/PageHtmlLinkerPlugin.md b/docs/tech/3.renderer/classes/PageHtmlLinkerPlugin.md index aaa648ad..79de64fa 100644 --- a/docs/tech/3.renderer/classes/PageHtmlLinkerPlugin.md +++ b/docs/tech/3.renderer/classes/PageHtmlLinkerPlugin.md @@ -180,10 +180,10 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B \DI\DependencyException
  126. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  127. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  128. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  129. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/PrintEntityCollectionAsList.md b/docs/tech/3.renderer/classes/PrintEntityCollectionAsList.md index c03d19cf..a8086d43 100644 --- a/docs/tech/3.renderer/classes/PrintEntityCollectionAsList.md +++ b/docs/tech/3.renderer/classes/PrintEntityCollectionAsList.md @@ -168,7 +168,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ Throws: diff --git a/docs/tech/3.renderer/classes/ReflectionException.md b/docs/tech/3.renderer/classes/ReflectionException.md index d62e456e..89c5be36 100644 --- a/docs/tech/3.renderer/classes/ReflectionException.md +++ b/docs/tech/3.renderer/classes/ReflectionException.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates variables / ReflectionException
    + BumbleDocGen / Technical description of the project / Renderer / ReflectionException

    ReflectionException class: diff --git a/docs/tech/3.renderer/classes/ReflectionException_3.md b/docs/tech/3.renderer/classes/ReflectionException_3.md deleted file mode 100644 index 0d51cfa2..00000000 --- a/docs/tech/3.renderer/classes/ReflectionException_3.md +++ /dev/null @@ -1,391 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template functions / ReflectionException
    - -

    - ReflectionException class: -

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

    Initialization methods:

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

    Methods:

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

    Method details:

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

    RendererContext class: diff --git a/docs/tech/3.renderer/classes/RendererContext_3.md b/docs/tech/3.renderer/classes/RendererContext_3.md deleted file mode 100644 index ab188eda..00000000 --- a/docs/tech/3.renderer/classes/RendererContext_3.md +++ /dev/null @@ -1,259 +0,0 @@ - - BumbleDocGen / Technical description of the project / Renderer / Template filters / RendererContext
    - -

    - RendererContext class: -

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

    Methods:

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

    Method details:

    - -
    - - - -```php -public function addDependency(\BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyInterface $dependency): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $dependency\BumbleDocGen\Core\Renderer\Context\Dependency\RendererDependencyInterface-
    - -Return value: void - - -
    -
    -
    - - - -```php -public function clearDependencies(): void; -``` - - - -Parameters: not specified - -Return value: void - - -
    -
    -
    - - - -```php -public function getCurrentDocumentedEntityWrapper(): \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper|null; -``` - - - -Parameters: not specified - -Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper | null - - -
    -
    -
    - - - -```php -public function getCurrentTemplateFilePatch(): string; -``` - -
    Getting the path to the template file that is currently being worked on
    - -Parameters: not specified - -Return value: string - - -
    -
    -
    - - - -```php -public function getDependencies(): array; -``` - - - -Parameters: not specified - -Return value: array - - -
    -
    -
    - - - -```php -public function setCurrentDocumentedEntityWrapper(\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper $currentDocumentedEntityWrapper): void; -``` - - - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $currentDocumentedEntityWrapper\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper-
    - -Return value: void - - -
    -
    -
    - - - -```php -public function setCurrentTemplateFilePatch(string $currentTemplateFilePath): void; -``` - -
    Saving the path to the template file that is currently being worked on in the context
    - -Parameters: - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $currentTemplateFilePathstring-
    - -Return value: void - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/3.renderer/classes/RootEntityCollection.md b/docs/tech/3.renderer/classes/RootEntityCollection.md index f2af393f..57f757a4 100644 --- a/docs/tech/3.renderer/classes/RootEntityCollection.md +++ b/docs/tech/3.renderer/classes/RootEntityCollection.md @@ -298,7 +298,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit See:

    diff --git a/docs/tech/3.renderer/classes/RootEntityInterface.md b/docs/tech/3.renderer/classes/RootEntityInterface.md index 7d97a5c6..1ba150ef 100644 --- a/docs/tech/3.renderer/classes/RootEntityInterface.md +++ b/docs/tech/3.renderer/classes/RootEntityInterface.md @@ -63,6 +63,9 @@ their entities need to correspond to the same interfaces
  130. isEntityNameValid - Check if entity name is valid
  131. +
  132. + isExternalLibraryEntity + - The entity is loaded from a third party library and should not be treated the same as a standard one
  133. isInGit - The entity file is in the git repository
  134. @@ -148,7 +151,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -169,7 +172,7 @@ public function getEntityDependencies(): array; ```php @@ -213,7 +216,7 @@ public function getFileName(): string|null; ```php @@ -374,6 +377,27 @@ public static function isEntityNameValid(string $entityName): bool; Return value: 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
    + +Parameters: not specified + +Return value: bool + +

    @@ -381,7 +405,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php diff --git a/docs/tech/3.renderer/classes/RootEntityInterface_2.md b/docs/tech/3.renderer/classes/RootEntityInterface_2.md index 7badee12..f771214c 100644 --- a/docs/tech/3.renderer/classes/RootEntityInterface_2.md +++ b/docs/tech/3.renderer/classes/RootEntityInterface_2.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Templates variables / RootEntityInterface
    + BumbleDocGen / Technical description of the project / Renderer / RootEntityInterface

    RootEntityInterface class: @@ -63,6 +63,9 @@ their entities need to correspond to the same interfaces
  135. isEntityNameValid - Check if entity name is valid
  136. +
  137. + isExternalLibraryEntity + - The entity is loaded from a third party library and should not be treated the same as a standard one
  138. isInGit - The entity file is in the git repository
  139. @@ -148,7 +151,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -169,7 +172,7 @@ public function getEntityDependencies(): array; ```php @@ -213,7 +216,7 @@ public function getFileName(): string|null; ```php @@ -374,6 +377,27 @@ public static function isEntityNameValid(string $entityName): bool; Return value: 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
    + +Parameters: not specified + +Return value: bool + +

    @@ -381,7 +405,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php diff --git a/docs/tech/3.renderer/classes/StrTypeToUrl.md b/docs/tech/3.renderer/classes/StrTypeToUrl.md index 89c5aa44..3ceef34f 100644 --- a/docs/tech/3.renderer/classes/StrTypeToUrl.md +++ b/docs/tech/3.renderer/classes/StrTypeToUrl.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Renderer / Template filters / StrTypeToUrl

    - StrTypeToUrl class: + StrTypeToUrl class:

    @@ -77,7 +77,7 @@ See: ```php @@ -124,7 +124,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $renderer ```php @@ -170,22 +170,6 @@ public function __invoke(string $text, \BumbleDocGen\Core\Parser\Entity\RootEnti Return value: string -Throws: - -

    @@ -193,7 +177,7 @@ public function __invoke(string $text, \BumbleDocGen\Core\Parser\Entity\RootEnti ```php @@ -214,7 +198,7 @@ public static function getName(): string; ```php diff --git a/docs/tech/3.renderer/readme.md b/docs/tech/3.renderer/readme.md index 37d1604e..800c1393 100644 --- a/docs/tech/3.renderer/readme.md +++ b/docs/tech/3.renderer/readme.md @@ -60,4 +60,4 @@ This process is presented in the form of a diagram below.

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

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

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

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +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 index 044d0ff5..d1fde6a2 100644 --- a/docs/tech/4.pluginSystem/classes/AfterLoadingClassEntityCollection.md +++ b/docs/tech/4.pluginSystem/classes/AfterLoadingClassEntityCollection.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser; -final class AfterLoadingClassEntityCollection extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class AfterLoadingClassEntityCollection extends \Symfony\Contracts\EventDispatcher\Event ```
    The event is called after the initial creation of a collection of class entities
    diff --git a/docs/tech/4.pluginSystem/classes/AfterRenderingEntities.md b/docs/tech/4.pluginSystem/classes/AfterRenderingEntities.md index ee57fae3..37f8776d 100644 --- a/docs/tech/4.pluginSystem/classes/AfterRenderingEntities.md +++ b/docs/tech/4.pluginSystem/classes/AfterRenderingEntities.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class AfterRenderingEntities extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class AfterRenderingEntities extends \Symfony\Contracts\EventDispatcher\Event ```
    Event is the base class for classes containing event data.
    diff --git a/docs/tech/4.pluginSystem/classes/BeforeCreatingDocFile.md b/docs/tech/4.pluginSystem/classes/BeforeCreatingDocFile.md index 28977bea..6c8bd9da 100644 --- a/docs/tech/4.pluginSystem/classes/BeforeCreatingDocFile.md +++ b/docs/tech/4.pluginSystem/classes/BeforeCreatingDocFile.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class BeforeCreatingDocFile extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class BeforeCreatingDocFile extends \Symfony\Contracts\EventDispatcher\Event ```
    Called before the content of the documentation document is saved to a file
    diff --git a/docs/tech/4.pluginSystem/classes/BeforeRenderingDocFiles.md b/docs/tech/4.pluginSystem/classes/BeforeRenderingDocFiles.md index 10df4a78..68122b37 100644 --- a/docs/tech/4.pluginSystem/classes/BeforeRenderingDocFiles.md +++ b/docs/tech/4.pluginSystem/classes/BeforeRenderingDocFiles.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class BeforeRenderingDocFiles extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class BeforeRenderingDocFiles extends \Symfony\Contracts\EventDispatcher\Event ```
    The event occurs before the main documents begin rendering
    diff --git a/docs/tech/4.pluginSystem/classes/BeforeRenderingEntities.md b/docs/tech/4.pluginSystem/classes/BeforeRenderingEntities.md index a57268a7..0ad8070a 100644 --- a/docs/tech/4.pluginSystem/classes/BeforeRenderingEntities.md +++ b/docs/tech/4.pluginSystem/classes/BeforeRenderingEntities.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class BeforeRenderingEntities extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +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
    diff --git a/docs/tech/4.pluginSystem/classes/OnAddClassEntityToCollection.md b/docs/tech/4.pluginSystem/classes/OnAddClassEntityToCollection.md index cd2cd987..8247594d 100644 --- a/docs/tech/4.pluginSystem/classes/OnAddClassEntityToCollection.md +++ b/docs/tech/4.pluginSystem/classes/OnAddClassEntityToCollection.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser; -final class OnAddClassEntityToCollection extends \Symfony\Contracts\EventDispatcher\Event implements \BumbleDocGen\Core\Plugin\OnlySingleExecutionEvent, \Psr\EventDispatcher\StoppableEventInterface +final class OnAddClassEntityToCollection extends \Symfony\Contracts\EventDispatcher\Event implements \BumbleDocGen\Core\Plugin\OnlySingleExecutionEvent ```
    Called when each class entity is added to the entity collection
    diff --git a/docs/tech/4.pluginSystem/classes/OnCheckIsClassEntityCanBeLoad.md b/docs/tech/4.pluginSystem/classes/OnCheckIsClassEntityCanBeLoad.md index 72a1eac6..2c3a1991 100644 --- a/docs/tech/4.pluginSystem/classes/OnCheckIsClassEntityCanBeLoad.md +++ b/docs/tech/4.pluginSystem/classes/OnCheckIsClassEntityCanBeLoad.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity; -final class OnCheckIsClassEntityCanBeLoad extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnCheckIsClassEntityCanBeLoad extends \Symfony\Contracts\EventDispatcher\Event ```
    Event is the base class for classes containing event data.
    diff --git a/docs/tech/4.pluginSystem/classes/OnCreateDocumentedEntityWrapper.md b/docs/tech/4.pluginSystem/classes/OnCreateDocumentedEntityWrapper.md index 300a593b..b0dbaf39 100644 --- a/docs/tech/4.pluginSystem/classes/OnCreateDocumentedEntityWrapper.md +++ b/docs/tech/4.pluginSystem/classes/OnCreateDocumentedEntityWrapper.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class OnCreateDocumentedEntityWrapper extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnCreateDocumentedEntityWrapper extends \Symfony\Contracts\EventDispatcher\Event ```
    The event occurs when an entity is added to the list for documentation
    diff --git a/docs/tech/4.pluginSystem/classes/OnGetProjectTemplatesDirs.md b/docs/tech/4.pluginSystem/classes/OnGetProjectTemplatesDirs.md index 889c3574..e9d504ac 100644 --- a/docs/tech/4.pluginSystem/classes/OnGetProjectTemplatesDirs.md +++ b/docs/tech/4.pluginSystem/classes/OnGetProjectTemplatesDirs.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class OnGetProjectTemplatesDirs extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnGetProjectTemplatesDirs extends \Symfony\Contracts\EventDispatcher\Event ```
    This event occurs when all directories containing document templates are retrieved
    diff --git a/docs/tech/4.pluginSystem/classes/OnGetTemplatePathByRelativeDocPath.md b/docs/tech/4.pluginSystem/classes/OnGetTemplatePathByRelativeDocPath.md index ec4c765d..64f9ac0b 100644 --- a/docs/tech/4.pluginSystem/classes/OnGetTemplatePathByRelativeDocPath.md +++ b/docs/tech/4.pluginSystem/classes/OnGetTemplatePathByRelativeDocPath.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class OnGetTemplatePathByRelativeDocPath extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +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
    diff --git a/docs/tech/4.pluginSystem/classes/OnGettingResourceLink.md b/docs/tech/4.pluginSystem/classes/OnGettingResourceLink.md index c8ede590..55ab7614 100644 --- a/docs/tech/4.pluginSystem/classes/OnGettingResourceLink.md +++ b/docs/tech/4.pluginSystem/classes/OnGettingResourceLink.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class OnGettingResourceLink extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnGettingResourceLink extends \Symfony\Contracts\EventDispatcher\Event ```
    Event occurs when a reference to an entity (resource) is received
    diff --git a/docs/tech/4.pluginSystem/classes/OnLoadEntityDocPluginContent.md b/docs/tech/4.pluginSystem/classes/OnLoadEntityDocPluginContent.md index f0ceccd6..e03471f4 100644 --- a/docs/tech/4.pluginSystem/classes/OnLoadEntityDocPluginContent.md +++ b/docs/tech/4.pluginSystem/classes/OnLoadEntityDocPluginContent.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class OnLoadEntityDocPluginContent extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnLoadEntityDocPluginContent extends \Symfony\Contracts\EventDispatcher\Event ```
    Called when entity documentation is generated (plugin content loading)
    diff --git a/docs/tech/4.pluginSystem/classes/OnLoadSourceLocatorsCollection.md b/docs/tech/4.pluginSystem/classes/OnLoadSourceLocatorsCollection.md index bba0eed7..0bc4f882 100644 --- a/docs/tech/4.pluginSystem/classes/OnLoadSourceLocatorsCollection.md +++ b/docs/tech/4.pluginSystem/classes/OnLoadSourceLocatorsCollection.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Parser; -final class OnLoadSourceLocatorsCollection extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnLoadSourceLocatorsCollection extends \Symfony\Contracts\EventDispatcher\Event ```
    Called when source locators are loaded
    diff --git a/docs/tech/4.pluginSystem/classes/PhpUnitStubberPlugin.md b/docs/tech/4.pluginSystem/classes/PhpUnitStubberPlugin.md index 1c6e9b9c..30956139 100644 --- a/docs/tech/4.pluginSystem/classes/PhpUnitStubberPlugin.md +++ b/docs/tech/4.pluginSystem/classes/PhpUnitStubberPlugin.md @@ -71,7 +71,7 @@ public static function getSubscribedEvents(): array; ```php diff --git a/docs/tech/4.pluginSystem/classes/StubberPlugin.md b/docs/tech/4.pluginSystem/classes/StubberPlugin.md index e47ed002..eae9c06f 100644 --- a/docs/tech/4.pluginSystem/classes/StubberPlugin.md +++ b/docs/tech/4.pluginSystem/classes/StubberPlugin.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Plugin system / StubberPlugin

    - StubberPlugin class: + StubberPlugin class:

    @@ -57,11 +57,11 @@ final class StubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInterface, ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration); +public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser $composerParser); ``` @@ -78,8 +78,8 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf - $configuration - \BumbleDocGen\Core\Configuration\Configuration + $composerParser + \BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser - @@ -94,7 +94,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -115,7 +115,7 @@ public static function getSubscribedEvents(): array; ```php @@ -160,7 +160,7 @@ public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\ ```php diff --git a/docs/tech/4.pluginSystem/readme.md b/docs/tech/4.pluginSystem/readme.md index b93c5027..01f7ca5b 100644 --- a/docs/tech/4.pluginSystem/readme.md +++ b/docs/tech/4.pluginSystem/readme.md @@ -190,4 +190,4 @@ plugins:

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Oct 28 11:03:31 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +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/GenerateProjectTemplatesStructureCommand.md b/docs/tech/classes/AddDocBlocksCommand.md similarity index 98% rename from docs/tech/classes/GenerateProjectTemplatesStructureCommand.md rename to docs/tech/classes/AddDocBlocksCommand.md index f34f515b..e4bca321 100644 --- a/docs/tech/classes/GenerateProjectTemplatesStructureCommand.md +++ b/docs/tech/classes/AddDocBlocksCommand.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Class map / GenerateProjectTemplatesStructureCommand
    + BumbleDocGen / Technical description of the project / Class map / AddDocBlocksCommand

    - GenerateProjectTemplatesStructureCommand class: + AddDocBlocksCommand class:

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

Traits:

+ +

Constants:

@@ -173,7 +176,7 @@ public function getAllPageLinks(): array; ```php @@ -218,7 +221,7 @@ public function getBreadcrumbs(string $filePatch, bool $fromCurrent = true): arr \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -229,7 +232,7 @@ public function getBreadcrumbs(string $filePatch, bool $fromCurrent = true): arr ```php @@ -274,7 +277,52 @@ public function getBreadcrumbsForTemplates(string $filePatch, bool $fromCurrent \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException + + + + +
    +
    + + + +```php +public function getNearestIndexFile(string $templateName): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $templateNamestring-
    + +Return value: string + + +Throws: + @@ -285,7 +333,7 @@ public function getBreadcrumbsForTemplates(string $filePatch, bool $fromCurrent ```php @@ -322,7 +370,7 @@ public function getPageDataByKey(string $key): array|null; \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -336,7 +384,7 @@ public function getPageDataByKey(string $key): array|null; ```php @@ -373,7 +421,7 @@ public function getPageDocFileByKey(string $key): string|null; \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -387,7 +435,7 @@ public function getPageDocFileByKey(string $key): string|null; ```php @@ -424,7 +472,7 @@ public function getPageLinkByKey(string $key): string|null; \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -438,7 +486,7 @@ public function getPageLinkByKey(string $key): string|null; ```php @@ -472,7 +520,7 @@ public function getTemplateLinkKey(string $templateName): string|null; Throws: @@ -483,7 +531,7 @@ public function getTemplateLinkKey(string $templateName): string|null; ```php @@ -517,7 +565,7 @@ public function getTemplateTitle(string $templateName): string; Throws: @@ -539,7 +587,7 @@ $breadcrumbsHelper->getTemplateTitle() == 'Some template title'; // is true ```php @@ -598,7 +646,7 @@ public function renderBreadcrumbs(string $currentPageTitle, string $filePatch, b \Twig\Error\LoaderError
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/CacheableEntityInterface.md b/docs/tech/classes/CacheableEntityInterface.md index 08df82db..04d2f117 100644 --- a/docs/tech/classes/CacheableEntityInterface.md +++ b/docs/tech/classes/CacheableEntityInterface.md @@ -171,14 +171,14 @@ public function isEntityFileCanBeLoad(): bool; ```php -public function reloadEntityDependenciesCache(): void; +public function reloadEntityDependenciesCache(): array; ``` Parameters: not specified -Return value: void +Return value: array
    diff --git a/docs/tech/classes/CacheableEntityTrait.md b/docs/tech/classes/CacheableEntityTrait.md index ba728ec6..1bf16d86 100644 --- a/docs/tech/classes/CacheableEntityTrait.md +++ b/docs/tech/classes/CacheableEntityTrait.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Class map / CacheableEntityTrait

    - CacheableEntityTrait class: + CacheableEntityTrait class:

    @@ -35,6 +35,9 @@ trait CacheableEntityTrait
  • isEntityDataCacheOutdated
  • +
  • + removeEntityValueFromCache +
  • removeNotUsedEntityDataCache
  • @@ -53,7 +56,7 @@ trait CacheableEntityTrait ```php @@ -74,7 +77,7 @@ public function entityCacheIsOutdated(): bool; ```php @@ -95,7 +98,7 @@ public function getCacheKey(): string; ```php @@ -116,6 +119,44 @@ public function isEntityDataCacheOutdated(): bool; + +
    +
    + + + +```php +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + +

    @@ -123,7 +164,7 @@ public function isEntityDataCacheOutdated(): bool; ```php diff --git a/docs/tech/classes/CacheableEntityWrapperTrait.md b/docs/tech/classes/CacheableEntityWrapperTrait.md index f2a1ba62..e40efbbe 100644 --- a/docs/tech/classes/CacheableEntityWrapperTrait.md +++ b/docs/tech/classes/CacheableEntityWrapperTrait.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Class map / CacheableEntityWrapperTrait

    - CacheableEntityWrapperTrait class: + CacheableEntityWrapperTrait class:

    @@ -38,6 +38,9 @@ trait CacheableEntityWrapperTrait
  • isEntityFileCanBeLoad
  • +
  • + removeEntityValueFromCache +
  • removeNotUsedEntityDataCache
  • @@ -61,7 +64,7 @@ trait CacheableEntityWrapperTrait ```php @@ -84,7 +87,7 @@ public function entityCacheIsOutdated(): bool; ```php @@ -107,7 +110,7 @@ public function getCacheKey(): string; ```php @@ -137,7 +140,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -151,6 +154,46 @@ public function isEntityFileCanBeLoad(): bool; Return value: bool +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + +

    @@ -158,7 +201,7 @@ public function isEntityFileCanBeLoad(): bool; ```php diff --git a/docs/tech/classes/CacheablePhpEntityFactory.md b/docs/tech/classes/CacheablePhpEntityFactory.md index f14af954..b3880a8d 100644 --- a/docs/tech/classes/CacheablePhpEntityFactory.md +++ b/docs/tech/classes/CacheablePhpEntityFactory.md @@ -232,7 +232,7 @@ public function createClassEntityByReflection(\Roave\BetterReflection\Reflection \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -603,7 +603,7 @@ public function createSubClassEntityByReflection(string $subClassEntity, \Roave\ \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/CachedSourceLocator.md b/docs/tech/classes/CachedSourceLocator.md index 8e1fc9e4..5726a857 100644 --- a/docs/tech/classes/CachedSourceLocator.md +++ b/docs/tech/classes/CachedSourceLocator.md @@ -143,7 +143,7 @@ public function locateIdentifier(\Roave\BetterReflection\Reflector\Reflector $re \Psr\Cache\InvalidArgumentException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/ClassEntity.md b/docs/tech/classes/ClassEntity.md index 64c4ad48..937dc33a 100644 --- a/docs/tech/classes/ClassEntity.md +++ b/docs/tech/classes/ClassEntity.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Class map / ClassEntity

    - ClassEntity class: + ClassEntity class:

    @@ -249,6 +249,9 @@ class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEn
  • 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
  • @@ -273,6 +276,9 @@ class ClassEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEn
  • reloadEntityDependenciesCache
  • +
  • + removeEntityValueFromCache +
  • removeNotUsedEntityDataCache
  • @@ -294,11 +300,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\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\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); ``` @@ -338,6 +344,11 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf $parserHelper \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper - + + + $composerParser + \BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser + - $localObjectCache @@ -371,7 +382,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -410,7 +421,7 @@ public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocu Throws: @@ -430,7 +441,7 @@ public function cursorToDocAttributeLinkFragment(string $cursor, bool $isForDocu ```php @@ -447,10 +458,10 @@ public function documentCreationAllowed(): bool; Throws: @@ -461,7 +472,7 @@ public function documentCreationAllowed(): bool; ```php @@ -480,7 +491,7 @@ public function entityCacheIsOutdated(): bool; Throws: @@ -746,7 +760,7 @@ public function getConstantEntity(string $constantName, bool $unsafe = true): \B ```php @@ -766,13 +780,13 @@ public function getConstantEntityCollection(): \BumbleDocGen\LanguageHandler\Php \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -783,7 +797,7 @@ public function getConstantEntityCollection(): \BumbleDocGen\LanguageHandler\Php ```php @@ -800,10 +814,10 @@ public function getConstants(): array; Throws: @@ -814,7 +828,7 @@ public function getConstants(): array; ```php @@ -831,10 +845,10 @@ public function getConstantsData(): array; Throws: @@ -845,7 +859,7 @@ public function getConstantsData(): array; ```php @@ -865,13 +879,13 @@ public function getDescription(): string; \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -882,7 +896,7 @@ public function getDescription(): string; ```php @@ -901,7 +915,7 @@ public function getDescriptionLinks(): array; Throws: @@ -952,7 +966,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; ```php @@ -971,10 +985,10 @@ public function getDocComment(): string; Throws: @@ -985,7 +999,7 @@ public function getDocComment(): string; ```php @@ -1008,10 +1022,10 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -1022,7 +1036,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -1045,7 +1059,7 @@ public function getDocNote(): string; ```php @@ -1062,7 +1076,7 @@ public function getDocRender(): \BumbleDocGen\Core\Renderer\EntityDocRenderer\En Throws: @@ -1515,7 +1529,7 @@ public function getMethodEntity(string $methodName, bool $unsafe = true): \Bumbl ```php @@ -1535,13 +1549,13 @@ public function getMethodEntityCollection(): \BumbleDocGen\LanguageHandler\Php\P \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException @@ -1552,7 +1566,7 @@ public function getMethodEntityCollection(): \BumbleDocGen\LanguageHandler\Php\P ```php @@ -1569,10 +1583,10 @@ public function getMethodsData(): array; Throws: @@ -1583,7 +1597,7 @@ public function getMethodsData(): array; ```php @@ -1600,10 +1614,10 @@ public function getModifiersString(): string; Throws: @@ -1614,7 +1628,7 @@ public function getModifiersString(): string; ```php @@ -1635,7 +1649,7 @@ public function getName(): string; ```php @@ -1652,10 +1666,10 @@ public function getNamespaceName(): string; Throws: @@ -1666,7 +1680,7 @@ public function getNamespaceName(): string; ```php @@ -1687,7 +1701,7 @@ public function getObjectId(): string; ```php @@ -1704,10 +1718,10 @@ public function getParentClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entit Throws: @@ -1718,7 +1732,7 @@ public function getParentClass(): \BumbleDocGen\LanguageHandler\Php\Parser\Entit ```php @@ -1735,10 +1749,10 @@ public function getParentClassName(): string|null; Throws: @@ -1749,7 +1763,7 @@ public function getParentClassName(): string|null; ```php @@ -1766,10 +1780,10 @@ public function getParentClassNames(): array; Throws: @@ -1780,7 +1794,7 @@ public function getParentClassNames(): array; ```php @@ -1801,7 +1815,7 @@ public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHa ```php @@ -1839,7 +1853,7 @@ public function getPluginData(string $pluginKey): array|null; ```php @@ -1856,10 +1870,10 @@ public function getPropertiesData(): array; Throws: @@ -1870,7 +1884,7 @@ public function getPropertiesData(): array; ```php @@ -1915,10 +1929,10 @@ public function getPropertyEntity(string $propertyName, bool $unsafe = true): \B \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException @@ -1929,7 +1943,7 @@ public function getPropertyEntity(string $propertyName, bool $unsafe = true): \B ```php @@ -1949,13 +1963,13 @@ public function getPropertyEntityCollection(): \BumbleDocGen\LanguageHandler\Php \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException @@ -1966,7 +1980,7 @@ public function getPropertyEntityCollection(): \BumbleDocGen\LanguageHandler\Php ```php @@ -1987,7 +2001,7 @@ public function getReflector(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ ```php @@ -2021,10 +2035,10 @@ public function getRelativeFileName(bool $loadIfEmpty = true): string|null; Throws: @@ -2035,7 +2049,7 @@ public function getRelativeFileName(bool $loadIfEmpty = true): string|null; ```php @@ -2056,7 +2070,7 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php @@ -2077,7 +2091,7 @@ public function getShortName(): string; ```php @@ -2094,10 +2108,10 @@ public function getStartLine(): int; Throws: @@ -2108,7 +2122,7 @@ public function getStartLine(): int; ```php @@ -2127,10 +2141,10 @@ public function getThrows(): array; Throws: @@ -2141,7 +2155,7 @@ public function getThrows(): array; ```php @@ -2158,10 +2172,10 @@ public function getTraitsNames(): array; Throws: @@ -2172,7 +2186,7 @@ public function getTraitsNames(): array; ```php @@ -2210,7 +2224,7 @@ public function hasAnnotationKey(string $annotationKey): bool; ```php @@ -2244,10 +2258,10 @@ public function hasConstant(string $constant): bool; Throws: @@ -2258,7 +2272,7 @@ public function hasConstant(string $constant): bool; ```php @@ -2288,7 +2302,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -2311,7 +2325,7 @@ public function hasExamples(): bool; ```php @@ -2345,10 +2359,10 @@ public function hasMethod(string $method): bool; Throws: @@ -2359,7 +2373,7 @@ public function hasMethod(string $method): bool; ```php @@ -2393,10 +2407,10 @@ public function hasParentClass(string $parentClassName): bool; Throws: @@ -2407,7 +2421,7 @@ public function hasParentClass(string $parentClassName): bool; ```php @@ -2441,10 +2455,10 @@ public function hasProperty(string $property): bool; Throws: @@ -2455,7 +2469,7 @@ public function hasProperty(string $property): bool; ```php @@ -2478,7 +2492,7 @@ public function hasThrows(): bool; ```php @@ -2495,10 +2509,10 @@ public function hasTraits(): bool; Throws: @@ -2509,7 +2523,7 @@ public function hasTraits(): bool; ```php @@ -2543,10 +2557,10 @@ public function implementsInterface(string $interfaceName): bool; Throws: @@ -2557,7 +2571,7 @@ public function implementsInterface(string $interfaceName): bool; ```php @@ -2574,10 +2588,10 @@ public function isAbstract(): bool; Throws: @@ -2588,7 +2602,7 @@ public function isAbstract(): bool; ```php @@ -2609,7 +2623,7 @@ public function isClassLoad(): bool; ```php @@ -2632,7 +2646,7 @@ public function isDeprecated(): bool; ```php @@ -2662,7 +2676,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -2681,10 +2695,10 @@ public function isEntityFileCanBeLoad(): bool; Throws: @@ -2695,7 +2709,7 @@ public function isEntityFileCanBeLoad(): bool; ```php @@ -2733,7 +2747,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php @@ -2750,13 +2764,34 @@ public function isEnum(): 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 + +

    @@ -2764,7 +2799,7 @@ public function isEnum(): bool; ```php @@ -2781,10 +2816,10 @@ public function isInGit(): bool; Throws: @@ -2795,7 +2830,7 @@ public function isInGit(): bool; ```php @@ -2812,10 +2847,10 @@ public function isInstantiable(): bool; Throws: @@ -2826,7 +2861,7 @@ public function isInstantiable(): bool; ```php @@ -2843,10 +2878,10 @@ public function isInterface(): bool; Throws: @@ -2857,7 +2892,7 @@ public function isInterface(): bool; ```php @@ -2880,7 +2915,7 @@ public function isInternal(): bool; ```php @@ -2914,10 +2949,10 @@ public function isSubclassOf(string $className): bool; Throws: @@ -2928,7 +2963,7 @@ public function isSubclassOf(string $className): bool; ```php @@ -2945,10 +2980,10 @@ public function isTrait(): bool; Throws: @@ -2959,7 +2994,7 @@ public function isTrait(): bool; ```php @@ -3002,20 +3037,20 @@ public function loadPluginData(string $pluginKey, array $data): void; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function reloadEntityDependenciesCache(): void; +public function reloadEntityDependenciesCache(): array; ``` Parameters: not specified -Return value: void +Return value: array Throws: @@ -3025,6 +3060,46 @@ public function reloadEntityDependenciesCache(): void; +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + +

    @@ -3032,7 +3107,7 @@ public function reloadEntityDependenciesCache(): void; ```php @@ -3062,7 +3137,7 @@ public function removeNotUsedEntityDataCache(): void; ```php diff --git a/docs/tech/classes/ClassEntityCollection.md b/docs/tech/classes/ClassEntityCollection.md index bf0098f0..a89030c5 100644 --- a/docs/tech/classes/ClassEntityCollection.md +++ b/docs/tech/classes/ClassEntityCollection.md @@ -254,10 +254,10 @@ public function add(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity Throws: @@ -325,10 +325,10 @@ public function filterByInterfaces(array $interfaces): \BumbleDocGen\LanguageHan Throws: @@ -411,10 +411,10 @@ public function filterByParentClassNames(array $parentClassNames): \BumbleDocGen Throws: @@ -459,10 +459,10 @@ public function filterByPaths(array $paths): \BumbleDocGen\LanguageHandler\Php\P Throws: @@ -749,7 +749,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit See:

    @@ -775,10 +775,10 @@ public function getOnlyAbstractClasses(): \BumbleDocGen\LanguageHandler\Php\Pars Throws: @@ -806,10 +806,10 @@ public function getOnlyInstantiable(): \BumbleDocGen\LanguageHandler\Php\Parser\ Throws: @@ -837,10 +837,10 @@ public function getOnlyInterfaces(): \BumbleDocGen\LanguageHandler\Php\Parser\En Throws: @@ -868,10 +868,10 @@ public function getOnlyTraits(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity Throws: @@ -1125,10 +1125,10 @@ public function loadClassEntities(): void; \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/ComposerParser.md b/docs/tech/classes/ComposerParser.md new file mode 100644 index 00000000..fd9b98ed --- /dev/null +++ b/docs/tech/classes/ComposerParser.md @@ -0,0 +1,163 @@ + + BumbleDocGen / Technical description of the project / Class map / ComposerParser
    + +

    + ComposerParser class: +

    + + + + + +```php +namespace BumbleDocGen\LanguageHandler\Php\Parser; + +final class ComposerParser +``` + + + + + + + + +

    Initialization methods:

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

    Methods:

    + +
      +
    1. + getComposerPackageDataByClassName +
    2. +
    3. + getComposerPackages +
    4. +
    + + + + + + + +

    Method details:

    + +
    + + + +```php +public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration); +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $configuration\BumbleDocGen\Core\Configuration\Configuration-
    + + + +
    +
    +
    + + + +```php +public function getComposerPackageDataByClassName(string $className): array|null; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $classNamestring-
    + +Return value: array | null + + +Throws: + + +
    +
    +
    + + + +```php +public function getComposerPackages(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
    +
    + + \ No newline at end of file diff --git a/docs/tech/classes/Configuration.md b/docs/tech/classes/Configuration.md index 5982a656..f3c41b3e 100644 --- a/docs/tech/classes/Configuration.md +++ b/docs/tech/classes/Configuration.md @@ -39,12 +39,18 @@ final class Configuration
  • getCacheDir
  • +
  • + getConfigurationVersion +
  • getDocGenLibDir
  • getGitClientPath
  • +
  • + getIfExists +
  • getLanguageHandlersCollection
  • @@ -153,7 +159,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParame ```php @@ -176,7 +182,7 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -187,7 +193,7 @@ public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\Ad ```php @@ -204,10 +210,31 @@ public function getCacheDir(): string|null; Throws: + +
    +
    + + + +```php +public function getConfigurationVersion(): string; +``` + + + +Parameters: not specified + +Return value: string + +

    @@ -215,7 +242,7 @@ public function getCacheDir(): string|null; ```php @@ -236,7 +263,7 @@ public function getDocGenLibDir(): string; ```php @@ -253,7 +280,52 @@ public function getGitClientPath(): string; Throws: + +
    +
    +
    + + + +```php +public function getIfExists(mixed $key): string|null; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keymixed-
    + +Return value: string | null + + +Throws: + @@ -264,7 +336,7 @@ public function getGitClientPath(): string; ```php @@ -287,7 +359,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -298,7 +370,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L ```php @@ -315,7 +387,7 @@ public function getOutputDir(): string; Throws: @@ -326,7 +398,7 @@ public function getOutputDir(): string; ```php @@ -343,7 +415,7 @@ public function getOutputDirBaseUrl(): string; Throws: @@ -354,7 +426,7 @@ public function getOutputDirBaseUrl(): string; ```php @@ -374,7 +446,7 @@ public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProc \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -388,7 +460,7 @@ public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProc ```php @@ -408,7 +480,7 @@ public function getPlugins(): \BumbleDocGen\Core\Plugin\PluginsCollection; \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -422,7 +494,7 @@ public function getPlugins(): \BumbleDocGen\Core\Plugin\PluginsCollection; ```php @@ -439,7 +511,7 @@ public function getProjectRoot(): string; Throws: @@ -450,7 +522,7 @@ public function getProjectRoot(): string; ```php @@ -470,7 +542,7 @@ public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\Sou \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -484,7 +556,7 @@ public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\Sou ```php @@ -501,7 +573,7 @@ public function getTemplatesDir(): string; Throws: @@ -512,7 +584,7 @@ public function getTemplatesDir(): string; ```php @@ -535,7 +607,7 @@ public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\Custom \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -546,7 +618,7 @@ public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\Custom ```php @@ -566,7 +638,7 @@ public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\Cu \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -580,7 +652,7 @@ public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\Cu ```php @@ -608,7 +680,7 @@ public function getWorkingDir(): string; ```php @@ -625,7 +697,7 @@ public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; Throws: @@ -636,7 +708,7 @@ public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; ```php @@ -653,7 +725,7 @@ public function useSharedCache(): bool; Throws: diff --git a/docs/tech/classes/ConfigurationParameterBag.md b/docs/tech/classes/ConfigurationParameterBag.md index 5e2eeadf..fbdbf4c5 100644 --- a/docs/tech/classes/ConfigurationParameterBag.md +++ b/docs/tech/classes/ConfigurationParameterBag.md @@ -48,6 +48,9 @@ final class ConfigurationParameterBag
  • getConfigValues
  • +
  • + getConfigVersion +
  • getSubConfigurationParameterBag
  • @@ -99,7 +102,7 @@ final class ConfigurationParameterBag ```php @@ -141,7 +144,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\ValueTransformer\Va ```php @@ -184,7 +187,7 @@ public function addValueFromFileIfNotExists(string $name, string ...$fileNames): ```php @@ -227,7 +230,7 @@ public function addValueIfNotExists(string $name, mixed $value): void; ```php @@ -277,7 +280,7 @@ public function get(string $name, bool $useResolvers = true): mixed; ```php @@ -315,7 +318,7 @@ public function getAll(bool $useResolvers = true): array; ```php @@ -346,6 +349,27 @@ public function getConfigValues(string ...$configurationFiles): array; Return value: array +
    +
    +
    + + + +```php +public function getConfigVersion(): string; +``` + + + +Parameters: not specified + +Return value: string + +

    @@ -353,7 +377,7 @@ public function getConfigValues(string ...$configurationFiles): array; ```php @@ -391,7 +415,7 @@ public function getSubConfigurationParameterBag(string $parentKey): \BumbleDocGe ```php @@ -429,7 +453,7 @@ public function has(mixed $name): bool; ```php @@ -467,7 +491,7 @@ public function loadFromArray(array $parameters): void; ```php @@ -505,7 +529,7 @@ public function loadFromFiles(string ...$fileNames): void; ```php @@ -543,7 +567,7 @@ public function resolveValue(mixed $value): mixed; ```php @@ -586,7 +610,7 @@ public function set(string $name, mixed $value): void; ```php @@ -620,7 +644,7 @@ public function validateAndGetBooleanValue(string $parameterName): bool; Throws: @@ -631,7 +655,7 @@ public function validateAndGetBooleanValue(string $parameterName): bool; ```php @@ -681,7 +705,7 @@ public function validateAndGetClassListValue(string $parameterName, string $clas \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -692,7 +716,7 @@ public function validateAndGetClassListValue(string $parameterName, string $clas ```php @@ -734,7 +758,7 @@ public function validateAndGetClassValue(string $parameterName, string $classInt \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -748,7 +772,7 @@ public function validateAndGetClassValue(string $parameterName, string $classInt ```php @@ -787,7 +811,7 @@ public function validateAndGetDirectoryPathValue(string $parameterName, bool $nu Throws: @@ -798,7 +822,7 @@ public function validateAndGetDirectoryPathValue(string $parameterName, bool $nu ```php @@ -842,7 +866,7 @@ public function validateAndGetFilePathValue(string $parameterName, array $fileEx Throws: @@ -853,7 +877,7 @@ public function validateAndGetFilePathValue(string $parameterName, array $fileEx ```php @@ -892,7 +916,7 @@ public function validateAndGetStringValue(string $parameterName, bool $nullable Throws: diff --git a/docs/tech/classes/Configuration_2.md b/docs/tech/classes/Configuration_2.md new file mode 100644 index 00000000..d8fa6f21 --- /dev/null +++ b/docs/tech/classes/Configuration_2.md @@ -0,0 +1,735 @@ + + BumbleDocGen / Technical description of the project / Configuration
    + +

    + Configuration class: +

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

    Initialization methods:

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

    Methods:

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

    Constants:

    + + + + + + +

    Method details:

    + +
    + + + +```php +public function __construct(\BumbleDocGen\Core\Configuration\ConfigurationParameterBag $parameterBag, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \Psr\Log\LoggerInterface $logger); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $parameterBag\BumbleDocGen\Core\Configuration\ConfigurationParameterBag-
    $localObjectCache\BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache-
    $logger\Psr\Log\LoggerInterface-
    + + + +
    +
    +
    + + + +```php +public function getAdditionalConsoleCommands(): \BumbleDocGen\Console\Command\AdditionalCommandCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Console\Command\AdditionalCommandCollection + + +Throws: + + +
    +
    +
    + + + +```php +public function getCacheDir(): string|null; +``` + + + +Parameters: not specified + +Return value: string | null + + +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): string|null; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keymixed-
    + +Return value: string | null + + +Throws: + + +
    +
    +
    + + + +```php +public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\LanguageHandlersCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\LanguageHandler\LanguageHandlersCollection + + +Throws: + + +
    +
    +
    + + + +```php +public function getOutputDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
    +
    +
    + + + +```php +public function getOutputDirBaseUrl(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
    +
    +
    + + + +```php +public function getPageLinkProcessor(): \BumbleDocGen\Core\Renderer\PageLinkProcessor\PageLinkProcessorInterface; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\PageLinkProcessor\PageLinkProcessorInterface + + +Throws: + + +
    +
    +
    + + + +```php +public function getPlugins(): \BumbleDocGen\Core\Plugin\PluginsCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Plugin\PluginsCollection + + +Throws: + + +
    +
    +
    + + + +```php +public function getProjectRoot(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
    +
    +
    + + + +```php +public function getSourceLocators(): \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Parser\SourceLocator\SourceLocatorsCollection + + +Throws: + + +
    +
    +
    + + + +```php +public function getTemplatesDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
    +
    +
    + + + +```php +public function getTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\Twig\Filter\CustomFiltersCollection + + +Throws: + + +
    +
    +
    + + + +```php +public function getTwigFunctions(): \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection; +``` + + + +Parameters: not specified + +Return value: \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionsCollection + + +Throws: + + +
    +
    +
    + + + +```php +public function getWorkingDir(): string; +``` + + + +Parameters: not specified + +Return value: string + + +Throws: + + +
    +
    +
    + + + +```php +public function isCheckFileInGitBeforeCreatingDocEnabled(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
    +
    +
    + + + +```php +public function useSharedCache(): bool; +``` + + + +Parameters: not specified + +Return value: bool + + +Throws: + + +
    +
    + + \ No newline at end of file diff --git a/docs/tech/classes/ConstantEntity.md b/docs/tech/classes/ConstantEntity.md index 064118dc..8367da3e 100644 --- a/docs/tech/classes/ConstantEntity.md +++ b/docs/tech/classes/ConstantEntity.md @@ -147,6 +147,9 @@ class ConstantEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
  • reloadEntityDependenciesCache
  • +
  • + removeEntityValueFromCache +
  • removeNotUsedEntityDataCache
  • @@ -237,7 +240,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -256,7 +259,7 @@ public function entityCacheIsOutdated(): bool; Throws:
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + +

    @@ -1284,7 +1327,7 @@ public function reloadEntityDependenciesCache(): void; ```php diff --git a/docs/tech/classes/ConstantEntityCollection.md b/docs/tech/classes/ConstantEntityCollection.md index 4bca354d..46430bb9 100644 --- a/docs/tech/classes/ConstantEntityCollection.md +++ b/docs/tech/classes/ConstantEntityCollection.md @@ -322,10 +322,10 @@ public function loadConstantEntities(): void; \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -413,13 +413,13 @@ public function unsafeGet(string $constantName): \BumbleDocGen\LanguageHandler\P \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/DirectoryDependency.md b/docs/tech/classes/DirectoryDependency.md index a1598111..36aae44d 100644 --- a/docs/tech/classes/DirectoryDependency.md +++ b/docs/tech/classes/DirectoryDependency.md @@ -135,7 +135,7 @@ public static function create(\BumbleDocGen\Core\Renderer\RendererHelper $render Throws: @@ -180,7 +180,7 @@ public function isChanged(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHe Throws: diff --git a/docs/tech/classes/MissingDocBlocksGenerator.md b/docs/tech/classes/DocBlocksGenerator.md similarity index 68% rename from docs/tech/classes/MissingDocBlocksGenerator.md rename to docs/tech/classes/DocBlocksGenerator.md index 94dee11e..d1f9a760 100644 --- a/docs/tech/classes/MissingDocBlocksGenerator.md +++ b/docs/tech/classes/DocBlocksGenerator.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Class map / MissingDocBlocksGenerator
    + BumbleDocGen / Technical description of the project / Class map / DocBlocksGenerator

    - MissingDocBlocksGenerator class: + DocBlocksGenerator class:

    @@ -10,9 +10,9 @@ ```php -namespace BumbleDocGen\TemplateGenerator\ChatGpt; +namespace BumbleDocGen\AI\Generators; -final class MissingDocBlocksGenerator +final class DocBlocksGenerator ``` @@ -44,17 +44,13 @@ final class MissingDocBlocksGenerator

    Constants:

    @@ -69,11 +65,11 @@ final class MissingDocBlocksGenerator ```php -public function __construct(\Tectalic\OpenAi\Client $openaiClient, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper, string $model = self::MODEL_GPT_4); +public function __construct(\BumbleDocGen\AI\ProviderInterface $aiProvider, \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper $parserHelper); ``` @@ -90,19 +86,14 @@ public function __construct(\Tectalic\OpenAi\Client $openaiClient, \BumbleDocGen - $openaiClient - \Tectalic\OpenAi\Client + $aiProvider + \BumbleDocGen\AI\ProviderInterface - $parserHelper \BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper - - - - $model - string - - @@ -116,7 +107,7 @@ public function __construct(\Tectalic\OpenAi\Client $openaiClient, \BumbleDocGen ```php @@ -155,7 +146,7 @@ public function generateDocBlocksForMethodsWithoutIt(\BumbleDocGen\Core\Parser\E Throws: @@ -178,7 +166,7 @@ public function generateDocBlocksForMethodsWithoutIt(\BumbleDocGen\Core\Parser\E ```php @@ -218,10 +206,10 @@ public function hasMethodsWithoutDocBlocks(\BumbleDocGen\Core\Parser\Entity\Root \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/DocGenerator.md b/docs/tech/classes/DocGenerator.md index 486ecaeb..51981535 100644 --- a/docs/tech/classes/DocGenerator.md +++ b/docs/tech/classes/DocGenerator.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Class map / DocGenerator

    - DocGenerator class: + DocGenerator class:

    @@ -34,17 +34,14 @@ final class DocGenerator
    1. - addMissingDocBlocks + addDocBlocks - Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
    2. -
    3. - fillInReadmeMdTemplate -
    4. generate - Generates documentation using configuration
    5. - generateProjectTemplatesStructure - - Generate documentation structure with blank templates using AI tools
    6. + generateReadmeTemplate +
    7. parseAndGetRootEntityCollectionsGroup
    8. @@ -55,11 +52,11 @@ final class DocGenerator @@ -74,7 +71,7 @@ final class DocGenerator ```php @@ -154,58 +151,35 @@ public function __construct(\Symfony\Component\Filesystem\Filesystem $fs, \Symfo
      ```php -public function addMissingDocBlocks(): void; +public function addDocBlocks(\BumbleDocGen\AI\ProviderInterface $aiProvider): void; ```
      Generate missing docBlocks with ChatGPT for project class methods that are available for documentation
      -Parameters: not specified - -Return value: void - - -Throws: - - -
      -
      -
      - - - -```php -public function fillInReadmeMdTemplate(): void; -``` - - +Parameters: -Parameters: not specified + + + + + + + + + + + + + + + +
      NameTypeDescription
      $aiProvider\BumbleDocGen\AI\ProviderInterface-
      Return value: void @@ -213,19 +187,16 @@ public function fillInReadmeMdTemplate(): void; Throws: @@ -236,7 +207,7 @@ public function fillInReadmeMdTemplate(): void; ```php @@ -265,18 +236,35 @@ public function generate(): void;
      ```php -public function generateProjectTemplatesStructure(): void; +public function generateReadmeTemplate(\BumbleDocGen\AI\ProviderInterface $aiProvider): void; ``` -
      Generate documentation structure with blank templates using AI tools
      -Parameters: not specified + +Parameters: + + + + + + + + + + + + + + + + +
      NameTypeDescription
      $aiProvider\BumbleDocGen\AI\ProviderInterface-
      Return value: void @@ -284,19 +272,16 @@ public function generateProjectTemplatesStructure(): void; Throws: @@ -307,7 +292,7 @@ public function generateProjectTemplatesStructure(): void; ```php @@ -330,7 +315,7 @@ public function parseAndGetRootEntityCollectionsGroup(): \BumbleDocGen\Core\Pars \DI\NotFoundException
    9. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    10. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/DocumentedEntityWrapper_2.md b/docs/tech/classes/DocumentedEntityWrapper_2.md similarity index 97% rename from docs/tech/3.renderer/classes/DocumentedEntityWrapper_2.md rename to docs/tech/classes/DocumentedEntityWrapper_2.md index c6dfad98..f5621eef 100644 --- a/docs/tech/3.renderer/classes/DocumentedEntityWrapper_2.md +++ b/docs/tech/classes/DocumentedEntityWrapper_2.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Renderer / Template functions / DocumentedEntityWrapper
      + BumbleDocGen / Technical description of the project / DocumentedEntityWrapper

      DocumentedEntityWrapper class: diff --git a/docs/tech/classes/DocumentedEntityWrappersCollection.md b/docs/tech/classes/DocumentedEntityWrappersCollection.md index 1d16d4c1..63cdd40e 100644 --- a/docs/tech/classes/DocumentedEntityWrappersCollection.md +++ b/docs/tech/classes/DocumentedEntityWrappersCollection.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Class map / DocumentedEntityWrappersCollection

      - DocumentedEntityWrappersCollection class: + DocumentedEntityWrappersCollection class:

      @@ -60,11 +60,11 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T ```php -public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $rendererContext, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher); +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); ``` @@ -89,6 +89,11 @@ public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $localObjectCache \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - + + + $breadcrumbsHelper + \BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper + - $pluginEventDispatcher @@ -107,7 +112,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext ```php @@ -134,7 +139,7 @@ public function count(): int; ```php @@ -165,6 +170,13 @@ public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\En Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper +Throws: + +

      @@ -172,7 +184,7 @@ public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\En ```php @@ -193,7 +205,7 @@ public function getDocumentedEntitiesRelations(): array; ```php diff --git a/docs/tech/3.renderer/classes/DocumentedEntityWrappersCollection_2.md b/docs/tech/classes/DocumentedEntityWrappersCollection_2.md similarity index 84% rename from docs/tech/3.renderer/classes/DocumentedEntityWrappersCollection_2.md rename to docs/tech/classes/DocumentedEntityWrappersCollection_2.md index ff2e994b..c913bb55 100644 --- a/docs/tech/3.renderer/classes/DocumentedEntityWrappersCollection_2.md +++ b/docs/tech/classes/DocumentedEntityWrappersCollection_2.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Renderer / Template functions / DocumentedEntityWrappersCollection
      + BumbleDocGen / Technical description of the project / DocumentedEntityWrappersCollection

      - DocumentedEntityWrappersCollection class: + DocumentedEntityWrappersCollection class:

      @@ -60,11 +60,11 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \T ```php -public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $rendererContext, \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache $localObjectCache, \BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher); +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); ``` @@ -89,6 +89,11 @@ public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext $localObjectCache \BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache - + + + $breadcrumbsHelper + \BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper + - $pluginEventDispatcher @@ -107,7 +112,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext ```php @@ -134,7 +139,7 @@ public function count(): int; ```php @@ -165,6 +170,13 @@ public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\En Return value: \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrapper +Throws: + +

      @@ -172,7 +184,7 @@ public function createAndAddDocumentedEntityWrapper(\BumbleDocGen\Core\Parser\En ```php @@ -193,7 +205,7 @@ public function getDocumentedEntitiesRelations(): array; ```php diff --git a/docs/tech/classes/DrawClassMap.md b/docs/tech/classes/DrawClassMap.md index 5d32d7ff..7ed2a300 100644 --- a/docs/tech/classes/DrawClassMap.md +++ b/docs/tech/classes/DrawClassMap.md @@ -165,13 +165,13 @@ public function __invoke(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEn \DI\NotFoundException
    11. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    12. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    13. \DI\DependencyException
    14. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    15. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -267,13 +267,13 @@ public function getDirectoryStructure(\BumbleDocGen\LanguageHandler\Php\Parser\E \DI\NotFoundException
    16. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    17. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    18. \DI\DependencyException
    19. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    20. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/DrawDocumentationMenu.md b/docs/tech/classes/DrawDocumentationMenu.md index bf71bb15..c322dbcb 100644 --- a/docs/tech/classes/DrawDocumentationMenu.md +++ b/docs/tech/classes/DrawDocumentationMenu.md @@ -21,7 +21,7 @@ and all links with this page are recursively collected for it, after which the h See: @@ -196,7 +196,7 @@ public function __invoke(string|null $startPageKey = null, int|null $maxDeep = n \DI\DependencyException
    21. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    22. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/DrawDocumentedEntityLink.md b/docs/tech/classes/DrawDocumentedEntityLink.md index 1eeb445b..085b28a6 100644 --- a/docs/tech/classes/DrawDocumentedEntityLink.md +++ b/docs/tech/classes/DrawDocumentedEntityLink.md @@ -169,13 +169,13 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityInterface $e \DI\NotFoundException
    23. - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    24. + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
    25. \DI\DependencyException
    26. - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
    27. + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/DynamicMethodEntity.md b/docs/tech/classes/DynamicMethodEntity.md index 01d0f534..4e60369a 100644 --- a/docs/tech/classes/DynamicMethodEntity.md +++ b/docs/tech/classes/DynamicMethodEntity.md @@ -225,7 +225,7 @@ public function getAbsoluteFileName(): string|null; Throws: @@ -351,7 +351,7 @@ public function getFileName(): string|null; Throws:
    +

    Traits:

    + +

    Constants:

    diff --git a/docs/tech/classes/GetDocumentedEntityUrl_2.md b/docs/tech/classes/GetDocumentedEntityUrl_2.md new file mode 100644 index 00000000..738c5993 --- /dev/null +++ b/docs/tech/classes/GetDocumentedEntityUrl_2.md @@ -0,0 +1,269 @@ + + BumbleDocGen / Technical description of the project / GetDocumentedEntityUrl
    + +

    + GetDocumentedEntityUrl class: +

    + + + + + +```php +namespace BumbleDocGen\Core\Renderer\Twig\Function; + +final class GetDocumentedEntityUrl implements \BumbleDocGen\Core\Renderer\Twig\Function\CustomFunctionInterface +``` + +
    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
    + +See: + + + +Examples of using: + +```php +{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\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') }} +The function returns a reference to the documented entity MainExtension + +``` + +```php +{{ getDocumentedEntityUrl(phpClassEntityCollection, '\\BumbleDocGen\\Renderer\\Twig\\MainExtension', '', false) }} +The function returns a link to the file MainExtension + +``` + + + + +

    Settings:

    + + + + + + +
    Function name:getDocumentedEntityUrl
    + + + + +

    Initialization methods:

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

    Methods:

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

    Constants:

    + + + + + + +

    Method details:

    + +
    + + + +```php +public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $rendererHelper, \BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrappersCollection $documentedEntityWrappersCollection, \BumbleDocGen\Core\Configuration\Configuration $configuration, \Monolog\Logger $logger); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $rendererHelper\BumbleDocGen\Core\Renderer\RendererHelper-
    $documentedEntityWrappersCollection\BumbleDocGen\Core\Renderer\Context\DocumentedEntityWrappersCollection-
    $configuration\BumbleDocGen\Core\Configuration\Configuration-
    $logger\Monolog\Logger-
    + + + +
    +
    +
    + + + +```php +public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, string $entityName, string $cursor = '', bool $createDocument = true): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $rootEntityCollection\BumbleDocGen\Core\Parser\Entity\RootEntityCollectionProcessed entity collection
    $entityNamestringThe full name of the entity for which the URL will be retrieved. + If the entity is not found, the DEFAULT_URL value will be returned.
    $cursorstringCursor on the page of the documented entity (for example, the name of a method or property)
    $createDocumentboolIf true, creates an entity document. Otherwise, just gives a reference to the entity code
    + +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/2.parser/classes/InvalidConfigurationParameterException_3.md b/docs/tech/classes/InvalidConfigurationParameterException_2.md similarity index 97% rename from docs/tech/2.parser/classes/InvalidConfigurationParameterException_3.md rename to docs/tech/classes/InvalidConfigurationParameterException_2.md index 6fd398e0..6f1165dc 100644 --- a/docs/tech/2.parser/classes/InvalidConfigurationParameterException_3.md +++ b/docs/tech/classes/InvalidConfigurationParameterException_2.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Parser / Entities and entities collections / InvalidConfigurationParameterException
    + BumbleDocGen / Technical description of the project / InvalidConfigurationParameterException

    InvalidConfigurationParameterException class: diff --git a/docs/tech/classes/LoadPluginsContent_2.md b/docs/tech/classes/LoadPluginsContent_2.md new file mode 100644 index 00000000..c6a8a8d9 --- /dev/null +++ b/docs/tech/classes/LoadPluginsContent_2.md @@ -0,0 +1,201 @@ + + BumbleDocGen / Technical description of the project / LoadPluginsContent
    + +

    + LoadPluginsContent class: +

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

    Settings:

    + + + + + + +
    Function name:loadPluginsContent
    + + + + +

    Initialization methods:

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

    Methods:

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

    Method details:

    + +
    + + + +```php +public function __construct(\BumbleDocGen\Core\Plugin\PluginEventDispatcher $pluginEventDispatcher); +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $pluginEventDispatcher\BumbleDocGen\Core\Plugin\PluginEventDispatcher-
    + + + +
    +
    +
    + + + +```php +public function __invoke(string $content, \BumbleDocGen\Core\Parser\Entity\RootEntityInterface $entity, string $blockType): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $contentstringContent to be processed by plugins
    $entity\BumbleDocGen\Core\Parser\Entity\RootEntityInterfaceThe entity for which we process the content block
    $blockTypestringContent block type. @see BaseTemplatePluginInterface::BLOCK_*
    + +Return value: string + + +
    +
    +
    + + + +```php +public static function getName(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
    +
    +
    + + + +```php +public static function getOptions(): array; +``` + + + +Parameters: not specified + +Return value: array + + +
    +
    + + \ No newline at end of file diff --git a/docs/tech/classes/LocalObjectCache.md b/docs/tech/classes/LocalObjectCache.md index f67e27cd..55533ee7 100644 --- a/docs/tech/classes/LocalObjectCache.md +++ b/docs/tech/classes/LocalObjectCache.md @@ -134,7 +134,7 @@ public function getMethodCachedResult(string $methodKey, string $objectId): mixe Throws: diff --git a/docs/tech/classes/LocatedInCondition.md b/docs/tech/classes/LocatedInCondition.md index 398e3758..bc896755 100644 --- a/docs/tech/classes/LocatedInCondition.md +++ b/docs/tech/classes/LocatedInCondition.md @@ -132,7 +132,7 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf Throws: diff --git a/docs/tech/classes/LocatedNotInCondition.md b/docs/tech/classes/LocatedNotInCondition.md index 17d48a2a..0c4b849e 100644 --- a/docs/tech/classes/LocatedNotInCondition.md +++ b/docs/tech/classes/LocatedNotInCondition.md @@ -132,7 +132,7 @@ public function canAddToCollection(\BumbleDocGen\Core\Parser\Entity\EntityInterf Throws: diff --git a/docs/tech/classes/LoggableRootEntityCollection.md b/docs/tech/classes/LoggableRootEntityCollection.md index 9b543c78..db44b043 100644 --- a/docs/tech/classes/LoggableRootEntityCollection.md +++ b/docs/tech/classes/LoggableRootEntityCollection.md @@ -354,7 +354,7 @@ public function getLoadedOrCreateNew(string $objectName, bool $withAddClassEntit See:

    diff --git a/docs/tech/classes/MainExtension.md b/docs/tech/classes/MainExtension.md index 78c1559e..4db33a6d 100644 --- a/docs/tech/classes/MainExtension.md +++ b/docs/tech/classes/MainExtension.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Renderer\Twig; -final class MainExtension extends \Twig\Extension\AbstractExtension implements \Twig\Extension\ExtensionInterface +final class MainExtension extends \Twig\Extension\AbstractExtension ```
    This is an extension that is used to generate documents from templates
    @@ -113,7 +113,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\Context\RendererContext Throws: @@ -183,7 +183,7 @@ public function getLanguageHandlersCollection(): \BumbleDocGen\LanguageHandler\L Throws: @@ -303,7 +303,7 @@ public function setDefaultFilters(): void; Throws: @@ -331,7 +331,7 @@ public function setDefaultFunctions(): void; Throws: diff --git a/docs/tech/classes/MainTwigEnvironment.md b/docs/tech/classes/MainTwigEnvironment.md index 42f3ba98..c0a946fa 100644 --- a/docs/tech/classes/MainTwigEnvironment.md +++ b/docs/tech/classes/MainTwigEnvironment.md @@ -146,7 +146,7 @@ public function render(mixed $name, array $context = []): string; \Twig\Error\LoaderError
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/MethodEntity.md b/docs/tech/classes/MethodEntity.md index 7c4e360b..fbb57e47 100644 --- a/docs/tech/classes/MethodEntity.md +++ b/docs/tech/classes/MethodEntity.md @@ -201,6 +201,9 @@ class MethodEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseE
  • reloadEntityDependenciesCache
  • +
  • + removeEntityValueFromCache +
  • removeNotUsedEntityDataCache
  • @@ -296,7 +299,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -315,7 +318,7 @@ public function entityCacheIsOutdated(): bool; Throws: @@ -480,7 +483,7 @@ public function getDescription(): string; ```php @@ -499,7 +502,7 @@ public function getDescriptionLinks(): array; Throws: @@ -567,7 +570,7 @@ public function getDocBlock(bool $recursive = true): \phpDocumentor\Reflection\D ```php @@ -584,10 +587,10 @@ public function getDocComment(): string; Throws: @@ -615,7 +618,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ Throws: @@ -635,7 +638,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -652,10 +655,10 @@ public function getDocCommentLine(): int|null; Throws: @@ -666,7 +669,7 @@ public function getDocCommentLine(): int|null; ```php @@ -686,13 +689,13 @@ public function getDocCommentLineRecursive(): int|null; \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -703,7 +706,7 @@ public function getDocCommentLineRecursive(): int|null; ```php @@ -723,13 +726,13 @@ public function getDocCommentRecursive(): string; \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -740,7 +743,7 @@ public function getDocCommentRecursive(): string; ```php @@ -763,7 +766,7 @@ public function getDocNote(): string; ```php @@ -780,10 +783,10 @@ public function getEndLine(): int; Throws: @@ -794,7 +797,7 @@ public function getEndLine(): int; ```php @@ -817,7 +820,7 @@ public function getExamples(): array; ```php @@ -834,10 +837,10 @@ public function getFileName(): string|null; Throws: @@ -848,7 +851,7 @@ public function getFileName(): string|null; ```php @@ -884,7 +887,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; Throws: @@ -895,7 +898,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -918,7 +921,7 @@ public function getFirstExample(): string; ```php @@ -935,10 +938,10 @@ public function getFirstReturnValue(): mixed; Throws: @@ -970,7 +973,7 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php @@ -1008,10 +1011,10 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec Throws: @@ -1022,7 +1025,7 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php @@ -1039,10 +1042,10 @@ public function getModifiersString(): string; Throws: @@ -1053,7 +1056,7 @@ public function getModifiersString(): string; ```php @@ -1091,10 +1094,10 @@ public function getNamespaceName(): string; Throws: @@ -1105,7 +1108,7 @@ public function getNamespaceName(): string; ```php @@ -1128,7 +1131,7 @@ public function getObjectId(): string; ```php @@ -1148,13 +1151,13 @@ public function getParameters(): array; \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \Exception
  • @@ -1168,7 +1171,7 @@ public function getParameters(): array; ```php @@ -1191,10 +1194,10 @@ public function getParametersString(): string; \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -1226,7 +1229,7 @@ public function getPhpHandlerSettings(): \BumbleDocGen\LanguageHandler\Php\PhpHa ```php @@ -1243,7 +1246,7 @@ public function getPrototype(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ Throws: @@ -1263,7 +1266,7 @@ public function getPrototype(): \BumbleDocGen\LanguageHandler\Php\Parser\Entity\ ```php @@ -1283,13 +1286,13 @@ public function getReturnType(): string; \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -1363,7 +1366,7 @@ public function getShortName(): string; ```php @@ -1380,7 +1383,7 @@ public function getSignature(): string; Throws: @@ -1400,7 +1403,7 @@ public function getSignature(): string; ```php @@ -1417,10 +1420,10 @@ public function getStartColumn(): int; Throws: @@ -1431,7 +1434,7 @@ public function getStartColumn(): int; ```php @@ -1448,10 +1451,10 @@ public function getStartLine(): int; Throws: @@ -1462,7 +1465,7 @@ public function getStartLine(): int; ```php @@ -1481,10 +1484,10 @@ public function getThrows(): array; Throws: @@ -1495,7 +1498,7 @@ public function getThrows(): array; ```php @@ -1525,7 +1528,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1548,7 +1551,7 @@ public function hasExamples(): bool; ```php @@ -1571,7 +1574,7 @@ public function hasThrows(): bool; ```php @@ -1592,7 +1595,7 @@ public function isConstructor(): bool; ```php @@ -1615,7 +1618,7 @@ public function isDeprecated(): bool; ```php @@ -1636,7 +1639,7 @@ public function isDynamic(): bool; ```php @@ -1666,7 +1669,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1685,10 +1688,10 @@ public function isEntityFileCanBeLoad(): bool; Throws: @@ -1699,7 +1702,7 @@ public function isEntityFileCanBeLoad(): bool; ```php @@ -1720,7 +1723,7 @@ public function isImplementedInParentClass(): bool; ```php @@ -1737,7 +1740,7 @@ public function isInitialization(): bool; Throws: @@ -1757,7 +1760,7 @@ public function isInitialization(): bool; ```php @@ -1780,7 +1783,7 @@ public function isInternal(): bool; ```php @@ -1797,10 +1800,10 @@ public function isPrivate(): bool; Throws: @@ -1811,7 +1814,7 @@ public function isPrivate(): bool; ```php @@ -1828,10 +1831,10 @@ public function isProtected(): bool; Throws: @@ -1842,7 +1845,7 @@ public function isProtected(): bool; ```php @@ -1859,10 +1862,10 @@ public function isPublic(): bool; Throws: @@ -1873,7 +1876,7 @@ public function isPublic(): bool; ```php @@ -1890,10 +1893,10 @@ public function isStatic(): bool; Throws: @@ -1904,7 +1907,7 @@ public function isStatic(): bool; ```php @@ -1942,20 +1945,20 @@ public static function parseAnnotationParams(array $params): array; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function reloadEntityDependenciesCache(): void; +public function reloadEntityDependenciesCache(): array; ``` Parameters: not specified -Return value: void +Return value: array Throws: @@ -1965,6 +1968,46 @@ public function reloadEntityDependenciesCache(): void; + +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + +

    @@ -1972,7 +2015,7 @@ public function reloadEntityDependenciesCache(): void; ```php diff --git a/docs/tech/classes/MethodEntityCollection.md b/docs/tech/classes/MethodEntityCollection.md index 72c0981f..429e6c6b 100644 --- a/docs/tech/classes/MethodEntityCollection.md +++ b/docs/tech/classes/MethodEntityCollection.md @@ -369,7 +369,7 @@ public function loadMethodEntities(): void; Throws: @@ -466,13 +466,13 @@ public function unsafeGet(string $objectName): \BumbleDocGen\LanguageHandler\Php \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/ReflectionException_4.md b/docs/tech/classes/ObjectNotFoundException_2.md similarity index 94% rename from docs/tech/3.renderer/classes/ReflectionException_4.md rename to docs/tech/classes/ObjectNotFoundException_2.md index 410e0d79..675bfc47 100644 --- a/docs/tech/3.renderer/classes/ReflectionException_4.md +++ b/docs/tech/classes/ObjectNotFoundException_2.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Renderer / Template filters / ReflectionException
    + BumbleDocGen / Technical description of the project / ObjectNotFoundException

    - ReflectionException class: + ObjectNotFoundException class:

    @@ -10,9 +10,9 @@ ```php -namespace BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception; +namespace BumbleDocGen\Core\Cache\LocalCache\Exception; -final class ReflectionException extends \Exception implements \Throwable, \Stringable +final class ObjectNotFoundException extends \Exception implements \Throwable, \Stringable ```
    Exception is the base class for diff --git a/docs/tech/classes/OnAddClassEntityToCollection.md b/docs/tech/classes/OnAddClassEntityToCollection.md index 82345b80..3b252cc8 100644 --- a/docs/tech/classes/OnAddClassEntityToCollection.md +++ b/docs/tech/classes/OnAddClassEntityToCollection.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Parser; -final class OnAddClassEntityToCollection extends \Symfony\Contracts\EventDispatcher\Event implements \BumbleDocGen\Core\Plugin\OnlySingleExecutionEvent, \Psr\EventDispatcher\StoppableEventInterface +final class OnAddClassEntityToCollection extends \Symfony\Contracts\EventDispatcher\Event implements \BumbleDocGen\Core\Plugin\OnlySingleExecutionEvent ```
    Called when each class entity is added to the entity collection
    diff --git a/docs/tech/classes/OnCheckIsClassEntityCanBeLoad.md b/docs/tech/classes/OnCheckIsClassEntityCanBeLoad.md index 9f0e4b9e..806ad056 100644 --- a/docs/tech/classes/OnCheckIsClassEntityCanBeLoad.md +++ b/docs/tech/classes/OnCheckIsClassEntityCanBeLoad.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity; -final class OnCheckIsClassEntityCanBeLoad extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnCheckIsClassEntityCanBeLoad extends \Symfony\Contracts\EventDispatcher\Event ```
    Event is the base class for classes containing event data.
    diff --git a/docs/tech/classes/OnCreateDocumentedEntityWrapper.md b/docs/tech/classes/OnCreateDocumentedEntityWrapper.md index 7490327c..0e8cdba4 100644 --- a/docs/tech/classes/OnCreateDocumentedEntityWrapper.md +++ b/docs/tech/classes/OnCreateDocumentedEntityWrapper.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class OnCreateDocumentedEntityWrapper extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnCreateDocumentedEntityWrapper extends \Symfony\Contracts\EventDispatcher\Event ```
    The event occurs when an entity is added to the list for documentation
    diff --git a/docs/tech/classes/OnGetProjectTemplatesDirs.md b/docs/tech/classes/OnGetProjectTemplatesDirs.md index dc32725c..1a3e4e7a 100644 --- a/docs/tech/classes/OnGetProjectTemplatesDirs.md +++ b/docs/tech/classes/OnGetProjectTemplatesDirs.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class OnGetProjectTemplatesDirs extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnGetProjectTemplatesDirs extends \Symfony\Contracts\EventDispatcher\Event ```
    This event occurs when all directories containing document templates are retrieved
    diff --git a/docs/tech/classes/OnGetTemplatePathByRelativeDocPath.md b/docs/tech/classes/OnGetTemplatePathByRelativeDocPath.md index 482c6d64..289c6f8a 100644 --- a/docs/tech/classes/OnGetTemplatePathByRelativeDocPath.md +++ b/docs/tech/classes/OnGetTemplatePathByRelativeDocPath.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class OnGetTemplatePathByRelativeDocPath extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +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
    diff --git a/docs/tech/classes/OnGettingResourceLink.md b/docs/tech/classes/OnGettingResourceLink.md index 2b6178f0..62eccd7b 100644 --- a/docs/tech/classes/OnGettingResourceLink.md +++ b/docs/tech/classes/OnGettingResourceLink.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class OnGettingResourceLink extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnGettingResourceLink extends \Symfony\Contracts\EventDispatcher\Event ```
    Event occurs when a reference to an entity (resource) is received
    diff --git a/docs/tech/classes/OnLoadEntityDocPluginContent.md b/docs/tech/classes/OnLoadEntityDocPluginContent.md index 80395553..7ac5ca98 100644 --- a/docs/tech/classes/OnLoadEntityDocPluginContent.md +++ b/docs/tech/classes/OnLoadEntityDocPluginContent.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Renderer; -final class OnLoadEntityDocPluginContent extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnLoadEntityDocPluginContent extends \Symfony\Contracts\EventDispatcher\Event ```
    Called when entity documentation is generated (plugin content loading)
    @@ -20,7 +20,7 @@ final class OnLoadEntityDocPluginContent extends \Symfony\Contracts\EventDispatc See: diff --git a/docs/tech/classes/OnLoadSourceLocatorsCollection.md b/docs/tech/classes/OnLoadSourceLocatorsCollection.md index 63b31b60..35f2157d 100644 --- a/docs/tech/classes/OnLoadSourceLocatorsCollection.md +++ b/docs/tech/classes/OnLoadSourceLocatorsCollection.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin\Event\Parser; -final class OnLoadSourceLocatorsCollection extends \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface +final class OnLoadSourceLocatorsCollection extends \Symfony\Contracts\EventDispatcher\Event ```
    Called when source locators are loaded
    diff --git a/docs/tech/classes/PageHtmlLinkerPlugin.md b/docs/tech/classes/PageHtmlLinkerPlugin.md index edc51fe8..7b41425e 100644 --- a/docs/tech/classes/PageHtmlLinkerPlugin.md +++ b/docs/tech/classes/PageHtmlLinkerPlugin.md @@ -180,10 +180,10 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/PageLinkerPlugin.md b/docs/tech/classes/PageLinkerPlugin.md index c9cade86..b09021e6 100644 --- a/docs/tech/classes/PageLinkerPlugin.md +++ b/docs/tech/classes/PageLinkerPlugin.md @@ -180,10 +180,10 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/PageRstLinkerPlugin.md b/docs/tech/classes/PageRstLinkerPlugin.md index c2b611d8..02047850 100644 --- a/docs/tech/classes/PageRstLinkerPlugin.md +++ b/docs/tech/classes/PageRstLinkerPlugin.md @@ -170,10 +170,10 @@ public function beforeCreatingDocFile(\BumbleDocGen\Core\Plugin\Event\Renderer\B \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/ParserHelper.md b/docs/tech/classes/ParserHelper.md index b369d13e..c0bea1a4 100644 --- a/docs/tech/classes/ParserHelper.md +++ b/docs/tech/classes/ParserHelper.md @@ -239,10 +239,10 @@ public function getDocBlock(\BumbleDocGen\LanguageHandler\Php\Parser\Entity\Clas Throws: @@ -287,10 +287,10 @@ public function getDocBlockContext(\BumbleDocGen\LanguageHandler\Php\Parser\Enti Throws: @@ -318,7 +318,7 @@ public function getFilesInGit(): array; Throws: @@ -411,10 +411,10 @@ public function getUsesListByClassEntity(\BumbleDocGen\LanguageHandler\Php\Parse Throws: @@ -626,10 +626,10 @@ public function parseFullClassName(string $searchClassName, \BumbleDocGen\Langua Throws: diff --git a/docs/tech/classes/PhpHandler.md b/docs/tech/classes/PhpHandler.md index f7d4215c..4931dd39 100644 --- a/docs/tech/classes/PhpHandler.md +++ b/docs/tech/classes/PhpHandler.md @@ -139,7 +139,7 @@ public function getCustomTwigFilters(\BumbleDocGen\Core\Renderer\Context\Rendere \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -190,7 +190,7 @@ public function getCustomTwigFunctions(\BumbleDocGen\Core\Renderer\Context\Rende \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -224,13 +224,13 @@ public function getEntityCollection(): \BumbleDocGen\Core\Parser\Entity\RootEnti \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/PhpHandlerSettings.md b/docs/tech/classes/PhpHandlerSettings.md index 7a7e0df9..9883e2be 100644 --- a/docs/tech/classes/PhpHandlerSettings.md +++ b/docs/tech/classes/PhpHandlerSettings.md @@ -145,7 +145,7 @@ public function asyncSourceLoadingEnabled(): bool; Throws: @@ -179,7 +179,7 @@ public function getClassConstantEntityFilter(): \BumbleDocGen\Core\Parser\Filter \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -213,7 +213,7 @@ public function getClassEntityFilter(): \BumbleDocGen\Core\Parser\FilterConditio \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -244,7 +244,7 @@ public function getCustomTwigFilters(): \BumbleDocGen\Core\Renderer\Twig\Filter\ \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -278,7 +278,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 +312,7 @@ public function getEntityDocRenderersCollection(): \BumbleDocGen\Core\Renderer\E \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -343,7 +343,7 @@ public function getFileSourceBaseUrl(): string|null; Throws: @@ -374,7 +374,7 @@ public function getMethodEntityFilter(): \BumbleDocGen\Core\Parser\FilterConditi \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -408,7 +408,7 @@ public function getPropertyEntityFilter(): \BumbleDocGen\Core\Parser\FilterCondi \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • diff --git a/docs/tech/classes/PhpUnitStubberPlugin.md b/docs/tech/classes/PhpUnitStubberPlugin.md index 63e2ad48..23f6ab62 100644 --- a/docs/tech/classes/PhpUnitStubberPlugin.md +++ b/docs/tech/classes/PhpUnitStubberPlugin.md @@ -71,7 +71,7 @@ public static function getSubscribedEvents(): array; ```php diff --git a/docs/tech/classes/PluginEventDispatcher.md b/docs/tech/classes/PluginEventDispatcher.md index 326c8968..b626564f 100644 --- a/docs/tech/classes/PluginEventDispatcher.md +++ b/docs/tech/classes/PluginEventDispatcher.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Class map / PluginEventDispatcher

    - PluginEventDispatcher class: + PluginEventDispatcher class:

    @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\Core\Plugin; -class PluginEventDispatcher extends \Symfony\Component\EventDispatcher\EventDispatcher implements \Symfony\Component\EventDispatcher\EventDispatcherInterface, \Symfony\Contracts\EventDispatcher\EventDispatcherInterface, \Psr\EventDispatcher\EventDispatcherInterface +class PluginEventDispatcher extends \Symfony\Component\EventDispatcher\EventDispatcher ```
    The EventDispatcherInterface is the central point of Symfony's event listener system.
    @@ -72,18 +72,33 @@ class PluginEventDispatcher extends \Symfony\Component\EventDispatcher\EventDisp ```php -// Implemented in Symfony\Component\EventDispatcher\EventDispatcher - -public function __construct(); +public function __construct(\Monolog\Logger $logger); ``` -Parameters: not specified +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $logger\Monolog\Logger-
    @@ -185,7 +200,7 @@ public function addSubscriber(\Symfony\Component\EventDispatcher\EventSubscriber ```php diff --git a/docs/tech/classes/PrintEntityCollectionAsList.md b/docs/tech/classes/PrintEntityCollectionAsList.md index 8f770f88..fae8c861 100644 --- a/docs/tech/classes/PrintEntityCollectionAsList.md +++ b/docs/tech/classes/PrintEntityCollectionAsList.md @@ -168,7 +168,7 @@ public function __invoke(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $ Throws: diff --git a/docs/tech/classes/ProjectParser.md b/docs/tech/classes/ProjectParser.md index f9a01dd5..d4ec5ed0 100644 --- a/docs/tech/classes/ProjectParser.md +++ b/docs/tech/classes/ProjectParser.md @@ -113,7 +113,7 @@ public function parse(): \BumbleDocGen\Core\Parser\Entity\RootEntityCollectionsG \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • diff --git a/docs/tech/classes/PropertyEntity.md b/docs/tech/classes/PropertyEntity.md index 749c00ca..56b3e947 100644 --- a/docs/tech/classes/PropertyEntity.md +++ b/docs/tech/classes/PropertyEntity.md @@ -159,6 +159,9 @@ class PropertyEntity extends \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Bas
  • reloadEntityDependenciesCache
  • +
  • + removeEntityValueFromCache +
  • removeNotUsedEntityDataCache
  • @@ -249,7 +252,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -268,7 +271,7 @@ public function entityCacheIsOutdated(): bool; Throws: @@ -433,7 +436,7 @@ public function getDescription(): string; ```php @@ -452,7 +455,7 @@ public function getDescriptionLinks(): array; Throws: @@ -503,7 +506,7 @@ public function getDocBlock(): \phpDocumentor\Reflection\DocBlock; ```php @@ -522,10 +525,10 @@ public function getDocComment(): string; Throws: @@ -553,7 +556,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ Throws: @@ -573,7 +576,7 @@ public function getDocCommentEntity(): \BumbleDocGen\LanguageHandler\Php\Parser\ ```php @@ -596,7 +599,7 @@ public function getDocNote(): string; ```php @@ -613,10 +616,10 @@ public function getEndLine(): int; Throws: @@ -627,7 +630,7 @@ public function getEndLine(): int; ```php @@ -650,7 +653,7 @@ public function getExamples(): array; ```php @@ -667,10 +670,10 @@ public function getFileName(): string|null; Throws: @@ -681,7 +684,7 @@ public function getFileName(): string|null; ```php @@ -717,7 +720,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; Throws: @@ -728,7 +731,7 @@ public function getFileSourceLink(bool $withLine = true): string|null; ```php @@ -751,7 +754,7 @@ public function getFirstExample(): string; ```php @@ -772,7 +775,7 @@ public function getImplementingClass(): \BumbleDocGen\LanguageHandler\Php\Parser ```php @@ -810,10 +813,10 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec Throws: @@ -824,7 +827,7 @@ public function getImplementingReflectionClass(): \Roave\BetterReflection\Reflec ```php @@ -841,7 +844,7 @@ public function getModifiersString(): string; Throws: @@ -861,7 +864,7 @@ public function getModifiersString(): string; ```php @@ -882,7 +885,7 @@ public function getName(): string; ```php @@ -899,10 +902,10 @@ public function getNamespaceName(): string; Throws: @@ -913,7 +916,7 @@ public function getNamespaceName(): string; ```php @@ -999,7 +1002,7 @@ public function getRootEntityCollection(): \BumbleDocGen\LanguageHandler\Php\Par ```php @@ -1020,7 +1023,7 @@ public function getShortName(): string; ```php @@ -1037,10 +1040,10 @@ public function getStartLine(): int; Throws: @@ -1051,7 +1054,7 @@ public function getStartLine(): int; ```php @@ -1070,10 +1073,10 @@ public function getThrows(): array; Throws: @@ -1084,7 +1087,7 @@ public function getThrows(): array; ```php @@ -1104,13 +1107,13 @@ public function getType(): string; \DI\NotFoundException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -1121,7 +1124,7 @@ public function getType(): string; ```php @@ -1151,7 +1154,7 @@ public function hasDescriptionLinks(): bool; ```php @@ -1174,7 +1177,7 @@ public function hasExamples(): bool; ```php @@ -1197,7 +1200,7 @@ public function hasThrows(): bool; ```php @@ -1220,7 +1223,7 @@ public function isDeprecated(): bool; ```php @@ -1250,7 +1253,7 @@ public function isEntityDataCacheOutdated(): bool; ```php @@ -1269,10 +1272,10 @@ public function isEntityFileCanBeLoad(): bool; Throws: @@ -1283,7 +1286,7 @@ public function isEntityFileCanBeLoad(): bool; ```php @@ -1304,7 +1307,7 @@ public function isImplementedInParentClass(): bool; ```php @@ -1327,7 +1330,7 @@ public function isInternal(): bool; ```php @@ -1344,10 +1347,10 @@ public function isPrivate(): bool; Throws: @@ -1358,7 +1361,7 @@ public function isPrivate(): bool; ```php @@ -1375,10 +1378,10 @@ public function isProtected(): bool; Throws: @@ -1389,7 +1392,7 @@ public function isProtected(): bool; ```php @@ -1406,10 +1409,10 @@ public function isPublic(): bool; Throws: @@ -1420,20 +1423,20 @@ public function isPublic(): bool; ```php // Implemented in BumbleDocGen\LanguageHandler\Php\Parser\Entity\BaseEntity -public function reloadEntityDependenciesCache(): void; +public function reloadEntityDependenciesCache(): array; ``` Parameters: not specified -Return value: void +Return value: array Throws: @@ -1443,6 +1446,46 @@ public function reloadEntityDependenciesCache(): void; +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait + +public function removeEntityValueFromCache(string $key): void; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $keystring-
    + +Return value: void + +

    @@ -1450,7 +1493,7 @@ public function reloadEntityDependenciesCache(): void; ```php diff --git a/docs/tech/classes/PropertyEntityCollection.md b/docs/tech/classes/PropertyEntityCollection.md index 8608dd85..e7842cde 100644 --- a/docs/tech/classes/PropertyEntityCollection.md +++ b/docs/tech/classes/PropertyEntityCollection.md @@ -319,13 +319,13 @@ 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
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException @@ -416,10 +416,10 @@ public function unsafeGet(string $objectName): \BumbleDocGen\LanguageHandler\Php \DI\DependencyException
  • - \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • + \BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/Provider.md b/docs/tech/classes/Provider.md new file mode 100644 index 00000000..140ee025 --- /dev/null +++ b/docs/tech/classes/Provider.md @@ -0,0 +1,287 @@ + + BumbleDocGen / Technical description of the project / Class map / Provider
    + +

    + Provider class: +

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

    Initialization methods:

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

    Methods:

    + +
      +
    1. + formatDataPrompt +
    2. +
    3. + getAvailableModels +
    4. +
    5. + getName +
    6. +
    7. + getSystemPrompt +
    8. +
    9. + sendPrompts +
    10. +
    + + +

    Constants:

    + + + + + + +

    Method details:

    + +
    + + + +```php +public function __construct(string $bearerToken, string|null $model); +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $bearerTokenstring-
    $modelstring | null-
    + + + +
    +
    +
    + + + +```php +public function formatDataPrompt(string $title, string $content): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $titlestring-
    $contentstring-
    + +Return value: string + + +
    +
    +
    + + + +```php +public function getAvailableModels(): array; +``` + + + +Parameters: not specified + +Return value: array + + +Throws: + + +
    +
    +
    + + + +```php +public function getName(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
    +
    +
    + + + +```php +public function getSystemPrompt(string $fileName): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $fileNamestring-
    + +Return value: string + + +
    +
    +
    + + + +```php +public function sendPrompts(array $prompts, string $system): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $promptsarray-
    $systemstring-
    + +Return value: string + + +
    +
    + + \ No newline at end of file diff --git a/docs/tech/classes/ProviderFactory.md b/docs/tech/classes/ProviderFactory.md new file mode 100644 index 00000000..7e4b91dc --- /dev/null +++ b/docs/tech/classes/ProviderFactory.md @@ -0,0 +1,98 @@ + + BumbleDocGen / Technical description of the project / Class map / ProviderFactory
    + +

    + ProviderFactory class: +

    + + + + + +```php +namespace BumbleDocGen\AI; + +final class ProviderFactory +``` + + + + + + + + + +

    Methods:

    + +
      +
    1. + create +
    2. +
    + + +

    Constants:

    + + + + + + +

    Method details:

    + +
    + + + +```php +public static function create(string $provider, string $apiKey, string|null $model = null): \BumbleDocGen\AI\ProviderInterface; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $providerstring-
    $apiKeystring-
    $modelstring | null-
    + +Return value: \BumbleDocGen\AI\ProviderInterface + + +
    +
    + + \ No newline at end of file diff --git a/docs/tech/classes/ProviderInterface.md b/docs/tech/classes/ProviderInterface.md new file mode 100644 index 00000000..003f029a --- /dev/null +++ b/docs/tech/classes/ProviderInterface.md @@ -0,0 +1,197 @@ + + BumbleDocGen / Technical description of the project / Class map / ProviderInterface
    + +

    + ProviderInterface class: +

    + + + + + +```php +namespace BumbleDocGen\AI; + +interface ProviderInterface +``` + + + + + + + + + +

    Methods:

    + +
      +
    1. + formatDataPrompt +
    2. +
    3. + getName +
    4. +
    5. + getSystemPrompt +
    6. +
    7. + sendPrompts +
    8. +
    + + + + + + + +

    Method details:

    + +
    + + + +```php +public function formatDataPrompt(string $title, string $content): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $titlestring-
    $contentstring-
    + +Return value: string + + +
    +
    +
    + + + +```php +public function getName(): string; +``` + + + +Parameters: not specified + +Return value: string + + +
    +
    +
    + + + +```php +public function getSystemPrompt(string $fileName): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $fileNamestring-
    + +Return value: string + + +
    +
    +
    + + + +```php +public function sendPrompts(array $prompts, string $system): string; +``` + + + +Parameters: + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $promptsarray-
    $systemstring-
    + +Return value: string + + +
    +
    + + \ No newline at end of file diff --git a/docs/tech/classes/ReadmeTemplateFiller.md b/docs/tech/classes/ReadmeTemplateGenerator.md similarity index 67% rename from docs/tech/classes/ReadmeTemplateFiller.md rename to docs/tech/classes/ReadmeTemplateGenerator.md index 7907dbd1..c151085b 100644 --- a/docs/tech/classes/ReadmeTemplateFiller.md +++ b/docs/tech/classes/ReadmeTemplateGenerator.md @@ -1,8 +1,8 @@ - BumbleDocGen / Technical description of the project / Class map / ReadmeTemplateFiller
    + BumbleDocGen / Technical description of the project / Class map / ReadmeTemplateGenerator

    - ReadmeTemplateFiller class: + ReadmeTemplateGenerator class:

    @@ -10,9 +10,9 @@ ```php -namespace BumbleDocGen\TemplateGenerator\ChatGpt; +namespace BumbleDocGen\AI\Generators; -final class ReadmeTemplateFiller +final class ReadmeTemplateGenerator ``` @@ -39,13 +39,6 @@ final class ReadmeTemplateFiller -

    Constants:

    - @@ -58,11 +51,11 @@ final class ReadmeTemplateFiller ```php -public function __construct(\Tectalic\OpenAi\Client $openaiClient, string $model = self::MODEL_GPT_4); +public function __construct(\BumbleDocGen\AI\ProviderInterface $aiProvider); ``` @@ -79,13 +72,8 @@ public function __construct(\Tectalic\OpenAi\Client $openaiClient, string $model - $openaiClient - \Tectalic\OpenAi\Client - - - - - $model - string + $aiProvider + \BumbleDocGen\AI\ProviderInterface - @@ -100,7 +88,7 @@ public function __construct(\Tectalic\OpenAi\Client $openaiClient, string $model ```php @@ -148,20 +136,17 @@ public function generateReadmeFileContent(\BumbleDocGen\Core\Parser\Entity\RootE Throws: diff --git a/docs/tech/3.renderer/classes/ReflectionException_2.md b/docs/tech/classes/ReflectionException_2.md similarity index 96% rename from docs/tech/3.renderer/classes/ReflectionException_2.md rename to docs/tech/classes/ReflectionException_2.md index 548e90c1..2c6379e1 100644 --- a/docs/tech/3.renderer/classes/ReflectionException_2.md +++ b/docs/tech/classes/ReflectionException_2.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Renderer / How to create documentation templates? / Linking templates / ReflectionException
    + BumbleDocGen / Technical description of the project / ReflectionException

    ReflectionException class: diff --git a/docs/tech/classes/ReflectorWrapper.md b/docs/tech/classes/ReflectorWrapper.md index 6ed4a972..2050c50d 100644 --- a/docs/tech/classes/ReflectorWrapper.md +++ b/docs/tech/classes/ReflectorWrapper.md @@ -143,7 +143,7 @@ public function reflectAllClasses(): iterable; \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -177,7 +177,7 @@ public function reflectAllConstants(): iterable; \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -211,7 +211,7 @@ public function reflectAllFunctions(): iterable; \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -265,7 +265,7 @@ public function reflectClass(string $identifierName): \Roave\BetterReflection\Re \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException @@ -313,7 +313,7 @@ public function reflectConstant(string $identifierName): \Roave\BetterReflection \DI\DependencyException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • \DI\NotFoundException
  • @@ -367,7 +367,7 @@ public function reflectFunction(string $identifierName): \Roave\BetterReflection \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/classes/Renderer.md b/docs/tech/classes/Renderer.md index 904cf571..463791c8 100644 --- a/docs/tech/classes/Renderer.md +++ b/docs/tech/classes/Renderer.md @@ -20,9 +20,9 @@ final class Renderer See: @@ -171,7 +171,7 @@ public function run(): void; \DI\NotFoundException
  • - \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException
  • + \BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException diff --git a/docs/tech/3.renderer/classes/RendererContext_2.md b/docs/tech/classes/RendererContext_2.md similarity index 97% rename from docs/tech/3.renderer/classes/RendererContext_2.md rename to docs/tech/classes/RendererContext_2.md index b75cf640..151654d5 100644 --- a/docs/tech/3.renderer/classes/RendererContext_2.md +++ b/docs/tech/classes/RendererContext_2.md @@ -1,5 +1,5 @@ - BumbleDocGen / Technical description of the project / Renderer / Template functions / RendererContext
    + BumbleDocGen / Technical description of the project / RendererContext

    RendererContext class: diff --git a/docs/tech/classes/RendererDependencyFactory.md b/docs/tech/classes/RendererDependencyFactory.md index be7d4e9a..5f9a2866 100644 --- a/docs/tech/classes/RendererDependencyFactory.md +++ b/docs/tech/classes/RendererDependencyFactory.md @@ -125,7 +125,7 @@ public function createDirectoryDependency(string $dirPath): \BumbleDocGen\Core\R Throws: @@ -180,7 +180,7 @@ public function createFileDependency(string $filePath, string|null $contentFilte Throws: diff --git a/docs/tech/classes/RendererHelper.md b/docs/tech/classes/RendererHelper.md index 7785d65a..6b734c00 100644 --- a/docs/tech/classes/RendererHelper.md +++ b/docs/tech/classes/RendererHelper.md @@ -133,7 +133,7 @@ public function fileInternalLinkToFilePath(string $fileInternalLink): string; Throws:


    diff --git a/docs/tech/classes/RootEntityInterface.md b/docs/tech/classes/RootEntityInterface.md index 98f570ab..d581979c 100644 --- a/docs/tech/classes/RootEntityInterface.md +++ b/docs/tech/classes/RootEntityInterface.md @@ -63,6 +63,9 @@ their entities need to correspond to the same interfaces
  • isEntityNameValid - Check if entity name is valid
  • +
  • + isExternalLibraryEntity + - The entity is loaded from a third party library and should not be treated the same as a standard one
  • isInGit - The entity file is in the git repository
  • @@ -148,7 +151,7 @@ public function getAbsoluteFileName(): string|null; ```php @@ -169,7 +172,7 @@ public function getEntityDependencies(): array; ```php @@ -213,7 +216,7 @@ public function getFileName(): string|null; ```php @@ -374,6 +377,27 @@ public static function isEntityNameValid(string $entityName): bool; Return value: 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
    + +Parameters: not specified + +Return value: bool + +

    @@ -381,7 +405,7 @@ public static function isEntityNameValid(string $entityName): bool; ```php diff --git a/docs/tech/classes/RootEntityInterface_2.md b/docs/tech/classes/RootEntityInterface_2.md new file mode 100644 index 00000000..68e688c4 --- /dev/null +++ b/docs/tech/classes/RootEntityInterface_2.md @@ -0,0 +1,425 @@ + + BumbleDocGen / Technical description of the project / RootEntityInterface
    + +

    + RootEntityInterface class: +

    + + + + + +```php +namespace BumbleDocGen\Core\Parser\Entity; + +interface RootEntityInterface extends \\BumbleDocGen\Core\Parser\Entity\EntityInterface implements \BumbleDocGen\Core\Parser\Entity\EntityInterface +``` + +
    Since the documentation generator supports several programming languages, +their entities need to correspond to the same interfaces
    + + + + + + + +

    Methods:

    + +
      +
    1. + entityCacheIsOutdated +
    2. +
    3. + entityDataCanBeLoaded + - Checking if it is possible to get the entity data
    4. +
    5. + getAbsoluteFileName + - Returns the absolute path to a file if it can be retrieved and if the file is in the project directory
    6. +
    7. + getEntityDependencies +
    8. +
    9. + getFileContent +
    10. +
    11. + getFileName + - Returns the relative path to a file if it can be retrieved and if the file is in the project directory
    12. +
    13. + getFileSourceLink +
    14. +
    15. + getName +
    16. +
    17. + getObjectId +
    18. +
    19. + getRootEntityCollection + - Get parent collection of entities
    20. +
    21. + getShortName +
    22. +
    23. + isEntityNameValid + - Check if entity name is valid
    24. +
    25. + isExternalLibraryEntity + - The entity is loaded from a third party library and should not be treated the same as a standard one
    26. +
    27. + isInGit + - The entity file is in the git repository
    28. +
    + + + + + + + +

    Method details:

    + +
    + + + +```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; +``` + +
    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 getEntityDependencies(): array; +``` + + + +Parameters: not specified + +Return value: array + + +
    +
    +
    + + + +```php +public function getFileContent(): string; +``` + + + +Parameters: not specified + +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 + + +
    +
    +
    + + + +```php +public function getFileSourceLink(bool $withLine = true): string|null; +``` + + + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $withLinebool-
    + +Return value: string | null + + +
    +
    +
    + + + +```php +// Implemented in BumbleDocGen\Core\Parser\Entity\EntityInterface + +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 +// 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 static function isEntityNameValid(string $entityName): bool; +``` + +
    Check if entity name is valid
    + +Parameters: + + + + + + + + + + + + + + + + +
    NameTypeDescription
    $entityNamestring-
    + +Return value: 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
    + +Parameters: not specified + +Return value: bool + + +
    +
    +
    + + + +```php +public function isInGit(): bool; +``` + +
    The entity file is in the git repository
    + +Parameters: not specified + +Return value: bool + + +
    +
    + + \ No newline at end of file diff --git a/docs/tech/classes/SharedCommandLogicTrait.md b/docs/tech/classes/SharedCommandLogicTrait.md new file mode 100644 index 00000000..de7e9de7 --- /dev/null +++ b/docs/tech/classes/SharedCommandLogicTrait.md @@ -0,0 +1,34 @@ + + BumbleDocGen / Technical description of the project / Class map / SharedCommandLogicTrait
    + +

    + SharedCommandLogicTrait class: +

    + + + + + +```php +namespace BumbleDocGen\AI\Traits; + +trait SharedCommandLogicTrait +``` + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/tech/classes/SharedCompressedDocumentFileCache.md b/docs/tech/classes/SharedCompressedDocumentFileCache.md index 0f8ad530..e5a8aa08 100644 --- a/docs/tech/classes/SharedCompressedDocumentFileCache.md +++ b/docs/tech/classes/SharedCompressedDocumentFileCache.md @@ -96,7 +96,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf Throws: @@ -209,7 +209,7 @@ public function saveChanges(): void; Throws: diff --git a/docs/tech/classes/SourceLocatorCacheItemPool.md b/docs/tech/classes/SourceLocatorCacheItemPool.md index 7414e481..702f80cb 100644 --- a/docs/tech/classes/SourceLocatorCacheItemPool.md +++ b/docs/tech/classes/SourceLocatorCacheItemPool.md @@ -108,7 +108,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf Throws: diff --git a/docs/tech/classes/StrTypeToUrl.md b/docs/tech/classes/StrTypeToUrl.md index 2b2d7ad5..83d9592e 100644 --- a/docs/tech/classes/StrTypeToUrl.md +++ b/docs/tech/classes/StrTypeToUrl.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Class map / StrTypeToUrl

    - StrTypeToUrl class: + StrTypeToUrl class:

    @@ -20,7 +20,7 @@ final class StrTypeToUrl implements \BumbleDocGen\Core\Renderer\Twig\Filter\Cust See: @@ -77,7 +77,7 @@ See: ```php @@ -124,7 +124,7 @@ public function __construct(\BumbleDocGen\Core\Renderer\RendererHelper $renderer ```php @@ -170,22 +170,6 @@ public function __invoke(string $text, \BumbleDocGen\Core\Parser\Entity\RootEnti Return value: string -Throws: - -

    @@ -193,7 +177,7 @@ public function __invoke(string $text, \BumbleDocGen\Core\Parser\Entity\RootEnti ```php @@ -214,7 +198,7 @@ public static function getName(): string; ```php diff --git a/docs/tech/classes/StubberPlugin.md b/docs/tech/classes/StubberPlugin.md index f3e82546..115ce876 100644 --- a/docs/tech/classes/StubberPlugin.md +++ b/docs/tech/classes/StubberPlugin.md @@ -2,7 +2,7 @@ BumbleDocGen / Technical description of the project / Class map / StubberPlugin

    - StubberPlugin class: + StubberPlugin class:

    @@ -57,11 +57,11 @@ final class StubberPlugin implements \BumbleDocGen\Core\Plugin\PluginInterface, ```php -public function __construct(\BumbleDocGen\Core\Configuration\Configuration $configuration); +public function __construct(\BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser $composerParser); ``` @@ -78,8 +78,8 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf - $configuration - \BumbleDocGen\Core\Configuration\Configuration + $composerParser + \BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser - @@ -94,7 +94,7 @@ public function __construct(\BumbleDocGen\Core\Configuration\Configuration $conf ```php @@ -115,7 +115,7 @@ public static function getSubscribedEvents(): array; ```php @@ -160,7 +160,7 @@ public function onCheckIsClassEntityCanBeLoad(\BumbleDocGen\LanguageHandler\Php\ ```php diff --git a/docs/tech/classes/SystemAsyncSourceLocator.md b/docs/tech/classes/SystemAsyncSourceLocator.md index df77339b..c7417701 100644 --- a/docs/tech/classes/SystemAsyncSourceLocator.md +++ b/docs/tech/classes/SystemAsyncSourceLocator.md @@ -12,7 +12,7 @@ ```php namespace BumbleDocGen\LanguageHandler\Php\Parser\SourceLocator\Internal; -final class SystemAsyncSourceLocator extends \Roave\BetterReflection\SourceLocator\Type\AbstractSourceLocator implements \Roave\BetterReflection\SourceLocator\Type\SourceLocator +final class SystemAsyncSourceLocator extends \Roave\BetterReflection\SourceLocator\Type\AbstractSourceLocator ``` diff --git a/docs/tech/classes/TemplateFile.md b/docs/tech/classes/TemplateFile.md index f7ada938..7e6b0fe3 100644 --- a/docs/tech/classes/TemplateFile.md +++ b/docs/tech/classes/TemplateFile.md @@ -155,7 +155,7 @@ public static function create(\Symfony\Component\Finder\SplFileInfo $fileInfo, \ Throws: @@ -252,7 +252,7 @@ public static function getRelativeDocPathByTemplatePath(string $templatePath, \B Throws: @@ -328,7 +328,7 @@ public static function getTemplatePathByRelativeDocPath(string $relativeDocPath, Throws: diff --git a/docs/tech/classes/TemplatesStructureGenerator.md b/docs/tech/classes/TemplatesStructureGenerator.md deleted file mode 100644 index caae17c4..00000000 --- a/docs/tech/classes/TemplatesStructureGenerator.md +++ /dev/null @@ -1,155 +0,0 @@ - - BumbleDocGen / Technical description of the project / Class map / TemplatesStructureGenerator
    - -

    - TemplatesStructureGenerator class: -

    - - - - - -```php -namespace BumbleDocGen\TemplateGenerator\ChatGpt; - -final class TemplatesStructureGenerator -``` - - - - - - - - -

    Initialization methods:

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

    Methods:

    - -
      -
    1. - generateStructureByEntityCollection -
    2. -
    - - -

    Constants:

    - - - - - - -

    Method details:

    - -
    - - - -```php -public function __construct(\Tectalic\OpenAi\Client $openaiClient, string $model = self::MODEL_GPT_4); -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $openaiClient\Tectalic\OpenAi\Client-
    $modelstring-
    - - - -
    -
    -
    - - - -```php -public function generateStructureByEntityCollection(\BumbleDocGen\Core\Parser\Entity\RootEntityCollection $rootEntityCollection, string|null $additionalPrompt = null): array; -``` - - - -Parameters: - - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    $rootEntityCollection\BumbleDocGen\Core\Parser\Entity\RootEntityCollection-
    $additionalPromptstring | null-
    - -Return value: array - - -Throws: - - -
    -
    - - \ No newline at end of file diff --git a/docs/tech/map.md b/docs/tech/map.md index e13cbbb6..8f6177f1 100644 --- a/docs/tech/map.md +++ b/docs/tech/map.md @@ -3,14 +3,25 @@ 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/
    -│  │  │  ├── AddMissingDocBlocksCommand.php Base class for all commands.
     │  │  │  ├── AdditionalCommandCollection.php 
     │  │  │  ├── BaseCommand.php Base class for all commands.
    -│  │  │  ├── FillInReadmeMdTemplateCommand.php Base class for all commands.
    -│  │  │  ├── GenerateCommand.php Base class for all commands.
    -│  │  │  └── GenerateProjectTemplatesStructureCommand.php Base class for all commands.
    +│  │  │  └── GenerateCommand.php Base class for all commands.
     │  │  ├──ProgressBar/
     │  │  │  ├── ProgressBarFactory.php 
     │  │  │  └── StylizedProgressBar.php 
    @@ -208,6 +219,7 @@ Directory layout ( only documented files shown ):
     │  │  │  │  │  │  └── 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/
    @@ -239,15 +251,10 @@ Directory layout ( only documented files shown ):
     │  │  │  └── PhpHandlerSettings.php 
     │  │  ├── LanguageHandlerInterface.php 
     │  │  └── LanguageHandlersCollection.php 
    -│  ├──TemplateGenerator/
    -│  │  └──ChatGpt/
    -│  │  │  ├── MissingDocBlocksGenerator.php 
    -│  │  │  ├── ReadmeTemplateFiller.php 
    -│  │  │  └── TemplatesStructureGenerator.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 Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Sat Sep 2 21:01:47 2023 +0300
    Page content update date: Mon Nov 06 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 f4cb803d..79334796 100644 --- a/docs/tech/readme.md +++ b/docs/tech/readme.md @@ -44,4 +44,4 @@ After that, the process of parsing the project code according to the configurati

    -Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Thu Oct 5 17:42:06 2023 +0300
    Page content update date: Tue Oct 31 2023
    Made with Bumble Documentation Generator
    \ No newline at end of file +Last page committer: fshcherbanich <filipp.shcherbanich@team.bumble.com>
    Last modified date: Thu Oct 5 17:42:06 2023 +0300
    Page content update date: Mon Nov 06 2023
    Made with Bumble Documentation Generator \ No newline at end of file diff --git a/src/Console/Command/FillInReadmeMdTemplateCommand.php b/src/AI/Console/AddDocBlocksCommand.php similarity index 52% rename from src/Console/Command/FillInReadmeMdTemplateCommand.php rename to src/AI/Console/AddDocBlocksCommand.php index d0d001cc..1826f010 100644 --- a/src/Console/Command/FillInReadmeMdTemplateCommand.php +++ b/src/AI/Console/AddDocBlocksCommand.php @@ -2,45 +2,64 @@ declare(strict_types=1); -namespace BumbleDocGen\Console\Command; +namespace BumbleDocGen\AI\Console; +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; +use JsonException; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -use Tectalic\OpenAi\ClientException; -final class FillInReadmeMdTemplateCommand extends BaseCommand +final class AddDocBlocksCommand extends BaseCommand { + use SharedCommandLogicTrait; + + public const NAME = 'ai:add-doc-blocks'; + protected function getCustomConfigOptionsMap(): array { return [ 'project_root' => 'Path to the directory of the documented project', 'templates_dir' => 'Path to directory with documentation templates', 'cache_dir' => 'Configuration parameter: Path to the directory where the documentation generator cache will be saved', + 'ai_provider' => 'The AI service to use, options: openai', + 'ai_api_key' => 'The API key to use when interacting with the AI', + 'ai_model' => 'The AI model to use', ]; } protected function configure(): void { - $this->setName('ai-fill-in-readme-md-template') - ->setDescription('Filling the readme file template with data using LLMs tools'); + $this->setName(self::NAME) + ->setDescription('Leverage AI to insert missing doc blocks in code.'); } /** + * @param InputInterface $input + * @param OutputInterface $output + * @return int * @throws DependencyException - * @throws ReflectionException - * @throws ClientException - * @throws NotFoundException * @throws InvalidConfigurationParameterException + * @throws NotFoundException + * @throws ReflectionException + * @throws GuzzleException + * @throws JsonException */ protected function execute( InputInterface $input, OutputInterface $output ): int { - $this->createDocGenInstance($input, $output)->fillInReadmeMdTemplate(); + // Initialise AI provider from params/config + $aiProvider = $this->initAiProvider($input, $output); + + // Generate doc blocks + $this->createDocGenInstance($input, $output)->addDocBlocks($aiProvider); + return self::SUCCESS; } } diff --git a/src/Console/Command/GenerateProjectTemplatesStructureCommand.php b/src/AI/Console/GenerateReadMeTemplateCommand.php similarity index 53% rename from src/Console/Command/GenerateProjectTemplatesStructureCommand.php rename to src/AI/Console/GenerateReadMeTemplateCommand.php index ac16dae4..909dd60a 100644 --- a/src/Console/Command/GenerateProjectTemplatesStructureCommand.php +++ b/src/AI/Console/GenerateReadMeTemplateCommand.php @@ -2,45 +2,62 @@ declare(strict_types=1); -namespace BumbleDocGen\Console\Command; +namespace BumbleDocGen\AI\Console; +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; +use JsonException; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -use Tectalic\OpenAi\ClientException; -final class GenerateProjectTemplatesStructureCommand extends BaseCommand +final class GenerateReadMeTemplateCommand extends BaseCommand { + use SharedCommandLogicTrait; + + public const NAME = 'ai:generate-readme-template'; + protected function getCustomConfigOptionsMap(): array { return [ 'project_root' => 'Path to the directory of the documented project', 'templates_dir' => 'Path to directory with documentation templates', 'cache_dir' => 'Configuration parameter: Path to the directory where the documentation generator cache will be saved', + 'ai_provider' => 'The AI service to use, options: openai', + 'ai_api_key' => 'The API key to use when interacting with the AI', + 'ai_model' => 'The AI model to use', ]; } protected function configure(): void { - $this->setName('ai-generate-project-templates-structure') - ->setDescription('Generate empty documentation templates for a documented project using LLMs tools'); + $this->setName(self::NAME) + ->setDescription('Leverage AI to generate content for a project readme.md file.'); } + /** - * @throws DependencyException - * @throws ReflectionException - * @throws ClientException * @throws NotFoundException + * @throws GuzzleException + * @throws ReflectionException + * @throws DependencyException * @throws InvalidConfigurationParameterException + * @throws JsonException */ protected function execute( InputInterface $input, OutputInterface $output ): int { - $this->createDocGenInstance($input, $output)->generateProjectTemplatesStructure(); + // Initialise AI provider from params/config + $aiProvider = $this->initAiProvider($input, $output); + + // Generate Read me + $this->createDocGenInstance($input, $output)->generateReadmeTemplate($aiProvider); + return self::SUCCESS; } } diff --git a/src/TemplateGenerator/ChatGpt/MissingDocBlocksGenerator.php b/src/AI/Generators/DocBlocksGenerator.php similarity index 73% rename from src/TemplateGenerator/ChatGpt/MissingDocBlocksGenerator.php rename to src/AI/Generators/DocBlocksGenerator.php index 8dba3747..49174426 100644 --- a/src/TemplateGenerator/ChatGpt/MissingDocBlocksGenerator.php +++ b/src/AI/Generators/DocBlocksGenerator.php @@ -2,8 +2,9 @@ declare(strict_types=1); -namespace BumbleDocGen\TemplateGenerator\ChatGpt; +namespace BumbleDocGen\AI\Generators; +use BumbleDocGen\AI\ProviderInterface; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\RootEntityInterface; use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; @@ -12,20 +13,15 @@ use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; use DI\DependencyException; use DI\NotFoundException; -use Tectalic\OpenAi\Client; -use Tectalic\OpenAi\ClientException; -final class MissingDocBlocksGenerator +final class DocBlocksGenerator { - public const MODEL_GPT_4 = 'gpt-4'; - public const MODE_READ_ONLY_SIGNATURES = 1; public const MODE_READ_ALL_CODE = 2; public function __construct( - private Client $openaiClient, + private ProviderInterface $aiProvider, private ParserHelper $parserHelper, - private string $model = self::MODEL_GPT_4, ) { } @@ -55,13 +51,11 @@ public function hasMethodsWithoutDocBlocks(RootEntityInterface $rootEntity): boo * @throws DependencyException * @throws NotFoundException * @throws InvalidConfigurationParameterException - * @throws ClientException */ public function generateDocBlocksForMethodsWithoutIt( RootEntityInterface $rootEntity, int $mode = self::MODE_READ_ONLY_SIGNATURES, ): array { - if (!is_a($rootEntity, ClassEntity::class)) { throw new \InvalidArgumentException('Currently we can only work PHP class entities'); } @@ -82,12 +76,15 @@ public function generateDocBlocksForMethodsWithoutIt( $foundThrows = $matches[1] ?? []; $foundThrows = array_combine($foundThrows, $foundThrows); if ($foundThrows) { - $newThrowsDockBlocks[$method->getName()] = array_filter(array_map(function (string $className) use ($method) { - return $this->parserHelper->parseFullClassName( - $className, - $method->getImplementingClass() - ); - }, $foundThrows), fn($c) => !in_array($c, $alreadySavedThrows)); + $newThrowsDockBlocks[$method->getName()] = array_filter( + array_map(function (string $className) use ($method) { + return $this->parserHelper->parseFullClassName( + $className, + $method->getImplementingClass() + ); + }, $foundThrows), + fn($c) => !in_array($c, $alreadySavedThrows) + ); } } @@ -96,18 +93,34 @@ public function generateDocBlocksForMethodsWithoutIt( $prototypeDocComment = $prototype?->getDocComment(); if ($prototypeDocComment && !str_contains(strtolower($method->getDocComment()), '@inheritdoc')) { if (isset($newThrowsDockBlocks[$method->getName()])) { - $methodsDockBlocks[$method->getName()] = str_replace('*/', "*\n * [throws]\n * {@inheritDoc}\n */", $method->getDocComment()); + $methodsDockBlocks[$method->getName()] = str_replace( + '*/', + "*\n * [throws]\n * {@inheritDoc}\n */", + $method->getDocComment() + ); } else { - $methodsDockBlocks[$method->getName()] = str_replace('*/', "*\n * {@inheritDoc}\n */", $method->getDocComment()); + $methodsDockBlocks[$method->getName()] = str_replace( + '*/', + "*\n * {@inheritDoc}\n */", + $method->getDocComment() + ); } } elseif (isset($newThrowsDockBlocks[$method->getName()])) { - $methodsDockBlocks[$method->getName()] = str_replace('*/', "* [throws]\n */", $method->getDocComment()); + $methodsDockBlocks[$method->getName()] = str_replace( + '*/', + "* [throws]\n */", + $method->getDocComment() + ); } continue; } if (!$method->getDescription() && $method->getDocComment()) { - $methodsDockBlocks[$method->getName()] = str_replace('/**', "/**\n * [insert]", $method->getDocComment()); + $methodsDockBlocks[$method->getName()] = str_replace( + '/**', + "/**\n * [insert]", + $method->getDocComment() + ); } elseif (strlen($method->getDocCommentRecursive()) > 1) { if ($method->getDescription()) { if (isset($newThrowsDockBlocks[$method->getName()])) { @@ -116,9 +129,9 @@ public function generateDocBlocksForMethodsWithoutIt( $methodsDockBlocks[$method->getName()] = $this->createDocBlockText(['{@inheritDoc}']); } continue; - } else { - $methodsDockBlocks[$method->getName()] = $this->createDocBlockText(['[insert]', '{@inheritDoc}']); } + + $methodsDockBlocks[$method->getName()] = $this->createDocBlockText(['[insert]', '{@inheritDoc}']); } else { $methodsDockBlocks[$method->getName()] = $this->createDocBlockText(['[insert]']); } @@ -132,27 +145,16 @@ public function generateDocBlocksForMethodsWithoutIt( if ($toRequest) { $classSignature = "{$rootEntity->getModifiersString()} \\{$rootEntity->getName()}"; - $requestData = "/**{$rootEntity->getDescription()}*/\n{$classSignature}{\n" . implode("\n", $toRequest) . "\n}"; - - $messages = [ - [ - 'role' => 'system', - 'content' => file_get_contents(__DIR__ . '/prompts/missingDocBlockGeneration') - ], - ]; - $messages[] = [ - 'role' => 'user', - 'content' => $requestData, - ]; - - $response = $this->openaiClient->chatCompletions()->create( - new \Tectalic\OpenAi\Models\ChatCompletions\CreateRequest([ - 'model' => $this->model, - 'messages' => $messages, - ]) - )->toModel(); - - $responseData = json_decode($response->choices[0]->message->content ?? "{}", true); + $requestData = "/**{$rootEntity->getDescription()}*/\n{$classSignature}{\n" . implode( + "\n", + $toRequest + ) . "\n}"; + + $systemPrompt = $this->aiProvider->getSystemPrompt('docBlockGeneration'); + $prompts = [$requestData]; + $responseData = $this->aiProvider->sendPrompts($prompts, $systemPrompt); + $responseData = json_decode($responseData, true, 512, JSON_THROW_ON_ERROR); + if (!$responseData) { return []; } @@ -160,7 +162,10 @@ public function generateDocBlocksForMethodsWithoutIt( foreach ($methodsDockBlocks as $methodName => $block) { $methodsDockBlocks[$methodName] = str_replace("[insert]", $responseData[$methodName] ?? '', $block); - $throwsString = implode("\n *", array_map(fn($v) => "@throws {$v}", $newThrowsDockBlocks[$methodName] ?? [])); + $throwsString = implode( + "\n *", + array_map(fn($v) => "@throws {$v}", $newThrowsDockBlocks[$methodName] ?? []) + ); if ($throwsString) { $methodsDockBlocks[$methodName] = str_replace( '[throws]', diff --git a/src/TemplateGenerator/ChatGpt/ReadmeTemplateFiller.php b/src/AI/Generators/ReadmeTemplateGenerator.php similarity index 54% rename from src/TemplateGenerator/ChatGpt/ReadmeTemplateFiller.php rename to src/AI/Generators/ReadmeTemplateGenerator.php index 74e96774..f6af61a9 100644 --- a/src/TemplateGenerator/ChatGpt/ReadmeTemplateFiller.php +++ b/src/AI/Generators/ReadmeTemplateGenerator.php @@ -2,8 +2,9 @@ declare(strict_types=1); -namespace BumbleDocGen\TemplateGenerator\ChatGpt; +namespace BumbleDocGen\AI\Generators; +use BumbleDocGen\AI\ProviderInterface; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\RootEntityCollection; use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntity; @@ -11,16 +12,11 @@ use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; use DI\DependencyException; use DI\NotFoundException; -use Tectalic\OpenAi\Client; -use Tectalic\OpenAi\ClientException; -final class ReadmeTemplateFiller +final class ReadmeTemplateGenerator { - public const MODEL_GPT_4 = 'gpt-4'; - public function __construct( - private Client $openaiClient, - private string $model = self::MODEL_GPT_4, + private ProviderInterface $aiProvider, ) { } @@ -31,7 +27,6 @@ public function __construct( * @param string|null $composerJsonFile * @param string|null $additionalPrompt * @return string - * @throws ClientException * @throws DependencyException * @throws InvalidConfigurationParameterException * @throws NotFoundException @@ -47,25 +42,17 @@ public function generateReadmeFileContent( throw new \InvalidArgumentException('Currently we can only work with collections of PHP entities'); } - $messages = [ - [ - 'role' => 'system', - 'content' => file_get_contents(__DIR__ . '/prompts/readmeTemplateFiller') - ], - ]; + $namespacesList = array_map( + fn(ClassEntity $e) => $e->getNamespaceName(), + iterator_to_array($rootEntityCollection) + ); - $namespacesList = array_map(fn(ClassEntity $e) => $e->getNamespaceName(), iterator_to_array($rootEntityCollection)); $namespacesList = array_unique($namespacesList); - $messages[] = [ - 'role' => 'user', - 'content' => "Project namespaces:\n" . implode("\n", $namespacesList), - ]; + $prompts = []; + $prompts[] = $this->aiProvider->formatDataPrompt('Project namespaces', implode("\n", $namespacesList)); if ($composerJsonFile) { - $messages[] = [ - 'role' => 'user', - 'content' => "Composer JSON:\n" . file_get_contents($composerJsonFile), - ]; + $prompts[] = $this->aiProvider->formatDataPrompt('Composer JSON', file_get_contents($composerJsonFile)); } $entryPointsSignatures = []; @@ -76,30 +63,24 @@ public function generateReadmeFileContent( } $classSignature = "{$entryPoint->getModifiersString()} \\{$entryPoint->getName()}"; - $entryPointsSignatures[] = "/**{$entryPoint->getDescription()}*/\n{$classSignature}{\n" . implode("\n", $methodsSignatures) . "\n}"; + $entryPointsSignatures[] = "/**{$entryPoint->getDescription()}*/\n{$classSignature}{\n" . implode( + "\n", + $methodsSignatures + ) . "\n}"; } if ($entryPointsSignatures) { - $messages[] = [ - 'role' => 'user', - 'content' => "Project entry points: \n" . implode("\n\n", $entryPointsSignatures) - ]; + $prompts[] = $this->aiProvider->formatDataPrompt( + 'Project entry points', + implode("\n\n", $entryPointsSignatures) + ); } if ($additionalPrompt) { - $messages[] = [ - 'role' => 'user', - 'content' => "Additional Information: {$additionalPrompt}" - ]; + $prompts[] = $this->aiProvider->formatDataPrompt('Additional Information', $additionalPrompt); } - $response = $this->openaiClient->chatCompletions()->create( - new \Tectalic\OpenAi\Models\ChatCompletions\CreateRequest([ - 'model' => $this->model, - 'messages' => $messages, - ]) - )->toModel(); - - return $response->choices[0]->message->content ?? ''; + $systemPrompt = $this->aiProvider->getSystemPrompt('readmeTemplateGeneration'); + return $this->aiProvider->sendPrompts($prompts, $systemPrompt); } } diff --git a/src/TemplateGenerator/ChatGpt/prompts/missingDocBlockGeneration b/src/AI/Prompts/docBlockGeneration similarity index 100% rename from src/TemplateGenerator/ChatGpt/prompts/missingDocBlockGeneration rename to src/AI/Prompts/docBlockGeneration diff --git a/src/TemplateGenerator/ChatGpt/prompts/readmeTemplateFiller b/src/AI/Prompts/readmeTemplateGeneration similarity index 100% rename from src/TemplateGenerator/ChatGpt/prompts/readmeTemplateFiller rename to src/AI/Prompts/readmeTemplateGeneration diff --git a/src/AI/ProviderFactory.php b/src/AI/ProviderFactory.php new file mode 100644 index 00000000..8cc8872a --- /dev/null +++ b/src/AI/ProviderFactory.php @@ -0,0 +1,23 @@ + new OpenAIProvider($apiKey, $model), + default => throw new RuntimeException( + "Parameter 'ai_provider' not set to valid option (" . implode(',', self::VALID_PROVIDERS) . ")!", + ), + }; + } +} diff --git a/src/AI/ProviderInterface.php b/src/AI/ProviderInterface.php new file mode 100644 index 00000000..64ef819c --- /dev/null +++ b/src/AI/ProviderInterface.php @@ -0,0 +1,16 @@ + 'Bearer ' . $bearerToken + ]; + + $client = new Client( + [ + 'headers' => $headers + ] + ); + $this->client = $client; + $this->model = $model ?? 'gpt-4'; + $this->temperature = 0.5; + $this->frequencyPenalty = 0; + $this->maxTokens = null; + $this->topP = 1; + } + + public function getName(): string + { + return self::NAME; + } + + public function sendPrompts(array $prompts, string $system): string + { + $requestData = [ + 'messages' => $this->createMessages($prompts, $system), + 'model' => $this->model, + 'temperature' => $this->temperature, + 'frequency_penalty' => $this->frequencyPenalty, + 'top_p' => $this->topP, + ]; + + if ($this->maxTokens !== null) { + $requestData['max_tokens'] = $this->maxTokens; + } + + try { + $response = $this->client->request('POST', self::API_ENDPOINT, [ + 'json' => $requestData, + ]); + + $responseData = json_decode( + $response->getBody()->getContents(), + true, + 512, + JSON_THROW_ON_ERROR + ); + + if (isset($responseData['choices'][0]['message']['content'])) { + return $responseData['choices'][0]['message']['content']; + } + + throw new RuntimeException('Generated text not found in response'); + } catch (GuzzleException $e) { + throw new RuntimeException('[' . $e->getCode() . ']' . $e->getMessage()); + } catch (JsonException $e) { + throw new RuntimeException( + '[' . $e->getCode() . '] Failed to decode JSON response: ' . $e->getMessage() + ); + } + } + + public function getSystemPrompt(string $fileName): string + { + return file_get_contents(dirname(__DIR__) . '/../Prompts/' . $fileName); + } + + public function formatDataPrompt(string $title, string $content): string + { + return $title . ": \n" . self::DATA_SEPARATOR . "\n" . $content . "\n" . self::DATA_SEPARATOR; + } + + /** + * @throws GuzzleException + * @throws JsonException + */ + public function getAvailableModels(): array + { + $response = $this->client->request('GET', self::API_MODEL_ENDPOINT); + $data = json_decode($response->getBody()->getContents(), true, 512, JSON_THROW_ON_ERROR); + // Order by 'created' field in descending order + usort($data['data'], function ($a, $b) { + return $b['created'] <=> $a['created']; + }); + $models = []; + foreach ($data['data'] as $model) { + $models[] = $model['id']; + } + return $models; + } + + private function createMessage(string $role, string $content): \stdClass + { + $message = new \stdClass(); + $message->role = $role; + $message->content = $content; + return $message; + } + + private function createMessages(array $prompts, string $system): array + { + $messages = []; + $messages[] = $this->createMessage('system', $system); + foreach ($prompts as $prompt) { + $messages[] = $this->createMessage('user', $prompt); + } + return $messages; + } +} diff --git a/src/AI/Traits/SharedCommandLogicTrait.php b/src/AI/Traits/SharedCommandLogicTrait.php new file mode 100644 index 00000000..a3046393 --- /dev/null +++ b/src/AI/Traits/SharedCommandLogicTrait.php @@ -0,0 +1,124 @@ +createConfiguration($input->getOption('config')); + $configParams = $this->getCustomConfigurationParameters($input); + + // Get Provider, request if not found + $provider = $this->getValueFromParamOrConfig($configParams, $config, 'ai_provider'); + if ($provider === null) { + $provider = $this->askForAiProvider($input, $output); + } + + // Get API Key, request if not found + $apiKey = $this->getValueFromParamOrConfig($configParams, $config, 'ai_api_key'); + if ($apiKey === null) { + $apiKey = $this->askForAiApiKey($input, $output); + } + + // Test API key is valid + $aiProvider = ProviderFactory::create($provider, $apiKey); + $apiKeyTest = $this->testProviderAPIKey($aiProvider); + if (!$apiKeyTest) { + throw new \RuntimeException('Parameter/config: `ai_api_key` is invalid!'); + } + + // Get model, request if not found + $model = $this->getValueFromParamOrConfig($configParams, $config, 'ai_model'); + if ($model === null) { + $model = $this->askForAIModel($input, $output, $aiProvider); + } + + // Return finalised provider + return ProviderFactory::create($provider, $apiKey, $model); + } + + private function askForAiApiKey( + InputInterface $input, + OutputInterface $output, + ) { + $question = new Question('Please provide the API key: '); + return $this->getHelper('question')->ask($input, $output, $question); + } + + private function askForAiProvider( + InputInterface $input, + OutputInterface $output, + ) { + $question = new ChoiceQuestion( + 'Please choose one of the available AI providers:', + ProviderFactory::VALID_PROVIDERS, + ); + $question->setErrorMessage('Provider %s is invalid.'); + return $this->getHelper('question')->ask($input, $output, $question); + } + + /** + * @throws GuzzleException + * @throws JsonException + */ + private function askForAIModel( + InputInterface $input, + OutputInterface $output, + ProviderInterface $provider + ): ?string { + if (method_exists($provider, 'getAvailableModels')) { + $models = $provider->getAvailableModels(); + + $question = new ChoiceQuestion( + 'Please choose one of the available models:', + $models, + ); + $question->setErrorMessage('Model %s is invalid.'); + + return $this->getHelper('question')->ask($input, $output, $question); + } + throw new \RuntimeException('Missing parameter/config: `ai_model`'); + } + + private function testProviderAPIKey(ProviderInterface $provider): bool + { + if (method_exists($provider, 'getAvailableModels')) { + try { + $provider->getAvailableModels(); + } catch (JsonException | GuzzleException) { + return false; + } + } + return true; + } + + private function getValueFromParamOrConfig(array $configParams, Configuration $configuration, $key): ?string + { + if (array_key_exists($key, $configParams)) { + return $configParams[$key]; + } + return $configuration->getIfExists($key); + } +} diff --git a/src/Console/App.php b/src/Console/App.php index 28ee02e4..4dfc8606 100644 --- a/src/Console/App.php +++ b/src/Console/App.php @@ -4,10 +4,9 @@ namespace BumbleDocGen\Console; -use BumbleDocGen\Console\Command\AddMissingDocBlocksCommand; -use BumbleDocGen\Console\Command\FillInReadmeMdTemplateCommand; +use BumbleDocGen\AI\Console\AddDocBlocksCommand; +use BumbleDocGen\AI\Console\GenerateReadMeTemplateCommand; use BumbleDocGen\Console\Command\GenerateCommand; -use BumbleDocGen\Console\Command\GenerateProjectTemplatesStructureCommand; use BumbleDocGen\DocGeneratorFactory; use Symfony\Component\Console\Application; use Symfony\Component\Console\Command\CompleteCommand; @@ -33,9 +32,8 @@ public function __construct() ); $this->setDefinition($inputDefinition); $this->add(new GenerateCommand()); - $this->add(new FillInReadmeMdTemplateCommand()); - $this->add(new AddMissingDocBlocksCommand()); - $this->add(new GenerateProjectTemplatesStructureCommand()); + $this->add(new GenerateReadMeTemplateCommand()); + $this->add(new AddDocBlocksCommand()); $this->setExtraCommands(); } diff --git a/src/Console/Command/AddMissingDocBlocksCommand.php b/src/Console/Command/AddMissingDocBlocksCommand.php deleted file mode 100644 index cd3d964e..00000000 --- a/src/Console/Command/AddMissingDocBlocksCommand.php +++ /dev/null @@ -1,45 +0,0 @@ - 'Path to the directory of the documented project', - 'cache_dir' => 'Configuration parameter: Path to the directory where the documentation generator cache will be saved', - ]; - } - - protected function configure(): void - { - $this->setName('ai-add-missing-doc-blocks') - ->setDescription('Add missing doc blocks in documented code using LLMs tools'); - } - - /** - * @throws DependencyException - * @throws ReflectionException - * @throws ClientException - * @throws NotFoundException - * @throws InvalidConfigurationParameterException - */ - protected function execute( - InputInterface $input, - OutputInterface $output - ): int { - $this->createDocGenInstance($input, $output)->addMissingDocBlocks(); - return self::SUCCESS; - } -} diff --git a/src/Core/Configuration/Configuration.php b/src/Core/Configuration/Configuration.php index 913273b1..f538d02c 100644 --- a/src/Core/Configuration/Configuration.php +++ b/src/Core/Configuration/Configuration.php @@ -39,6 +39,11 @@ public function __construct( $parameterBag->addValueFromFileIfNotExists('', self::DEFAULT_SETTINGS_FILE); } + public function getConfigurationVersion(): string + { + return $this->parameterBag->getConfigVersion(); + } + /** * @throws InvalidConfigurationParameterException */ @@ -355,4 +360,23 @@ public function getAdditionalConsoleCommands(): AdditionalCommandCollection $this->localObjectCache->cacheMethodResult(__METHOD__, '', $additionalCommandCollection); return $additionalCommandCollection; } + + /** + * @throws InvalidConfigurationParameterException + */ + public function getIfExists($key): ?string + { + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $key); + } catch (ObjectNotFoundException) { + } + + if (!$this->parameterBag->has($key)) { + return null; + } + $value = $this->parameterBag->validateAndGetStringValue($key, false); + + $this->localObjectCache->cacheMethodResult(__METHOD__, $key, $value); + return $value; + } } diff --git a/src/Core/Configuration/ConfigurationParameterBag.php b/src/Core/Configuration/ConfigurationParameterBag.php index a2a7e91d..95a0eabc 100644 --- a/src/Core/Configuration/ConfigurationParameterBag.php +++ b/src/Core/Configuration/ConfigurationParameterBag.php @@ -20,6 +20,7 @@ final class ConfigurationParameterBag { private array $parameters = []; + private ?string $lastConfigVersion = null; /** * @param ValueResolverInterface[] $resolvers @@ -30,6 +31,14 @@ public function __construct( ) { } + public function getConfigVersion(): string + { + if (is_null($this->lastConfigVersion)) { + $this->lastConfigVersion = md5(serialize($this->getAll(false))); + } + return $this->lastConfigVersion; + } + public function getConfigValues(string ...$configurationFiles): array { $values = []; @@ -48,6 +57,7 @@ public function loadFromFiles(string ...$fileNames): void public function loadFromArray(array $parameters): void { + $this->lastConfigVersion = null; foreach ($parameters as $name => $value) { $this->set($name, $value); } @@ -77,6 +87,7 @@ public function set(string $name, mixed $value): void public function addValueIfNotExists(string $name, mixed $value): void { + $this->lastConfigVersion = null; $keys = array_reverse(explode('.', $name)); foreach ($keys as $key) { if ($key) { diff --git a/src/Core/Logger/Handler/GenerationErrorsHandler.php b/src/Core/Logger/Handler/GenerationErrorsHandler.php index 8da55a70..b21143af 100644 --- a/src/Core/Logger/Handler/GenerationErrorsHandler.php +++ b/src/Core/Logger/Handler/GenerationErrorsHandler.php @@ -41,7 +41,8 @@ protected function write(array $record): void "type" => $record['level_name'], "msg" => $record['message'], 'initiator' => $initiator, - 'isRenderingError' => boolval($this->rendererContext->getCurrentTemplateFilePatch()) + 'isRenderingError' => boolval($this->rendererContext->getCurrentTemplateFilePatch()), + 'currentDocumentedEntityWrapper' => $this->rendererContext->getCurrentDocumentedEntityWrapper()?->getDocumentTransformableEntity()?->getName() ]; } diff --git a/src/Core/Parser/Entity/Cache/CacheableEntityInterface.php b/src/Core/Parser/Entity/Cache/CacheableEntityInterface.php index eafa8bb4..db46a416 100644 --- a/src/Core/Parser/Entity/Cache/CacheableEntityInterface.php +++ b/src/Core/Parser/Entity/Cache/CacheableEntityInterface.php @@ -16,7 +16,7 @@ public function isEntityFileCanBeLoad(): bool; public function isEntityDataCacheOutdated(): bool; - public function reloadEntityDependenciesCache(): void; + public function reloadEntityDependenciesCache(): array; public function removeNotUsedEntityDataCache(): void; } diff --git a/src/Core/Parser/Entity/Cache/CacheableEntityTrait.php b/src/Core/Parser/Entity/Cache/CacheableEntityTrait.php index 9b5456f6..f09b89fc 100644 --- a/src/Core/Parser/Entity/Cache/CacheableEntityTrait.php +++ b/src/Core/Parser/Entity/Cache/CacheableEntityTrait.php @@ -4,31 +4,39 @@ namespace BumbleDocGen\Core\Parser\Entity\Cache; +use BumbleDocGen\Core\Configuration\Configuration; use DI\Attribute\Inject; use Psr\Cache\InvalidArgumentException; trait CacheableEntityTrait { #[Inject] private EntityCacheStorageHelper $entityCacheStorageHelper; + #[Inject] private Configuration $configuration; - private string $cacheVersion = 'v7'; + private string $entityCacheVersion = 'v1'; + private string $entityCacheKey = ''; private bool $isCacheChanged = false; - abstract public function getCacheKey(): string; - - abstract public function entityCacheIsOutdated(): bool; - - private function getVersionedCacheKey(): string + public function getCacheKey(): string { - return "{$this->cacheVersion}_{$this->getCacheKey()}"; + if (!$this->entityCacheKey) { + $currentRootEntity = $this->getCurrentRootEntity(); + $configVersion = $this->configuration->getConfigurationVersion(); + $this->entityCacheKey = $currentRootEntity ? md5( + $this->entityCacheVersion . $configVersion . $this->getCurrentRootEntity()->getName() + ) : ''; + } + return $this->entityCacheKey; } + abstract public function entityCacheIsOutdated(): bool; + /** * @throws InvalidArgumentException */ protected function getEntityCacheValue(string $key): mixed { - return $this->entityCacheStorageHelper->getItemValueFromCache($this->getVersionedCacheKey(), $key); + return $this->entityCacheStorageHelper->getItemValueFromCache($this->getCacheKey(), $key); } /** @@ -36,7 +44,7 @@ protected function getEntityCacheValue(string $key): mixed */ protected function hasEntityCacheValue(string $key): bool { - $cacheValues = $this->entityCacheStorageHelper->getItemValues($this->getVersionedCacheKey()); + $cacheValues = $this->entityCacheStorageHelper->getItemValues($this->getCacheKey()); return array_key_exists($key, $cacheValues) && is_array($cacheValues[$key]) && $cacheValues[$key]; } @@ -47,19 +55,28 @@ protected function addEntityValueToCache(string $key, mixed $value, int $cacheEx { $this->isCacheChanged = true; $this->entityCacheStorageHelper->addItemValueToCache( - $this->getVersionedCacheKey(), + $this->getCacheKey(), $key, $value, $cacheExpiresAfter ); } + public function removeEntityValueFromCache(string $key): void + { + $this->isCacheChanged = true; + $this->entityCacheStorageHelper->removeItemValueFromCache( + $this->getCacheKey(), + $key, + ); + } + /** * @throws InvalidArgumentException */ public function isEntityDataCacheOutdated(): bool { - $cacheKey = $this->getVersionedCacheKey(); + $cacheKey = $this->getCacheKey(); $values = $this->entityCacheStorageHelper->getItemValues($cacheKey); $usedCacheItemsKeys = $this->entityCacheStorageHelper->getUsedCacheItemsKeys($cacheKey); $isCacheChanged = $this->isCacheChanged || count($values) !== count($usedCacheItemsKeys); @@ -79,7 +96,7 @@ public function isEntityDataCacheOutdated(): bool */ public function removeNotUsedEntityDataCache(): void { - $cacheKey = $this->getVersionedCacheKey(); + $cacheKey = $this->getCacheKey(); $cacheValues = $this->entityCacheStorageHelper->getItemValues($cacheKey); $usedCacheItemsKeys = $this->entityCacheStorageHelper->getUsedCacheItemsKeys($cacheKey); foreach ($cacheValues as $k => $v) { diff --git a/src/Core/Parser/Entity/Cache/CacheableEntityWrapperTrait.php b/src/Core/Parser/Entity/Cache/CacheableEntityWrapperTrait.php index 3b344ec4..03bda662 100644 --- a/src/Core/Parser/Entity/Cache/CacheableEntityWrapperTrait.php +++ b/src/Core/Parser/Entity/Cache/CacheableEntityWrapperTrait.php @@ -5,12 +5,15 @@ namespace BumbleDocGen\Core\Parser\Entity\Cache; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; +use BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler; +use DI\Attribute\Inject; use Psr\Cache\InvalidArgumentException; trait CacheableEntityWrapperTrait { use CacheableEntityTrait; + #[Inject] private GenerationErrorsHandler $generationErrorsHandler; private bool $noCacheMode = false; abstract public function isEntityFileCanBeLoad(): bool; @@ -39,9 +42,11 @@ final protected function getWrappedMethodResult( if ($this->hasEntityCacheValue($cacheKey) && !$this->entityCacheIsOutdated()) { $methodReturnValue = $this->getEntityCacheValue($cacheKey); } else { + $errorsBeforeGenerationCount = count($this->generationErrorsHandler->getRecords()); $methodReturnValue = call_user_func_array([parent::class, $methodName], $funcArgs); $this->noCacheMode = true; - if ($this->isEntityFileCanBeLoad()) { + $errorsCount = count($this->generationErrorsHandler->getRecords()); + if ($errorsCount === $errorsBeforeGenerationCount && $this->isEntityFileCanBeLoad()) { $this->addEntityValueToCache($cacheKey, $methodReturnValue, $cacheExpiresAfter); } $this->noCacheMode = false; diff --git a/src/Core/Parser/Entity/RootEntityInterface.php b/src/Core/Parser/Entity/RootEntityInterface.php index 54d1594b..babd4697 100644 --- a/src/Core/Parser/Entity/RootEntityInterface.php +++ b/src/Core/Parser/Entity/RootEntityInterface.php @@ -20,6 +20,11 @@ public static function isEntityNameValid(string $entityName): bool; */ public function entityDataCanBeLoaded(): bool; + /** + * The entity is loaded from a third party library and should not be treated the same as a standard one + */ + public function isExternalLibraryEntity(): bool; + /** * @return string[] */ diff --git a/src/Core/Plugin/PluginEventDispatcher.php b/src/Core/Plugin/PluginEventDispatcher.php index c9198bf7..205f5fc8 100644 --- a/src/Core/Plugin/PluginEventDispatcher.php +++ b/src/Core/Plugin/PluginEventDispatcher.php @@ -4,12 +4,18 @@ namespace BumbleDocGen\Core\Plugin; +use Monolog\Logger; use Symfony\Component\EventDispatcher\EventDispatcher; class PluginEventDispatcher extends EventDispatcher { private array $handledSingleExecutionEvents = []; + public function __construct(private Logger $logger) + { + parent::__construct(); + } + public function dispatch(object $event, string $eventName = null): object { if ($event instanceof OnlySingleExecutionEvent) { @@ -20,6 +26,11 @@ public function dispatch(object $event, string $eventName = null): object $this->handledSingleExecutionEvents[$uniqueExecutionId] = true; } } - return parent::dispatch($event, $eventName); + try { + return parent::dispatch($event, $eventName); + } catch (\Exception $e) { + $this->logger->error($e->getMessage()); + } + return $event; } } diff --git a/src/Core/Renderer/Breadcrumbs/BreadcrumbsHelper.php b/src/Core/Renderer/Breadcrumbs/BreadcrumbsHelper.php index 1d762c22..5dfd37ca 100644 --- a/src/Core/Renderer/Breadcrumbs/BreadcrumbsHelper.php +++ b/src/Core/Renderer/Breadcrumbs/BreadcrumbsHelper.php @@ -91,22 +91,7 @@ private function getPrevPage(string $templateName): ?string if ($pathParts) { $subPath = count($pathParts) > 1 ? implode('/', $pathParts) : ''; - $finder = Finder::create() - ->name('*.twig') - ->ignoreVCS(true) - ->ignoreDotFiles(true) - ->ignoreUnreadableDirs() - ->depth(0) - ->in($this->configuration->getTemplatesDir() . '/' . $subPath); - - $indexFile = null; - foreach ($finder->files() as $file) { - $indexFile = $file->getFileName(); - if (preg_match($this->prevPageNameTemplate, $indexFile)) { - break; - } - } - + $indexFile = $this->getFindIndexFileByRelativePath($subPath); if ($indexFile) { $prevPage = $subPath . "/{$indexFile}"; } @@ -115,6 +100,44 @@ private function getPrevPage(string $templateName): ?string return $prevPage; } + /** + * @throws InvalidConfigurationParameterException + */ + public function getNearestIndexFile(string $templateName): string + { + $pathParts = explode('/', $templateName); + array_pop($pathParts); + $subPath = implode('/', $pathParts); + $indexFile = $this->getFindIndexFileByRelativePath($subPath); + if (is_null($indexFile)) { + return $templateName; + } + return "{$subPath}/{$indexFile}"; + } + + /** + * @throws InvalidConfigurationParameterException + */ + private function getFindIndexFileByRelativePath(string $relativePath): ?string + { + $finder = Finder::create() + ->name('*.twig') + ->ignoreVCS(true) + ->ignoreDotFiles(true) + ->ignoreUnreadableDirs() + ->depth(0) + ->in($this->configuration->getTemplatesDir() . '/' . $relativePath); + + $indexFile = null; + foreach ($finder->files() as $file) { + $indexFile = $file->getFileName(); + if (preg_match($this->prevPageNameTemplate, $indexFile)) { + break; + } + } + return $indexFile; + } + /** * Get the name of a template by its URL. * Only templates with .twig extension are processed. diff --git a/src/Core/Renderer/Context/DocumentedEntityWrappersCollection.php b/src/Core/Renderer/Context/DocumentedEntityWrappersCollection.php index 2e681a0b..dd2222d6 100644 --- a/src/Core/Renderer/Context/DocumentedEntityWrappersCollection.php +++ b/src/Core/Renderer/Context/DocumentedEntityWrappersCollection.php @@ -5,9 +5,11 @@ namespace BumbleDocGen\Core\Renderer\Context; use BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache; +use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\RootEntityInterface; use BumbleDocGen\Core\Plugin\Event\Renderer\OnCreateDocumentedEntityWrapper; use BumbleDocGen\Core\Plugin\PluginEventDispatcher; +use BumbleDocGen\Core\Renderer\Breadcrumbs\BreadcrumbsHelper; final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \Countable { @@ -19,6 +21,7 @@ final class DocumentedEntityWrappersCollection implements \IteratorAggregate, \C public function __construct( private RendererContext $rendererContext, private LocalObjectCache $localObjectCache, + private BreadcrumbsHelper $breadcrumbsHelper, private PluginEventDispatcher $pluginEventDispatcher ) { } @@ -33,12 +36,22 @@ public function getIterator(): \Generator } } + /** + * @throws InvalidConfigurationParameterException + */ public function createAndAddDocumentedEntityWrapper(RootEntityInterface $rootEntity): DocumentedEntityWrapper { + $parentDocFilePatch = $this->rendererContext->getCurrentTemplateFilePatch(); + + $entityWrapper = $this->rendererContext->getCurrentDocumentedEntityWrapper(); + if (!is_null($entityWrapper)) { + $parentDocFilePatch = $this->breadcrumbsHelper->getNearestIndexFile($parentDocFilePatch); + } + $documentedEntity = new DocumentedEntityWrapper( $rootEntity, $this->localObjectCache, - $this->rendererContext->getCurrentTemplateFilePatch() + $parentDocFilePatch ); $this->pluginEventDispatcher->dispatch(new OnCreateDocumentedEntityWrapper($documentedEntity)); diff --git a/src/Core/Renderer/RendererIteratorFactory.php b/src/Core/Renderer/RendererIteratorFactory.php index 487a241b..61a176f7 100644 --- a/src/Core/Renderer/RendererIteratorFactory.php +++ b/src/Core/Renderer/RendererIteratorFactory.php @@ -198,7 +198,7 @@ public function getDocumentedEntityWrappersWithOutdatedCache(): \Generator ); $this->sharedCompressedDocumentFileCache->set( 'config_hash', - md5(serialize($this->configurationParameterBag->getAll(false))) + $this->configuration->getConfigurationVersion() ); $this->sharedCompressedDocumentFileCache->set( 'internal_caching_system_version', @@ -283,7 +283,7 @@ private function isConfigurationVersionChanged(): bool return $this->localObjectCache->getMethodCachedResult(__METHOD__, ''); } catch (ObjectNotFoundException) { } - $configHash = md5(serialize($this->configurationParameterBag->getAll(false))); + $configHash = $this->configuration->getConfigurationVersion(); $cachedConfigHash = $this->sharedCompressedDocumentFileCache->get('config_hash'); $isConfigChanged = $configHash !== $cachedConfigHash; $this->localObjectCache->cacheMethodResult(__METHOD__, '', $isConfigChanged); diff --git a/src/Core/Renderer/Twig/Filter/StrTypeToUrl.php b/src/Core/Renderer/Twig/Filter/StrTypeToUrl.php index 3764fe10..1f9678b3 100644 --- a/src/Core/Renderer/Twig/Filter/StrTypeToUrl.php +++ b/src/Core/Renderer/Twig/Filter/StrTypeToUrl.php @@ -4,13 +4,9 @@ namespace BumbleDocGen\Core\Renderer\Twig\Filter; -use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Parser\Entity\RootEntityCollection; use BumbleDocGen\Core\Renderer\RendererHelper; use BumbleDocGen\Core\Renderer\Twig\Function\GetDocumentedEntityUrl; -use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; -use DI\DependencyException; -use DI\NotFoundException; use Monolog\Logger; /** @@ -49,10 +45,6 @@ public static function getOptions(): array * If true, creates an entity document. Otherwise, just gives a reference to the entity code * * @return string - * @throws NotFoundException - * @throws ReflectionException - * @throws DependencyException - * @throws InvalidConfigurationParameterException */ public function __invoke( string $text, @@ -70,30 +62,34 @@ public function __invoke( $preparedTypes[] = "{$type}"; continue; } + try { + $entityOfLink = $rootEntityCollection->getLoadedOrCreateNew($type); + if (!$entityOfLink->isExternalLibraryEntity() && $entityOfLink->entityDataCanBeLoaded()) { + if ($entityOfLink->getAbsoluteFileName()) { + $link = $getDocumentedEntityUrlFunction($rootEntityCollection, $type, '', $createDocument); - $entityOfLink = $rootEntityCollection->getLoadedOrCreateNew($type); - if ($entityOfLink->entityDataCanBeLoaded()) { - if ($entityOfLink->getAbsoluteFileName()) { - $link = $getDocumentedEntityUrlFunction($rootEntityCollection, $type, '', $createDocument); + if ($useShortLinkVersion) { + $type = $entityOfLink->getShortName(); + } else { + $type = "\\{$entityOfLink->getName()}"; + } - if ($useShortLinkVersion) { - $type = $entityOfLink->getShortName(); - } else { - $type = "\\{$entityOfLink->getName()}"; + if ($link && $link !== '#') { + $preparedTypes[] = "{$type}"; + } else { + $preparedTypes[] = $type; + } } - - if ($link && $link !== '#') { - $preparedTypes[] = "{$type}"; - } else { - $preparedTypes[] = $type; + } else { + if ($entityOfLink::isEntityNameValid($type)) { + $this->logger->warning( + "StrTypeToUrl: Entity {$type} not found in specified sources" + ); } + $preparedTypes[] = $type; } - } else { - if ($entityOfLink::isEntityNameValid($type)) { - $this->logger->warning( - "StrTypeToUrl: Entity {$type} not found in specified sources" - ); - } + } catch (\Exception $e) { + $this->logger->error($e->getMessage()); $preparedTypes[] = $type; } } diff --git a/src/DocGenerator.php b/src/DocGenerator.php index e764f097..a3cf7d31 100644 --- a/src/DocGenerator.php +++ b/src/DocGenerator.php @@ -4,6 +4,9 @@ namespace BumbleDocGen; +use BumbleDocGen\AI\Generators\DocBlocksGenerator; +use BumbleDocGen\AI\Generators\ReadmeTemplateGenerator; +use BumbleDocGen\AI\ProviderInterface; use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; use BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler; @@ -16,11 +19,10 @@ use BumbleDocGen\LanguageHandler\Php\Parser\Entity\ClassEntityCollection; use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; -use BumbleDocGen\TemplateGenerator\ChatGpt\MissingDocBlocksGenerator; -use BumbleDocGen\TemplateGenerator\ChatGpt\ReadmeTemplateFiller; -use BumbleDocGen\TemplateGenerator\ChatGpt\TemplatesStructureGenerator; use DI\DependencyException; use DI\NotFoundException; +use Exception; +use Generator; use Monolog\Logger; use Psr\Cache\InvalidArgumentException; use Symfony\Component\Console\Formatter\OutputFormatterStyle; @@ -29,14 +31,13 @@ use Symfony\Component\Console\Style\OutputStyle; use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Finder\Finder; -use Tectalic\OpenAi\ClientException; /** * Class for generating documentation. */ final class DocGenerator { - public const VERSION = '1.4.0'; + public const VERSION = '1.5.0'; public const LOG_FILE_NAME = 'last_run.log'; public function __construct( @@ -71,67 +72,6 @@ public function parseAndGetRootEntityCollectionsGroup(): RootEntityCollectionsGr return $this->rootEntityCollectionsGroup; } - /** - * Generate documentation structure with blank templates using AI tools - * - * @throws ClientException - * @throws NotFoundException - * @throws ReflectionException - * @throws DependencyException - * @throws InvalidConfigurationParameterException - */ - public function generateProjectTemplatesStructure(): void - { - $this->parser->parse(); - $entitiesCollection = $this->rootEntityCollectionsGroup->get(ClassEntityCollection::NAME); - - $openaiKey = getenv('OPENAI_API_KEY') ?: $this->io->askHidden('Enter the key to work with ChatGpt'); - $openaiClient = \Tectalic\OpenAi\Manager::build( - new \GuzzleHttp\Client(), - new \Tectalic\OpenAi\Authentication($openaiKey) - ); - - $availableModels = array_values(array_filter( - array_map( - fn(array $v) => $v['id'], - $openaiClient->models()->list()->toArray()['data'] ?? [] - ), - fn(string $v) => str_starts_with($v, "gpt-") - )); - - $model = $this->io->choice("Choose GPT model from available", $availableModels); - $templatesStructureGenerator = new TemplatesStructureGenerator($openaiClient, $model); - - do { - $additionalPrompt = $this->io->ask('Write instructions for more accurate documentation generation ( or just skip this step )') ?: null; - $this->logger->notice("Sending ChatGPT request"); - $structure = $templatesStructureGenerator->generateStructureByEntityCollection($entitiesCollection, $additionalPrompt); - $structureAsString = implode("\n", array_map(fn($v, $k) => "{$k} => {$v}", $structure, array_keys($structure))); - $action = $this->io->choice("The proposed documentation structure is as follows:\n\n{$structureAsString}", ['Save', 'Regenerate', 'Cancel']); - } while ($action == 'Regenerate'); - - if ($action === 'Save') { - $templatesDir = $this->configuration->getTemplatesDir(); - $finder = new Finder(); - $finder->files()->in($this->configuration->getTemplatesDir()); - if ( - $finder->hasResults() && - $this->io->confirm("Directory `{$templatesDir}` already contains files. Clean before saving new ones?") - ) { - $this->fs->remove([$templatesDir]); - } - - foreach ($structure as $fileName => $title) { - $fileName = $templatesDir . $fileName; - $this->fs->appendToFile($fileName, "{% set title = '{$title}' %}\n"); - if (!str_ends_with($fileName, 'readme.md.twig')) { - $this->fs->appendToFile($fileName, "{{ generatePageBreadcrumbs(title, _self) }}\n"); - } - $this->logger->notice("Creating `{$fileName}` template"); - } - } - } - /** * Generate missing docBlocks with ChatGPT for project class methods that are available for documentation * @@ -139,39 +79,32 @@ public function generateProjectTemplatesStructure(): void * @throws DependencyException * @throws ReflectionException * @throws InvalidConfigurationParameterException - * @throws ClientException */ - public function addMissingDocBlocks(): void - { + public function addDocBlocks( + ProviderInterface $aiProvider, + ): void { if (!$this->io->confirm("This command will change the source code of your project. Continue?")) { return; } $this->parser->parse(); $entitiesCollection = $this->rootEntityCollectionsGroup->get(ClassEntityCollection::NAME); - - $openaiKey = getenv('OPENAI_API_KEY') ?: $this->io->askHidden('Enter the key to work with ChatGpt'); - $openaiClient = \Tectalic\OpenAi\Manager::build( - new \GuzzleHttp\Client(), - new \Tectalic\OpenAi\Authentication($openaiKey) - ); - - $availableModels = array_values(array_filter( - array_map( - fn(array $v) => $v['id'], - $openaiClient->models()->list()->toArray()['data'] ?? [] - ), - fn(string $v) => str_starts_with($v, "gpt-") - )); - - $model = $this->io->choice("Choose GPT model from available", $availableModels); - $missingDocBlocksGenerator = new MissingDocBlocksGenerator($openaiClient, $this->parserHelper, $model); + $missingDocBlocksGenerator = new DocBlocksGenerator($aiProvider, $this->parserHelper); $alreadyProcessedEntities = []; - $getEntities = function (ClassEntityCollection|array $entitiesCollection) use (&$getEntities, &$alreadyProcessedEntities): \Generator { + $getEntities = function (ClassEntityCollection|array $entitiesCollection) use ( + &$getEntities, + & + $alreadyProcessedEntities + ): Generator { foreach ($entitiesCollection as $classEntity) { /**@var ClassEntity $classEntity */ - if (!$classEntity->entityDataCanBeLoaded() || array_key_exists($classEntity->getName(), $alreadyProcessedEntities)) { + if ( + !$classEntity->entityDataCanBeLoaded() || array_key_exists( + $classEntity->getName(), + $alreadyProcessedEntities + ) + ) { continue; } $interfaces = $classEntity->getInterfacesEntities(); @@ -203,7 +136,9 @@ public function addMissingDocBlocks(): void $classFileLines = explode("\n", $classFileContent); foreach ($newBocBlocks as $method => $docBlock) { $methodEntity = $entity->getMethodEntity($method); - $lineNumber = $docCommentLine = $methodEntity->getDocComment() ? $methodEntity->getDocBlock(false)->getLocation()?->getLineNumber() : null; + $lineNumber = $docCommentLine = $methodEntity->getDocComment() ? $methodEntity->getDocBlock( + false + )->getLocation()?->getLineNumber() : null; $lineNumber = $lineNumber ?: $methodEntity->getStartLine(); foreach (file($entity->getFullFileName(), FILE_IGNORE_NEW_LINES) as $line => $lineContent) { @@ -226,22 +161,16 @@ public function addMissingDocBlocks(): void /** * @throws ReflectionException * @throws DependencyException - * @throws ClientException * @throws NotFoundException * @throws InvalidConfigurationParameterException */ - public function fillInReadmeMdTemplate(): void - { + public function generateReadmeTemplate( + ProviderInterface $aiProvider, + ): void { $this->io->note("Project analysis"); $this->parser->parse(); $entitiesCollection = $this->rootEntityCollectionsGroup->get(ClassEntityCollection::NAME); - $openaiKey = getenv('OPENAI_API_KEY') ?: $this->io->askHidden('Enter the key to work with ChatGpt'); - $openaiClient = \Tectalic\OpenAi\Manager::build( - new \GuzzleHttp\Client(), - new \Tectalic\OpenAi\Authentication($openaiKey) - ); - $finder = new Finder(); $finder ->files() @@ -256,7 +185,9 @@ public function fillInReadmeMdTemplate(): void $entryPoints = []; do { - $entityName = $this->io->ask("Enter the name of the class that is the entry point of the documented project (or just skip this step)"); + $entityName = $this->io->ask( + "Enter the name of the class that is the entry point of the documented project (or just skip this step)" + ); if ($entityName) { $entity = $entitiesCollection->findEntity($entityName, false); if (!$entity) { @@ -269,11 +200,17 @@ public function fillInReadmeMdTemplate(): void $action = null; if ($entryPoints) { do { - $this->io->text(array_merge(["Entry-point classes:"], array_map(function ($v) { - static $n = 0; - ++$n; - return "{$n}) {$v}"; - }, array_keys($entryPoints)))); + $this->io->text( + array_merge( + ["Entry-point classes:"], + array_map(function ($v) { + static $n = 0; + ++$n; + return "{$n}) {$v}"; + }, + array_keys($entryPoints)) + ) + ); $action = $this->io->choice("Choose your next action", ['Continue', 'Add more', 'Remove last']); if ($action === 'Remove last') { @@ -283,19 +220,18 @@ public function fillInReadmeMdTemplate(): void } } while ($action !== 'Continue'); - $additionalPrompt = $this->io->ask('Write instructions for more accurate documentation generation ( or just skip this step )'); - - $availableModels = array_values(array_filter( - array_map( - fn(array $v) => $v['id'], - $openaiClient->models()->list()->toArray()['data'] ?? [] - ), - fn(string $v) => str_starts_with($v, "gpt-") - )); + $additionalPrompt = $this->io->ask( + 'Write instructions for more accurate documentation generation ( or just skip this step )' + ); - $model = $this->io->choice("Choose GPT model from available", $availableModels, 'gpt-4'); - $readmeTemplateFiller = new ReadmeTemplateFiller($openaiClient, $model); - $readmeFileContent = $readmeTemplateFiller->generateReadmeFileContent($entitiesCollection, $entryPoints, $composerJsonFile, $additionalPrompt); + $readmeTemplateFiller = new ReadmeTemplateGenerator($aiProvider); + $this->io->note("Sending " . $aiProvider->getName() . " request"); + $readmeFileContent = $readmeTemplateFiller->generateReadmeFileContent( + $entitiesCollection, + $entryPoints, + $composerJsonFile, + $additionalPrompt, + ); $fileContent = "{% set title = 'About the project' %}\n{$readmeFileContent}"; $this->io->note("readme.md.twig file content generated:"); @@ -311,7 +247,7 @@ public function fillInReadmeMdTemplate(): void * Generates documentation using configuration * * @throws InvalidArgumentException - * @throws \Exception + * @throws Exception */ public function generate(): void { @@ -321,8 +257,10 @@ public function generate(): void try { $this->parser->parse(); $this->renderer->run(); - } catch (\Exception $e) { - $this->logger->critical("{$e->getFile()}:{$e->getLine()} {$e->getMessage()} \n\n{{$e->getTraceAsString()}}"); + } catch (Exception $e) { + $this->logger->critical( + "{$e->getFile()}:{$e->getLine()} {$e->getMessage()} \n\n{{$e->getTraceAsString()}}" + ); throw $e; } @@ -349,7 +287,10 @@ public function generate(): void $tag = strtolower($warningMessage['type']); $rows[] = ["<{$tag}>{$warningMessage['type']}", "<{$tag}>{$warningMessage['msg']}"]; if ($warningMessage['isRenderingError']) { - $rows[] = ['', 'This error occurs during the document rendering process']; + $rows[] = [ + '', + 'This error occurs during the document rendering process' + ]; } $rows[] = ['', $warningMessage['initiator']]; if ($warningMessagesCount - $i !== 1) { diff --git a/src/LanguageHandler/Php/Parser/ComposerParser.php b/src/LanguageHandler/Php/Parser/ComposerParser.php new file mode 100644 index 00000000..32feaf16 --- /dev/null +++ b/src/LanguageHandler/Php/Parser/ComposerParser.php @@ -0,0 +1,73 @@ +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 f3a1d0ea..733ad1ec 100644 --- a/src/LanguageHandler/Php/Parser/Entity/BaseEntity.php +++ b/src/LanguageHandler/Php/Parser/Entity/BaseEntity.php @@ -8,6 +8,7 @@ use BumbleDocGen\Core\Cache\LocalCache\LocalObjectCache; use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Configuration\Exception\InvalidConfigurationParameterException; +use BumbleDocGen\Core\Logger\Handler\GenerationErrorsHandler; use BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityInterface; use BumbleDocGen\Core\Parser\Entity\Cache\CacheableEntityTrait; use BumbleDocGen\Core\Parser\Entity\Cache\CacheableMethod; @@ -18,6 +19,7 @@ use BumbleDocGen\LanguageHandler\Php\Parser\Entity\Exception\ReflectionException; use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; use BumbleDocGen\LanguageHandler\Php\PhpHandlerSettings; +use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad; use DI\Attribute\Inject; use phpDocumentor\Reflection\DocBlock; use Psr\Cache\InvalidArgumentException; @@ -400,14 +402,37 @@ private function fillInLinkDataWithUrls(array $linkData): array $this->getImplementingReflectionClass()->getName(), false ); - $linkData[$key]['url'] = $entityData['entityName'] ? call_user_func_array( - callback: $this->documentedEntityUrlFunction, - args: [ - $this->getRootEntityCollection(), - $entityData['entityName'], - $entityData['cursor'] - ] - ) : null; + if (!$entityData['entityName'] && !str_contains($data['className'], '\\')) { + try { + $data['className'] = $this->getDocCommentEntity()->getCurrentRootEntity()->getNamespaceName() . "\\{$data['className']}"; + $entityData = $this->getRootEntityCollection()->getEntityLinkData( + $data['className'], + $this->getDocCommentEntity()->getCurrentRootEntity()->getName(), + false + ); + } catch (\Exception $e) { + $this->logger->error($e->getMessage()); + } + } + + if ($entityData['entityName']) { + $linkData[$key]['url'] = call_user_func_array( + callback: $this->documentedEntityUrlFunction, + args: [ + $this->getRootEntityCollection(), + $entityData['entityName'], + $entityData['cursor'] + ] + ); + } else { + $preloadResourceLink = $this->rendererHelper->getPreloadResourceLink($data['className']); + if ($preloadResourceLink) { + $linkData[$key]['url'] = $preloadResourceLink; + } else { + $linkData[$key]['url'] = null; + $this->logger->warning("Unable to get URL data for entity `{$data['className']}`"); + } + } $linkData[$key]['name'] = $entityData['title']; unset($data['className']); } @@ -467,7 +492,7 @@ public function getDocNote(): string return $this->getReflection()->getDocComment(); } - private function getCurrentRootEntity(): ?RootEntityInterface + protected function getCurrentRootEntity(): ?RootEntityInterface { if (is_a($this, RootEntityInterface::class)) { return $this; @@ -477,7 +502,7 @@ private function getCurrentRootEntity(): ?RootEntityInterface return null; } - private function getEntityDependenciesCacheKey(): string + protected function getEntityDependenciesCacheKey(): string { return "__internalEntityDependencies{$this->getCacheKey()}"; } @@ -493,23 +518,32 @@ final public function getCachedEntityDependencies(): array $filesDependenciesCacheKey = $this->getEntityDependenciesCacheKey(); $entityDependencies = $this->getEntityCacheValue($filesDependenciesCacheKey); if (is_null($entityDependencies)) { - $entityDependencies = $entity->getEntityDependencies(); - $this->addEntityValueToCache($this->getEntityDependenciesCacheKey(), $entityDependencies); + $entityDependencies = $this->reloadEntityDependenciesCache(); } } return $entityDependencies; } + #[Inject] private GenerationErrorsHandler $generationErrorsHandler; /** * @throws InvalidArgumentException */ - final public function reloadEntityDependenciesCache(): void + final public function reloadEntityDependenciesCache(): array { + $entityDependencies = []; $entity = $this->getCurrentRootEntity(); if ($entity) { + $errorsBeforeCount = count($this->generationErrorsHandler->getRecords()); $entityDependencies = $entity->getEntityDependencies(); - $this->addEntityValueToCache($this->getEntityDependenciesCacheKey(), $entityDependencies); + $errorsAfterCount = count($this->generationErrorsHandler->getRecords()); + if ($errorsBeforeCount === $errorsAfterCount) { + $this->addEntityValueToCache($this->getEntityDependenciesCacheKey(), $entityDependencies); + } else { + $this->removeEntityValueFromCache($this->getEntityDependenciesCacheKey()); + $entityDependencies = []; + } } + return $entityDependencies; } /** @@ -549,6 +583,23 @@ private function isSubEntityFileCacheIsOutdated(string $dependenciesCacheKey): b return $entityCacheIsOutdated; } + protected function isCurrentEntityCanBeLoad(): bool + { + $classEntity = $this->getCurrentRootEntity(); + if (!$classEntity) { + return false; + } + try { + return $this->localObjectCache->getMethodCachedResult(__METHOD__, $classEntity->getObjectId()); + } catch (ObjectNotFoundException) { + } + $entityCanBeLoad = $this->getRootEntityCollection()->getPluginEventDispatcher()->dispatch( + new OnCheckIsClassEntityCanBeLoad($this->getCurrentRootEntity()) + )->isClassCanBeLoad(); + $this->localObjectCache->cacheMethodResult(__METHOD__, $classEntity->getObjectId(), $entityCanBeLoad); + return $entityCanBeLoad; + } + /** * @throws InvalidConfigurationParameterException * @throws InvalidArgumentException @@ -578,6 +629,10 @@ final public function entityCacheIsOutdated(): bool } $this->localObjectCache->cacheMethodResult(__METHOD__, $entityName, false); + if (!$this->isCurrentEntityCanBeLoad()) { + return false; + } + $cachedDependencies = $this->getCachedEntityDependencies(); if (!$cachedDependencies) { $entityCacheIsOutdated = true; @@ -618,10 +673,4 @@ final public function entityCacheIsOutdated(): bool $this->localObjectCache->cacheMethodResult(__METHOD__, $entityName, $entityCacheIsOutdated); return $entityCacheIsOutdated; } - - final public function getCacheKey(): string - { - $currentRootEntity = $this->getCurrentRootEntity(); - return $currentRootEntity ? md5($this->getCurrentRootEntity()->getName()) : ''; - } } diff --git a/src/LanguageHandler/Php/Parser/Entity/ClassEntity.php b/src/LanguageHandler/Php/Parser/Entity/ClassEntity.php index 61cf3940..5e46a273 100644 --- a/src/LanguageHandler/Php/Parser/Entity/ClassEntity.php +++ b/src/LanguageHandler/Php/Parser/Entity/ClassEntity.php @@ -13,6 +13,7 @@ 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; @@ -49,6 +50,7 @@ public function __construct( private ReflectorWrapper $reflector, private ClassEntityCollection $classEntityCollection, private ParserHelper $parserHelper, + private ComposerParser $composerParser, private LocalObjectCache $localObjectCache, private LoggerInterface $logger, private string $className, @@ -75,6 +77,15 @@ 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; @@ -102,6 +113,7 @@ public function getRootEntityCollection(): ClassEntityCollection * @throws DependencyException * @throws ReflectionException * @throws InvalidConfigurationParameterException + * @throws \Exception */ public function getEntityDependencies(): array { @@ -113,8 +125,9 @@ public function getEntityDependencies(): array $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($className) => $this->getReflector()->reflectClass($className), $classNames); + $reflections = array_map(fn(string $className): ReflectionClass => $this->getReflector()->reflectClass($className), $classNames); $reflections[] = $currentClassEntityReflection; foreach ($reflections as $reflectionClass) { $fileName = $reflectionClass->getFileName(); @@ -293,18 +306,15 @@ public function isClassLoad(): bool /** * @throws ReflectionException * @throws InvalidConfigurationParameterException + * @throws \Exception */ #[CacheableMethod] public function entityDataCanBeLoaded(): bool { - if ( - !$this->getRootEntityCollection()->getPluginEventDispatcher()->dispatch( - new OnCheckIsClassEntityCanBeLoad($this) - )->isClassCanBeLoad() - ) { + if (!$this->isCurrentEntityCanBeLoad()) { $this->logger->notice("Class `{$this->getName()}` loading skipped by plugin"); return false; } - return $this->isEntityFileCanBeLoad(); + return !$this->isExternalLibraryEntity() && $this->isEntityFileCanBeLoad(); } public function getShortName(): string @@ -457,6 +467,9 @@ public function getInterfacesEntities(): array */ #[CacheableMethod] public function getParentClassNames(): array { + if ($this->isExternalLibraryEntity()) { + return []; + } if ($this->isInterface()) { return $this->getInterfaceNames(); } else { @@ -506,7 +519,9 @@ public function getInterfacesEntities(): array $parentInterfaceNames = []; try { $interfaceEntity = $this->getRootEntityCollection()->getLoadedOrCreateNew($interfaceName); - $parentInterfaceNames = $interfaceEntity->getInterfaceNames(); + if (!$interfaceEntity->isExternalLibraryEntity()) { + $parentInterfaceNames = $interfaceEntity->getInterfaceNames(); + } } catch (\Exception $e) { $this->logger->error($e->getMessage()); } @@ -515,7 +530,9 @@ public function getInterfacesEntities(): array if (!$this->isInterface() && $parentClass = $this->getParentClass()) { $parentInterfaceNames = []; try { - $parentInterfaceNames = $parentClass->getInterfaceNames(); + if (!$parentClass->isExternalLibraryEntity()) { + $parentInterfaceNames = $parentClass->getInterfaceNames(); + } } catch (\Exception $e) { $this->logger->error($e->getMessage()); } @@ -812,7 +829,7 @@ public function getFileContent(): string */ #[CacheableMethod] public function isInterface(): bool { - return $this->getReflection()->isInterface(); + return $this->getReflection()->getAst() instanceof InterfaceNode; } /** diff --git a/src/LanguageHandler/Php/Parser/Entity/MethodEntity.php b/src/LanguageHandler/Php/Parser/Entity/MethodEntity.php index 79d3b19d..02fb63da 100644 --- a/src/LanguageHandler/Php/Parser/Entity/MethodEntity.php +++ b/src/LanguageHandler/Php/Parser/Entity/MethodEntity.php @@ -134,6 +134,10 @@ public function getDocCommentEntity(): MethodEntity } $docComment = $this->getDocComment(); $reflectionMethod = $this; + if ($reflectionMethod->isImplementedInParentClass()) { + $reflectionMethod = $reflectionMethod->getImplementingClass()->getMethodEntity($this->getName()); + } + if (!$docComment || str_contains(mb_strtolower($docComment), '@inheritdoc')) { $implementingClass = $this->getImplementingClass(); $parentClass = $this->getImplementingClass()->getParentClass(); diff --git a/src/LanguageHandler/Php/Parser/Entity/PropertyEntity.php b/src/LanguageHandler/Php/Parser/Entity/PropertyEntity.php index 2ee030a1..100d70ed 100644 --- a/src/LanguageHandler/Php/Parser/Entity/PropertyEntity.php +++ b/src/LanguageHandler/Php/Parser/Entity/PropertyEntity.php @@ -107,6 +107,10 @@ public function getDocCommentEntity(): PropertyEntity } $docComment = $this->getDocComment(); $reflectionProperty = $this; + if ($reflectionProperty->isImplementedInParentClass()) { + $reflectionProperty = $reflectionProperty->getImplementingClass()->getPropertyEntity($this->getName()); + } + if (!$docComment || str_contains(mb_strtolower($docComment), '@inheritdoc')) { $implementingClass = $this->getImplementingClass(); $parentClass = $this->getImplementingClass()->getParentClass(); diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpDocumentorStubberPlugin.php b/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpDocumentorStubberPlugin.php index b7904f57..930f34aa 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpDocumentorStubberPlugin.php +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpDocumentorStubberPlugin.php @@ -38,6 +38,7 @@ final public function onGettingResourceLink(OnGettingResourceLink $event): void $resourceName = "\\{$resourceName}"; } if (str_starts_with($resourceName, '\\phpDocumentor\\Reflection\\')) { + $resourceName = explode('::', $resourceName)[0]; if ( in_array(ltrim($resourceName, '\\'), [ DocBlock::class, @@ -64,7 +65,6 @@ final public function onGettingResourceLink(OnGettingResourceLink $event): void ) { $resource = str_replace(['\\phpDocumentor\\Reflection\\', '\\'], ['', '/'], $resourceName); $event->setResourceUrl("https://github.com/phpDocumentor/TypeResolver/blob/master/src/{$resource}.php"); - return; } } } diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpUnitStubberPlugin.php b/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpUnitStubberPlugin.php index 3ebd5769..e64a32a9 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpUnitStubberPlugin.php +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/BasePhpStubber/PhpUnitStubberPlugin.php @@ -29,6 +29,7 @@ final public function onGettingResourceLink(OnGettingResourceLink $event): void $resourceName = "\\{$resourceName}"; } if (str_starts_with($resourceName, '\\PHPUnit\\')) { + $resourceName = explode('::', $resourceName)[0]; $resourceName = str_replace(['\\PHPUnit\\', '\\'], ['', '/'], $resourceName); $event->setResourceUrl("https://github.com/sebastianbergmann/phpunit/blob/master/src/{$resourceName}.php"); } diff --git a/src/LanguageHandler/Php/Plugin/CorePlugin/ComposerPackagesStubber/StubberPlugin.php b/src/LanguageHandler/Php/Plugin/CorePlugin/ComposerPackagesStubber/StubberPlugin.php index 1be4a906..f034b8a9 100644 --- a/src/LanguageHandler/Php/Plugin/CorePlugin/ComposerPackagesStubber/StubberPlugin.php +++ b/src/LanguageHandler/Php/Plugin/CorePlugin/ComposerPackagesStubber/StubberPlugin.php @@ -4,10 +4,9 @@ namespace BumbleDocGen\LanguageHandler\Php\Plugin\CorePlugin\ComposerPackagesStubber; -use BumbleDocGen\Core\Configuration\Configuration; use BumbleDocGen\Core\Plugin\Event\Renderer\OnGettingResourceLink; use BumbleDocGen\Core\Plugin\PluginInterface; -use BumbleDocGen\LanguageHandler\Php\Parser\ParserHelper; +use BumbleDocGen\LanguageHandler\Php\Parser\ComposerParser; use BumbleDocGen\LanguageHandler\Php\Plugin\Event\Entity\OnCheckIsClassEntityCanBeLoad; /** @@ -18,7 +17,7 @@ final class StubberPlugin implements PluginInterface private array $packages = []; private array $foundLinks = []; - public function __construct(private Configuration $configuration) + public function __construct(private ComposerParser $composerParser) { } @@ -37,9 +36,9 @@ final public function onGettingResourceLink(OnGettingResourceLink $event): void { if (!$event->getResourceUrl()) { $resourceName = trim($event->getResourceName()); - + $resourceName = explode('::', $resourceName)[0]; if (!isset($this->foundLinks[$resourceName])) { - $packageData = $this->getPackageDataByName($resourceName); + $packageData = $this->composerParser->getComposerPackageDataByClassName($resourceName); if (!$packageData) { return; } @@ -61,66 +60,8 @@ final public function onGettingResourceLink(OnGettingResourceLink $event): void */ final public function onCheckIsClassEntityCanBeLoad(OnCheckIsClassEntityCanBeLoad $event): void { - if ($this->getPackageDataByName($event->getEntity()->getName())) { + if ($this->composerParser->getComposerPackageDataByClassName($event->getEntity()->getName())) { $event->disableClassLoading(); } } - - /** - * @throws \Exception - */ - private function getComposerPackages(): array - { - if ($this->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 - */ - private function getPackageDataByName(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/Renderer/EntityDocRenderer/EntityDocRendererHelper.php b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/EntityDocRendererHelper.php index 81ed7dab..e636ca56 100644 --- a/src/LanguageHandler/Php/Renderer/EntityDocRenderer/EntityDocRendererHelper.php +++ b/src/LanguageHandler/Php/Renderer/EntityDocRenderer/EntityDocRendererHelper.php @@ -74,20 +74,16 @@ public function getEntityDataByLink( } } - if ($entity) { + if ($entity && $entity->entityDataCanBeLoaded()) { $cursor = ''; if ($classData[1] ?? null) { $cursorTarget = str_replace(['$', '(', ')'], '', $classData[1]); - if ( - str_ends_with($classData[1], '()') || $entity->hasMethod($cursorTarget) - ) { - $cursor = $classData[1]; - } elseif ( - str_starts_with($classData[1], '$') || $entity->hasProperty($cursorTarget) - ) { - $cursor = $classData[1]; - } elseif ($entity->hasConstant($classData[1])) { - $cursor = $classData[1]; + if ($entity->hasMethod($cursorTarget)) { + $cursor = "{$cursorTarget}()"; + } elseif ($entity->hasProperty($cursorTarget)) { + $cursor = "\${$cursorTarget}"; + } elseif ($entity->hasConstant($cursorTarget)) { + $cursor = $cursorTarget; } } if (in_array(self::CLASS_ENTITY_SHORT_LINK_OPTION, $linkOptions)) { diff --git a/src/TemplateGenerator/ChatGpt/TemplatesStructureGenerator.php b/src/TemplateGenerator/ChatGpt/TemplatesStructureGenerator.php deleted file mode 100644 index 7f7c7a8f..00000000 --- a/src/TemplateGenerator/ChatGpt/TemplatesStructureGenerator.php +++ /dev/null @@ -1,77 +0,0 @@ - 'system', - 'content' => file_get_contents(__DIR__ . '/prompts/structureGeneration') - ], - ]; - - if ($additionalPrompt) { - $messages[] = [ - 'role' => 'user', - 'content' => "Additional Information: {$additionalPrompt}" - ]; - } - - $namespacesList = array_map(fn(ClassEntity $e) => $e->getNamespaceName(), iterator_to_array($rootEntityCollection)); - $namespacesList = array_unique($namespacesList); - $messages[] = [ - 'role' => 'user', - 'content' => implode("\n", $namespacesList), - ]; - - $response = $this->openaiClient->chatCompletions()->create( - new \Tectalic\OpenAi\Models\ChatCompletions\CreateRequest([ - 'model' => $this->model, - 'messages' => $messages, - ]) - )->toModel(); - - $finalStructure = [ - "/readme.md.twig" => "About the project", - ]; - - if ($content = $response->choices[0]->message->content ?? null) { - $structure = json_decode($content); - foreach ($structure as $dir => $docName) { - $finalStructure["{$dir}/index.md.twig"] = $docName; - } - } - $finalStructure["/tech/index.md.twig"] = "Description of the technical part of the project"; - return $finalStructure; - } -} diff --git a/src/TemplateGenerator/ChatGpt/prompts/structureGeneration b/src/TemplateGenerator/ChatGpt/prompts/structureGeneration deleted file mode 100644 index 45a809d2..00000000 --- a/src/TemplateGenerator/ChatGpt/prompts/structureGeneration +++ /dev/null @@ -1,9 +0,0 @@ -You are a documentation generator. -You will be given a list of PHP namespaces. You need to return the file structure for documentation using these namespaces. -You should logically group the documentation files by namespaces. -Each directory must start with /tech, for example: /tech/scripts or /tech/db/entities. -You should respond in JSON. An example response would be: -{"/tech": "Technical description", "/tech/events": "Events to call", "/tech/modules": "Project modules", "/tech/modules/module1": "Description of the module1"} -You must follow these rules very strictly, don't add anything extra. -You keep the final structure concise and understandable. -You don't need to make the documentation structure exactly the same as the list of namespaces, you can combine them. \ No newline at end of file