-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathNotyPlugin.php
82 lines (74 loc) · 1.91 KB
/
NotyPlugin.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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
declare(strict_types=1);
namespace Flasher\Noty\Prime;
use Flasher\Prime\Plugin\Plugin;
/**
* NotyPlugin - Plugin definition for Noty.js integration with PHPFlasher.
*
* This class defines the core plugin configuration for the Noty.js notification
* library integration. It specifies the required JavaScript and CSS assets,
* factory class, and service identifiers for dependency injection containers.
*
* Design patterns:
* - Plugin: Implements the plugin pattern for extending core functionality
* - Registry: Registers the plugin's assets and identifiers with the core system
* - Metadata: Provides metadata about the plugin's requirements
*/
final class NotyPlugin extends Plugin
{
/**
* {@inheritdoc}
*
* Returns the plugin's unique identifier.
*/
public function getAlias(): string
{
return 'noty';
}
/**
* {@inheritdoc}
*
* Returns the factory class responsible for creating Noty notifications.
*/
public function getFactory(): string
{
return Noty::class;
}
/**
* {@inheritdoc}
*
* Returns the service alias for dependency injection containers.
*/
public function getServiceAliases(): string
{
return NotyInterface::class;
}
/**
* {@inheritdoc}
*
* Returns the required JavaScript files for Noty.js integration.
*
* @return string[] Array of script paths
*/
public function getScripts(): array
{
return [
'/vendor/flasher/noty.min.js',
'/vendor/flasher/flasher-noty.min.js',
];
}
/**
* {@inheritdoc}
*
* Returns the required CSS files for Noty.js styling.
*
* @return string[] Array of stylesheet paths
*/
public function getStyles(): array
{
return [
'/vendor/flasher/noty.css',
'/vendor/flasher/mint.css',
];
}
}