You can have multiple objects from the same type in different
> implemenations in the same process?
>
No i'm not saying it.
> What should happen, when I instanciate an object of "test" in version X and
> pass it to a function, that expect it as version Y? To be consistent PHP
> _must_ trigger an error too, if something from the locally included file
> leaves its scope
> class foo {
> public static function bar () {
> local_include "test.php" / / file which includes "test" class;
> return new test (); // <-- error here
> }
> }
> Because else it is not a local scope anymore.
>
the concept as i said is the same of "nesting" a class inside another ( or
dynamically namespacing a file )
if two different components need "Library v1.0" and "Library v2.0" .. they
will probably have same classes and namespaces ( but the code is not the
same ). So how could we use both lib at the same time? Actually php can't
load classes in a scope way so you can't do it in any way on global scope.
nesting dynamically libraries inside a namespace or a class , we can create
objects that can be accessed only throught their root
namespace/class...something like:
new Version1\ExternalLibrary\FooClass();
new Version2\ExternalLibrary\FooClass();
and also Composer will thankyou about it since they can solve automatically
problems .
> Backward compatibility (or compatibility in general) between component is
> something the plugin maintainer should take care of, not the language.
> Regards,
> Sebastian
i'm talking about backward compatibility of php version...not external
plugins etc...i think that my idea doesn't require any change to php apps
to adapt their code.