Coding Standards


 * General
 * class, method, function and variable names
 * intuitive
 * lower case
 * words separated with an underscore
 * do not abbreviate the words unless it makes the name excessively long.
 * indentation use tabs instead of spaces
 * recommended to code with editor showing invisible characters to prevent trailing spaces and tabs.

Applications
 * apps are stored in fusionpbx/app directory
 * root.php
 * ensures the document_root server variable is set and then sets the include path from the root of the website
 * app_config.php
 * application
 * app_name
 * app_uuid
 * app_category
 * app_subcategory
 * app_description
 * menu
 * defines location in the menu
 * permissions
 * defines the permissions the application uses
 * and the default groups assigned to those permissions
 * data schema
 * define the structure of the field names, and types
 * app_defaults.php
 * is run during the install and when upgrade schema is called
 * app_languages.php
 * defines a php array of the words, phrases and sentences used in the project


 * Files
 * names
 * written in lower case
 * words are seperated by an underscore
 * use full words when possible
 * do not prefix with 'v_' files that are currently prefix in this way will be renamed to remove the 'v_'
 * program showing invisible spaces
 * to eliminate tabs and spaces at the end of a line
 * line feed only
 * no carriage return and line feed

Database
 * tables
 * prefixed with v_ this may be configurable in the future
 * tables names are plural unless the name is used is an Acronym
 * use full words not abbreviations
 * uuids used for relational id instead of auto increment identifiers
 * fields
 * domain_uuid
 * primary key name is the non plural name of table without the v_ prefix.
 * How to create the primary key name
 * If the table name is v_users take remove the 'v_', make it non-plural and add '_uuid' to the end of the field name. In this example the primary key would be user_uuid

Code Documentation
 * http://www.phpdoc.org/