Skip to content

Commit 9dbe71d

Browse files
committed
添加事件管理在 Controller 中的使用
1 parent f86234b commit 9dbe71d

2 files changed

Lines changed: 35 additions & 0 deletions

File tree

app/Controllers/IndexController.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,24 @@
22

33
namespace App\Controllers;
44

5+
use Soli\Events\EventManager;
6+
use App\Events\Index as IndexEvents;
7+
58
class IndexController extends Controller
69
{
10+
public function __construct()
11+
{
12+
$eventManager = new EventManager();
13+
// 添加 index 事件空间,监听 index.* 的事件
14+
$eventManager->attach('index', new IndexEvents());
15+
16+
$this->setEventManager($eventManager);
17+
}
18+
719
public function index()
820
{
21+
$this->trigger('index.prepare', 'some data from index');
22+
923
$this->view->setVar('name', 'Soli');
1024
}
1125
}

app/Events/Index.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
/**
3+
* @author ueaner <ueaner@gmail.com>
4+
*/
5+
namespace App\Events;
6+
7+
use Soli\Component;
8+
use Soli\Events\Event;
9+
use App\Controllers\IndexController;
10+
11+
/**
12+
* IndexController 事件列表
13+
*/
14+
class Index extends Component
15+
{
16+
public function prepare(Event $event, IndexController $controller)
17+
{
18+
var_dump($event->getData());
19+
echo "trigger on index.prepare\n";
20+
}
21+
}

0 commit comments

Comments
 (0)