meta data for this page
This is an old revision of the document!
Code Standards
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.
- LICENSE - Licensing & copyright info
- setup.php - Initial setup file (configures database, config.php, etc)
PHP File naming
section_element_action_function.php
E.g.:
- user_add_modal.php
- client_contact_add_modal.php