Class yii\debug\models\timeline\Svg

Inheritanceyii\debug\models\timeline\Svg » yii\base\BaseObject
Implementsyii\base\Configurable
Available since version2.0.8
Source Code https://github.com/yiisoft/yii2-debug/blob/master/models/timeline/Svg.php

Svg is used to draw a graph using SVG

Protected Properties

Hide inherited properties

Property Type Description Defined By

Public Methods

Hide inherited methods

Method Description Defined By
__call() Calls the named method which is not a class method. yii\base\BaseObject
__construct() Constructor. yii\debug\models\timeline\Svg
__get() Returns the value of an object property. yii\base\BaseObject
__isset() Checks if a property is set, i.e. defined and not null. yii\base\BaseObject
__set() Sets value of an object property. yii\base\BaseObject
__toString() yii\debug\models\timeline\Svg
__unset() Sets an object property to null. yii\base\BaseObject
canGetProperty() Returns a value indicating whether a property can be read. yii\base\BaseObject
canSetProperty() Returns a value indicating whether a property can be set. yii\base\BaseObject
className() Returns the fully qualified name of this class. yii\base\BaseObject
hasMethod() Returns a value indicating whether a method is defined. yii\base\BaseObject
hasPoints() yii\debug\models\timeline\Svg
hasProperty() Returns a value indicating whether a property is defined. yii\base\BaseObject
init() Initializes the object. yii\base\BaseObject

Property Details

Hide inherited properties

$gradient public property

Color indicators svg graph.

public array $gradient = [
    
10 => '#d6e685',
    
60 => '#8cc665',
    
90 => '#44a340',
    
100 => '#1e6823',
]
$listenMessages public property

Listen messages panels

public array $listenMessages = [
    
'log',
    
'profiling',
]
$panel protected property
$points protected property

Each point is define by a X and a Y coordinate.

protected array $points = []
$stroke public property

Stroke color

public string $stroke '#1e6823'
$template public property

Svg template

public string $template '<svg xmlns="http://www.w3.org/2000/svg" width="{x}" height="{y}" viewBox="0 0 {x} {y}" preserveAspectRatio="none"><defs>{linearGradient}</defs><g><polygon points="{polygon}" fill="url(#gradient)"/><polyline points="{polyline}" fill="none" stroke="{stroke}" stroke-width="1"/></g></svg>'
$x public property

Max X coordinate

public integer $x 1920
$y public property

Max Y coordinate

public integer $y 40

Method Details

Hide inherited methods

__call() public method

Defined in: yii\base\BaseObject::__call()

Calls the named method which is not a class method.

Do not call this method directly as it is a PHP magic method that will be implicitly called when an unknown method is being invoked.

public mixed __call ( $name, $params )
$name string

The method name

$params array

Method parameters

return mixed

The method return value

throws yii\base\UnknownMethodException

when calling unknown method

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__construct() public method

Constructor.

The default implementation does two things:

  • Initializes the object with the given configuration $config.
  • Call init().

If this method is overridden in a child class, it is recommended that

  • the last parameter of the constructor is a configuration array, like $config here.
  • call the parent implementation at the end of the constructor.
public void __construct ( yii\debug\panels\TimelinePanel $panel, $config = [] )
$panel
$config array

Name-value pairs that will be used to initialize the object properties

                public function __construct(TimelinePanel $panel, $config = [])
{
    parent::__construct($config);
    $this->panel = $panel;
    foreach ($this->listenMessages as $panel) {
        if (isset($this->panel->module->panels[$panel]->data['messages'])) {
            $this->addPoints($this->panel->module->panels[$panel]->data['messages']);
        }
    }
}

            
__get() public method

Defined in: yii\base\BaseObject::__get()

Returns the value of an object property.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $value = $object->property;.

See also __set().

public mixed __get ( $name )
$name string

The property name

return mixed

The property value

throws yii\base\UnknownPropertyException

if the property is not defined

throws yii\base\InvalidCallException

if the property is write-only

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public method

Defined in: yii\base\BaseObject::__isset()

Checks if a property is set, i.e. defined and not null.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing isset($object->property).

Note that if the property is not defined, false will be returned.

See also https://www.php.net/manual/en/function.isset.php.

public boolean __isset ( $name )
$name string

The property name or the event name

return boolean

Whether the named property is set (not null).

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() public method

Defined in: yii\base\BaseObject::__set()

Sets value of an object property.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $object->property = $value;.

See also __get().

public void __set ( $name, $value )
$name string

The property name or the event name

$value mixed

The property value

throws yii\base\UnknownPropertyException

if the property is not defined

throws yii\base\InvalidCallException

