# Symfony Plugin Navigation

**Navigation** features connect Symfony references to their declarations, targets, and related project files.

---

## !tagged_iterator tag name

---

## Tag navigation in Attributes

---

## Doctrine QueryBuilder: Field navigation

---

## Config navigation and resource line markers

**Feature ID:** `PhpConfigGotoDeclarationHandler`  
**Date:** 2026-03-31  
**Feature Page:** [Config navigation and resource line markers](https://espend.de/phpstorm/plugin/symfony#php-config-goto-declaration-handler)  

Navigates from root keys in PHP Symfony configuration files to their bundle configuration class, including conditional `when@env` sections.

PHP and YAML resource entries get line markers for imported files, directories, and globbed service resources, so generated resource-based services still navigate back to the matching config entry.

### Code Examples

```php
# Root config key navigation:
return [
    'framework' => [
        'mailer' => null,
    ],
    'when@prod' => [
        'twig' => [
            'strict_variables' => false,
        ],
    ],
];
```

```php
# Imported PHP resource line marker:
return [
    'imports' => [
        ['resource' => 'packages/security.php'],
    ],
];
```

```yaml
# YAML service resource glob:
services:
    _defaults:
        autowire: true

    App\Service\:
        resource: '../src/Service/*'
        exclude:
            - '../src/Service/Internal/*'
```

```php
# PHP service resource glob:
return [
    'services' => [
        'App\\' => [
            'resource' => '../src/',
            'exclude' => ['../src/Entity/', '../src/Kernel.php'],
        ],
    ],
];
```

---

## PHP RoutingConfigurator route support

**Feature ID:** `PhpRouteReferenceContributorRoutingConfigurator`  
**Date:** 2026-04-16  
**Feature Page:** [PHP RoutingConfigurator route support](https://espend.de/phpstorm/plugin/symfony#php-route-reference-contributor-routing-configurator)  

Indexes routes declared with Symfony's PHP `RoutingConfigurator` API and enables completion/navigation for route names, controller targets, methods, defaults, prefixes, and name prefixes.

Routes declared in `config/routes.php` are available to route completion, route inspections, controller related navigation, and Search Everywhere route lookup.

### Code Examples

```php
# PHP route configuration:
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;

return static function (RoutingConfigurator $routes): void {
    $routes->add('app_product_show', '/product/{id}')
        ->controller('App\Controller\ProductController::show')
        ->methods(['GET']);
};
```

---

## Navigation for typed and named default service bindings

**Feature ID:** `YamlDefaultServiceBindingNavigation`  
**Date:** 2026-05-28  
**Feature Page:** [Navigation for typed and named default service bindings](https://espend.de/phpstorm/plugin/symfony#yaml-default-service-binding-navigation)  

Navigates from YAML `_defaults.bind` entries to the matching PHP type, parameter, or class target.

This covers both typed bindings and named argument bindings, so default wiring rules remain traceable in larger service files.

### Code Examples

```yaml
# Typed and named bindings:
services:
  _defaults:
    bind:
      Psr\Log\LoggerInterface: '@monolog.logger'
      string $projectDir: '%kernel.project_dir%'
```

---

