hi mafi,

i think, thats quite dirty. why work with virtual classes? doing dynamic
stuff with classes is not good concerning performance.

even not cleaner, but i think for performance and code folding in IDEs
skeleton classes will be the easiest way to implement that feature. oxid
just needs to create an empty class, which can be filled with methods and
functions by the user.

first step - model:

class oxarticle extends my_oxi18n ...

my_oxi18n extends oxi18n ...

oxi18n extends my_oxbase ...

my_oxbase extends oxbase ...

second step - create files / skelecton:

create file: core/my_oxbase.php
class my_oxbase extends oxbase {
        // my methods
}

not cleaner, but easy  and fast to implement for your developers and easy to
understand for all developers out there: just open my_oxbase and do my
stuff...

sven

Mathias Fiedler wrote:
> Hello List,
> 
> the following is keeping my mind busy for already quite a while....
> 
> Right now we can only extend "child" classes in OXID eShop modules
> system. So only classes like "oxarticle" or "oxuser", but there is no
> way to extend "oxbase".
> 
> But wouldn't it be possible to extend the framework in a way to allow
> modules for base classes as well ?!
> 
> 
> My idea:
> 
> class oxarticle extends oxi18n_base
> 
> whereas "oxi18n_base" does not exist as a file, but is created at
> runtime to connect oxarticle to original oxi18n class. But if we want
> to write a module for "oxi18n" we can do it ...
> 
> class myoxi18nmodule extends myoxi18nmodule_parent
> 
> hierarchy:
> 
> oxi18n (real class)
> 
> myoxi18nmodule_parent extends oxi18n ("virtual class")
> 
> myoxi18nmodule extends myoxi18nmodule_parent (real class)
> 
> oxi18n_base extends myoxi18nmodule ("virtual class")
> 
> oxarticle extends oxi18n_base (real class)
> 
> Could this work ?
> Is it usefully?
> Is there a need for such a feature?
> 
> 
> Greetings
> Mafi

_______________________________________________
dev-general mailing list
[email protected]
http://dir.gmane.org/gmane.comp.php.oxid.general

Reply via email to