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