-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathPluginBundleInterface.php
38 lines (33 loc) · 1.08 KB
/
PluginBundleInterface.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
declare(strict_types=1);
namespace Flasher\Symfony\Support;
use Flasher\Prime\Plugin\PluginInterface;
/**
* PluginBundleInterface - Contract for PHPFlasher plugin bundles.
*
* This interface defines the basic requirements for a Symfony bundle that
* integrates a PHPFlasher plugin. It focuses on plugin creation and configuration.
*
* Design patterns:
* - Factory Method: Defines interface for creating plugin instances
* - Plugin Architecture: Supports extensible plugin system
* - Bridge: Connects Symfony bundle system with PHPFlasher plugin system
*/
interface PluginBundleInterface
{
/**
* Creates an instance of the plugin.
*
* This factory method is responsible for instantiating the plugin that
* this bundle integrates with Symfony.
*
* @return PluginInterface The plugin instance
*/
public function createPlugin(): PluginInterface;
/**
* Gets the path to the plugin's configuration file.
*
* @return string Absolute path to the configuration file
*/
public function getConfigurationFile(): string;
}