Strona WWW w obiektowym PHP

php logoPisałem wcześniej o możliwości wczytywania poszczególnych elementów strony WWW z plików za pomocą funkcji include. Istnieje bardziej zaawansowana metoda tworzenia projektów stron internetowych. Niesie ona za sobą dużo większe możliwości związane z obiektowym PHP. Główną zaletą tworzenia witryn obiektowo to fakt, iż większość pracy wykonują za nas klasy, musimy jedynie zaktualizować tą, w której treść jest zmienna. Jak łatwo się domyślić, nic nie jest oczywiście doskonałe, HTML’em.

Poniżej przedstawić chciałbym strukturę strony napisanej w obiektowym PHP.

<?php
require ('stale.inc'); // zainkludowanie stałych elementów strony
 
class Podstrona extends Strona
{
   public function Pokaz() // użycie funkcji Pokaz() do wyświetlenia strony
   {
      echo "<html>\n<head>\n";
      $this->PokazTytul();
      $this->PokazKeywords();
      $this->PokazStyle();
      echo "</head>\n<body>\n";
      $this->PokazNaglowek();
      $this->PokazMenu($this->Przyciski); // pokazanie przycisków
      echo $this->Zawartosc; // zmienna zawartość strony
      $this->PokazStopke();
      echo "</body>\n</html>";
   }
}

Jak łatwo zauważyć każda klasa tyczy się konkretnej części witryny [podobnie jest używając include lub require]. Plik strona.inc posiada wszystkie klasy, tzn. PokazTytul, PokazNaglowek itd. Przy pisaniu kodu HTMl przeplatanego z PHP warto zapamiętać, że czasem nie opłaca się wszystkiego zamykać z echo. Lepiej zamknąć kod PHP [?>] i otworzyć go ponownie po dłuższej części kodu HTML [<?].
Taki schemat wykonania strony WWW daje nam również łatwiejsze napisanie kodu odpowiedzialnego za ukazanie aktywnego przycisku. Wystarczy przyrównać ciąg znaków występujący po nazwie naszej domeny do nazwy klasy, która aktualnie jest wyświetlana.

Np. mając stronę http://webdesign.grzegorzbielak.pl/podstrona.php przyrównujemy „podstrona” do nazwy naszej klasy [nie uwzględniając wielkości liter].

You can leave a response, or trackback from your own site.

Leave a Reply

Powered by WordPress | Designed by: NewWpThemes | Thanks to Free WordPress Themes