Coding Standards
From FusionPBX
- 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.
- class, method, function and variable names
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
- application
- 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
- names
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
- How to create the primary key name
Code Documentation