Faker::futureDate()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Spatie\Seeders;
4
5
use Carbon\Carbon;
6
use Faker\Generator;
7
8
class Faker
9
{
10
    /** @var \Faker\Generator */
11
    public $faker;
12
13
    public function __construct(Generator $faker)
14
    {
15
        $this->faker = $faker;
16
    }
17
18
    public function sometimes(): bool
19
    {
20
        return $this->faker->boolean(50);
21
    }
22
23
    public function rarely(): bool
24
    {
25
        return $this->faker->boolean(20);
26
    }
27
28
    public function mostly(): bool
29
    {
30
        return $this->faker->boolean(80);
31
    }
32
33
    public function sentence(int $words = 0): string
34
    {
35
        return $this->faker->sentence($words ?: mt_rand(4, 8));
36
    }
37
38
    public function sentences(int $min, int $max = 0): string
39
    {
40
        $amount = $max ? mt_rand($min, $max) : $min;
41
42
        return $this->faker->sentences($amount, true);
43
    }
44
45
    public function title(): string
46
    {
47
        return rtrim($this->faker->sentence(mt_rand(2, 5)), '.');
48
    }
49
50
    public function paragraph(int $sentences = 0): string
51
    {
52
        return $this->faker->paragraph($sentences ?: mt_rand(6, 10));
53
    }
54
55
    public function paragraphs(int $min, int $max = 0): string
56
    {
57
        $amount = $max ? mt_rand($min, $max) : $min;
58
59
        return '<p>'.implode('</p><p>', $this->faker->paragraphs($amount)).'</p>';
60
    }
61
62
    public function text(): string
63
    {
64
        return el('p.intro', $this->paragraph()).
65
            el('h3', $this->sentence()).
66
            el('p', $this->paragraph()).
67
            el('blockquote', $this->paragraph()).
68
            el('h3', $this->sentence()).
69
            el('p', $this->paragraph()).
70
            el('p', $this->paragraph());
71
    }
72
73
    public function person($firstName = '', $lastName = ''): array
74
    {
75
        $firstName = $firstName ?: $this->faker->firstName;
76
        $lastName = $lastName ?: $this->faker->lastName;
77
        $email = strtolower($firstName).'.'.strtolower($lastName).'@spatie.be';
78
79
        return compact('firstName', 'lastName', 'email');
80
    }
81
82
    public function pastDate(): Carbon
83
    {
84
        return Carbon::now()->addMinutes(-rand(0, 60 * 24 * 7 * 4));
85
    }
86
87
    public function futureDate(): Carbon
88
    {
89
        return Carbon::now()->addMinutes(rand(0, 60 * 24 * 7 * 4));
90
    }
91
92
    public function translate(string $text): array
93
    {
94
        return array_fill_keys(config('app.locales'), $text);
95
    }
96
97
    public function latitude(): float
98
    {
99
        return mt_rand(5035000000, 5147000000) / (10 ** 8);
100
    }
101
102
    public function longitude(): float
103
    {
104
        return mt_rand(266000000, 571000000) / (10 ** 8);
105
    }
106
107
    public function youTubeIds(int $amount): array
108
    {
109
        return collect([
110
            'iz7wtTO7roQ',
111
            'PTvBpF-bWZI',
112
            '6v2L2UGZJAM',
113
            'OnoNITE-CLc',
114
            'Xq_a8f24UJI',
115
            'k-QmqlY6Mnw',
116
        ])
117
            ->shuffle()
118
            ->take($amount)
119
            ->toArray();
120
    }
121
122
    public function __get(string $name)
123
    {
124
        return $this->faker->$name;
125
    }
126
127
    public function __call(string $method, array $arguments)
128
    {
129
        return $this->faker->$method(...$arguments);
130
    }
131
}
132