如何使用事件触发库



试图了解如何使用此事件侦听器库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');
    }
}

相关内容

  • 没有找到相关文章

最新更新