Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
System
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 payload
100.00% covered (success)
100.00%
24 / 24
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Panel;
6
7use Cosray\Config;
8use Cosray\Locales;
9
10/**
11 * System payload embedded into panel editor pages. It feeds the
12 * standalone window.Cosray bridge (and through it every element
13 * control).
14 */
15final class System
16{
17    public function __construct(
18        private readonly Config $config,
19        private readonly Locales $locales,
20    ) {}
21
22    public function payload(): array
23    {
24        $config = $this->config;
25        $locales = [];
26
27        foreach ($this->locales as $locale) {
28            $locales[] = [
29                'id' => $locale->id,
30                'title' => $locale->title,
31                'fallback' => $locale->fallback,
32            ];
33        }
34
35        return [
36            'debug' => $config->debug(),
37            'env' => $config->env(),
38            'csrfToken' => '',
39            'locale' => $this->locales->getDefault()->id,
40            'defaultLocale' => $this->locales->getDefault()->id,
41            'locales' => $locales,
42            'customLocales' => [],
43            'prefix' => $config->path->prefix,
44            'assets' => $config->path->assets,
45            'allowedFiles' => [
46                'file' => array_merge(...array_values($config->upload->file)),
47                'image' => array_merge(...array_values($config->upload->image)),
48                'video' => array_merge(...array_values($config->upload->video)),
49            ],
50        ];
51    }
52}