blob: 48ae7bdf87424ccff76585b4ea56639adf3840d8 (
plain)
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
|
<?php
/* Icinga Web 2 | (c) 2013 Icinga Development Team | GPLv2+ */
namespace Icinga\Web;
use Icinga\Exception\ProgrammingError;
use Icinga\Web\Widget\AbstractWidget;
/**
* Web widgets make things easier for you!
*
* This class provides nothing but a static factory method for widget creation.
* Usually it will not be used directly as there are widget()-helpers available
* in your action controllers and view scripts.
*
* Usage example:
* <code>
* $tabs = Widget::create('tabs');
* </code>
*
* @copyright Copyright (c) 2013 Icinga-Web Team <info@icinga.com>
* @author Icinga-Web Team <info@icinga.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
*/
class Widget
{
/**
* Create a new widget
*
* @param string $name Widget name
* @param array $options Widget constructor options
*
* @return AbstractWidget
*/
public static function create($name, $options = array(), $module_name = null)
{
$class = 'Icinga\\Web\\Widget\\' . ucfirst($name);
if (! class_exists($class)) {
throw new ProgrammingError(
'There is no such widget: %s',
$name
);
}
$widget = new $class($options, $module_name);
return $widget;
}
}
|