I think if we allow loading of the core ContentManager class implementation to be defined, we can let that specific implementation worry about loading whatever extensions it wants. But dynamically loading extensions might be useful in some cases, especially to allow user-defined extensions to the API.
And yes, we need to structure the classes in more traditional patterns, including the use of getXXX() methods for public access vars, setXXX() methods for mutable (i.e. changeable) public access vars, but we can’t use the language to make things public or private without sacrificing PHP 4 compatability. I think we should move incrementally to that point where PHP 5 is required when PHP 4 is no longer widely used, or possibly maintain a legacy branch for PHP 4 people while we use the latest and greatest language features of PHP 5.
I’m hoping database compatability can be completely abstracted from the equation; imagine everything is an object that extends the base persistence class and implements it’s own unique behaviors on top of this. Then the relational persistence is all handled by the DB layer while all you do is create new instances of objects and call the appropriate method to get or set the data you want. Makes me weepy... :’( or is that geeky?