Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace League\Flysystem;
6
 
7
use RuntimeException;
8
 
9
/**
10
 * @internal
11
 */
12
trait ProxyArrayAccessToProperties
13
{
14
    private function formatPropertyName(string $offset): string
15
    {
16
        return str_replace('_', '', lcfirst(ucwords($offset, '_')));
17
    }
18
 
19
    /**
20
     * @param mixed $offset
21
     *
22
     * @return bool
23
     */
24
    public function offsetExists($offset): bool
25
    {
26
        $property = $this->formatPropertyName((string) $offset);
27
 
28
        return isset($this->{$property});
29
    }
30
 
31
    /**
32
     * @param mixed $offset
33
     *
34
     * @return mixed
35
     */
36
    #[\ReturnTypeWillChange]
37
    public function offsetGet($offset)
38
    {
39
        $property = $this->formatPropertyName((string) $offset);
40
 
41
        return $this->{$property};
42
    }
43
 
44
    /**
45
     * @param mixed $offset
46
     * @param mixed $value
47
     */
48
    #[\ReturnTypeWillChange]
49
    public function offsetSet($offset, $value): void
50
    {
51
        throw new RuntimeException('Properties can not be manipulated');
52
    }
53
 
54
    /**
55
     * @param mixed $offset
56
     */
57
    #[\ReturnTypeWillChange]
58
    public function offsetUnset($offset): void
59
    {
60
        throw new RuntimeException('Properties can not be manipulated');
61
    }
62
}