Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
87.50% covered (warning)
87.50%
7 / 8
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
BorshSerializable
87.50% covered (warning)
87.50%
7 / 8
0.00% covered (danger)
0.00%
0 / 1
3.02
0.00% covered (danger)
0.00%
0 / 1
 __get
87.50% covered (warning)
87.50%
7 / 8
0.00% covered (danger)
0.00%
0 / 1
3.02
1<?php
2
3namespace Attestto\SolanaPhpSdk\Borsh;
4use ReflectionClass;
5
6trait BorshSerializable
7{
8
9
10    /**
11     * Magic getter to retrieve dynamically set properties.
12     * Note, changed from dynamic properties make use of an Array due to Dynamic properties being deprecated.
13     * @param string $name
14     *
15     * @return mixed|null
16     */
17    public function __get(string $name)
18    {
19        // Check if the property exists in the dynamic properties
20        if (array_key_exists($name, $this->fields)) {
21            return $this->fields[$name];
22        }
23
24        // Check if the property exists as a private property
25        if ($this->isPrivateProperty($name)) {
26            // Use reflection to access the private property
27            $reflectionClass = new ReflectionClass($this);
28            $property = $reflectionClass->getProperty($name);
29            $property->setAccessible(true);
30            return $property->getValue($this);
31        }
32
33        // Property not found
34        return null;
35    }
36}