Ciao ragazzi, ho bisogno di aiuto con le classi. Io ho sempre programmato senza in php4; ora sono stato fermo più di un anno e mi sto riavvicinando alla programmazione e di conseguenza al php5 che è molto più orientato alle classi. Ho letto molti articoli anche su questo sito sulle classi, qualcosina ho capito ma nn mi entra proprio in testa come usarle... comincio a pensare di essere idiota (e voi direiete, hai ragione! :P).
Quindi ho pensato che magari postando delle mie funzioni potreste spiegarmi come "convertire" il tutto in una classe e farmi vedere come utilizzarlo poi.
I contenuti in sé sono scarni perché è solo un esempio ma si capisce (credo) cosa ne esce fuori.
ho una funziona che si chiama outputpage che prende un template e rimpiazza le varie parti:
Codice PHP:
function outputpage($titolo,$stile,$header,$navisx,$navidx,$central,$footer,$jc=null,$tpl="page0"){//costruzione ouput pagina
//$tpl implementato in anticipo per usare layout differenti in caso
ob_start();
include('tpl/'.$tpl.'.tpl');
$pagina = ob_get_clean();
$pagina =str_replace("{titolo}",$titolo,$pagina);//titolo nel browser
$pagina =str_replace("{stile}",$stile,$pagina);//stile della pagina che può cambiare
$pagina =str_replace("{evenjc}",$jc,$pagina);//nel caso in cui ci siano stati js o altro da inserire nell <head></head>
$pagina =str_replace("{header}",$header,$pagina);//pezzo superiore, titolo della pagina
$pagina =str_replace("{navisx}",$navisx,$pagina);//navigazione sx
$pagina =str_replace("{navidx}",$navidx,$pagina);//navi dx
$pagina =str_replace("{central}",$central,$pagina);//copro centrale del testo
$pagina =str_replace("{footer}",$footer,$pagina);//piè di pagina
return $pagina;
}
L'utilizzo è:
Codice PHP:
$pagetit="Home";
//etc etc
echo outputpage($pagetit,$stile,$header,$navi,$navi2,$cent,$footer);
Per definire le varie variabili uso alcune funzioni che le costruiscono, una che racchiude il tutto:
Codice PHP:
}function pezziPage($header,$navsx=null,$navdx=null){//mettiamo tutti i pezzi in un array pronti per l'output
$arrpz=array();
$arrpz['header']=headpage($header);//"titolo" della pagina, ci andrà anche altra roba
$arrpz['navisx']=navisxpage($navsx);//colonna navigazione a sx
$arrpz['navidx']=navidxpage($navdx);//colonna navigazione a dx
$arrpz['footer']=footpage();//piè di pagina
return $arrpz;
}
E le varie funzioni che richiamo:
Codice PHP:
function headpage($input){//costruiamo il pezzo superiore della pagina
$output="<h1>".$input."</h1>";
return $output;
}
function navisxpage($input){//costruiamo la nav sinistra
//$input lo useremo più avanti
$output='[url=""]Link[/url]</br>[url=""]Altro Link[/url]</br>[url=""]Altro Link[/url]</br>[url=""]Altro Link[/url]</br>[url=""]Altro Link[/url]</br>[url=""]Altro Link[/url]</br>[url=""]Altro Link[/url]</br>';
return $output;
}
function navidxpage($input){//costruiamo la nav destra
//$input lo useremo più avanti
$output='[url=""]Linkdx[/url]</br>[url=""]Altro Linkdx[/url]</br>[url=""]Altro Linkdx[/url]</br>[url=""]Altro Linkdx[/url]</br>[url=""]Altro Linkdx[/url]</br>[url=""]Altro Linkdx[/url]</br>[url=""]Altro Linkdx[/url]</br>';
return $output;
}
function footpage(){//costruiamo il piè di pagina
$output="<h5>questo è il piè di pagina</h5>";
return $output;
}
Quindi nella pagina dell'output avrò una cosa del genere:
Codice PHP:
$pagetit="Home";
$stile=$_SESSION['css'];
$page=pezziPage("Un titolo formattato che cambierà");
$header=$page['header'];
$navi=$page['navisx'];
$navi2=$page['navidx'];
$footer=$page['footer'];
$cent=headpage("Ciao mondo");
echo outputpage($pagetit,$stile,$header,$navi,$navi2,$cent,$footer);
Se tutto ciò volessi farlo con una classe unica sarebbe possibile? So che lo è ma nn capisco come mettere tutto in una classe unica e soprattutto come richiamare l'oggetto per farmi restituire quello ceh voglio...
Se qualcuno mi fa la classe di quello che ho postato sopra forse mi aiuterebbe a capire (sicuramente la comparazione di due esempi uno funzioni solo e una classe mi aiuterà).
Grazie in anticipo!
PS: Scusate se è così lungo il post