10000 [Config] Add `NodeDefinition::documentationUri()` · symfony/symfony@acbda3f · GitHub
[go: up one dir, main page]

Skip to content

Commit acbda3f

Browse files
[Config] Add NodeDefinition::documentationUri()
1 parent fd9c5b4 commit acbda3f

File tree

7 files changed

+28
-3
lines changed

7 files changed

+28
-3
lines changed

src/Symfony/Bundle/DebugBundle/DependencyInjection/Configuration.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Bundle\DebugBundle\DependencyInjection;
1313

14+
use Composer\InstalledVersions;
1415
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
1516
use Symfony\Component\Config\Definition\ConfigurationInterface;
1617

@@ -26,7 +27,9 @@ public function getConfigTreeBuilder(): TreeBuilder
2627
$treeBuilder = new TreeBuilder('debug');
2728

2829
$rootNode = $treeBuilder->getRootNode();
29-
$rootNode->children()
30+
$rootNode
31+
->documentationUri('https://symfony.com/doc/'.(preg_match('/\d+.\d+/', InstalledVersions::getVersionRanges('symfony/debug-bundle'), $m) ? $m[0] : 'current').'/reference/configuration/debug.html')
32+
->children()
3033
->integerNode('max_items')
3134
->info('Max number of displayed items past the first level, -1 means no limit.')
3235
->min(-1)

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Bundle\FrameworkBundle\DependencyInjection;
1313

14+
use Composer\InstalledVersions;
1415
use Doctrine\DBAL\Connection;
1516
use Psr\Log\LogLevel;
1617
use Seld\JsonLint\JsonParser;
@@ -75,6 +76,7 @@ public function getConfigTreeBuilder(): TreeBuilder
7576
$rootNode = $treeBuilder->getRootNode();
< 8000 div aria-hidden="true" class="position-absolute top-0 d-flex user-select-none DiffLineTableCellParts-module__comment-indicator--eI0hb">
7677

7778
$rootNode
79+
->documentationUri('https://symfony.com/doc/'.(preg_match('/\d+.\d+/', InstalledVersions::getVersionRanges('symfony/framework-bundle'), $m) ? $m[0] : 'current').'/reference/configuration/framework.html')
7880
->beforeNormalization()
7981
->ifTrue(fn ($v) => !isset($v['assets']) && isset($v['templating']) && class_exists(Package::class))
8082
->then(function ($v) {

src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Bundle\SecurityBundle\DependencyInjection;
1313

14+
use Composer\InstalledVersions;
1415
use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\AbstractFactory;
1516
use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\AuthenticatorFactoryInterface;
1617
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
@@ -55,6 +56,7 @@ public function getConfigTreeBuilder(): TreeBuilder
5556
$rootNode = $tb->getRootNode();
5657

5758
$rootNode
59+
->documentationUri('https://symfony.com/doc/'.(preg_match('/\d+.\d+/', InstalledVersions::getVersionRanges('symfony/security-bundle'), $m) ? $m[0] : 'current').'/reference/configuration/security.html')
5860
->beforeNormalization()
5961
->always()
6062
->then(function ($v) {

src/Symfony/Bundle/TwigBundle/DependencyInjection/Configuration.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Bundle\TwigBundle\DependencyInjection;
1313

14+
use Composer\InstalledVersions;
1415
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
1516
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
1617
use Symfony\Component\Config\Definition\ConfigurationInterface;
@@ -32,7 +33,9 @@ public function getConfigTreeBuilder(): TreeBuilder
3233
$treeBuilder = new TreeBuilder('twig');
3334
$rootNode = $treeBuilder->getRootNode();
3435

35-
$rootNode->beforeNormalization()
36+
$rootNode
37+
->documentationUri('https://symfony.com/doc/'.(preg_match('/\d+.\d+/', InstalledVersions::getVersionRanges('symfony/twig-bundle'), $m) ? $m[0] : 'current').'/reference/configuration/twig.html')
38+
->beforeNormalization()
3639
->ifTrue(fn ($v) => \is_array($v) && \array_key_exists('exception_controller', $v))
3740
->then(function ($v) {
3841
if (isset($v['exception_controller'])) {

src/Symfony/Bundle/WebProfilerBundle/DependencyInjection/Configuration.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Bundle\WebProfilerBundle\DependencyInjection;
1313

14+
use Composer\InstalledVersions;
1415
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
1516
use Symfony\Component\Config\Definition\ConfigurationInterface;
1617

@@ -31,7 +32,9 @@ public function getConfigTreeBuilder(): TreeBuilder
3132
{
3233
$treeBuilder = new TreeBuilder('web_profiler');
3334

34-
$treeBuilder->getRootNode()
35+
$treeBuilder
36+
->getRootNode()
37+
->documentationUri('https://symfony.com/doc/'.(preg_match('/\d+.\d+/', InstalledVersions::getVersionRanges('symfony/web-profiler-bundle'), $m) ? $m[0] : 'current').'/reference/configuration/web_profiler.html')
3538
->children()
3639
->arrayNode('toolbar')
3740
->info('Profiler toolbar configuration')

src/Symfony/Component/Config/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ CHANGELOG
66

77
* Add `ExprBuilder::ifFalse()`
88
* Add support for info on `ArrayNodeDefinition::canBeEnabled()` and `ArrayNodeDefinition::canBeDisabled()`
9+
* Add `NodeDefinition::documentationUri()`
910

1011
7.2
1112
---

src/Symfony/Component/Config/Definition/Builder/NodeDefinition.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,17 @@ public function example(string|array $example): static
7676
return $this->attribute('example', $example);
7777
}
7878

79+
/**
80+
* Sets the documentation URI, as usually put in the "@see" tag of a doc block. This
81+
* can either be a URL or a file path.
82+
*
83+
* @return $this
84+
*/
85+
public function documentationUri(string $uri): static
86+
{
87+
return $this->attribute('documentationUri', $uri);
88+
}
89+
7990
/**
8091
* Sets an attribute on the node.
8192
*

0 commit comments

Comments
 (0)
0