SugarCRM SupportDocumentationSugar DeveloperSugar Developer Guide 7.9Introduction

Introduction

Overview

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.

Prerequisites

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.

Supported Platforms

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 Editions

Sugar is available in three editions: Professional, Enterprise, and Ultimate, which are all sold under a commercial subscription agreement. These editions are developed by the same development team using the same source tree with extra modules available in the Enterprise and Ultimate editions.

Note: Some customers may subscribe to the Corporate edition, a legacy offering that is comparable to the Professional edition. 

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.

Development Tools

Sugar has a set of built-in tools that you can use to your advantage when troubleshooting or developing.

Developer Mode

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)
  • JavaScript Controllers (.js)

When Developer Mode is enabled, The Sidecar JavaScript library references the full JavaScript files located in ./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.

Diagnostic Tool

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
  • phpinfo()
  • 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.

Composer

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.

 

Topics

    An overview of code development methodologies for Sugar platform customizations
    Using Composer as a dependency management system for third party libraries.
    Guide to customization deployment steps used by Sugar Professional Services when engaged in CRM projects.
    The purpose of this document is to provide insight to Sugar Developers for upgrading custom Sugar code, extensions, and integrations to Sugar 7.9. This guide focuses on changes in Sugar 7.9 that could cause an immediate impact on Sugar customizations and integrations built for Sugar 7.8.x.

Last modified: 2019-04-04 15:13:36