Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przykład obiektowo napisanej strony..., Gdzie możę znaleźć prosty przykład obiektowo zrobionej całej strony?
l05i3k
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 31.08.2006
Skąd: Stalowa Wola

Ostrzeżenie: (0%)
-----


Witam,
dopiero zaczynam przygodę z obiektowym php'em, a do tej pory tworzyłem stronki proceduralnie.

Przeczytałem kilka kursów, przejrzałem kilkadziesiąt stron książki do programowania obiektowego w php (http://helion.pl/ksiazki/php5zp.htm), ale w zasadzie oprócz poznania w miare dobrze pojęć mi nic to więcej nie dało.

Postanowiłem więc porpostu mniej więcej przygotowac sobie zarys aplikacji, którę chcę stworzyć i się za nią zabrać próboując zrobić to obiektowo. Jednak zatrzymałem się już na samym początku. Nie do końca wiem, jak zacząć clase. Dlatego chciałbym prosić o jakiś adres strony, na której znajduje się w miare prosty sposób wykonana jakaś strona obiektowo. Oczywiście mógłbym wziąć takie postnuke i analizować linijka po linijce, ale wątpie, abym tak szybko sie w tym połapał. Potrzebuję czegoś bardziej ludzkiego i prostrzego. Może ktoś ma gdzieś jakąś swoją starą stronę wykonaną obiektowo i zechciałby udostępnić jej kod źródłowy? (prosiłbym tylko, o to, aby w miare możliwości wykonana ona była w php5)

Lub, jeśli ktoś ma czas, aby podpowiedział jak rozwiącać taki przykładowy problem:
Załóżmy, że mamy jedną ogromną klasę "Tresci", a w niej chcecie umieścić podklasy Artykuły, Newsy, Recenzje itp. I teraz jak się do tego zabrać? Czy już w klasie "Tresci" do konstruktora wywalić polecenie pobrania z bazy pierwszego artykułu, badź news'a? Czy może robić to osobno w każdej podklasie? Jak wykonać konstruktor pobierający odrazu elementy z bazy danych? Łączyć się z bazą standardowo? Czy wykorzystać obiektowa bibliotekę mysqli? Czy tworzyc uchwyt w konstruktorze klasy Treści, czy zapisać metody obsługi bazy w innej klasie i włąnczyć go do bazy Tresci?

Bybym wdzięczny za wszelkie rady, lub delikatne sugestie.
Bardzo jednak bym prosił, o to, aby ktoś w miare możliwości udostępnił mi jakiś swój stary projekt strony zrobiony obiektowo w php5...

Z góry dziękuję.

Ten post edytował l05i3k 2.11.2007, 16:52:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
basso
post
Post #2





Grupa: Zarejestrowani
Postów: 155
Pomógł: 1
Dołączył: 12.12.2010

Ostrzeżenie: (0%)
-----


Witam,
Mam identyczny problem jak kolega który założył ten temat. Wcześniej stworzyłem sporo systemików w Javie, C++ etc. Umiem programować obiektowo. Jednak nigdzie nie ma przykładów, jak powinna wyglądać struktura obiektowej strony. W jaki sposób umieszczać pliki, w jaki sposób przekazywać dane do głównego indexu etc.

Nie ma nawet najmniejszego przykładu w ksiażkach. Z tego co przeglądnąłem w empikach ebookach to wszędzie uczą od podstaw PHP5. Jeśli ktoś tworzy takie strony, bądź wie jak powinno to wyglądać dołączam się do słów "pomóżcie".

Ja widzę to w ten sposób:

Index.php => główny plik przez który wszystko będzie przechodziło.

Index.php
Kod
<?php include("silnik.php"); ?>
<html>
<body>

<?php
// obiekty tworzymy w silniku

echo  $menu->wyswietl(); //
echo  $newsy->srodek_strony_wyswietl();
echo  $newsy->dolna_czesc_strony_wyswietl();
echo  $logowanie ->logowanie();

</body>
</html>


Teraz trzeba w silniku.php załadować wszystkie klasy i przełączać odpowiednie pliki (czyli taki kontroler).
silknik.php

Kod
--------------------------------------- Sekcja  startowa ----------------------------
<?php    
include("all_class.php"); // załaduj najpierw klasy abyśmy mogli z nich korzystać

--------------------------------------- Sekcja bezpieczeństwa ----------------------------    

zabezpiecz=new bezpieczenstwo(); // jakiś obiekt odpowiedzialny za bezpieczeństwo strony
echo zabezpiecz->skrypty() // tutaj można sprawdzać w metodzie czy przy pierwszym wejściu skrypty były okej
                        ->poziom_dostepu(); // ustaw poziom dostępu kogoś kto jest na stronie
                        ->sprawdz_pliki_po_zalogowaniu() //  sprawdź kompatybilność plików

--------------------------------------- Sekcja zmiany treści ----------------------------                                  
// teraz jest problem bo trzeba się bawić jakby w procedularne wywołania.
//Np. Kliknęliśmy w link index.php?akcja=relacje

newsy= new newsy(); // Tworze obiekt newsów
$newsy-> $_GET['akcja'](); // nazwa funkcji taka jak nazwa akcji czyli u nas "relacje"

--------------------------------------- Sekcja końcowa ----------------------------      
//Zamykanie bazy etc.
$baza->close();

?>

Przedstawię klasę newsy
Kod
class newsy
{
    private $tekst_newsow;


   public function srodek_strony_wyswietl() // Wypisz nasz srodek strony
   {
        return $this->$tekst_newsow;
   }


   public function relacje () // czyli nasza którą wywołujemy
   {
         // $baza = new baza; $baza->polacz(newsy);   -> połącz z bazą z newsami , jakieś tam newsy
            
         $this->tekst_newsow= $baza->zwroc(newsy);
            
   }

   // Jeśli zła nazwa metody
   public function __call ($nazwa,$parametr)
   {                
         $this->tekst_newsow="Przepraszamy ale takiej strony nie ma";
         $this->srodek_strony_wyswietl(); //
   }

}



Czyli teraz po kolei jak zostanie odczytywany kod.
Najpierw ładowany jest index.php w którym najpierw ładowany jest silnik.php:

I w silniku:
----> ładowani klas all_class.php -> no bo najpierw musimy załadować klasy żeby potem stworzyć z nich obiekty
----> potem przykładowe metody bezpieczeństwa
----> zmiana treści w naszym przypadku wywołana jest metoda relacje która pobiera nam "newsy relacje"
----> zamykanie połącznień sekcja końcowa
-> koniec silnika.php

Po zakończeniu skryptu silnika jesteśmy w tym miejscu w pliku index.php

Kod
<?php include("silnik.php"); ?>    <--- ZAKOŃCZYŁ SIĘ SILNIK I PRZECHODZIMY DALEJ
<html>
<body>
...
[code]

Następnie idą zgodnie z kodem , następuje sekcja <html><body>.
W body mamy następnie:

[code]
<?php
echo  $menu->wyswietl();
echo  $newsy->srodek_strony_wyswietl();
echo  $newsy->dolna_czesc_strony_wyswietl();
echo  $logowanie ->logowanie();
</body>


Czyli wyświetlamy jakieś tam nasze menu które ja nie robiłem.

Potem finalna nasza praca. Wyświetlanie środka strony.
W naszym przypadku to będą nasze newsy (IMG:style_emoticons/default/smile.gif) . Czyli metoda $newsy->srodek_strony();

Potem dolna cześć której nie robiłem i jakieś tam logowanie (IMG:style_emoticons/default/smile.gif)


Ja to tak wymyśliłem, nie wiem czy to jest zgodne z czymkolwiek, ale nigdzie nie ma książek i nie wiem czy w ten sposób możemy postępować. Proszę o pomoc.

Ten post edytował basso 20.12.2010, 11:47:28
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 01:29