I am biased from Rails, but I think separating hierarchy based on architectural layers makes the most sense. Your first example seems confusing because you have verb (/controller) and noun/thing/object (/order) directories on the same level.
I am an avid user of exuberant CTags. I think here are bindings for other editors as well. Sublime: github.com/SublimeText/CTags
The first picture lists all tags “present” in the example project, it wasn’t meant to depict a useful layout. I should’ve made that clearer.
As for separating by layers vs. other ways, I think there are at least some good arguments for other styles e.g. packaging by feature or by “component” (in Simon Browns understanding). Also, I believe that one can successfully mix these styles once a codebase grows to a certain size.
We’re a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.