nineinchnick\nfy\components\DbQueue::subscribe PHP Метод

subscribe() публичный Метод

public subscribe ( $subscriber_id, $label = null, $categories = null, $exceptions = null )
    public function subscribe($subscriber_id, $label = null, $categories = null, $exceptions = null)
    {
        $trx = models\DbSubscription::getDb()->transaction !== null ? null : models\DbSubscription::getDb()->beginTransaction();
        $subscription = models\DbSubscription::find()->withQueue($this->id)->withSubscriber($subscriber_id)->one();
        if ($subscription === null) {
            $subscription = new models\DbSubscription();
            $subscription->setAttributes(['queue_id' => $this->id, 'subscriber_id' => $subscriber_id, 'label' => $label]);
        } else {
            $subscription->is_deleted = 0;
        }
        if (!$subscription->save()) {
            throw new Exception(Yii::t('app', 'Failed to subscribe {subscriber_id} to {queue_label}', ['subscriber_id' => $subscriber_id, 'queue_label' => $this->label]));
        }
        $this->saveSubscriptionCategories($categories, $subscription->primaryKey, false);
        $this->saveSubscriptionCategories($exceptions, $subscription->primaryKey, true);
        if ($trx !== null) {
            $trx->commit();
        }
        return true;
    }