if the property is read-only

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__toString() public method

public string __toString ( )

                public function __toString()
{
    if ($this->points === []) {
        return '';
    }
    return strtr($this->template, [
        '{x}' => StringHelper::normalizeNumber($this->x),
        '{y}' =>  StringHelper::normalizeNumber($this->y),
        '{stroke}' => $this->stroke,
        '{polygon}' => $this->polygon(),
        '{polyline}' => $this->polyline(),
        '{linearGradient}' => $this->linearGradient()
    ]);
}

            
__unset() public method

Defined in: yii\base\BaseObject::__unset()

Sets an object property to null.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing unset($object->property).

Note that if the property is not defined, this method will do nothing. If the property is read-only, it will throw an exception.

See also https://www.php.net/manual/en/function.unset.php.

public void __unset ( $name )
$name string

The property name

throws yii\base\InvalidCallException

if the property is read only.

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
addPoints() protected method

protected integer addPoints ( $messages )
$messages array

Log messages. See Logger::messages for the structure

return integer

Added points

                protected function addPoints($messages)
{
    $hasPoints = $this->hasPoints();
    $memory = $this->panel->memory / 100; // 1 percent memory
    $yOne = $this->y / 100; // 1 percent Y coordinate
    $xOne = $this->panel->duration / $this->x; // 1 percent X coordinate
    $i = 0;
    foreach ($messages as $message) {
        if (empty($message[5])) {
            break;
        }
        ++$i;
        $this->points[] = [
            ($message[3] * 1000 - $this->panel->start) / $xOne,
            $this->y - ($message[5] / $memory * $yOne),
        ];
    }
    if ($hasPoints && $i) {
        usort($this->points, function ($a, $b) {
            return ($a[0] < $b[0]) ? -1 : 1;
        });
    }
    return $i;
}

            
canGetProperty() public method

Defined in: yii\base\BaseObject::canGetProperty()

Returns a value indicating whether a property can be read.

A property is readable if:

  • the class has a getter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also canSetProperty().

public boolean canGetProperty ( $name, $checkVars true )
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property can be read

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() public method

Defined in: yii\base\BaseObject::canSetProperty()

Returns a value indicating whether a property can be set.

A property is writable if:

  • the class has a setter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also canGetProperty().

public boolean canSetProperty ( $name, $checkVars true )
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property can be written

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            
className() public static method
Deprecated since 2.0.14. On PHP >=5.5, use ::class instead.

Defined in: yii\base\BaseObject::className()

Returns the fully qualified name of this class.

public static string className ( )
return string

The fully qualified name of this class.

                public static function className()
{
    return get_called_class();
}

            
hasMethod() public method

Defined in: yii\base\BaseObject::hasMethod()

Returns a value indicating whether a method is defined.

The default implementation is a call to php function method_exists(). You may override this method when you implemented the php magic method __call().

public boolean hasMethod ( $name )
$name string

The method name

return boolean

Whether the method is defined

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasPoints() public method

public boolean hasPoints ( )
return boolean

Has points

                public function hasPoints()
{
    return ($this->points !== []);
}

            
hasProperty() public method

Defined in: yii\base\BaseObject::hasProperty()

Returns a value indicating whether a property is defined.

A property is defined if:

  • the class has a getter or setter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also:

public boolean hasProperty ( $name, $checkVars true )
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property is defined

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            
init() public method

Defined in: yii\base\BaseObject::init()

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

public void init ( )

                public function init()
{
}

            
linearGradient() protected method

protected string linearGradient ( )

                protected function linearGradient()
{
    $gradient = '<linearGradient id="gradient" x1="0" x2="0" y1="1" y2="0">';
    foreach ($this->gradient as $percent => $color) {
        $gradient .= '<stop offset="' . StringHelper::normalizeNumber($percent) . '%" stop-color="' . $color . '"></stop>';
    }
    return $gradient . '</linearGradient>';
}

            
polygon() protected method

protected string polygon ( )
return string

Points attribute for polygon path

                protected function polygon()
{
    $str = "0 $this->y ";
    foreach ($this->points as $point) {
        list($x, $y) = $point;
        $str .= "{$x} {$y} ";
    }
    $str .= $this->x - 0.001 . " {$y} {$this->x} {$this->y}";
    return StringHelper::normalizeNumber($str);
}

            
polyline() protected method

protected string polyline ( )
return string

Points attribute for polyline path

                protected function polyline()
{
    $str = "0 $this->y ";
    foreach ($this->points as $point) {
        list($x, $y) = $point;
        $str .= "{$x} {$y} ";
    }
    $str .= "$this->x {$y}";
    return StringHelper::normalizeNumber($str);
}