![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 28.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam ...
Od pewnego czasu się zastanawiam nad jedna rzeczą a mianowicie: W pliku index.php mam:
a teraz plik db.class.php :
a teraz plik template.class.php :
pytanie to jak unikać takiego zapetlenia ? Jak to dołączanie plików wygląda w zaawansowanej strukturze ? Jestem początkujący - widać słychać - i chciałbym aby koś mi wytłumaczył idee (IMG:style_emoticons/default/ohno-smiley.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o autoloaderach
http://php.net/manual/en/language.oop5.autoload.php |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 28.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi mi o taką sytuacje jeżeli chciałbym zbudować klasę user.class.php (wyświetlanie formularza do rejestracji, formularza logowania itp) i includowałbym tu plik: template.class.php a potem ją odziedziczył:
a w pliku index.php:
to czy w pliku index.php nie będę miał 2x template.class.php (IMG:style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
IMO nie powinieneś używać include, ponieważ w przypadku braku takiego pliku (błędna ściezka, lub brak uprawnień odczytu) dostaniesz notica, a sam skrypt poleci dalej. Zamiast include używaj requiere, żeby nie dołączyć dwa razy tego samego pliku, używasz requiere_once, lub include_once. Są nieco wolniejsze, ale jak chcesz mieć pewność że dany plik zostanie wczytany tylko raz, to używasz reuiere_once lub include_once.
Druga sprawa, jest taka że twoja klasa usera nie powinna dziedziczyć klas template i na odwrót. Poczytaj o wzorcach projektowych, ostatnio popularne dzięki symfony 2 staje się dependency injection. Instancje klasy wstrzykujesz poprostu do innej klasy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.08.2025 - 14:15 |