xref: /template/strap/ComboStrap/ResourceCombo.php (revision c3437056399326d621a01da73b649707fbb0ae69)
1*c3437056SNickeau<?php
2*c3437056SNickeau
3*c3437056SNickeau
4*c3437056SNickeaunamespace ComboStrap;
5*c3437056SNickeau
6*c3437056SNickeau
7*c3437056SNickeau/**
8*c3437056SNickeau * Interface ComboResource
9*c3437056SNickeau * @package ComboStrap
10*c3437056SNickeau *
11*c3437056SNickeau * Not Resource
12*c3437056SNickeau * because
13*c3437056SNickeau * https://www.php.net/manual/en/language.types.resource.php
14*c3437056SNickeau */
15*c3437056SNickeauinterface ResourceCombo
16*c3437056SNickeau{
17*c3437056SNickeau
18*c3437056SNickeau    public function getReadStoreOrDefault(): MetadataStore;
19*c3437056SNickeau
20*c3437056SNickeau    /**
21*c3437056SNickeau     * @return Path - a generic path system where the content raw resource is stored
22*c3437056SNickeau     * ie the file system url, the dokuwiki url
23*c3437056SNickeau     */
24*c3437056SNickeau    public function getPath(): Path;
25*c3437056SNickeau
26*c3437056SNickeau    /**
27*c3437056SNickeau     * @return mixed - the unique id
28*c3437056SNickeau     */
29*c3437056SNickeau    public function getUid(): Metadata;
30*c3437056SNickeau
31*c3437056SNickeau    /**
32*c3437056SNickeau     * A buster value used in URL
33*c3437056SNickeau     * to avoid cache (cache bursting)
34*c3437056SNickeau     *
35*c3437056SNickeau     * It should be unique for each version of the resource
36*c3437056SNickeau     *
37*c3437056SNickeau     * @return string
38*c3437056SNickeau     */
39*c3437056SNickeau    function getBuster(): string;
40*c3437056SNickeau
41*c3437056SNickeau    /**
42*c3437056SNickeau     * @return string - the resource type/name
43*c3437056SNickeau     * Example for page: page
44*c3437056SNickeau     * Used to locate the data in a datastore
45*c3437056SNickeau     * The table name for instance
46*c3437056SNickeau     */
47*c3437056SNickeau    function getType(): string;
48*c3437056SNickeau
49*c3437056SNickeau    /**
50*c3437056SNickeau     * @return string - the resource name
51*c3437056SNickeau     * (ie {@link ResourceName}
52*c3437056SNickeau     */
53*c3437056SNickeau    function getName(): ?string;
54*c3437056SNickeau
55*c3437056SNickeau    /**
56*c3437056SNickeau     * @return string - the name but not null
57*c3437056SNickeau     */
58*c3437056SNickeau    function getNameOrDefault(): string;
59*c3437056SNickeau
60*c3437056SNickeau    /**
61*c3437056SNickeau     * @return Metadata
62*c3437056SNickeau     */
63*c3437056SNickeau    public function getUidObject();
64*c3437056SNickeau
65*c3437056SNickeau
66*c3437056SNickeau}
67