Hi! > If you are concerned about libraries modifying how code is run, the > same theoretical problem exists with libraries that register > autoloaders - 'omg they can totally change what code is even going to > be run, let alone the precise semantic behaviour'.
Autoloaders do not change language semantics. They just change one particular aspect, for which there is specific plugin interface. This is a proposal to have plugin interface for changing everything in the language, basically - which may sound cool initially, yay, I can make PHP do whatever I like - until you consider how these changes may coexist in a larger project. Loading a class is a pretty compartmentalized thing, but changing language semantics is not. Where it is - like meanings of operators - we cautiously allow _some_ plugins. But I think this one goes too far. The problem isn't even in bootstrap order and such - while all those are problems, they can be solved. The problem is you no longer know what each piece of code means and how it works. With classes, since you don't have all the classes in the same place, it's usually solved by having phpdoc - you're supposed to know which class does what by reading docs. With semantic changes, I don't know how you're supposed to know which one of 2**N combinations is currently active on this code. -- Stas Malyshev [email protected] -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
