Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> include kontra include_once - zasada uzycia
elmozaur
post
Post #1





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Witajcie.
Poprosze o wsparcie mojej wiedzy gdyz nie moge sobie wyobrazic pewnych rzeczy.
Ogolnie wiem jak dziala include i include_once ale w praktyce nie wiem kiedy je stosowac.
Czy ktos moze "łopatologicznie" wytlumaczyc kiedy i w jakich wypadkach sie je stosuje.

Napisalem swoj prosty CMS jednak uzywam w nim tylko zwykle include a domyslam sie ze jak uzyje include_once to moze zwiekszyc sie wydajnosc cmsa.

Moj ogolny schemat dzialania jest taki:
- include konfiguracja strony z pliku;
- tworzenie polaczenia z baza;
- include wszystkich funkcji serwisu (ladowanie modulow, generowanie komunikatow, generowanie elementow dynamicznych);
- generowanie wszystkich elementow dynamicznych (daty, tytuly, statystyki itp)
- include templatki;
- generowanie wygladu strony.

I teraz mysle sobie tak (prosze o sprostowanie mojego myslenia):
plik index.php jest czytany zawsze wiec konfiguracja z pliku tez musi byc inkludowana zawsze. Bez funkcji serwis tez nie bedzie dzialal wiec tez trzeba inkludowac. Templatka tak samo... wiec co z tego moze byc inkludowane jednorazowo...

Prosze rowniez o wytlumaczenie czegos takiego skoro juz raz wyswietlilem taka strone, to po kliknieciu w dowolny link jakie elementy sa odswiezane ? czy calosc jest przeladowana ? czy moze serwer "pamieta" jakies fragmenty kodu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?

Moze ten temat powinien trafic do przedszkola ale mam nadzieje ze komus tez troche sie wyjasni.
Za wszelkie info z gory dziekuje i pozdrawiam
Grzegorz
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Cytat(elmozaur @ 3.06.2009, 06:16:05 ) *
- include wszystkich funkcji serwisu (ladowanie modulow, generowanie komunikatow, generowanie elementow dynamicznych);

To napisz sobie funkcje i umieść ją sobie w pliku
a poźniej
  1. <?php
  2. include( 'funkcja.php' );
  3. include( 'funkcja.php' );
  4. ?>

Dostaniesz piękny komunikat o blędzie coś w stylu
Kod
Canot redeclarate .......

W tym przypadku include_once wchodzi w gre

Jeżeli wszystkie pliki podłączasz pod index.php to w nim wystarczy raz zaincludować plik konfiguracyjny nie ma potrzeby żeby go dodawać za każdym razem.
A przy odświeżaniu strony cały kod php jest przetwarzany raz jeszcze.

Ten post edytował skowron-line 3.06.2009, 07:26:12
Go to the top of the page
+Quote Post
elmozaur
post
Post #3





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Cytat(skowron-line @ 3.06.2009, 08:22:24 ) *
Jeżeli wszystkie pliki podłączasz pod index.php to w nim wystarczy raz zaincludować plik konfiguracyjny nie ma potrzeby żeby go dodawać za każdym razem.
A przy odświeżaniu strony cały kod php jest przetwarzany raz jeszcze.


No wlasnie caly kod jest przetwarzany raz jeszcze ale z zainkludowanymi wczesniej konfigami i modulami czy serwer bedzie inkludowal wszystko raz jeszcze od nowa ?

Ten post edytował elmozaur 3.06.2009, 07:39:30
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




include_once dotyczy danego zadania do strony.W danym konkretnym zadaniu include_once wykona sie raz
Kazde kolejne zadanie do strony (aplikacji na serwerze) powoduje przetwarzanie wszystkiego na nowo
Go to the top of the page
+Quote Post
elmozaur
post
Post #5





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Cytat(nospor @ 3.06.2009, 08:43:08 ) *
Kazde kolejne zadanie do strony (aplikacji na serwerze) powoduje przetwarzanie wszystkiego na nowo


Czyli skoro kazde klikniecie na link powoduje przeladowanie calosci i ponowne inkludowanie to czy mozna zaryzykowac inkludowanie wszystkiego poprzez include_once ?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




nie, to wszystko zalezy.
Jesli chcesz by dany skrypt includowal sie za kazdym razem, gdy go includujesz, to uzywasz include. (np. zawiera jakas tabelke, ktora chcesz wyswietlic za kazdym razem gdy robisz include)
Gdy chcesz by dany skrypt zaincludowal sie tylko raz, to uzywasz include_once. (np. zawiera funkcje - a deklaracja funkcji moze byc tylko raz w skrypcie)

proste jak cep (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
skowron-line
post
Post #7





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Jeżeli chcesz sobie wyświetlić np. system newsów i masz w pliku a.php zdefiniowany układ elementów ( tytuł, treść, autor, data ) to pobierając wszystkie newsy z bazy będziesz je wyświetlał w pętli i wtedy musisz użyć include ponieważ gdy użyjesz include_once wtedy wyświetl się tylko 1 dołączenie pliku mimo iż pętla obróci się powiedzmy 20 razy.

Ten post edytował skowron-line 3.06.2009, 08:15:40
Go to the top of the page
+Quote Post

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: 5.10.2025 - 11:02