In previous posts on this topic we learned how to locate and distinguish between the official Zurmo remote source code repository on Bitbucket, and the source code that is running on your hosted installation, or instance of Zurmo CRM. We also reviewed two different ways that you can browse the Zurmo file structure. In this post, you get a reference, “cheat-sheet” which describes the purpose of each of the directories in the Zurmo file system.
Starting from the root of your zurmo installation: (~/www/zurmo/ on Arvixe)
First, we need to explain the difference between the Zurmo “core” and the rest of the Zurmo code that lives outside the core. This is often confusing to new Zurmo administrators and developers. Because a lot of what you and I might consider “core” functionality is actually in /app/protected/modules and elsewhere – not only in /protected/core.
It’s my opinion, this design was either a brilliant stroke of genius or a bit of an oversight when the Zurmo architects first came up with the file system directory layout. protected/core certainly does contain common code, used in all Zurmo modules, but so does /protected/modules/zurmo. Furthermore all of the security related code as well as the application view code is also located outside protected/core. One theory has it that “protected/core” actually was the seed code from prior projects, on top of which the Zurmo CRM application is built. That would lead one to suppose that possibly other types of applications besides CRM could leverage the same code in “protected/core“. Sounds intriguing, but probably not likely. The bottom line is that any Zurmo developer or administrator should be aware that code used by more than one module may be spread out in different areas of the file structure, so don’t rely on instinct alone when you are looking for a bug or when you need to review or leverage some of the common functionality Zurmo provides.
Next we’ll take a deeper dive into the /app/protected/modules directory and review the anatomy of a module.
(c) 2014 Windsor Wallaby. All rights reserved.