> On Aug 25, 2021, at 6:41 PM, Reindl Harald (privat) <[email protected]> wrote:
> Am 26.08.21 um 00:37 schrieb Mike Schinkel:
>> That said, I'd be really interested in seeing use-cases where having dynamic
>> properties is essential to an architecture and where it could not be easily
>> refactored. I cannot envision any, but I am sure that I am just limited by
>> the extent of my vision and so would like to know what those use-cases would
>> be.
>
> public function __get(string $subclass)
> {
> $include_file = "{$this->basedir}/modules/{$subclass}/api_{$subclass}.php";
> $class_name = "cl_{$subclass}";
> if(!include $include_file)
> {
> $this->misc->trigger_error("API-LOADER FAILED: '{$subclass}'");
> }
> $this->$subclass = new $class_name;
> $this->$subclass->cl_api = $this;
> return $this->$subclass;
> }
Easily refactored:
public function __get(string $subclass)
{
if (isset($this->subclasses[$subclass])) {
return $this->subclasses[$subclass];
}
$include_file = "{$this->basedir}/modules/{$subclass}/api_{$subclass}.php";
$class_name = "cl_{$subclass}";
if(!include $include_file)
{
$this->misc->trigger_error("API-LOADER FAILED: '{$subclass}'");
}
$this->subclasses[$subclass] = new $class_name;
$this->subclasses[$subclass]->cl_api = $this;
return $this->subclasses[$subclass];
}
-Mike
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php