尝试了解如何在codeigniter https://github.com/ericbarnes/CodeIgniter-Events
中使用此事件侦听器库我正在尝试发送邮件提交的电子邮件。我的帖子控制器如下
/**
* Posts
*/
class Posts extends MX_Controller
{
function __construct(argument)
{
# code...
}
function post_new()
{
// all form validation and submission code
Events::trigger('add_post', 'system_events', 'string');
}
}
我创建了一个控制器,我将注册所有系统事件
/**
* System Events
*/
class System_Events extends MX_Controller
{
function __construct(argument)
{
Events::register('add_post', array($this, 'shoot_email'));
}
function shoot_email()
{
// all email code here
}
}
但是这不是在提交帖子时发送任何电子邮件。我实际上并不了解如何使用此事件库。
如果有任何其他方式来注册和触发事件,我也很好。但是没有硬编码到系统中,而是一种API。
答案 0 :(得分:0)
永远不会从你的帖子控制器调用System_Events,试试这个
class System_Events extends MX_Controller{
function __construct($eventName,$methodName){
$this->load->library('events');
Events::register($eventName, array($this, $methodName));
}
function shoot_email(){
// all email code here
return 'Mail Send';
}
}
现在从system_events扩展posts控制器
class Posts extends System_Events{
function __construct(argument){
parent::__construct('add_post','shoot_email');//call the parent class constructor
}
function post_new()
{
// all form validation and submission code
Events::trigger('add_post', 'system_events', 'string');
}
}