PHP工厂在验证后返回条件对象?

时间:2013-07-23 14:03:33

标签: php class factory

我基本上需要从我的PHP类中调用两个构造函数中的一个,这取决于是否需要验证。

我目前的代码如下:

class Event extends Generic {

    private $user_id;

    function __construct($user_id=null) {
        $this->user_id = $user_id;
    }

    public function verify($user_id=null, $identifier=null) {

        if (parent::verifyUser($user_id, $identifier)) {
            return new Event($user_id);
        }
        else {
            // what gets retruend here in the event of a failure???
        }
    }

    public function noverify($user_id=null) {
        return new Event(user_id);
    }
}

像这样调用代码:

$event = new Event();
$obj1 = $event->noverify(5);
$obj2 = $event->verify(5, 100);

如果内部条件失败,我真的不清楚如何处理构造函数失败的事件。我在这里走错了路吗?

1 个答案:

答案 0 :(得分:1)

我会抛出异常或返回FALSE

else {
    throw new Exception('verification failed');
}

else {
    return FALSE;
}