The Sugar Developer Guide is an essential resource for developers who are new to Sugar or to CRM and web-based applications. It describes how to configure and customize the Sugar platform for a broad range of tasks applicable to any organization that has a need to manage business relationships with people.
Using and understanding the documentation contained in the Sugar Developer Guide requires basic programming and software development knowledge. Specifically, you should be familiar with the PHP general-purpose scripting language and the SQL programming language for accessing databases.
Understanding Sugar's Framework
Designed as the most modern web-based CRM platform available today, Sugar has quickly become the business application standard for companies around the world. The Sugar application framework has a sophisticated extension model built into it, allowing developers to make significant customizations to the application in an upgrade-safe and modular manner. It is easy to modify the core files in the distribution; you should always check for an upgrade-safe way to make changes. Educating developers on how to make upgrade-safe customizations is one of the key goals of this Developer Guide. For more information on Sugar's structure, please review the architecture section.
Originally, Sugar® was written on the LAMP stack (i.e. Linux, Apache, MySQL, and PHP), but has since added support for every operating system on which the PHP programming language runs, for the Microsoft IIS web server, and for the Microsoft SQL Server, IBM® DB2®, and Oracle databases. For more information about supported software versions and recommended stacks, please refer to the main Supported Platforms page.
Sugar has several CRM products available: Sugar Sell, Sugar Serve, Sugar Ultimate, Sugar Enterprise, and Sugar Professional, which are all sold under a commercial subscription agreement. These products are developed by the same development team using the same source tree with different modules and features available depending on the product. A comparison of each product's features is available in the License Types section of the User Management documentation in the Administration Guide.
Basic Development Rules for Sugar Products
Unless SugarCRM has given you express permission to do so, the following are what not to do when you are configuring, customizing or modifying this Sugar product:
- Do not remove or alter any SugarCRM or Sugar copyright, trademark or proprietary notices that appear in the Sugar products.
- Do not "fork" the Sugar software (e.g., take a copy of source code from this product and start independent development on it, creating a distinct and separate piece of software).
- Do not modify, remove or disable any portion of SugarCRM's "Critical Control Software."
- Do not combine or use the Sugar products with any code that is licensed under a prohibited license (e.g., AGPL, GPL v3, Creative Commons or another similar license that would "taint" the Sugar products and require you to share the source code for this product with a third party).
- Do not use any part of the Sugar products for the purpose of building a competitive product or service or copying its features or user interface.
Sugar has a set of built-in tools that you can use to your advantage when troubleshooting or developing.
Developer Mode will allow for Sugar to recompile cached files when the page is reloaded. The following file types are rebuilt:
- Handlebar Templates (.hbt)
- Smarty Templates (.tpl)
./sidecar/ rather than the concatenated and minified cached versions. You can turn on Developer Mode by navigating to Admin > System Settings. For more information, please refer to the System documentation.
Note: This setting should remain off unless developing because it will degrade system performance.
When troubleshooting issues, you may find the diagnostic tool to be helpful. This tool will export a zipped package containing the requested diagnostics and is available even if you are hosting your instance on Sugar's cloud service.
The diagnostic tool has the ability to export the following:
- SugarCRM config.php
- SugarCRM Custom directory
- MySQL - Configuration Table Dumps
- MySQL - All Tables Schema
- MySQL - General Information
- MD5 info
- Copy files.md5
- Copy MD5 Calculated array
- BeanList/BeanFiles files exist
- SugarCRM Log File
- Sugar schema output (VARDEFS)
You can use the diagnostic tool by navigating to Admin > Diagnostic Tool. For more information, please refer to the System documentation in the Administration Guide.
When building applications, some developers prefer to use Composer to manage their external dependencies and make them more intuitive. For more information, please refer to the Composer documentation.
Last modified: 2020-04-02 19:21:41