komentáře v php

hoj hoj .. otazka pro nejakeho zkusenejsiho. Delam na velkym projektu, a nejsem si jistej, jestli správně príšu komentáře. Třeba nevim, jestli mam nad každou funkcí psát se kterejma proměnnejma pracuje apod .. a jakym stylem to napsat, jestli mam popisovat každej řádek, jestli mam popisovat podmínky apod ... jak se to dela, aby se v tom vyznal nekdo jinej nez ja? Ale nebojte, nepíšu to kostrbatě, jde mi jen o ty komentáře .. dikys
no tak ja treba to delam tak, ze u kazde funkce popisu vstupy a vystupy, co je globalni, co je odkazem, co ta funkce dela, k cemu slouzi. jinak neni potreba komentovat kazdej radek, spis tak logicky celky jako na techle par radcich delam to a to. a taky veci, ktery nejsou zrejmy. dulezity je do komentare neopisovat kod, ale popsat vyznam toho kodu.
tak tady vrele dobporucim poznamky typu
/
*/
a pak to prohnat doxygenem, vygeneruje vam to dokumentaci.
jeste se tam pisou veci typu @param, @return @todo atd. priklad:

/
vyprodukuje inputy k editaci radku bez form a bez submit knofliku html formular pro editaci
* pro id, kde existuji lookup tabulky se vygeneruje select. Bude to v tabulce.
* @param $id = editace daneho radku tabulky
* @param $lookup - parametry pro lookup tabulky kontroluje se pouze je-li nastaveno $lookup['all']
* @return html text inputu a selectu pro formular, bez form a bez submit a reset tlacitek

*/

vysledek prohnani doxygenem je videt na http://markovo.wz.cz/class_doc/index.html
no ja pisem komentare, hlavne ked je tam vela zatvoriek.napr.:
if(IsSet($action)&&$action=='add'){

blablabla

while($lajn=MySQL_Fetch_Array($bleee)){
if(este dajaka podmienka){
este nieco
}//koniec podmienky if

}//koniec cyklu while
blaaaa
}koniec podmienky if(IsSet($action)&&$action=='add')

...proste aby som vedel, ze ktore zatvorky k comu patria :-)
tak tohle je s malinko lepsimi editory fakt zbytecne, kor, kdyz to poradne odsadis...
tom@sQo: Neni misto toho lepsi tohle?

if(IsSet($action)&&$action=='add'){

blablabla
while($lajn=MySQL_Fetch_Array($bleee)){
if(este dajaka podmienka){
este nieco
}
}
blaaaa
}
A do haje, tak ten blbej system zakazuje mezery a odstavce na zacatku radku... Tak jinak... misto tech tvych neprehlednejch komentaru je preci lepsi pro vnoreny funkce/cykly pouzivat odsazeni, ne?

Ja mam pro prihlaseni na stranku asi 150 radkovej kod bez komentaru, ve kterym se krasne vyznam (a urcite i jini) - a to proto, ze kazdej IF a jemu prislusejici ENDIF je na stejny pozici, ale s urcitym odsazenim...

Komentare pouzivam jen v nejnutnejsich pripadech, jako treba "// ###### ZACATEK OBSAHU ######" ;)
IF , ENDIF?

no radsi nic ...
Michal mel namysli asi neco takoveho, ne?

if(IsSet($action) && $action=='add'){
   blablabla
   while($lajn=MySQL_Fetch_Array($bleee)){
      if(este dajaka podmienka){
         este nieco
      }
   }
   blaaaa
}
<HTML>S komentarema bych to moc neprehanel, je to pak spis na skodu (ve spatnem provedeni)
proste nad kazdou funkci napis co dela (napr: vytvoreni uzivatele) a parametry funkce pak zapisuj tak at je hned jasne na co jsou tzn. ne:
function vytvor_uzivatele($j, $e, $u, $m, $p) { ... }
ale:
function vytvor_uzivatele($jmeno, $email, $ulice, $mesto, $psc) { ... }

:) to je ale trosku prehnane :D</HTML>
zacinam robit odsadenie kodu... aaa mate pravdu je to o dost prehladnejsie :)
aj ked poznamky typu:
}//koniec funkcie xyz
este stale ponechavam :)
pravda prehanet s komentari se to taky nesmi, ale uvedu priklad:
$db = $this->db->clone();

foreach ( $cols as $val ) { #v cols jsou nazvy sloupecku z libovolneho selectu.
if ( (strtolower(substr($val, -3, 3)) == '_id') && (strtolower($val) != $table_id) ) {
$c = (isset($this->lookup[$val]) ? $this->lookup[$val] : $this->db->LOOKUP_NAME);
$t = substr($val, 0, -3);

if ( $db->db_exec("select $val, $c from $t") ) {
$$val = array();
while ( $row = $db->db_fetch() ) {
${$val}[$row[$val]] = $row[$c];
}
} else {
echo $db->db_error('sys');
}
}
}

jestli bez komentaru odhadnete, co tohle dela, jenom tak, kdyz se na to podivata a nezkoumate to pul hodiny, tak jste dobri...
jasne .. a koukam, to se jeste pouziva komentar typu #
? :-)
jsem si uz mymslel ze je to historie
tak no tedy ja to pisu takhle:
/
* Odhlaseni uzivatele
* @param $prezdivka - prezdivka
* @param $link - spojeni s SQL
* @function SPC_sql_escape_string() - odstraneni nebezpecnych znaku
* @function SPC_user_update_timeout() - Aktualizace cas. razitka
* @function SPC_user_key_change() - Zmena kodovaneho hesla (klice)
*/
function SPC_auth_logout($prezdivka, $link) // Funkce pro odhlaseni uzivatele
{
$prezdivka = SPC_sql_escape_string($prezdivka);
// Ve funkci se neoveruje spravnost hesla uzivatele. Predpoklada se ze je v dokumentu pred touto funkci volana SPC_auth_check(...)
SPC_user_update_timeout($prezdivka, $link); // Aktualizace casoveho razitka
SPC_user_key_change($prezdivka, $link); // Zmena kodovaneho hesla
}
to je imho moc slozite. zdvojene komentare...
co je na # komentarich historickeho?
no ja to nekde cet v nejaky knizce ..
to psala nejaka trubka, je to std shell a perl komentar a je v php porad i v 5. Navic se mi # libi vic jak // :-) Je tam vic carek a je to jednim znakem.
ok ok