abcd423417984 Skrevet 21. mai 2007 Del Skrevet 21. mai 2007 Hei Jeg jobber med et lite prosjekt hvor jeg trenger litt modulær kode. I den sammenheng benytter jeg naturlig nok include() for å hente inn de filene jeg måtte ønske da jeg måtte ønske. I den sammenheng trenger jeg litt kontroll over modulene som lastes slik at ikke brukeren plutselig blir presentert en lang liste uforstålige feilmeldinger hvis en fil ikke inneholder det interfacet resten av koden prøver å kalle. Det jeg trenger er en måte å kunne finne ut hvorvidt "modulen" jeg ønsker å kjøre en navngitt funksjon i eksisterer/er lastet og hvorvidt det interfacet (funksjonsdeklarasjonen) jeg forventer skal være der faktisk er der. Har sett litt på @ for include() for å sjekke hvorvidt filen kunne åpnes eller ikke. Kan den brukes på tilsvarende måte for å sjekke om en funksjon inni filen kan kjøres eller ikke? Noen forslag? Lenke til kommentar
Knebba Skrevet 21. mai 2007 Del Skrevet 21. mai 2007 kan du bruke http://no2.php.net/function_exists ? Lenke til kommentar
magikern Skrevet 21. mai 2007 Del Skrevet 21. mai 2007 http://no2.php.net/get_class http://no.php.net/manual/en/function.get-d...d-functions.php men vil først og fremst anbefalle : http://no.php.net/autoload Lenke til kommentar
abcd423417984 Skrevet 21. mai 2007 Forfatter Del Skrevet 21. mai 2007 http://no2.php.net/get_classhttp://no.php.net/manual/en/function.get-d...d-functions.php men vil først og fremst anbefalle : http://no.php.net/autoload 8665085[/snapback] Ikke dumt. En annen ting jeg kom til å tenke på: Hvis jeg bruker autoload, er det noen måte jeg kan lage et objekt av et klassenavn jeg kun har som en tekststreng? F.eks. hvis jeg har en tekststreng som inneholder 'Modul1' så kan man lage et objekt av klassen Modul1 (som ligger i filen Modul1.php ved hjelp av autoloading). Lenke til kommentar
Runar0 Skrevet 21. mai 2007 Del Skrevet 21. mai 2007 (endret) PHP <?php // $tekst = 'modul1' // $modul = eit objekt av modul1() $modul = $tekst(); // Eventuelt. $modul1 = eit objekt av modul1() eval("$$tekst = $tekst();"); ?> Er ingen mester i PHP5 men eksempla over bør virke fint Endret 21. mai 2007 av Shadows0 Lenke til kommentar
abcd423417984 Skrevet 21. mai 2007 Forfatter Del Skrevet 21. mai 2007 (endret) Dette fungerte strålende. Eneste jeg enda ikke har fått til er errorhandling på hvorvidt autoload er i stand til å laste fila eller ikke. EDIT: Problem løst. Kjørte class_exists med autoload=true så funka det strålende Endret 21. mai 2007 av invictus Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå