# tableberg/1.0.3/renderer/Attrs/Sides.php

Tableberg – Simple Gutenberg Table Block, version 1.0.3. 48 lines.

- Page: https://pluginprobe.com/plugins/tableberg/1.0.3/code/renderer/Attrs/Sides.php
- Raw: https://pluginprobe.com/plugins/tableberg/1.0.3/raw/renderer/Attrs/Sides.php
- Modified: 2026-05-04T16:51:12+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/tableberg/1.0.3/code/renderer/Attrs/Sides.php#L10-L20`.

```php
<?php

namespace Tableberg\Renderer\Attrs;

use function Tableberg\Renderer\getOrNull;

class Sides {
    /** @var StringAttr */
    public $top;

    /** @var StringAttr */
    public $right;

    /** @var StringAttr */
    public $bottom;

    /** @var StringAttr */
    public $left;

    /**
     * @param array|null $data
     * @param array<string, string> $defaults
     * @return self
     */
    public static function from_array($data, $defaults) {
        $data = is_array($data) ? $data : [];

        $instance = new self();
        $defaultTop = getOrNull($defaults['top']);
        $defaultRight = getOrNull($defaults['right']);
        $defaultBottom = getOrNull($defaults['bottom']);
        $defaultLeft = getOrNull($defaults['left']);

        $instance->top = new StringAttr(getOrNull($data['top']), $defaultTop);
        $instance->right = new StringAttr(
            getOrNull($data['right']),
            $defaultRight
        );
        $instance->bottom = new StringAttr(
            getOrNull($data['bottom']),
            $defaultBottom
        );
        $instance->left = new StringAttr(getOrNull($data['left']), $defaultLeft);

        return $instance;
    }
}

```
