试图了解如何使用此事件侦听器库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。
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
扩展帖子控制器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');
}
}