ugrás a tartalomhoz

Php fájlok leterheltsége

jeti · 2006. Jún. 2. (P), 22.56
Sziasztok!

A következő kérdéseim lennének:
1.) Mennyire terhelem le a szervert (illetve lassítom le a felhasználók felé a letöltési sebességet), ha minden felhasználó egy php fájlt (:= index.php) használ, vagy többet szétszórtan (:= index.php, forum.php, cikk.php ...). Az első esetben egy fájlba szúrom be a megfelelő php kiegészítőket, míg a másodikban több fájl osztozik ugyanezeken a php kiegészítőkön. (php kiegészítő alatt értem a programokat Pl.: ha cikkeket kell megjeleníteni, akkor a fórum programját nem töltöm be ...)

2.) A php programjaim alap függvényekre vannak bontva, amelyek több különböző fájlban vannak elhelyezve. (Pl.: Egy fájt egy adott függvényét használja az összes adatbázist igénylő program.) Eddig úgy oldottam meg, hogy ne legyen függvényduplázás, hogy mindegyik kapott egy változót és leellenőriztem, kapott-e értéket / betöltötte már az adott fájlt. Van erre jobb megoldás?
 
1

esetleg...

sotetbarna · 2006. Jún. 2. (P), 23.55
2. require_once() ?

Barna
2

amúgy igen

vbence · 2006. Jún. 3. (Szo), 00.53
Szóval, a kérdés egyik fele, hogy létezik include_once és requre_once függvény, ami (ahogy neve is sejteti) csak első alkalommal include-ol, úgyhogy nem kell ellenőrizni mindenféle változókkal.

A második az nagy kérdés. Meg kell találni az egyensúlyt az óriási lassú include fájl, és a szétdaraboltség között.

Én is kísérletezem a helyes receptel. Kezdetben volt egy functions.php - ez egyre csak nőtt és nőtt, aztán sokkal több memóriát foglalt, mint az adott oldalhoz tartozó "hasznos" kód.

Ezután lett session.php meg statistics.php - ezek már kisebbek voltak, de gyakran volt olyan, hogy mind betöltőtött.

Most ott tartok, hogy a session.php-ből lett: session_light.php session_use.php és session_manage.php . Az első egy minimális függvény ami visszaadja a beloginolt user id-t. Ezzel gyakorlatilag azt lehet eldönteni, hogy belépett-e az illető. Ez gyakorlatilag minden oldalon rajta van. A session_use már le tudja kérdezni a user saját rekordját (beállításai), és módosíthatja is. A manage olyan dolgokat tartalmaz, mint regisztráció, elfelejtett jelszó, aktiválás, amit csak az erre rendelt php használ.

A hierarchikus felépítést választottam (minden bonyolultabb beinclude-olja az előzőt - a session_use első sora pl: include_once ("session_light.php").

Nemtudom mennyire volt érthető, én mindent megpróbáltam :)

B
3

PHP fejlesztés felsőfokon c. könyv

toxin · 2006. Jún. 3. (Szo), 09.38
227. oldal idevonatkozó végkövetkeztetése

"
... include beágyazások általában nem jelentek szűk keresztmetszetet.

A kódnak elösször is kezelhetőnek és újrahasznosíthatónak kell lennie. Ha ez 10-20 beágyazott állományt jelent, hát legyen. Ha a kódot gyorsabbá akarjuk tenni készítsük el a profilját (a 18. fejezetben bemutatott eljárások használatával), és csak akkor nyirbáljuk meg a beágyazási fát, ha a profil azt mutatja, hogy az include() és a require() használata jelentősen csökkenti a teljesítményt.
"
4

Pontosítás

jeti · 2006. Jún. 3. (Szo), 22.32
Köszönöm a válaszokat. Én egy kicsit másra gondoltam, de ezt is meg akartam kérdezni. Úgyhogy ez is kapóra jött. Jelenleg kb. 26 fájlom van, majd ezeket is „átgyúrom”.
Szóval pontosan a kérdésem az lenne, hogyha az oldalnak több része van, érdemes-e fájlonként felbontani.
Pl.:
Főoldal www.valami.hu/index.php
Fórum www.valami.hu/forum.php
Cikk www.valami.hu/cikk.php
Link www.valami.hu/link.php

Mindegyik ugyanazt tartalmazza, mert ugyanúgy a „torzs.php”-t illesztem be, csak így nem minden látogató egy index.php használ/ kér le/ vár. Ha az egyik fórumozik, akkor az a forum.php-t, és közben ha a másik cikket olvas/értékel, akkor a cikk.php-t használja. Tehát egyszerre nem kell az index.php-nak kiszolgálni őket. Így próbálom egyenletes elosztani a megterhelést. Lehet, hogy így is ugyanott vagyok, mivel mindegyik a torzs.php-t tölti le közvetve. Remélem, így érthetőbb. Mi a megoldás ilyen estekben?

Közben eszembe jutott még egy kérdés.
3.) Sok kicsi vagy inkább kevesebb nagyobb függvény használata ajánlott?
5

hehe

toxin · 2006. Jún. 3. (Szo), 22.58
no ez nem teljesen így müxik, fussál itt egy kört léccives

http://www.prog.hu/cikkek/881/A+kiszolgalo+kornyezet+inditasa/oldal/1.html

http://www.prog.hu/cikkek/883/PHP+szkriptek+ertelmezese.html

stb.

köszi :)
6

Válasz

jeti · 2006. Jún. 5. (H), 18.07
Köszönöm a segítséget.
Akkor az egy fájlos kezelés még jobb is, mintha szétszedném darabokra. Sőt a fő feladatom a 26 kiegészítő php-t ésszerű összevonása lesz. :-)
7

darabolós

breakline · 2006. Jún. 5. (H), 18.19
Én a darabolás híve vagyok. Ezt a függvényekkel összekombinálva csinálom, így csak egy helyen kell levédeni az oldalt, ahol meghívom a függvényeket. "Régen" én is mindent egy file-ba raktam, de végül győztek a teljesítmény és egyéb szempontok (pl. kényelmi). Így most én így rendezem, pl. ha egy regisztrációs űrlap van:
file-ok:
config/admin/admin.newuser.input.php //Input
config/admin/admin.newuser.ellenor.php //Adatellenőrzés
config/admin/admin.newuser.db.php //Adatbázisba vétel

És mindig a megfelelőt hívom meg. Ezt főleg azért csinálom, mert bizonyos funkciókat egyszuerűen ki lehet kapcsolni, ill. javítani. Meg persze az fenti védelem dolgot is jelentősen leegyszerüsíti.

üdv
BL