Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php declare(strict_types=1);
2
 
3
/*
4
 * This file is part of the Monolog package.
5
 *
6
 * (c) Jordi Boggiano <j.boggiano@seld.be>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Monolog\Processor;
13
 
14
/**
15
 * Some methods that are common for all memory processors
16
 *
17
 * @author Rob Jensen
18
 */
19
abstract class MemoryProcessor implements ProcessorInterface
20
{
21
    /**
22
     * @var bool If true, get the real size of memory allocated from system. Else, only the memory used by emalloc() is reported.
23
     */
24
    protected $realUsage;
25
 
26
    /**
27
     * @var bool If true, then format memory size to human readable string (MB, KB, B depending on size)
28
     */
29
    protected $useFormatting;
30
 
31
    /**
32
     * @param bool $realUsage     Set this to true to get the real size of memory allocated from system.
33
     * @param bool $useFormatting If true, then format memory size to human readable string (MB, KB, B depending on size)
34
     */
35
    public function __construct(bool $realUsage = true, bool $useFormatting = true)
36
    {
37
        $this->realUsage = $realUsage;
38
        $this->useFormatting = $useFormatting;
39
    }
40
 
41
    /**
42
     * Formats bytes into a human readable string if $this->useFormatting is true, otherwise return $bytes as is
43
     *
44
     * @param  int        $bytes
45
     * @return string|int Formatted string if $this->useFormatting is true, otherwise return $bytes as int
46
     */
47
    protected function formatBytes(int $bytes)
48
    {
49
        if (!$this->useFormatting) {
50
            return $bytes;
51
        }
52
 
53
        if ($bytes > 1024 * 1024) {
54
            return round($bytes / 1024 / 1024, 2).' MB';
55
        } elseif ($bytes > 1024) {
56
            return round($bytes / 1024, 2).' KB';
57
        }
58
 
59
        return $bytes . ' B';
60
    }
61
}