Budujemy obiektowo cz 1

Data: 2015-10-27, autor: Michał Misztal

Jakiś 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"

<!DOCTYPE html> <html lang='pl'> <?php require_once 'includes/head.php'; ?> <body> </body> </html>

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.

Skomentuj lub zgłoś błąd

© Michał Misztal 2023