interface FloodInterface

Same name in other branches
  1. 9 core/lib/Drupal/Core/Flood/FloodInterface.php \Drupal\Core\Flood\FloodInterface
  2. 8.9.x core/lib/Drupal/Core/Flood/FloodInterface.php \Drupal\Core\Flood\FloodInterface
  3. 11.x core/lib/Drupal/Core/Flood/FloodInterface.php \Drupal\Core\Flood\FloodInterface

Defines an interface for flood controllers.

Hierarchy

Expanded class hierarchy of FloodInterface

All classes that implement FloodInterface

6 files declare their use of FloodInterface
BasicAuth.php in core/modules/basic_auth/src/Authentication/Provider/BasicAuth.php
MessageForm.php in core/modules/contact/src/MessageForm.php
UserController.php in core/modules/user/src/Controller/UserController.php
UserFloodControl.php in core/modules/user/src/UserFloodControl.php
UserFloodControlInterface.php in core/modules/user/src/UserFloodControlInterface.php

... See full list

File

core/lib/Drupal/Core/Flood/FloodInterface.php, line 8

Namespace

Drupal\Core\Flood
View source
interface FloodInterface {
    
    /**
     * Registers an event for the current visitor to the flood control mechanism.
     *
     * @param string $name
     *   The name of an event. To prevent unintended name clashes, it is recommended
     *   to use the module name first in the event name, optionally followed by
     *   a dot and the actual event name (e.g. "my_module.my_event").
     * @param int $window
     *   (optional) Number of seconds before this event expires. Defaults to 3600
     *   (1 hour). Typically uses the same value as the isAllowed() $window
     *   parameter. Expired events are purged on cron run to prevent the flood
     *   table from growing indefinitely.
     * @param string $identifier
     *   (optional) Unique identifier of the current user. Defaults to the current
     *   user's IP address. The identifier can be given an additional prefix
     *   separated by "-". Flood backends may then optionally implement the
     *   PrefixFloodInterface which allows all flood events that share the same
     *   prefix to be cleared simultaneously.
     */
    public function register($name, $window = 3600, $identifier = NULL);
    
    /**
     * Makes the flood control mechanism forget an event for the current visitor.
     *
     * @param string $name
     *   The name of an event.
     * @param string $identifier
     *   (optional) Unique identifier of the current user. Defaults to the current
     *   user's IP address).
     */
    public function clear($name, $identifier = NULL);
    
    /**
     * Checks whether a user is allowed to proceed with the specified event.
     *
     * Events can have thresholds saying that each user can only do that event
     * a certain number of times in a time window. This function verifies that
     * the current user has not exceeded this threshold.
     *
     * @param string $name
     *   The name of an event.
     * @param int $threshold
     *   The maximum number of times each user can do this event per time window.
     * @param int $window
     *   (optional) Number of seconds in the time window for this event (default is 3600
     *   seconds, or 1 hour).
     * @param string $identifier
     *   (optional) Unique identifier of the current user. Defaults to the current
     *   user's IP address).
     *
     * @return bool
     *   TRUE if the user is allowed to proceed. FALSE if they have exceeded the
     *   threshold and should not be allowed to proceed.
     */
    public function isAllowed($name, $threshold, $window = 3600, $identifier = NULL);
    
    /**
     * Cleans up expired flood events.
     *
     * This method is called automatically on cron run.
     *
     * @see system_cron()
     */
    public function garbageCollection();

}

Members

Title Sort descending Modifiers Object type Summary
FloodInterface::clear public function Makes the flood control mechanism forget an event for the current visitor.
FloodInterface::garbageCollection public function Cleans up expired flood events.
FloodInterface::isAllowed public function Checks whether a user is allowed to proceed with the specified event.
FloodInterface::register public function Registers an event for the current visitor to the flood control mechanism.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.