Coding Standards


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.


Apps are stored in fusionpbx/app directory.


  • Ensures the document_root server variable is set and then sets the include path from the root of the website.



  • app_name
  • app_uuid
  • app_category
  • app_subcategory
  • app_description


  • defines location in the menu.


  • 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.


  • Is run during the install and when upgrade schema is called.


  • Defines a php array of the words, phrases and sentences used in the project.


  • 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.


  • 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