Вход Регистрация
Файл: gapps/vendor/cartalyst/support/src/Traits/EventTrait.php
Строк: 78
<?php

/**
 * Part of the Support package.
 *
 * NOTICE OF LICENSE
 *
 * Licensed under the 3-clause BSD License.
 *
 * This source file is subject to the 3-clause BSD License that is
 * bundled with this package in the LICENSE file.
 *
 * @package    Support
 * @version    2.0.1
 * @author     Cartalyst LLC
 * @license    BSD License (3-clause)
 * @copyright  (c) 2011-2017, Cartalyst LLC
 * @link       http://cartalyst.com
 */

namespace CartalystSupportTraits;

use 
IlluminateContractsEventsDispatcher;

trait 
EventTrait
{
    
/**
     * The event dispatcher instance.
     *
     * @var IlluminateContractsEventsDispatcher
     */
    
protected $dispatcher;

    
/**
     * The event dispatcher status.
     *
     * @var bool
     */
    
protected $dispatcherStatus true;

    
/**
     * Returns the event dispatcher.
     *
     * @return IlluminateContractsEventsDispatcher
     */
    
public function getDispatcher()
    {
        return 
$this->dispatcher;
    }

    
/**
     * Sets the event dispatcher instance.
     *
     * @param  IlluminateContractsEventsDispatcher  $dispatcher
     * @return $this
     */
    
public function setDispatcher(Dispatcher $dispatcher)
    {
        
$this->dispatcher $dispatcher;

        return 
$this;
    }

    
/**
     * Returns the event dispatcher status.
     *
     * @return bool
     */
    
public function getDispatcherStatus()
    {
        return 
$this->dispatcherStatus;
    }

    
/**
     * Sets the event dispatcher status.
     *
     * @param  bool  $status
     * @return $this
     */
    
public function setDispatcherStatus($status)
    {
        
$this->dispatcherStatus = (bool) $status;

        return 
$this;
    }

    
/**
     * Enables the event dispatcher.
     *
     * @return $this
     */
    
public function enableDispatcher()
    {
        return 
$this->setDispatcherStatus(true);
    }

    
/**
     * Disables the event dispatcher.
     *
     * @return $this
     */
    
public function disableDispatcher()
    {
        return 
$this->setDispatcherStatus(false);
    }

    
/**
     * Fires an event.
     *
     * @param  string  $event
     * @param  mixed  $payload
     * @param  bool  $halt
     * @return mixed
     */
    
protected function fireEvent($event$payload = [], $halt false)
    {
        
$dispatcher $this->dispatcher;

        
$status $this->dispatcherStatus;

        if ( ! 
$dispatcher || $status === false) {
            return;
        }

        
$method $halt 'until' 'fire';

        return 
$dispatcher->{$method}($event$payload);
    }
}
Онлайн: 1
Реклама