Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ładowanie wszystkich plików odrazu ?
darektbg
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 25.09.2006

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


Witam !
Spotkałem się ostatnio z pewnym frameworkiem Flex, w głównym katalogu były dwa pliki include_all.php i include_list.php :

include_all.php
  1. <?php
  2. define( FLLIB_DIR, realpath( dirname( __FILE__ )));
  3. define( FLPACKAGE_LIB, false );
  4. require_once( 'include_list.php' );
  5.  
  6. foreach( $libClass as $libPath )
  7. {
  8. if( file_exists( FLLIB_DIR . $libPath ) )
  9. {
  10. require_once( FLLIB_DIR . $libPath );
  11.  
  12. if( FLPACKAGE_LIB === true )
  13. {
  14. $cached_classes .= file_get_contents( FLLIB_DIR . $libPath );
  15. $cached_classes .= "nn"; 
  16. }
  17. }
  18. else
  19. {
  20. echo "File " . $libPath. " doesn't exists !n<br>";
  21. }
  22.  
  23. }
  24.  
  25.  
  26. if( FLPACKAGE_LIB === true )
  27. {
  28. file_put_contents( FLLIB_DIR . "/FLPackage.php", $cached_classes );
  29. }
  30.  
  31.  
  32. ?>


include_list.php
  1. <?php
  2. $libClass = array(
  3.  
  4. 'utils/FLStringUtils.class.php',
  5. 'utils/FLArrayUtils.class.php',
  6. 'utils/FLCollection.class.php',
  7. // i kolejne pliki frameworka
  8. );
  9.  
  10. ?>


Z tego wynika, że wszystkie pliki są na początku ładowane i to budzi we mnie zastrzeżenia. Czy pliki powinny być na początku od razu wszystkie ładowane czy dopiero wtedy gdy dany jest potrzebny ?

Pozdrawiam
Darektbg
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
siemakuba
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Rozważałem kiedyś ten problem, bo też wydało mi się niezbyt dobrym pomysłem ładowanie wszystkiego jak leci. Wiele tu zależy od budowy aplikacji, rozdziału klas na pliki itp. Wiadomo, im większa funkcjonalność tym więcej pojawi się plików. Osobiście uważam, że bardziej logiczne wydaje się ładowanie plików wtedy kiedy są potrzebne i tak właśnie organizuje to u siebie. Zbudowałem sobie ku temu prosty ObjectManager, który zajmuje się dostarczaniem potrzebnych plików. Jest to klasa, w której statycznie wywołuję metodę Import, która sprawdza czy dany plik został już załadowany i w razie potrzeby ładuję odpowiedni plik.

Jedna ważna uwaga, bo wydaje mi się, że rzadko zwraca się uwagę na to. Wszystkie instrukcje require" title="Zobacz w manualu php" target="_manual czy require_once" title="Zobacz w manualu php" target="_manual znalezione w kodzie w czasie kompilacji zostaną wykonane i pliki zostaną faktycznie załączone. Nawet jeśli taka instrukcja znajduje się wewnątrz instrukcji warunkowej dla której warunek nie jest spełniony, plik zostanie faktycznie załączony. Wynika z tego, że jakiekolwiek dynamiczne ładowanie można zbudować tylko w oparciu o include" title="Zobacz w manualu php" target="_manual i include_once" title="Zobacz w manualu php" target="_manual.

Ot, moje 2 grosze :)
pozdr.
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.09.2025 - 16:00