diff --git a/CHANGELOG.md b/CHANGELOG.md index a88e819..4530610 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Latest ------ ## Changes +* [#180](https://github.com/cleverage/ui-process-bundle/issues/180) Define the public API (Symfony BC promise, as [cleverage/process-bundle#279](https://github.com/cleverage/process-bundle/issues/279)): `ProcessExecutionManager`, `ProcessExecutionRepository`, `ProcessScheduleRepository`, `ProcessExecuteMessage`, `ProcessExecutionNotification` and `CleverAgeUiProcessBundle` are marked `@final since 3.3`, they will be `final` in 4.0: extending them triggers a deprecation with the Symfony `DebugClassLoader`. The entities stay open (overriding them: [#37](https://github.com/cleverage/ui-process-bundle/issues/37)). The infrastructure classes are marked `@internal`: the extension, `Configuration`, the commands, the controllers, the EasyAdmin fields and filters, the form types, the Messenger handlers, the Monolog handlers, `HttpProcessExecuteValueResolver`, `HttpProcessExecutionAuthenticator`, `ProcessExecutionStopChecker`, `CronScheduler`, `ProcessEventSubscriber` and the Twig extensions, runtimes and components. * [#179](https://github.com/cleverage/ui-process-bundle/issues/179) `CleverAgeUiProcessExtension::findServices()` loads the service definition files with a glob pattern instead of a `Finder` (same files, as [cleverage/process-bundle#271](https://github.com/cleverage/process-bundle/issues/271)). Add tests. * [#172](https://github.com/cleverage/ui-process-bundle/issues/172) Prefix the route names of the bundle with `cleverage_ui_process_`, as required by the Symfony best practices for bundles: `cleverage_ui_process_login`, `cleverage_ui_process_logout`, `cleverage_ui_process_list`, `cleverage_ui_process_launch`, `cleverage_ui_process_http_execute`, and the dashboard `cleverage_ui_process`, so that the routes generated by EasyAdmin for the CRUD pages are `cleverage_ui_process__`. The former names (`process`, `process__`, `process_login`, `process_logout`, `process_list`, `process_launch`, `http_process_execute`) are deprecated route aliases (new `config/routes/deprecated_aliases.yaml`, loaded by the documented import, and internal `DeprecatedEasyAdminRouteAliasLoader` for the routes generated by EasyAdmin), removed in 4.0; `?routeName=` URLs keep working. Document that `easyadmin.routes` generates the routes of every dashboard. Update documentation and UPGRADE.md, add tests. * [#166](https://github.com/cleverage/ui-process-bundle/issues/166) Doctrine ORM 2: the entities have readonly properties (since v3.2), which the legacy proxies of ORM 2 cannot handle (`Cannot unset readonly property ... from scope Proxies\__CG__\...` when an entity proxy is loaded). The container compilation now fails with an explicit message when ORM 2 is used without `doctrine.orm.enable_lazy_ghost_objects: true` (new internal `CheckDoctrineLazyGhostObjectsPass`); nothing changes with ORM 3. Update documentation, add tests. diff --git a/src/Admin/Field/ContextField.php b/src/Admin/Field/ContextField.php index 497aa35..3243b86 100644 --- a/src/Admin/Field/ContextField.php +++ b/src/Admin/Field/ContextField.php @@ -17,6 +17,9 @@ use EasyCorp\Bundle\EasyAdminBundle\Field\FieldTrait; use Symfony\Contracts\Translation\TranslatableInterface; +/** + * @internal + */ class ContextField implements FieldInterface { use FieldTrait; diff --git a/src/Admin/Field/EnumField.php b/src/Admin/Field/EnumField.php index 110e9db..82c8755 100644 --- a/src/Admin/Field/EnumField.php +++ b/src/Admin/Field/EnumField.php @@ -17,6 +17,9 @@ use EasyCorp\Bundle\EasyAdminBundle\Field\FieldTrait; use Symfony\Contracts\Translation\TranslatableInterface; +/** + * @internal + */ class EnumField implements FieldInterface { use FieldTrait; diff --git a/src/Admin/Field/LogLevelField.php b/src/Admin/Field/LogLevelField.php index 6c6f8ce..a38e3be 100644 --- a/src/Admin/Field/LogLevelField.php +++ b/src/Admin/Field/LogLevelField.php @@ -17,6 +17,9 @@ use EasyCorp\Bundle\EasyAdminBundle\Field\FieldTrait; use Symfony\Contracts\Translation\TranslatableInterface; +/** + * @internal + */ class LogLevelField implements FieldInterface { use FieldTrait; diff --git a/src/Admin/Filter/LogProcessFilter.php b/src/Admin/Filter/LogProcessFilter.php index 1a78932..07d870d 100644 --- a/src/Admin/Filter/LogProcessFilter.php +++ b/src/Admin/Filter/LogProcessFilter.php @@ -23,6 +23,9 @@ use EasyCorp\Bundle\EasyAdminBundle\Form\Type\ComparisonType; use Symfony\Contracts\Translation\TranslatableInterface; +/** + * @internal + */ class LogProcessFilter implements FilterInterface { use FilterTrait; diff --git a/src/Admin/Filter/ProcessExecutionDurationFilter.php b/src/Admin/Filter/ProcessExecutionDurationFilter.php index e562947..7a35ac6 100644 --- a/src/Admin/Filter/ProcessExecutionDurationFilter.php +++ b/src/Admin/Filter/ProcessExecutionDurationFilter.php @@ -21,6 +21,9 @@ use EasyCorp\Bundle\EasyAdminBundle\Filter\FilterTrait; use EasyCorp\Bundle\EasyAdminBundle\Form\Filter\Type\NumericFilterType; +/** + * @internal + */ class ProcessExecutionDurationFilter implements FilterInterface { use FilterTrait; diff --git a/src/CleverAgeUiProcessBundle.php b/src/CleverAgeUiProcessBundle.php index ebe3bd1..cbbc72d 100644 --- a/src/CleverAgeUiProcessBundle.php +++ b/src/CleverAgeUiProcessBundle.php @@ -17,6 +17,9 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\HttpKernel\Bundle\Bundle; +/** + * @final since 3.3 + */ class CleverAgeUiProcessBundle extends Bundle { #[\Override] diff --git a/src/Command/PurgeLogsCommand.php b/src/Command/PurgeLogsCommand.php index 9a4b780..17045ea 100644 --- a/src/Command/PurgeLogsCommand.php +++ b/src/Command/PurgeLogsCommand.php @@ -33,6 +33,8 @@ * "logs.file_max_days" days, both overridable by the "logs" option of each process. The process executions are kept. * * DBAL queries are used: the log records are deleted by batches, without loading them. + * + * @internal */ #[AsCommand( name: 'cleverage:ui-process:purge-logs', diff --git a/src/Command/UserCreateCommand.php b/src/Command/UserCreateCommand.php index b75ea90..eafab73 100644 --- a/src/Command/UserCreateCommand.php +++ b/src/Command/UserCreateCommand.php @@ -30,6 +30,9 @@ use Symfony\Component\Validator\Constraints\NotBlank; use Symfony\Component\Validator\Validator\ValidatorInterface; +/** + * @internal + */ #[AsCommand( name: 'cleverage:ui-process:user-create', description: 'Command to create a new admin into database for ui process.' diff --git a/src/Controller/Admin/LogRecordCrudController.php b/src/Controller/Admin/LogRecordCrudController.php index a2efbfd..c37352f 100644 --- a/src/Controller/Admin/LogRecordCrudController.php +++ b/src/Controller/Admin/LogRecordCrudController.php @@ -34,6 +34,8 @@ /** * @extends AbstractCrudController + * + * @internal */ #[IsGranted('ROLE_USER')] class LogRecordCrudController extends AbstractCrudController diff --git a/src/Controller/Admin/Process/LaunchAction.php b/src/Controller/Admin/Process/LaunchAction.php index e4a5f39..fc573ab 100644 --- a/src/Controller/Admin/Process/LaunchAction.php +++ b/src/Controller/Admin/Process/LaunchAction.php @@ -32,6 +32,9 @@ use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\Uid\Uuid; +/** + * @internal + */ #[Route( '/process/launch', name: 'cleverage_ui_process_launch', diff --git a/src/Controller/Admin/Process/ListAction.php b/src/Controller/Admin/Process/ListAction.php index f44ad32..9f24a8a 100644 --- a/src/Controller/Admin/Process/ListAction.php +++ b/src/Controller/Admin/Process/ListAction.php @@ -22,6 +22,9 @@ use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Http\Attribute\IsGranted; +/** + * @internal + */ #[Route('/process/list', name: 'cleverage_ui_process_list')] #[IsGranted('ROLE_USER')] class ListAction extends AbstractController diff --git a/src/Controller/Admin/ProcessDashboardController.php b/src/Controller/Admin/ProcessDashboardController.php index 30665af..e21fe2f 100644 --- a/src/Controller/Admin/ProcessDashboardController.php +++ b/src/Controller/Admin/ProcessDashboardController.php @@ -25,6 +25,9 @@ use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\Translation\LocaleSwitcher; +/** + * @internal + */ #[IsGranted('ROLE_USER')] #[AdminDashboard(routePath: '/process', routeName: 'cleverage_ui_process')] class ProcessDashboardController extends AbstractDashboardController diff --git a/src/Controller/Admin/ProcessExecutionCrudController.php b/src/Controller/Admin/ProcessExecutionCrudController.php index e8389b1..5e8cf6f 100644 --- a/src/Controller/Admin/ProcessExecutionCrudController.php +++ b/src/Controller/Admin/ProcessExecutionCrudController.php @@ -38,6 +38,8 @@ /** * @extends AbstractCrudController + * + * @internal */ #[IsGranted('ROLE_USER')] class ProcessExecutionCrudController extends AbstractCrudController diff --git a/src/Controller/Admin/ProcessScheduleCrudController.php b/src/Controller/Admin/ProcessScheduleCrudController.php index 46212de..bbd8e04 100644 --- a/src/Controller/Admin/ProcessScheduleCrudController.php +++ b/src/Controller/Admin/ProcessScheduleCrudController.php @@ -40,6 +40,8 @@ /** * @extends AbstractCrudController + * + * @internal */ #[IsGranted('ROLE_USER')] class ProcessScheduleCrudController extends AbstractCrudController diff --git a/src/Controller/Admin/Security/LoginController.php b/src/Controller/Admin/Security/LoginController.php index 6108d8c..4346e4c 100644 --- a/src/Controller/Admin/Security/LoginController.php +++ b/src/Controller/Admin/Security/LoginController.php @@ -18,6 +18,9 @@ use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Http\Authentication\AuthenticationUtils; +/** + * @internal + */ class LoginController extends AbstractController { #[Route('/process/login', name: 'cleverage_ui_process_login')] diff --git a/src/Controller/Admin/Security/LogoutController.php b/src/Controller/Admin/Security/LogoutController.php index f032936..4c26183 100644 --- a/src/Controller/Admin/Security/LogoutController.php +++ b/src/Controller/Admin/Security/LogoutController.php @@ -18,6 +18,9 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; +/** + * @internal + */ class LogoutController extends AbstractController { public function __construct(private readonly Security $security) diff --git a/src/Controller/Admin/UserCrudController.php b/src/Controller/Admin/UserCrudController.php index 86e2daa..d2d8c12 100644 --- a/src/Controller/Admin/UserCrudController.php +++ b/src/Controller/Admin/UserCrudController.php @@ -36,6 +36,8 @@ /** * @extends AbstractCrudController + * + * @internal */ #[IsGranted('ROLE_USER')] class UserCrudController extends AbstractCrudController diff --git a/src/Controller/ProcessExecuteController.php b/src/Controller/ProcessExecuteController.php index ab4d17c..a1714b9 100644 --- a/src/Controller/ProcessExecuteController.php +++ b/src/Controller/ProcessExecuteController.php @@ -28,6 +28,9 @@ use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\Validator\Validator\ValidatorInterface; +/** + * @internal + */ #[IsGranted('ROLE_USER')] #[Route(path: '/http/process/execute', name: 'cleverage_ui_process_http_execute', methods: ['POST'])] class ProcessExecuteController extends AbstractController diff --git a/src/DependencyInjection/CleverAgeUiProcessExtension.php b/src/DependencyInjection/CleverAgeUiProcessExtension.php index ee7a738..bdaa49e 100644 --- a/src/DependencyInjection/CleverAgeUiProcessExtension.php +++ b/src/DependencyInjection/CleverAgeUiProcessExtension.php @@ -28,6 +28,9 @@ use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; use Symfony\Component\Notifier\NotifierInterface; +/** + * @internal + */ final class CleverAgeUiProcessExtension extends Extension implements PrependExtensionInterface { public function load(array $configs, ContainerBuilder $container): void diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index cdc97eb..2a6f8ec 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -19,6 +19,9 @@ use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\ConfigurationInterface; +/** + * @internal + */ class Configuration implements ConfigurationInterface { public function __construct(private readonly string $env) diff --git a/src/EventSubscriber/ProcessEventSubscriber.php b/src/EventSubscriber/ProcessEventSubscriber.php index 42a589c..7133ce5 100644 --- a/src/EventSubscriber/ProcessEventSubscriber.php +++ b/src/EventSubscriber/ProcessEventSubscriber.php @@ -25,6 +25,9 @@ use Symfony\Component\Uid\Uuid; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; +/** + * @internal + */ final readonly class ProcessEventSubscriber implements EventSubscriberInterface { public function __construct( diff --git a/src/Form/Type/LaunchType.php b/src/Form/Type/LaunchType.php index 35551e1..881a277 100644 --- a/src/Form/Type/LaunchType.php +++ b/src/Form/Type/LaunchType.php @@ -25,6 +25,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @internal + */ /** @template-extends AbstractType> */ class LaunchType extends AbstractType { diff --git a/src/Form/Type/ProcessContextType.php b/src/Form/Type/ProcessContextType.php index d95fd19..1d367db 100644 --- a/src/Form/Type/ProcessContextType.php +++ b/src/Form/Type/ProcessContextType.php @@ -18,6 +18,9 @@ use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints\NotBlank; +/** + * @internal + */ /** @template-extends AbstractType */ class ProcessContextType extends AbstractType { diff --git a/src/Http/ValueResolver/HttpProcessExecuteValueResolver.php b/src/Http/ValueResolver/HttpProcessExecuteValueResolver.php index ec05a78..fa2a4ea 100644 --- a/src/Http/ValueResolver/HttpProcessExecuteValueResolver.php +++ b/src/Http/ValueResolver/HttpProcessExecuteValueResolver.php @@ -22,6 +22,9 @@ use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; use Symfony\Component\Serializer\SerializerInterface; +/** + * @internal + */ #[AsTargetedValueResolver('http_process_execution')] readonly class HttpProcessExecuteValueResolver implements ValueResolverInterface { diff --git a/src/Manager/ProcessExecutionManager.php b/src/Manager/ProcessExecutionManager.php index a444ddb..36cc112 100644 --- a/src/Manager/ProcessExecutionManager.php +++ b/src/Manager/ProcessExecutionManager.php @@ -17,6 +17,9 @@ use CleverAge\UiProcessBundle\Repository\ProcessExecutionRepository; use Symfony\Contracts\Service\ResetInterface; +/** + * @final since 3.3 + */ class ProcessExecutionManager implements ResetInterface { private ?ProcessExecution $currentProcessExecution = null; diff --git a/src/Message/CronProcessMessageHandler.php b/src/Message/CronProcessMessageHandler.php index d599bca..d90edd8 100644 --- a/src/Message/CronProcessMessageHandler.php +++ b/src/Message/CronProcessMessageHandler.php @@ -19,6 +19,9 @@ use Symfony\Component\Messenger\Attribute\AsMessageHandler; use Symfony\Component\Messenger\MessageBusInterface; +/** + * @internal + */ #[AsMessageHandler] final readonly class CronProcessMessageHandler { diff --git a/src/Message/ProcessExecuteHandler.php b/src/Message/ProcessExecuteHandler.php index a76c0e1..a1521f9 100644 --- a/src/Message/ProcessExecuteHandler.php +++ b/src/Message/ProcessExecuteHandler.php @@ -17,6 +17,9 @@ use CleverAge\UiProcessBundle\Monolog\Handler\ProcessHandler; use Symfony\Component\Messenger\Attribute\AsMessageHandler; +/** + * @internal + */ #[AsMessageHandler] readonly class ProcessExecuteHandler { diff --git a/src/Message/ProcessExecuteMessage.php b/src/Message/ProcessExecuteMessage.php index 2c69dbe..fd4c891 100644 --- a/src/Message/ProcessExecuteMessage.php +++ b/src/Message/ProcessExecuteMessage.php @@ -13,6 +13,9 @@ namespace CleverAge\UiProcessBundle\Message; +/** + * @final since 3.3 + */ readonly class ProcessExecuteMessage { /** diff --git a/src/Monolog/Handler/DoctrineProcessHandler.php b/src/Monolog/Handler/DoctrineProcessHandler.php index 1b4ee59..2a14f40 100644 --- a/src/Monolog/Handler/DoctrineProcessHandler.php +++ b/src/Monolog/Handler/DoctrineProcessHandler.php @@ -21,6 +21,9 @@ use Monolog\Level; use Monolog\LogRecord; +/** + * @internal + */ class DoctrineProcessHandler extends AbstractProcessingHandler { /** @var ArrayCollection */ diff --git a/src/Monolog/Handler/ProcessHandler.php b/src/Monolog/Handler/ProcessHandler.php index b1f2d39..6cb46e6 100644 --- a/src/Monolog/Handler/ProcessHandler.php +++ b/src/Monolog/Handler/ProcessHandler.php @@ -18,6 +18,9 @@ use Monolog\Level; use Monolog\LogRecord; +/** + * @internal + */ class ProcessHandler extends StreamHandler { private Level $reportIncrementLevel = Level::Warning; diff --git a/src/Notifier/ProcessExecutionNotification.php b/src/Notifier/ProcessExecutionNotification.php index d7c7459..50ff873 100644 --- a/src/Notifier/ProcessExecutionNotification.php +++ b/src/Notifier/ProcessExecutionNotification.php @@ -18,6 +18,8 @@ /** * Notification sent at the end of a process execution. + * + * @final since 3.3 */ class ProcessExecutionNotification extends Notification { diff --git a/src/Repository/ProcessExecutionRepository.php b/src/Repository/ProcessExecutionRepository.php index a29c45c..18a1e17 100644 --- a/src/Repository/ProcessExecutionRepository.php +++ b/src/Repository/ProcessExecutionRepository.php @@ -26,6 +26,8 @@ * @method ProcessExecution|null findOneBy(mixed[] $criteria, string[] $orderBy = null) * @method ProcessExecution[] findAll() * @method ProcessExecution[] findBy(mixed[] $criteria, string[] $orderBy = null, $limit = null, $offset = null) + * + * @final since 3.3 */ class ProcessExecutionRepository extends EntityRepository { diff --git a/src/Repository/ProcessScheduleRepository.php b/src/Repository/ProcessScheduleRepository.php index 27736a8..7c153eb 100644 --- a/src/Repository/ProcessScheduleRepository.php +++ b/src/Repository/ProcessScheduleRepository.php @@ -25,6 +25,8 @@ * @method ProcessSchedule|null findOneBy(mixed[] $criteria, string[] $orderBy = null) * @method ProcessSchedule[] findAll() * @method ProcessSchedule[] findBy(mixed[] $criteria, string[] $orderBy = null, $limit = null, $offset = null) + * + * @final since 3.3 */ class ProcessScheduleRepository extends EntityRepository { diff --git a/src/Scheduler/CronScheduler.php b/src/Scheduler/CronScheduler.php index 27dfccd..018456b 100644 --- a/src/Scheduler/CronScheduler.php +++ b/src/Scheduler/CronScheduler.php @@ -23,6 +23,9 @@ use Symfony\Component\Scheduler\ScheduleProviderInterface; use Symfony\Component\Validator\Validator\ValidatorInterface; +/** + * @internal + */ readonly class CronScheduler implements ScheduleProviderInterface { public function __construct( diff --git a/src/Security/HttpProcessExecutionAuthenticator.php b/src/Security/HttpProcessExecutionAuthenticator.php index 9ee0b09..b5a368a 100644 --- a/src/Security/HttpProcessExecutionAuthenticator.php +++ b/src/Security/HttpProcessExecutionAuthenticator.php @@ -26,6 +26,9 @@ use Symfony\Component\Security\Http\Authenticator\Passport\Passport; use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport; +/** + * @internal + */ class HttpProcessExecutionAuthenticator extends AbstractAuthenticator { public function __construct(private readonly EntityManagerInterface $entityManager) diff --git a/src/StopChecker/ProcessExecutionStopChecker.php b/src/StopChecker/ProcessExecutionStopChecker.php index cc470ab..f82f4c2 100644 --- a/src/StopChecker/ProcessExecutionStopChecker.php +++ b/src/StopChecker/ProcessExecutionStopChecker.php @@ -26,6 +26,8 @@ * * DBAL queries are used: no ORM query per item, and the entity manager may have been cleared or closed by the process * tasks. + * + * @internal */ class ProcessExecutionStopChecker implements ProcessStopCheckerInterface { diff --git a/src/Twig/Components/BootstrapModal.php b/src/Twig/Components/BootstrapModal.php index 1149b7c..4d724c6 100644 --- a/src/Twig/Components/BootstrapModal.php +++ b/src/Twig/Components/BootstrapModal.php @@ -13,6 +13,9 @@ namespace CleverAge\UiProcessBundle\Twig\Components; +/** + * @internal + */ class BootstrapModal { public ?string $id = null; diff --git a/src/Twig/Extension/LogLevelExtension.php b/src/Twig/Extension/LogLevelExtension.php index 6446c2f..df6a250 100644 --- a/src/Twig/Extension/LogLevelExtension.php +++ b/src/Twig/Extension/LogLevelExtension.php @@ -17,6 +17,9 @@ use Twig\Extension\AbstractExtension; use Twig\TwigFunction; +/** + * @internal + */ class LogLevelExtension extends AbstractExtension { #[\Override] diff --git a/src/Twig/Extension/MD5Extension.php b/src/Twig/Extension/MD5Extension.php index 6e109b7..311b728 100644 --- a/src/Twig/Extension/MD5Extension.php +++ b/src/Twig/Extension/MD5Extension.php @@ -17,6 +17,9 @@ use Twig\Extension\AbstractExtension; use Twig\TwigFilter; +/** + * @internal + */ class MD5Extension extends AbstractExtension { #[\Override] diff --git a/src/Twig/Extension/ProcessExecutionExtension.php b/src/Twig/Extension/ProcessExecutionExtension.php index c8026cd..fed4289 100644 --- a/src/Twig/Extension/ProcessExecutionExtension.php +++ b/src/Twig/Extension/ProcessExecutionExtension.php @@ -17,6 +17,9 @@ use Twig\Extension\AbstractExtension; use Twig\TwigFunction; +/** + * @internal + */ class ProcessExecutionExtension extends AbstractExtension { #[\Override] diff --git a/src/Twig/Extension/ProcessExtension.php b/src/Twig/Extension/ProcessExtension.php index 13eca03..93db48b 100644 --- a/src/Twig/Extension/ProcessExtension.php +++ b/src/Twig/Extension/ProcessExtension.php @@ -17,6 +17,9 @@ use Twig\Extension\AbstractExtension; use Twig\TwigFunction; +/** + * @internal + */ class ProcessExtension extends AbstractExtension { #[\Override] diff --git a/src/Twig/Runtime/LogLevelExtensionRuntime.php b/src/Twig/Runtime/LogLevelExtensionRuntime.php index ca88d27..357b6a4 100644 --- a/src/Twig/Runtime/LogLevelExtensionRuntime.php +++ b/src/Twig/Runtime/LogLevelExtensionRuntime.php @@ -17,6 +17,9 @@ use Symfony\Contracts\Translation\TranslatorInterface; use Twig\Extension\RuntimeExtensionInterface; +/** + * @internal + */ class LogLevelExtensionRuntime implements RuntimeExtensionInterface { private TranslatorInterface $translator; diff --git a/src/Twig/Runtime/MD5ExtensionRuntime.php b/src/Twig/Runtime/MD5ExtensionRuntime.php index 8ec0da9..3cd6b6b 100644 --- a/src/Twig/Runtime/MD5ExtensionRuntime.php +++ b/src/Twig/Runtime/MD5ExtensionRuntime.php @@ -15,6 +15,9 @@ use Twig\Extension\RuntimeExtensionInterface; +/** + * @internal + */ class MD5ExtensionRuntime implements RuntimeExtensionInterface { public function md5(string $value): string diff --git a/src/Twig/Runtime/ProcessExecutionExtensionRuntime.php b/src/Twig/Runtime/ProcessExecutionExtensionRuntime.php index 592f1e4..db337a9 100644 --- a/src/Twig/Runtime/ProcessExecutionExtensionRuntime.php +++ b/src/Twig/Runtime/ProcessExecutionExtensionRuntime.php @@ -18,6 +18,9 @@ use CleverAge\UiProcessBundle\Repository\ProcessExecutionRepository; use Twig\Extension\RuntimeExtensionInterface; +/** + * @internal + */ readonly class ProcessExecutionExtensionRuntime implements RuntimeExtensionInterface { public function __construct( diff --git a/src/Twig/Runtime/ProcessExtensionRuntime.php b/src/Twig/Runtime/ProcessExtensionRuntime.php index d0aa73f..d942efd 100644 --- a/src/Twig/Runtime/ProcessExtensionRuntime.php +++ b/src/Twig/Runtime/ProcessExtensionRuntime.php @@ -18,6 +18,8 @@ /** * @phpstan-import-type UiOptions from ProcessConfigurationsManager + * + * @internal */ class ProcessExtensionRuntime implements RuntimeExtensionInterface {