NAMING & CODING 
CONVENTIONS

The extensions in the ext folder have different prefixes. To understand the meaning of these prefixes have a look a the list below. 
Please note that there is no "magic" involved with the extension names except the fact that autoloading will only work with "tP" prefixed extensions. So basically you are free to name extensions as you want.
tPy_
Indicates that the extension requires tPy.php.

tPw_
An extension that has a view.php and can be used as a widget. The w stands for "widget".

tPc_
A content type extension that can be added to the page by users usually. The c stands for "content".

tPi_
Content elements that will be included as an iframe and are therefore standalone.

tPe_
An extension that is related to the frontend editing. e is for "editor".

tPyA_
Extensions that usujally require super admin access or the extended frontend helper ext_frontend/super_admin/tPyA.php.
HINT: Extensions have to start with tP if you want to autoload them or if you want to use the ajax bridge.

General coding recommendations and guidelines


In general there are no automatic checks or helpers to output well formatted code. This means you are free to code but in order to match the TURBOPY coding guidelines you have to follow these coding guidelines:

General
To match the general coding style you are encouraged to use $under_score variable names and camelCase methods. This is the same for PHP and JS. Javascript objects are treated as variables. If they hold a method for example it is treated as a method. Also in most cases static classes should be used because it greatly reduces complexity. Most important: Meaningful variable names! Shortcuts like $my_prv_smthg should be avoided. Vars in loops or very common var names like $msg instead of $message are ok. Also we internally use the Golang idea to write class.user and class.setUser instead of class.getUser and class.setUser. That means for getters you can omit the "get".

Example
var my_obj = {
    some_setting:'foo',
    doSomething:function() {
      // something great is going on here
    },
}
CSS class names
Should be prefixed with the according extension name and with underscore.
Example: tPc_advancedForm_hoverlist.

Class / Object literal names
Should be prefixed as shown above and have a meaningful name in camelCase after that.
Example: tPc_advancedForm. Note that tPc_advancedForm_sub would be treated differently by autoloading mechanisms - thats why we use camelCase here.

DOM IDs
Should be prefixed with the according exension name and with hypens.
Example: tPc_advancedForm-form (we don't do it always correctly as well but you get the idea). 

Variables in PHP and Javascript
Should be always with underscores - camelCase is preserved for methods.

Methods in PHP and Javascript
Should be always with camelCase
Quotation marks
We prefer ' to " for variables. This enhances readabilty. So instead of <?= "hello $user_name" ?> it is preferred to write <?php echo 'hello ' . $user_name ?>. The same goes for JS. In HTML you should use doublequotes like <div id="my-div"> by default.