If you really want to kick down some doors...

bingomanatee-gdo's picture

Make Drupal Object Oriented -- or at least give us that option. Drupal is so close to OOP, why not take the next step? Give us the ability to create an object for a node, give it basic CRUD methods from an interface, and allow it to render as an array for backwards compatibility (and see if you can use the iterator interface for some hybridization).

On this track, an integration with an existing ActiveRecord implementation (I'm a fan of Zend, but Doctrine or Propel(the DBA system for Symfony) has traction as well.

Again -- I'm not insisting that these be made the ONLY functionality inside Drupal -- but an OOP Flavor/branch would go a long way towards making the architecture more standard and in many ways easier for people from other backgrounds to read and develop in. I don't doubt that it might have impact on the performance -- though its anyones' guess which way it would go. Lastly it would remove a blizzard of functions from the global namespace making Drupal a lot less hazardous to integrate with other third party systems that litter the global namespace...

Too much work? Perhaps -- but it would be a long needed step into the 21st century. And please, don't respond with whiny bleats about "Legacy" and "Existing Modules" and "workload". I'm fully aware of those considerations as are everyone else in this forum: don't choke the space with information that everyone already knows. I would just remind you that the Mambo/Joomla crowd uses this argument to maintain their quirky and incomprehensible architecture too; I'm not saying that Drupal is anywhere close to the level of suck that Joomla has achieved but inertia is not a virtue. If you wish to detract, explain why an OOP architecture would be worse than the current quasi-OOP function based architecture, not how hard it would be to do or sell.


Not really a design / UX comment...

Boris Mann's picture

This is not really a design / UX comment.

Oh, and of course, the new PDO database layer in D7 is OOP, as is Views, so there are definite steps in that direction. So ... go for it! Suggest a feature set of core that could OOP-ized, and submit some patches.