Documentation has never been Symphony's strong point. More specifically, before Symphony 2.2 comments in the actual code were both cryptic and sparse. However the release of Symphony 2.2.2 marks a special milestone in its history — Symphony now has a fully documented core.
Why is this important? Well, for a start it is an excellent example of how the community Working Groups have worked together, independently from the core development team, to contribute to the project.
Secondly, we discovered and squashed a ton of niggly bugs along the way, from mis-named methods to missing arguments, to cyclical object references and even some performance bottlenecks.
But by far the biggest benefit is for you, dear developer. If you're looking to learn how Symphony works, fixing a bug, writing an extension, or coding a custom data source, you now have a single point of reference to visualise the Symphony source. No more blindly stumbling through classes in a text editor.
The API Reference is broken down by packages, which map (more or less) on to the directory structure of Symphony itself.
Within each package (e.g.
toolkit) is a list of classes, followed by exceptions, interfaces, functions and constants. Click through to a class (e.g.
AdministrationPage) to view its own constants, properties and methods.
Every item has a link through to its location in the source code on Github. So even if you're looking through the reference for an older Symphony version, you can still click through and see that older source code. Similarly every item can be expanded/contracted for quicker scanning, and the
# beside each provides a handy hyperlink.
For the real nerds among you, enable the
Show private methods option to include all private properties and methods in the listings.
What's more, we now have an up to date list of deprecated code that you should avoid and finally a list of every delegate in the system. If you don't know your
AdminPagePostGenerate from your
EntryPreRender then you've got some reading to do, son.
How does it work?
Hopefully this new sprinkling of documentation awesomesauce will significantly further your understanding of Symphony's inner workings, and enable you to continue baking even bigger slices of Symphony awesomecake.