db

Форк
0
/
BaseColumn.php 
91 строка · 1.8 Кб
1
<?php
2

3
namespace Upside\Db\Schema;
4

5
class BaseColumn
6
{
7
    protected string $name;
8
    protected ?string $type;
9
    protected array $properties = [];
10

11
    public function __construct(string $name, ?string $type = null)
12
    {
13
        $this->name = $name;
14
        $this->type = $type;
15
    }
16

17
    public function get_name(): string
18
    {
19
        return $this->name;
20
    }
21

22
    public function get_type(): string
23
    {
24
        return $this->type;
25
    }
26

27
    public function get_properties(): array
28
    {
29
        return $this->properties;
30
    }
31

32
    public function set_type(string $type): static
33
    {
34
        $this->type = $type;
35

36
        return $this;
37
    }
38

39
    public function set(string $name, $value): static
40
    {
41
        $this->properties[$name] = $value;
42

43
        return $this;
44
    }
45

46
    public function has(string $name): bool
47
    {
48
        return isset($this->properties[$name]);
49
    }
50

51
    public function get(string $name, mixed $default = null): mixed
52
    {
53
        return $this->properties[$name] ?? $default;
54
    }
55

56
    public function size(string $value): static
57
    {
58
        $value = \strtolower($value);
59

60
        if (!\in_array($value, ['tiny', 'small', 'normal', 'medium', 'big'])) {
61
            return $this;
62
        }
63

64
        return $this->set('size', $value);
65
    }
66

67
    public function not_null(): static
68
    {
69
        return $this->set('nullable', false);
70
    }
71

72
    public function description(string $comment): static
73
    {
74
        return $this->set('description', $comment);
75
    }
76

77
    public function default_value($value): static
78
    {
79
        return $this->set('default', $value);
80
    }
81

82
    public function unsigned(bool $value = true): static
83
    {
84
        return $this->set('unsigned', $value);
85
    }
86

87
    public function length($value): static
88
    {
89
        return $this->set('length', $value);
90
    }
91
}
92

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.