Budujemy obiektowo cz 1
Data: 2015-10-27, autor: Michał MisztalJakiś czas temu napisałem firmową stronę TV-MAX. Trochę czasu minęło... Więc zamierzam ją poprawić a w dodatku wszystko udokumentować. Mam zamiar przerobić ją w program orientowany obiektowo. Skupię się na szkielecie czyli PHP+HTML+CSS. Wodotryski nie będą aż tak ważne, tzn to co będzie potrzebne również będzie zawarte ale z umiarem. Skupię się na logice. CSS i JS może odłożę na kiedy indziej. No i nie mam zamiaru zaczynać kolejnej lekcji programowania. W sieci ich pełno. Tutaj mała dygresja - większość z nich pisana jest pod wpływem. Nie, nie pod wpływem wiadomo czego. Ale właśnie pod wpływem nie wiadomo czego. Brakuje im poważnego podejścia do tematu (ja np w tym momencie minę mam bardzo poważną) i skupienia. Skupię się na projekcie z (hmm...) "krwi i kości"
Teraz przechodzimy do pliku includes/head.php. Tworzymy klasę i jej cechy
<?php
class HEAD{
private $sAutor="autor";
private $sMDescription;
private $sMKeywords;
private $sTitle;
private $aStylesheet=[];
private $aJScript=[];
private $aGFonts=[];
}
?>
Ok. Teraz pora na metody tej klasy. Powiedzmy, że jedna metoda będzie uzupełniała jedną cechę. Czyli
public function set_Descripton($description){
$this->sMDescription=$description;
}
public function set_Keywords($keywords){
$this->sMKeywords=$keywords;
}
public function set_Title($title){
$this->sTitle=$title;
}
Cechy odpowiadające za czcionki, style i skrypty js to tablice. Zrobiłem tak po to aby wylistować je szybko w pętli bo po co pisać ten sam kod wiele razy. Dla czcionek metoda uzupełniająca cechę wygląda tak
public function set_GFonts($gfonts){
for($i=0;$i<count($gfonts);$i++){
array_push($this->aGFonts,$gfonts[$i]);
}
}
Jeżeli chodzi o skrypty i style to wymyśliłem to tak. Argumentem będzie tablica, pierwszą wartością będzie folder w którym znajdują się pliki a pozostałymi nazwy plików. Do tego będzie można wywołać tą metodę wiele razy na wypadek gdyby pliki znajdowały się w różnych katalogach. Nowa tablica będzie doklejana do istniejącej. A wygląda to tak
public function set_Stylesheet($stylesheet){
for($i=1;$i<count($stylesheet);$i++){
array_push($this->aStylesheet,$stylesheet[0].$stylesheet[$i]);
}
}
public function set_JScript($jscript){
for($i=1;$i<count($jscript);$i++){
array_push($this->aJScript,$jscript[0].$jscript[$i]);
}
}
Na dzisiaj to tyle. Istnieje klasa, cechy i jej metody. Są też podwaliny pliku index.php. W następnym wpisie utworzę metodę tworzącą sekcję head oraz utworzę obiekt klasy HEAD.