Előtag (namespace szerűen használt jelölés)
lp
php:
lpApplication, lpModule, ,,,,
js: lp.Sys, lp.Table, ....
Adatbázis:
lp_modules
Egyéb adatbázis előtagok:
Webshop:
ws_
Ingatlan:
prp_
Változó nevek
A rendszer változó nevei, szöveg konstans nevei, kommentek angol nyelvűek.
Php, Javascript kódon belüll: camelCase (minden szó nagybetűvel kezdődik kivéve az első)
Osztályok PHP-n belül, JS-en belül: camelCase
Mysql oszlop nevek: kisbetu_alahuzassal_tagolva
Mysql tábla nevek egyes számban legyenek. Vannak többes számú táblanevek, ezek maradnak.
Szóótár bejegyzés változó neve
Angol kisbetűs, aláhúzással tagolt
CSS osztály nevek
Camel case. Css id-nél előfordul a kisbetűs aláhúzásos.
A css azonosítók, osztálynevek azért ne legyenek kötőjellel elválasztottak, mert javascript-ben jelentőségük lehet. Vannak esetek viszont, ahol pont így kell. JS kommentben a leírásuk
Osztály felépítése
Ez a sor minden php fájl elején van
// kommentbe pár szóval: mit is csinál ez az osztály
/***************************** 78db csillag *********************************/
/* Main function.
*
* Loads, sotres modules list,
* Loads, stores module parameters,
* Loads, stores language specific text
*
* Creates the modules as new object
*
* If something wrong, try to clear the $_SESSION!!!!!
*
*/
/*****************************************************************************/
class lpApplication{
/*****************************************************************************/
/* Mit csinál ez a függvény
* Mi a bemenő paramétere (ha van, inkább ne legyen)
* Mi a visszatérési értéke
/*****************************************************************************/
public function f1(){
} // f1
} //class
Komponens nevek
kisbetűs, aláhúzással tagolt
Modul nevek
camelCase
Visszatérési érték (általános adatstruktúra a rendszeren belül)
A legtöbb függvény hiba esetén "null" értékkel tér vissza és ad egy "error" vagy "warning" típusú hibaüzenetet.
Sikeres visszatérésnél egy tömböt ad vissza amelynek felépítése:
array(
error=>array(),
params=>array(
Az adatbázis művelethez kötödő adatok.
Select-nél: numRows (összes lehetséges sor, limit-től függetlenül)
pages
page
Update, delete: affectedRows
insert: insertId
),
data=>array(
Adatbázisból kiolvasott adatok, készek egy foreach ciklusra
),)
Egy ilyen üres tömb létre hozható:
lpUtils::nullResult();
Visszatérés ajax hívás után, js részére:
Json kódolt tömb.
error[]
params[]
html[]
Konstansok
Csupa nagybetűvel, aláhúzással tagolva
SOURCE
DEBUG_MODE
SITE_TEST
SOHA NE CSINÁLD!!!
Ezeket még tesztfázisban sem célszerű használni, mert úgy marad. Nem lesz tőle gyorsabb a munka, nem jön hamarabb az eredmény.
- Inline style a view-ban, html-ben
- !important a css-ben
- 1=1 az SQL-ben
- Adatbázis meghívása a view-ban
- Olyan függvény használata a view-ban, ami adatbázis műveletet végez. (Általában mind ilyen, azért model)
- Szöveg kiíratása bárhol. Csak szótárazott szövegkonstansok legyenek. lpApplication::getText('szoveg_konstans')
- View-ban, PHP változóba beírt html (Ok, előfordul, de 1 000-bő 1 eset, és azt is ki kellene javítani.
- Bárhol, alkalmazás specifikus változók a kódban
- Túl sok @todo. Írj pszeudo kódot, vagy csináld meg. Nem fogsz visszatérni. úgy marad örökre.