![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 5.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Chce napisac swoj pierwszy silnik strony. Wiem mniej, wiecej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) na czym to polega (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) . Napisalem juz wiekszosc klass ktore beda wchodzic w jego sklad tzn. mam klasy glowne, chyba rdzeniem sie to nazwywa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , i klasy ktore korzystaja z wlasciwosci/metod klas glownych. Korzystam takze ze smartow, tzn. mam przygotowane pliki w szablonach i wiem jak ich uzywac. I moim problemem jest brak pomyslu/inteligencji aby to polaczyc w skladna calosc. Dodatkowo czytajac wasze posty mozna sie domyslic, ze zalecacie korzystanie z referencji. I tutaj (skonczywszy dluugi wstep) pojawiaja mi sie pytania: 1. Czy klasa 1 ktora jest "korzeniem" wszsytkich klas ma odpowiadac za inicjowanie innych klas? np. [php:1:c9afb0cb4f]<?php class core { function news() { $news = new klasaobslugujacanewsy; $news -> jakasfunkcjaztejklasy(); } } ?>[/php:1:c9afb0cb4f] itd. chyba rozumiecie o co mi chodzi? Mam problemy z przekazywaniem swoich mysli (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) 2. Czy zawsze nalezy pracowac na kopiach obiektow? Jezeli tak to dlaczego? 3. Czy nalezy inkludowac biblioteki klass uzalezniajac je od np. strony na jakiej znajduje sie user? np. [php:1:c9afb0cb4f]<?php if ($_GET[strona] == newsy) { include ('newsy.class.lib'); } class core { if ($_GET[strona] == newsy) { function news() { $news = new klasaobslugujacanewsy; $news -> jakasfunkcjaztejklasy(); } } } ?>[/php:1:c9afb0cb4f] Jak bede mial jeszcze jakies pytania to bede pytal (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzieki za odp. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Cytat 1. Czy klasa 1 ktora jest "korzeniem" wszsytkich klas ma odpowiadac za inicjowanie innych klas?
To zalezy. JA robie to w ten sposob, ze glowna moja klasa (nie wiem tylko czy mozna to nazwac God Class... ale mniesza o to) jest klasa Page, ktora to odpowiada za inicjowanie pozostalych - podobnie jak to ma miejsce np w asp.net. W niej po odpaleniu Proceed() przetwarzam kolejne klasy i zadania. Mozna to jednak zrobic inaczej: nie uzywac jednej klasy glownej tylko strukturalnie odalac po kolei klasy poza obiektem glownym (jezeli takowy istnieje). Cytat [php:1:ce493d9ea5]<?php
class core { function news() { $news = new klasaobslugujacanewsy; $news -> jakasfunkcjaztejklasy(); } } ?>[/php:1:ce493d9ea5] Jezeli ma to byc klasa core to metoda News jest tu nie na miejscu. Zamiast tego dal bym ogolna metode do ladowania obiektu new np: InitModule( 'news' ); Trzeba pamietac w OOP, ze klasa to rzecz z realnego swiata i nie mozna do jednej rzeczy pakowac wlasciwosci innych. Przyklad: klasa ksiazka nie powinna miec metod Odkurzaj() - z klasy Odkurzacz, czy Jedz() z klasy np. samochod. Podsumowujac: Core musi miec tylko to co jest jej niezbedne ale nie powinna posiadac metod, wlasciwosci przeznaczponych dla jednego (innego) obiektu. Cytat 2. Czy zawsze nalezy pracowac na kopiach obiektow? Jezeli tak to dlaczego?
Co rozumiesz przez kopie obiektu ? Chodzi Ci o klonowanie ? Cytat 3. Czy nalezy inkludowac biblioteki klass uzalezniajac je od np. strony na jakiej znajduje sie user?
Powineines includowac tylko te klasy, ktore Ci sa w danym momencie niezbedne. CZyli np na podstawie id przekazanego przez usera. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 17:45 |