1: <?php
2:
3: namespace LaravelUi5\Core\Contracts;
4:
5: use Illuminate\Http\Request;
6: use LaravelUi5\Core\Ui5\Contracts\Ui5ArtifactInterface;
7:
8: /**
9: * Represents the technical runtime context of a UI5 artifact request.
10: *
11: * Access via dependency injection or the service container:
12: *
13: * <code>
14: * $context = app(Ui5ContextInterface::class);
15: * </code>
16: *
17: * @see ResolveUi5CoreContext
18: */
19: final readonly class Ui5CoreContext implements Ui5ContextInterface
20: {
21: public function __construct(
22: private ?Request $request = null,
23: private Ui5ArtifactInterface $artifact,
24: private ?string $locale = null,
25: )
26: {
27: }
28:
29: public function request(): ?Request
30: {
31: return $this->request;
32: }
33:
34: public function artifact(): Ui5ArtifactInterface
35: {
36: return $this->artifact;
37: }
38:
39: public function locale(): ?string
40: {
41: return $this->locale;
42: }
43: }
44: