![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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. |
|
|
![]()
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. |
|
|
![]()
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) |
|
|
![]()
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) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 17:43 |