![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 01:29 |