Java-like import functie

Door Remco , 20 jaar geleden, 5.678x bekeken

Functie die je kunt gebruiken om alle bestanden, of 1, te laden uit een bepaalde dir. Als je 1 bestand wilt laden is het gebruik van deze functie totaal onnodig en een simpele include volstaat dan. Indien je een map hebt meerdere bestanden, en te lui bent om ze allemaal handmatig te laden is dit script dé perfecte uitkomt!

Gesponsorde koppelingen

PHP script bestanden

  1. javalike-import-functie

 

Er zijn 12 reacties op 'Php algemeen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Storeman storeman
storeman storeman
20 jaar geleden
 
0 +1 -0 -1
Wel grappig, niet heel nuttig, de autoload functie van php5 is natuurlijk een stuk interessanter.

Wel leuk voorbeeld voor beginners hoe de directoryIterator werkt.
Jan geen
Jan geen
20 jaar geleden
 
0 +1 -0 -1
Javadoc commentaar gebruik je normaal alleen boven een klasse, instantie var of functie niet boven elke regel code...
Remco
Remco
20 jaar geleden
 
0 +1 -0 -1
Is een gewoonte van mezelf, als je het niet leuk vindt haal je het gewoon weg. :>
Leroy Boerefijn
Leroy Boerefijn
20 jaar geleden
 
0 +1 -0 -1
ik snap het niet helemaal.. kun je net gewoon include doen?
Remco
Remco
20 jaar geleden
 
0 +1 -0 -1
Kijk eens bij de beschrijving, er staat toch nadrukkelijk dat het onzinnig is om deze functie te gebruiken als je slechts 1 bestand wilt laden. Als je een hele dir vol met bestanden erbij wilt halen is het fijner.
Klaasjan Boven
Klaasjan Boven
20 jaar geleden
 
0 +1 -0 -1
Ik vind het duidelijk en netjes gemaakt. Ik denk dat hier vraag naar is
Nicoow Unknown
Nicoow Unknown
20 jaar geleden
 
0 +1 -0 -1
Dit is echt geniaal, ik gebruik zelf wel eens een map met allemaal verschillende includes, en dan moet ik zo af en toe een stuk of 10 bestanden gaan includen.
Nu kan het mooi met 1 functie :D
Atal123
Atal123
20 jaar geleden
 
0 +1 -0 -1
mijn complimenten er voor ;) zeer netjes :)
Terence Hersbach
Terence Hersbach
20 jaar geleden
 
0 +1 -0 -1
hmm, je kan beter glob gebruiken. Dit is een system-level functie (dus php vraagt het aan het systeem) die een array terug geeft. Die doet ongeveer hetzelfde als dat jij doet, alleen een stuk sneller.

edit: sorry, maar dit is een stukje korter en sneller en doet hetzelfde:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function import($package) {
    $files = glob($package);
    foreach($files as $file) {
        require_once $file;
    }
}

import('map/*.php');
?>
Remco
Remco
20 jaar geleden
 
0 +1 -0 -1
Voila, ingekorte versie met glob(). :>
Kees Schepers
kees Schepers
20 jaar geleden
 
0 +1 -0 -1
Ik vind het een beetje riskant, een functie maken die een hele directory include. Sowieso doe ik zelf per klasse alles includen wat die klasse nodig heeft en niet alles in een keer. Dit heeft zo zijn voor en nadelen, voordeel is dat het geheugen niet altijd onnodig vol geladen word met spullen die je huidige request toch niet nodig heeft. Ik gebruik dan include_once zodat de tweede keer genegeerd word. Dit heb ik 'afgekeken' van Zend ;)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Terence Hersbach
Terence Hersbach
20 jaar geleden
 
0 +1 -0 -1
@kees, dat kan je ook makkelijker doen:
php beschikt over een functie die word aangeroepen zodra de class niet gevonden word, dat doe je op deze maneir:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function __autoload($classname) {
    require_once 'path/to/class/' . $classname . '.class.php';
}

?>

Op deze manier bespaar je nog meer aan geheugen (wie zegt dat bijv. een class die ingeladen word ook daadwerkelijk gebruikt word).

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. javalike-import-functie

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.