Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php declare(strict_types=1);
2/*
3 * This file is part of Aplus Framework Routing Library.
4 *
5 * (c) Natan Felles <natanfelles@gmail.com>
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
10namespace Framework\Routing;
11
12use Framework\HTTP\Method;
13use Framework\HTTP\Response;
14use Framework\HTTP\Status;
15
16/**
17 * Interface PresenterInterface.
18 *
19 * The interface for data management via a Web Browser UI
20 * using the HTTP GET and POST methods.
21 *
22 * Note: If a presenter needs more than one parameter to get URL path information
23 * provided by placeholders, in addition to $id, do not implement this interface.
24 * But this interface can be a reference because its method names are used in
25 * {@see RouteCollection::presenter()}.
26 *
27 * @see https://developer.mozilla.org/en-US/docs/Glossary/UI
28 *
29 * @package routing
30 */
31interface PresenterInterface
32{
33    /**
34     * Handles a GET request for /.
35     *
36     * Common usage: Show a list of paginated items.
37     *
38     * @see Method::GET
39     *
40     * @return mixed
41     */
42    public function index() : mixed;
43
44    /**
45     * Handles a GET request for /new.
46     *
47     * Common usage: Show a form with inputs to create a new item.
48     * The POST action must go to the 'create' method URL.
49     *
50     * @see PresenterInterface::create()
51     * @see Method::GET
52     *
53     * @return mixed
54     */
55    public function new() : mixed;
56
57    /**
58     * Handles a POST request for /.
59     *
60     * Common usage: Try to create a new item. On success, redirect to the 'show' or
61     * 'edit' method URL. On fail, back to the 'new' method URL.
62     *
63     * @see PresenterInterface::edit()
64     * @see PresenterInterface::new()
65     * @see PresenterInterface::show()
66     * @see Method::POST
67     * @see Response::redirect()
68     *
69     * @return mixed
70     */
71    public function create() : mixed;
72
73    /**
74     * Handles a GET request for /$id.
75     *
76     * Common usage: Show a specific item based on the $id.
77     *
78     * @param string $id
79     *
80     * @see Method::GET
81     * @see Status::NOT_FOUND
82     *
83     * @return mixed
84     */
85    public function show(string $id) : mixed;
86
87    /**
88     * Handles a GET request for /$id/edit.
89     *
90     * Common usage: Show a form to edit a specific item based on the $id.
91     * The POST action must go to the 'update' method URL.
92     *
93     * @param string $id
94     *
95     * @see PresenterInterface::update()
96     * @see Method::GET
97     *
98     * @return mixed
99     */
100    public function edit(string $id) : mixed;
101
102    /**
103     * Handles a POST request for /$id/update.
104     *
105     * Common usage: Try to update an item based on the $id. After the process, back
106     * to the 'edit' method URL and show a message.
107     *
108     * @param string $id
109     *
110     * @see PresenterInterface::edit()
111     * @see Method::POST
112     * @see Response::redirect()
113     *
114     * @return mixed
115     */
116    public function update(string $id) : mixed;
117
118    /**
119     * Handles a GET request for /$id/remove.
120     *
121     * Common usage: Show an alert message about the item to be deleted based on the
122     * $id. The confirmation action must call a POST request to the 'delete'
123     * method URL.
124     *
125     * @param string $id
126     *
127     * @see PresenterInterface::delete()
128     * @see Method::GET
129     *
130     * @return mixed
131     */
132    public function remove(string $id) : mixed;
133
134    /**
135     * Handles a POST request for /$id/delete.
136     *
137     * Common usage: Try to delete an item based on the $id. On success, go to the
138     * 'index' method URL and show a success message. On fail, back to the 'remove'
139     * method URL and show the error message.
140     *
141     * @param string $id
142     *
143     * @see PresenterInterface::index()
144     * @see PresenterInterface::remove()
145     * @see Method::POST
146     * @see Response::redirect()
147     *
148     * @return mixed
149     */
150    public function delete(string $id) : mixed;
151}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy