From c13c4d6eec6833ef5ae65a1cc16708033985eed7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Poirier=20Th=C3=A9or=C3=AAt?= <mpoiriert@gmail.com>
Date: Fri, 28 Jun 2024 15:16:00 -0400
Subject: [PATCH] [Application] base service feature class

---
 app/src/Feature/DemoFeature.php                    |  9 +++++++--
 .../Feature/SelfInitializeFeatureInterface.php     |  2 +-
 .../Feature/ServiceFeature.php                     | 14 --------------
 3 files changed, 8 insertions(+), 17 deletions(-)
 delete mode 100644 packages/framework-extra-bundle/Feature/ServiceFeature.php

diff --git a/app/src/Feature/DemoFeature.php b/app/src/Feature/DemoFeature.php
index 63cbffb4d..469f4bf43 100644
--- a/app/src/Feature/DemoFeature.php
+++ b/app/src/Feature/DemoFeature.php
@@ -2,17 +2,22 @@
 
 namespace App\Feature;
 
-use Draw\Bundle\FrameworkExtraBundle\Feature\ServiceFeature;
 use Draw\Component\Application\Feature\Attribute\Config;
+use Draw\Component\Application\Feature\FeatureInitializer;
 use Draw\Component\Application\Feature\SelfInitializeFeatureInterface;
 
-class DemoFeature extends ServiceFeature implements SelfInitializeFeatureInterface
+class DemoFeature implements SelfInitializeFeatureInterface
 {
     #[Config]
     private bool $enabled = true;
 
     private ?int $limit = null;
 
+    public function __construct(FeatureInitializer $featureInitializer)
+    {
+        $featureInitializer->initialize($this);
+    }
+
     public function getName(): string
     {
         return 'acme_demo';
diff --git a/packages/application/Feature/SelfInitializeFeatureInterface.php b/packages/application/Feature/SelfInitializeFeatureInterface.php
index d0c2d247d..e5cb86d24 100644
--- a/packages/application/Feature/SelfInitializeFeatureInterface.php
+++ b/packages/application/Feature/SelfInitializeFeatureInterface.php
@@ -2,7 +2,7 @@
 
 namespace Draw\Component\Application\Feature;
 
-interface SelfInitializeFeatureInterface
+interface SelfInitializeFeatureInterface extends FeatureInterface
 {
     public function initialize(array $configuration): void;
 }
diff --git a/packages/framework-extra-bundle/Feature/ServiceFeature.php b/packages/framework-extra-bundle/Feature/ServiceFeature.php
deleted file mode 100644
index bdee2b345..000000000
--- a/packages/framework-extra-bundle/Feature/ServiceFeature.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Draw\Bundle\FrameworkExtraBundle\Feature;
-
-use Draw\Component\Application\Feature\FeatureInitializer;
-use Draw\Component\Application\Feature\FeatureInterface;
-
-abstract class ServiceFeature implements FeatureInterface
-{
-    public function __construct(FeatureInitializer $featureInitializer)
-    {
-        $featureInitializer->initialize($this);
-    }
-}