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.