1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- declare(strict_types=1);
- namespace League\Flysystem;
- use RuntimeException;
- /**
- * @internal
- */
- trait ProxyArrayAccessToProperties
- {
- private function formatPropertyName(string $offset): string
- {
- return str_replace('_', '', lcfirst(ucwords($offset, '_')));
- }
- /**
- * @param mixed $offset
- *
- * @return bool
- */
- public function offsetExists($offset): bool
- {
- $property = $this->formatPropertyName((string) $offset);
- return isset($this->{$property});
- }
- /**
- * @param mixed $offset
- *
- * @return mixed
- */
- #[\ReturnTypeWillChange]
- public function offsetGet($offset)
- {
- $property = $this->formatPropertyName((string) $offset);
- return $this->{$property};
- }
- /**
- * @param mixed $offset
- * @param mixed $value
- */
- #[\ReturnTypeWillChange]
- public function offsetSet($offset, $value): void
- {
- throw new RuntimeException('Properties can not be manipulated');
- }
- /**
- * @param mixed $offset
- */
- #[\ReturnTypeWillChange]
- public function offsetUnset($offset): void
- {
- throw new RuntimeException('Properties can not be manipulated');
- }
- }
|