(Lys) AbstractClass

Mercredi 17 Septembre 2025, 14:01:37

<?php
/**
* Lys
*
* GNU General Public License
*
* Copyright © 2007 - 2025, Yohann Schwan. All rights reserved.
*/
namespace Lys {

abstract class
AbstractClass
{
/**
* @args array $parameters = array()
* @return void
*/
final function __construct(array $parameters = array())
{
foreach(
$parameters as $name => $value)
{
$this->$name = $value;
}

$this->__wakeup();
}

/**
* @args void
* @return void
*/
function __wakeup()
{
#
}

/**
* @args void
* @return array
*/
function __sleep()
{
return
array_keys(get_object_vars($this));
}

/**
* @args string $name
* @return mixed
*/
function __get($name)
{
throw new
UndefinedPropertyException(get_class($this) . '::$' . $name);
}

/**
* @args string $name, mixed $value
* @return void
*/
function __set($name, $value)
{
throw new
UndefinedPropertyException(get_class($this) . '::$' . $name, $value);
}

/**
* @args string $name, array $args = array()
* @return void
*/
function __call($name, array $args = array())
{
throw new
UndefinedMethodException(get_class($this) . '::' . $name, $args);
}
}
}