We're trying to standardize the code for ITFlow to make it cleaner and easier to understand/contribute to. We see this as an ongoing, iterative process.
Variable Naming
Javascript - camelCase
PHP - under_score separator all lowercase
Formatting
Tab Spacing - Converting everything to 4 spaces
Generally moving towards PSR 1, but we're not too strict
SQL Table Structure
Table Naming: Using plural naming. Example users
Column Naming: Define by non-plural word of the table name separated with an underscore. Example table users has user_id user_first_name
Primary Keys: Defined first and are defined with the non-plural word of the table with id at the end example user_id
Foreign Keys: Defined by the linked table primary_key field name ex table name companies foreign key company_user_id links to table users primary key user_id
Field Ordering: Primary Key → Data Fields → created_at → Foreign Keys
Code Structure
Procedural Code along with some object-oriented ideas. This makes the code clean and simple, as well as easy to contribute to.
Less is more approach, but sometimes more for better code explanation
Consider how others will use features. Generic features/code/concepts that can be useful to everyone are more helpful than a feature that solves your specific unique requirement.
File/Folder Structure
/api
/v1
/module/
/css
/js
/plugins
/bootstrap
/phpMailer
/Jquery
/uploads
/portal
/post
individual modules
Crucial PHP Files
ajax.php - Used to dynamically load/populate content
post.php - This file is used for all forms to POST to as well as GET. This acts as both the “model” and “controller” in a traditional MVC architecture. Individual files are in the post directory
check_login.php - Checks to see if a user is logged in otherwise send to login screen
header.php - Beginning of HTML data and added CSS libraries
footer.php - End of HTML Data and added js Libraries
config.php - DB Connection and other defined PHP vars
README - General info about the app: Install guide, documentation, etc.