|
@@ -1,90 +1,69 @@
|
|
# Coding Standards
|
|
# Coding Standards
|
|
|
|
|
|
-## **General**
|
|
|
|
|
|
+## General
|
|
|
|
|
|
-class, method, function and variable names
|
|
|
|
|
|
+### Class, Method, Function, and Variable Names
|
|
|
|
+- Intuitive
|
|
|
|
+- Lower case
|
|
|
|
+- Words separated with an underscore
|
|
|
|
+- Do not abbreviate words unless the name becomes excessively long
|
|
|
|
+- Indentation: use tabs instead of spaces
|
|
|
|
+- Recommended to code with an editor showing invisible characters to prevent trailing spaces and tabs
|
|
|
|
|
|
-- 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
|
|
|
|
|
|
-## **Applications**
|
|
|
|
|
|
+Apps are stored in the `fusionpbx/app` directory.
|
|
|
|
|
|
-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.
|
|
|
|
|
|
-**root.php**
|
|
|
|
|
|
+### app_config.php
|
|
|
|
|
|
-- Ensures the document[root]{#root} server variable is set and then
|
|
|
|
- sets the include path from the root of the website.
|
|
|
|
|
|
+#### Application
|
|
|
|
+- `app_name`
|
|
|
|
+- `app_uuid`
|
|
|
|
+- `app_category`
|
|
|
|
+- `app_subcategory`
|
|
|
|
+- `app_description`
|
|
|
|
|
|
-**app_config.php**
|
|
|
|
|
|
+#### Menu
|
|
|
|
+- Defines location in the menu.
|
|
|
|
|
|
-**application**
|
|
|
|
|
|
+#### Permissions
|
|
|
|
+- Defines the permissions the application uses and the default groups assigned to those permissions.
|
|
|
|
|
|
-- app[name]{#name}
|
|
|
|
-- app[uuid]{#uuid}
|
|
|
|
-- app[category]{#category}
|
|
|
|
-- app[subcategory]{#subcategory}
|
|
|
|
-- app[description]{#description}
|
|
|
|
|
|
+#### Data Schema
|
|
|
|
+- Defines the structure of the field names and types.
|
|
|
|
|
|
-**Menu**
|
|
|
|
|
|
+### app_defaults.php
|
|
|
|
+- Runs during the install and when the upgrade schema is called.
|
|
|
|
|
|
-- defines location in the menu.
|
|
|
|
|
|
+### app_languages.php
|
|
|
|
+- Defines a PHP array of the words, phrases, and sentences used in the project.
|
|
|
|
|
|
-**Permissions**
|
|
|
|
|
|
+### Files
|
|
|
|
+- **Names**
|
|
|
|
+ - Written in lower case
|
|
|
|
+ - Words are separated by an underscore
|
|
|
|
+ - Use full words when possible
|
|
|
|
+ - Do not prefix with `v_` (files currently prefixed this way will be renamed to remove the `v_`)
|
|
|
|
+ - Use a program showing invisible spaces
|
|
|
|
+ - Eliminate tabs and spaces at the end of a line
|
|
|
|
+ - Use line feed only (no carriage return and line feed)
|
|
|
|
|
|
-- Defines the permissions the application uses and the default groups
|
|
|
|
- assigned to those permissions.
|
|
|
|
|
|
+## Database
|
|
|
|
|
|
-**Data Schema**
|
|
|
|
|
|
+### Tables
|
|
|
|
+- Prefixed with `v_` (this may be configurable in the future)
|
|
|
|
+- Table names are plural unless the name is an acronym
|
|
|
|
+- Use full words, not abbreviations
|
|
|
|
+- UUIDs used for relational IDs instead of auto-increment identifiers
|
|
|
|
|
|
-- Define the structure of the field names, and types.
|
|
|
|
|
|
+### Fields
|
|
|
|
+- `domain_uuid`
|
|
|
|
+- Primary key name is the non-plural name of the table without the `v_` prefix
|
|
|
|
+ - **How to create the primary key name**:
|
|
|
|
+ - For a table named `v_users`, 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`.
|
|
|
|
|
|
-**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]{#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]{#users} take remove the
|
|
|
|
- \'[v]()\', make it non-plural and add \'[uuid]{#uuid}\' to
|
|
|
|
- the end of the field name. In this example the primary key
|
|
|
|
- would be user[uuid]{#uuid}
|
|
|
|
-
|
|
|
|
-Code Documentation
|
|
|
|
-
|
|
|
|
-<http://www.phpdoc.org/>
|
|
|
|
|
|
+## Code Documentation
|
|
|
|
+[http://www.phpdoc.org/](http://www.phpdoc.org/)
|