Completed
Pull Request — master (#122)
by
unknown
01:14
created

SlugOptions::suffixSlug()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Spatie\Sluggable;
4
5
class SlugOptions
6
{
7
    /** @var array|callable */
8
    public $generateSlugFrom;
9
10
    /** @var string */
11
    public $slugField;
12
13
    /** @var bool */
14
    public $generateUniqueSlugs = true;
15
16
    /** @var int */
17
    public $maximumLength = 250;
18
19
    /** @var bool */
20
    public $generateSlugsOnCreate = true;
21
22
    /** @var bool */
23
    public $generateSlugsOnUpdate = true;
24
25
    /** @var string */
26
    public $slugSeparator = '-';
27
28
    /** @var string */
29
    public $slugLanguage = 'en';
30
31
    /** @var string **/
32
    public $prefixSlug = '';
33
34
    /** @var string **/
35
    public $suffixSlug = '';
36
37
    public static function create(): self
38
    {
39
        return new static();
40
    }
41
42
    /**
43
     * @param string|array|callable $fieldName
44
     *
45
     * @return \Spatie\Sluggable\SlugOptions
46
     */
47
    public function generateSlugsFrom($fieldName): self
48
    {
49
        if (is_string($fieldName)) {
50
            $fieldName = [$fieldName];
51
        }
52
53
        $this->generateSlugFrom = $fieldName;
54
55
        return $this;
56
    }
57
58
    public function saveSlugsTo(string $fieldName): self
59
    {
60
        $this->slugField = $fieldName;
61
62
        return $this;
63
    }
64
65
    public function allowDuplicateSlugs(): self
66
    {
67
        $this->generateUniqueSlugs = false;
68
69
        return $this;
70
    }
71
72
    public function slugsShouldBeNoLongerThan(int $maximumLength): self
73
    {
74
        $this->maximumLength = $maximumLength;
75
76
        return $this;
77
    }
78
79
    public function doNotGenerateSlugsOnCreate(): self
80
    {
81
        $this->generateSlugsOnCreate = false;
82
83
        return $this;
84
    }
85
86
    public function doNotGenerateSlugsOnUpdate(): self
87
    {
88
        $this->generateSlugsOnUpdate = false;
89
90
        return $this;
91
    }
92
93
    public function usingSeparator(string $separator): self
94
    {
95
        $this->slugSeparator = $separator;
96
97
        return $this;
98
    }
99
100
    public function usingLanguage(string $language): self
101
    {
102
        $this->slugLanguage = $language;
103
104
        return $this;
105
    }
106
107
    public function prefixSlug(string $prefix) : self
108
    {
109
        $this->prefixSlug = $prefix;
110
111
        return $this;
112
    }
113
114
    public function suffixSlug(string $suffix) : self
115
    {
116
        $this->suffixSlug = $suffix;
117
118
        return $this;
119
    }
120
}
121