/
EagerBeaver.php
77 lines (66 loc) · 1.86 KB
/
EagerBeaver.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
<?php
/**
* Eager Beaver plugin for Craft CMS 3.x
*
* Allows you to eager load elements from auto-injected Entry elements on
* demand from your templates.
*
* @link https://nystudio107.com
* @copyright Copyright (c) 2017 nystudio107
*/
namespace nystudio107\eagerbeaver;
use nystudio107\eagerbeaver\services\EagerBeaverService as EagerBeaverServiceService;
use nystudio107\eagerbeaver\variables\EagerBeaverVariable;
use nystudio107\eagerbeaver\twigextensions\EagerBeaverTwigExtension;
use Craft;
use craft\base\Plugin;
use craft\web\twig\variables\CraftVariable;
use yii\base\Event;
/**
* Eager Beaver plugin
*
* @author nystudio107
* @package EagerBeaver
* @since 1.0.0
*
* @property EagerBeaverServiceService $eagerBeaverService
*/
class EagerBeaver extends Plugin
{
// Static Properties
// =========================================================================
/**
* @var EagerBeaver
*/
public static $plugin;
// Public Methods
// =========================================================================
/**
* @inheritdoc
*/
public function init()
{
parent::init();
self::$plugin = $this;
// Add in our Twig extensions
Craft::$app->view->registerTwigExtension(new EagerBeaverTwigExtension());
// Register our variables
Event::on(
CraftVariable::class,
CraftVariable::EVENT_INIT,
function (Event $event) {
/** @var CraftVariable $variable */
$variable = $event->sender;
$variable->set('eagerBeaver', EagerBeaverVariable::class);
}
);
Craft::info(
Craft::t(
'eager-beaver',
'{name} plugin loaded',
['name' => $this->name]
),
__METHOD__
);
}
}