Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Balans pomiędzy includowaniem plików php
soundtrack
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 31.07.2014

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


Chciałbym, aby kod mojej aplikacji zawierał użyteczne klasy w oddzielnych plikach, ponadto korzystam ze wzorca projektowe MVC, który dołącza już jaką część plików.

Podsumowując:
* załączenie pliku z konfiguracją skryptu i bazy danych
* załączenie kontrolera
* załączenie dziedziczonego kontrolera
* załączenie modelu
* załączenie dziedziczonego modelu
* załączenie widoku
* załączenie dziedziczonego widoku
do tego dochodzi jakiś system szablonów, dajmy na to TWIG
* załączenie systemu szablonów (pomijając fakt, że on sam załącza potrzebne mu pliki)
* załączenie templatka (pomijając fakt, czy będzie on załączał np. nagłówek lub stopkę z oddzielnych szablonów)

Otrzymuje w ten sposób 9 załadowań plików + index.php to w sumie 10.

Jeśli postanowiłbym rozdzielić niektóre klasy aplikacji na pojedyncze pliki, w celu uzyskania czegoś w rodzaju bibliotek, to mógłbym otrzymać w rezultacie nawet >=20 załadowań.

Zastanawia mnie jedno, jak serwer PHP dołącza pliki poprzez funkcje require/include, czy działa to na podobnej zasadzie co obrazki i podstrony w html tzn. klient wysyła żądanie o każdy plik, więc im jest ich więcej - tym dłużej to trwa w wyniku nałożonych ograniczeń, czy może serwer PHP łączy poprzez system operacyjny pliki w całość, dzięki czemu rozwiązuje to problem w podobie do html'owych żądań i programista nie musi się martwić o dużą liczbę includowanych plików.

A może jest jakaś metoda, która pozwala na przyjazne rozszczepienie aplikacji na dużą ilość plików, bez jakichś strat (IMG:style_emoticons/default/wink.gif)

Ten post edytował soundtrack 31.07.2014, 21:44:33
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Nie przejmowałbym się dołączaniem plików.
PHP odwołuje się doń poprzez system plików. Nie są wykonywane żadne żądania tak jak ma to miejsce w HTTP i innych.
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Dołączanie plików to nieco złożony temat i potrafi on wpłynąć istotnie na wydajność aplikacji, ale można go skrócić do kilku podstawowych zasad:
1. Powinieneś się trzymać konwencji PSR-0 i dalszych, tj. trzymać każdą klasę w osobnym pliku, a ładowaniem plików powinien zająć się jakiś autoloader.
2. Jeżeli korzystasz z PHP w wersji poniżej 5.5 koniecznie powinieneś upewnić się, że masz włączony jakiś akcelerator (np. APC) oraz że jest on skonfigurowany w taki sposób by trzymać cache'a opcode'u wszystkich plików.
3. Jeżeli masz sporo plików do załadowania (20 to o rząd wielkości za mało) możesz zainteresować się tematem łączenia wielu plików w jeden. Ale to powinno być wykonywane przez jakieś narzędzie w momencie deploy'u aplikacji na serwerze.
Go to the top of the page
+Quote Post
Sephirus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Crozin w zasadzie wyczerpał temat - dodam jedynie dwie rzeczy.

Przykładowe, wspomniane APC mega przyśpiesza pracę aplikacji - wówczas problem ładowania plików można w zasadzie pominąć bo przy innych problemach z wydajnością (obciążenie samych serwerów, bazy danych itp) to jedynie mała kropelka w morzu.

Jeśli komuś naprawdę zależy na mega wydajności to podchodzi do tematu jeszcze inaczej i albo nie korzysta z PHP tylko z czegoś innego, albo używa jakiejś techniki/technologii prekompilacji kodu PHP. Są rowziązania pozwalające na pisanie w PHP a następnie kompilowanie (może to nie właściwe słowo) skryptów przykładowo do aplikacji C++ lub podobnego języka. Takie rozwiązania są mega szybkie i ładnie radzą sobie z masami użytkowników.

Autorze w Twoim przypadku gdy pracujesz na ~20 plikach w ogóle zapomnij o tym problemie - choć APC możesz włączyć (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
soundtrack
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 31.07.2014

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


Cytat
Autorze w Twoim przypadku gdy pracujesz na ~20 plikach w ogóle zapomnij o tym problemie - choć APC możesz włączyć


Takiej konkretnej odpowiedzi oczekiwałem (IMG:style_emoticons/default/smile.gif)

Przy okazji zapoznałem się z czymś takim jak "konwencja nazewnictwa PSR-0". Wielkie dzięki wszystkim (IMG:style_emoticons/default/wink.gif)
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: 15.10.2025 - 17:43