If you juste want to take a look, you can browse the code online:
http://code.google.com/p/manialib/source/browse/ (2.0 is currently the trunk/)
I can give you a quick summary of the architecture.
We are now using "fake namespaces" like what you can find on PEAR or in the Zend Framework for example.
Basically there's is a "libraries" folder which contains all the code, and ALL the code is made of classes.
It works like packages.
For example:
/libraries/ManiaLib/Database/Connection.php
contains the class called
ManiaLib_Database_Connection
It helps a lot organizing the code, and the fact that the class names are that long is not too much of a problem with auto-completion feature of Eclipse PDT.
When you create your Manialink, your are going to put evrything in a package. For example, we created the ManiaLibDemo package that contains all the code of the manialink "manialib":
http://code.google.com/p/manialib/sourc ... iaLibDemo/
When we write our views, the long names where actually a problem, so we created some shortcut classes (when we have migrated to PHP 5.3, this won't be a problem anymore with true namespace support, but for now we are stuck with 5.2):
For example instead of always writing:
"new ManiaLib_Gui_Elements_Quad()"
we use:
"new Quad()"
and Quad is just a class that extends ManiaLib_Gui_Elements_Quad
It also helps a bit with backward compatibility (well, we still broke pretty much everything to get the new architecture in place).
If you want to use the new version, you can "at your own risk": no documentation, the code is evolving very fast and we may break stuff at any time. The 1.0 is branch is more stable. In any case, don't hesitate to ask in a thread in this forum if you have technical questions (whether they are on the 1.0 or 2.0 branch), i am sure it will help others.
Let me know if your are intersted in a ZIP package of the 2.0 to work with it.