Neat project!
One suggestion would be to move the bulk of the MagicObject functionality into an Interface and Trait so existing classes that may already extend a parent class could be turned into a magic object.
interface MagicObjectIInterface { ... }
trait MagicObjectTrait { ... }
class SomeExistingClass extends SomeParentClass implements MagicObjectInterface {
use MagicObjectTrait;
}
The existing MagicObject class could still exist for compatibility with existing implementations, which itself would use the same Interface and Trait.
Just an idea for consideration.
Neat project!
One suggestion would be to move the bulk of the MagicObject functionality into an Interface and Trait so existing classes that may already extend a parent class could be turned into a magic object.
The existing
MagicObjectclass could still exist for compatibility with existing implementations, which itself would use the same Interface and Trait.Just an idea for consideration.