Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
29 / 29
100.00% covered (success)
100.00%
4 / 4
CRAP
100.00% covered (success)
100.00%
1 / 1
Ticketprinter
100.00% covered (success)
100.00%
29 / 29
100.00% covered (success)
100.00%
4 / 4
10
100.00% covered (success)
100.00%
1 / 1
 setHash
100.00% covered (success)
100.00%
11 / 11
100.00% covered (success)
100.00%
1 / 1
3
 getHash
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
 setHomeUrl
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
3
 getHomeUrl
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace BO\Zmsclient;
4
5/**
6 * Session handler for mysql
7 */
8class Ticketprinter
9{
10    const string HASH_COOKIE_NAME = 'Ticketprinter';
11    const string HOME_URL_COOKIE_NAME = 'Ticketprinter_Homeurl';
12
13    /**
14     * @SuppressWarnings(Superglobals)
15     *
16     * @param string $hash
17     * @param \Psr\Http\Message\RequestInterface $request
18     * @psalm-suppress DeprecatedMethod
19     */
20    public static function setHash(string $hash, \Psr\Http\Message\RequestInterface $request): void
21    {
22        $_COOKIE[self::HASH_COOKIE_NAME] = $hash;
23        if (!headers_sent()) {
24            $basePath = $request instanceof \BO\Slim\Request ? $request->getBasePath() : '';
25            setcookie(
26                self::HASH_COOKIE_NAME,
27                $hash,
28                time() + (60 * 60 * 24 * 365 * 10),
29                $basePath,
30                '',
31                false
32            );
33        }
34    }
35
36    /**
37     * @SuppressWarnings(Superglobals)
38     *
39     * @return false|string
40     */
41    public static function getHash(): string|false
42    {
43        if (array_key_exists(self::HASH_COOKIE_NAME, $_COOKIE)) {
44            return $_COOKIE[self::HASH_COOKIE_NAME];
45        }
46        return false;
47    }
48
49    /**
50     * @SuppressWarnings(Superglobals)
51     *
52     * @getBasePath () see https://www.slimframework.com/docs/v3/objects/request.html#the-request-method
53     * @psalm-suppress DeprecatedMethod
54     */
55    public static function setHomeUrl(string $url, \Psr\Http\Message\RequestInterface $request): void
56    {
57        $_COOKIE[self::HOME_URL_COOKIE_NAME] = $url;
58        if (!headers_sent()) {
59            $basePath = $request instanceof \BO\Slim\Request ? $request->getBasePath() : '';
60            setcookie(
61                self::HOME_URL_COOKIE_NAME,
62                $url,
63                time() + (60 * 60 * 24 * 365 * 10),
64                $basePath,
65                '',
66                false,
67                true
68            );
69        }
70    }
71
72    /**
73     * @SuppressWarnings(Superglobals)
74     *
75     * @return false|string
76     */
77    public static function getHomeUrl(): string|false
78    {
79        if (array_key_exists(self::HOME_URL_COOKIE_NAME, $_COOKIE)) {
80            return $_COOKIE[self::HOME_URL_COOKIE_NAME];
81        }
82        return false;
83    }
84}