WineHQ Application Database Coding Practice ######## # HTML # ######## - Respect html coding standards. The current doctype is HTML 4.01 transitional (http://www.w3.org/TR/REC-html40/) Try to make your content validate nicely (http://validator.w3.org/) - Think about upward compatibility. Some day we might choose another doctype like XHTML 1.0 (i.e.
instead of
, avoid using style tags and properties (bgcolor, borders & co) and use stylesheets instead) ####### # PHP # ####### /********************/ /* variables naming */ /********************/ variables that don't come from outside your script (i.e. that aren't fetched from superglobals) should be named this way (a.k.a hungarian notation): prefix + var_name Where prefix is one of: Scalar types: i for integers f for floats s for strings b for booleans Compound types: a for arrays o for objects Special type: h for handles the rest of the variable's name is using camel style examples: $aUsers $iTopicId $hRecordSet $sQuery $hResult /********************/ /* functions naming */ /********************/ 1)functions name should be declarative (i.e. put a declarative verb as the first word like in do_someting()) 2)methods (functions inside a class) are named like this: setMyName() (i.e. words separated with an upper case character) 3)normal functions (outside a class) are named like this: query_appdb() (i.e. words separated with an underscore) /*****************************/ /* general coding guidelines */ /*****************************/ 1) functions, loops and if's are written this way (look at the way {}'s are lined up): 2) indentation is made of 4 spaces (no tabs please) 3) line length should be no more than 130 characters, preferably < 80 4) comments: Muli line code should look like this. /** * This functions does nothing interesing. * More comments to come here... */ function bar() { foo(); } /** * If you want to highlight some thing this is permissable. for a single line */ if(!isset($appId)) { /* a single comment should be like this */ } else { /* Shows a particular version. */ if($versionId) { /* Code comes here */ } /* Shows an apps summary */ else { /* Another code comes here */ } } 5) use long php tags () instead of short ones () as : a) it could be removed from future versions of php b) if conflicts with tags like that are used in xhtml 6) do not use vars that require register_globals to be on as: a) it is off by default in php 4.1+ b) it is more secure c) it makes it easier to understand where your vars are comming from (forms, session, etc.)