Re: PHP proposal on modular systems

From: Date: Mon, 15 Jul 2013 23:16:15 +0000
Subject: Re: PHP proposal on modular systems
References: 1 2 3 4 5 6 7  Groups: php.internals 
Request: Send a blank email to internals+get-68127@lists.php.net to get a copy of this message
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.

« previous php.internals (#68127) next »