DebugKit\DebugTimer::stop PHP Метод

stop() публичный статический Метод

$name should be the same as the $name used in startTimer().
public static stop ( string $name = null ) : boolean
$name string The name of the timer to end.
Результат boolean true if timer was ended, false if timer was not started.
    public static function stop($name = null)
    {
        $end = microtime(true);
        if (!$name) {
            $names = array_reverse(array_keys(self::$_timers));
            foreach ($names as $name) {
                if (!empty(self::$_timers[$name]['end'])) {
                    continue;
                }
                if (empty(self::$_timers[$name]['named'])) {
                    break;
                }
            }
        } else {
            $i = 1;
            $_name = $name;
            while (isset(self::$_timers[$name])) {
                if (empty(self::$_timers[$name]['end'])) {
                    break;
                }
                $i++;
                $name = $_name . ' #' . $i;
            }
        }
        if (!isset(self::$_timers[$name])) {
            return false;
        }
        self::$_timers[$name]['end'] = $end;
        return true;
    }

Usage Example

Пример #1
0
 /**
  * Return an array of events to listen to.
  *
  * @return array
  */
 public function implementedEvents()
 {
     $before = function ($name) {
         return function () use($name) {
             DebugTimer::start($name, __d('debug_kit', $name));
         };
     };
     $after = function ($name) {
         return function () use($name) {
             DebugTimer::stop($name);
         };
     };
     $both = function ($name) use($before, $after) {
         return [['priority' => 0, 'callable' => $before('Event: ' . $name)], ['priority' => 999, 'callable' => $after('Event: ' . $name)]];
     };
     return ['Controller.initialize' => [['priority' => 0, 'callable' => function () {
         DebugMemory::record(__d('debug_kit', 'Controller initialization'));
     }], ['priority' => 0, 'callable' => $before('Event: Controller.initialize')], ['priority' => 999, 'callable' => $after('Event: Controller.initialize')]], 'Controller.startup' => [['priority' => 0, 'callable' => $before('Event: Controller.startup')], ['priority' => 999, 'callable' => $after('Event: Controller.startup')], ['priority' => 999, 'callable' => function () {
         DebugMemory::record(__d('debug_kit', 'Controller action start'));
         DebugTimer::start(__d('debug_kit', 'Controller action'));
     }]], 'Controller.beforeRender' => [['priority' => 0, 'callable' => function () {
         DebugTimer::stop(__d('debug_kit', 'Controller action'));
     }], ['priority' => 0, 'callable' => $before('Event: Controller.beforeRender')], ['priority' => 999, 'callable' => $after('Event: Controller.beforeRender')], ['priority' => 999, 'callable' => function () {
         DebugMemory::record(__d('debug_kit', 'View Render start'));
         DebugTimer::start(__d('debug_kit', 'View Render start'));
     }]], 'View.beforeRender' => $both('View.beforeRender'), 'View.afterRender' => $both('View.afterRender'), 'View.beforeLayout' => $both('View.beforeLayout'), 'View.afterLayout' => $both('View.afterLayout'), 'View.beforeRenderFile' => [['priority' => 0, 'callable' => function ($event, $filename) {
         DebugTimer::start(__d('debug_kit', 'Render {0}', $filename));
     }]], 'View.afterRenderFile' => [['priority' => 0, 'callable' => function ($event, $filename) {
         DebugTimer::stop(__d('debug_kit', 'Render {0}', $filename));
     }]], 'Controller.shutdown' => [['priority' => 0, 'callable' => $before('Event: Controller.shutdown')], ['priority' => 0, 'callable' => function () {
         DebugTimer::stop(__d('debug_kit', 'View Render start'));
         DebugMemory::record(__d('debug_kit', 'Controller shutdown'));
     }], ['priority' => 999, 'callable' => $after('Event: Controller.shutdown')]]];
 }
All Usage Examples Of DebugKit\DebugTimer::stop