vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php line 21

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Monolog package.
  4.  *
  5.  * (c) Jordi Boggiano <j.boggiano@seld.be>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Monolog\Processor;
  11. use Monolog\ResettableInterface;
  12. /**
  13.  * Adds a unique identifier into records
  14.  *
  15.  * @author Simon Mönch <sm@webfactory.de>
  16.  */
  17. class UidProcessor implements ProcessorInterfaceResettableInterface
  18. {
  19.     private $uid;
  20.     public function __construct($length 7)
  21.     {
  22.         if (!is_int($length) || $length 32 || $length 1) {
  23.             throw new \InvalidArgumentException('The uid length must be an integer between 1 and 32');
  24.         }
  25.         $this->uid $this->generateUid($length);
  26.     }
  27.     public function __invoke(array $record)
  28.     {
  29.         $record['extra']['uid'] = $this->uid;
  30.         return $record;
  31.     }
  32.     /**
  33.      * @return string
  34.      */
  35.     public function getUid()
  36.     {
  37.         return $this->uid;
  38.     }
  39.     public function reset()
  40.     {
  41.         $this->uid $this->generateUid(strlen($this->uid));
  42.     }
  43.     private function generateUid($length)
  44.     {
  45.         return substr(hash('md5'uniqid(''true)), 0$length);
  46.     }
  47. }