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%)
-----


@dr_bonzo: no przecież nie wyssałem tego z palca...
Cytat
Notatka: Począwszy od php 4.0.2, zachowanie instrukcji jest następujące: require() będzie zawsze próbować odczytać plik docelowy, nawet jeśli linia w której ona się znajduje nigdy nie zostanie wykonana. Instrukcja warunkowa nie wpływa na działanie require(). Jednakże, jeśli linia, w której pojawia się require() nie zostaje wykonana, zawartość pliku wczytywanego też nie zostaje wykonana. Podobnie, instrukcje pętli nie wpływają na działanie require(). Chociaż kod zawarty w pliku docelowy wciąż jest podmiotem pętli, require() działa tylko raz.


Wynika z tego chyba jednoznacznie, że pliki które ładujesz przez require, require_once będą ładowane przed wykonaniem skryptu, co za tym idzie, będą ładowane bez względu na to czy są potrzebne w danym momencie czy nie są. Owszem, będzie to sprawdzanie czy plik da się załadować czy nie, a nie wykonanie kodu z dołączanego pliku, ale zawsze jest to trochę więcej działania niż robi include.

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: 5.10.2025 - 06:07