---
title: "Feature: Automatic registration of AccessItemInterface"
manual: "DeepL Translate (CORE)"
version: "main"
permalink: "https://docs.typo3.org/permalink/web-vision/deepltranslate-core:feature-automatic-registration-of-accessiteminterface-1777020217@main"
source: "Changelog/6.0/Feature-AutomaticRegistrationOfAccessItemInterface.rst"
rendered: "2026-10-06T14:40:53+00:00"
---

# Feature: Automatic registration of `AccessItemInterface` {#feature-automatic-registration-of-accessiteminterface-1777020217}

## Description {#description}

`EXT:deepltranslate_core` provides the `\WebVision\Deepltranslate\Core\Access\AccessItemInterface`
to define access subtypes to [use as Custom Permission Options](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Backend/CustomPermissions.html#custom-permissions)
grouped as `deepltranslate`.

These items are now automatically registered through the Symfony Dependency
Injection container by simply providing autoconfigured classes implementing
`\WebVision\Deepltranslate\Core\Access\AccessItemInterface`.

No manual registration required anymore.

> [!NOTE]
> See also [deprecated AccessRegistry methods](https://docs.typo3.org/permalink/web-vision/deepltranslate-core:deprecation-accessregistry-methods-1777019642@main)
> to deal with deprecated methods and avoid deprecation log entries.

### Example {#example}

Implement custom access class:

**EXT:my_ext/Classes/Access/CustomAccess.php**

```php
<?php

namespace MyVendor\MyExt\Access;

use WebVision\Deepltranslate\Core\Access\AccessItemInterface;

final class CustomAccess implements AccessItemInterface
{
    public function getIdentifier(): string
    {
        return 'customAccess';
    }

    public function getTitle(): string
    {
        return sprintf(
            '%s:%s',
            'LLL:EXT:my_ext/Resources/Private/Language/locallang.xlf',
            'be_groups.deepltranslate_access.items.customAccess.title',
        );
    }

    public function getDescription(): string
    {
        return sprintf(
            '%s:%s',
            'LLL:EXT:my_ext/Resources/Private/Language/locallang.xlf',
            'be_groups.deepltranslate_access.items.customAccess.description',
        );
    }

    public function getIconIdentifier(): string
    {
        return 'custom-access-logo';
    }
}
```

## Impact {#impact}

Classes implementing `\WebVision\Deepltranslate\Core\Access\AccessItemInterface`
defined in extensions are now automatically registered and possible provide any
access items which have not been registered manually before.

This can be mitigated by using `#[Exclude]` attribute on the class or exclude
it from the autoconfigure load configuration in `Configuration/Services.yaml`.
