![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
clasa 'kernel' w pliku index.php inicjuje np. sterownik sql i inne
oraz wczytuje odpowiedni moduł. Kod <?php class kernel { function kernel($action = 'index') { include_once('db.class.php'); $db = new db_class(); include('mod.'.$action.'.php'); $mod = new $action; echo $mod->module_start(); } } $kernel = new kernel($_GET["action"]); ?> klasa 'module' Kod <?php class module { function module_start() { // tu jakies pobieradnie np. newsow z bazy // i oddanie wyniku return $costam; } } ?> No i całość wywołujemy np. przez index.php?action=module Pewnie jest tu wiele błędów bo nie pojmuje wszystkich założeń OOP ale z chęcią wysłucham uwag. A główne pytanie brzmi: Jaki wg. was sposób jest najlepszy na przekazywanie obiektu clasy 'db_class' do klasy 'module'. Jak powinienem to zrobić aby było zgodnie z OOP. Wiele osób stosuje dyrektywe global i globalizują obiekty ale to raczej nie podchodzi pod OOP. Robić to przez singleton i np. w klasie 'module' wywoływać $db = db_class::getInstance(); a potem operować na pobranym obiekcie Jakie macie doświadczenia bo ja nie do końca kumam całe to pisanie obiektowe Częściej stosuje klasy jako zwykłe pojemniki na funkcje. -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 24.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat No i całość wywołujemy np. przez index.php?action=module ja bym az tak nie ufal uzytkownikowi by pobieral nazwe modulu bezposrednio ![]() Cytat Jaki wg. was sposób jest najlepszy na przekazywanie obiektu clasy 'db_class' do klasy 'module'. Jak powinienem to zrobić aby było zgodnie z OOP. Wiele osób stosuje dyrektywe global i globalizują obiekty ale to raczej nie podchodzi pod OOP. moim zdaniem globalizacja to najlepszy sposob poniewaz mosialbys wszedzie przesylac obiekt do sterowania bazy przez referecje a prawdziwego OOP nigdy nie doznasz piszac w php -------------------- If you can't find a program that does what you want it to do, then write your own.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Cytat Cytat No i całość wywołujemy np. przez index.php?action=module ja bym az tak nie ufal uzytkownikowi by pobieral nazwe modulu bezposrednio ![]() To było akurat celowe uproszczenie. wiadomo, że wcześniej zrobie odpowiednie weryfikacje ;] To tylko dla przykładu. No a skoro twierdzisz, że globalizacja jest ok to chyba przy tym zostane. Tylko wszyscy wszędzie jakoś tak krzyczą 'nie używaj zmiennych globalnych' ;] Ale co tam ![]() -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 15.06.2004 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
Jest kilka sposobów na przekazanie obiektu. W PHP4 wygląda to mniej więcej tak:
lub tak, jak wspominałeś - poprzez singletona
Ale takie rzeczy to pewnie wiesz... ![]() ![]() -------------------- Sygnaturka: jest
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 5.07.2025 - 14:27 |