20. april 2006 - 10:26Der er
9 kommentarer og 1 løsning
Vis hvilke class's og functions der er i en fil
Jeg kunne godt tænke mig at vide om man kunne få PHP til at vise hvilke classer og functioner der er i en given php fil. Grunden til dette er, at jeg vil lave et class/functions bibliotek, hvor der skal være mulighed for at få vist hvilken classer og functioner der er, og muligvis også en beskrivelse af hvad lige netop den function skal bruges til.
Den på sourceforge virker ikke rigtig synes jeg. Jeg har prøvet at gå ind på php.net og finde ud af noget med reflection, men der skal man vide hvad der ligger af functioner, før den vil poste det. den tager ikke automatisk og laver en liste
Det skal være et bibliotek over de classer jeg selv har lavet, og ikke dem der er standard. Men jeg tænkte på om hvordan man kan gøre sådan at man f.eks. har følgende.
<? class fisk {
/** * Beskrivlse: * * Dette er en function som vil vise dig en fisk */ function fisk(){ $fisk = "torsk"; }
/** * Beskrivlse: * * Dette er en function som vil vise dig en fisk's navn */ function fiskNavn(){ $fisknavn = "Julius"; } }
class tid {
function tid(){ $timer = 125; } }
class ged {
function ged(){ $navn = "henas"; } } ?>
så skal den tage og splitte fra starten på en class, finde de functioner der er i netop den class, og gå videre til den næste. Og mens den er i en class, skal den tage og finde uf af om der er en beskrivelse som i eksemplet. Er dette muligt. Jeg sidder og prøver lidt nu, men kan ikke få den til at gøre det ordentligt.
Ja, den ene måde at gøre det på en en simpel tekst-analyse af filen ved at søge efter "class [navn] " og "function [navn] " via reg.exp. og køre hele filen igennem..
Alternativt (jeg ved ik hvor klogt denne løsning er - min proof-of-concept kode kan være tvivlsom) kan der laves noget ala
Når du kender funktioner og klasserne kan du via Reflection-api'et finde ud af de ting du gerne vil (Reflection-api'et kan også finde phpdoc-kommentare-blokke)
Hey fangel. Med nogle få ændringer (get_defined_functions istedet for get_declared_functions) så virkede det. men så skal jeg bare finde ud af at den også skal vise de functioner som findes inde i en class. Men smid et svar, så får du dine fortjente point.
Noget i dur af $class = new ReflectionClass('class-navn'); $funcs = $class->getFunctions(); // det hedder den ik - men noget i den dur.. kan ik huske det på stående fod.. tjek manualen
--
Bare behold point selv.. jeg er her så sjællent og har så mange point at det er lige meget.. (jeg kigger kun forbi spm. der er "interesante".. ;) hehe)
Jeg fandt ud af det, så nu virker mit class/functions bibliotek. og det er bare i orden, så snupper jeg dem selv. Men fortsat godt liv, hvis vi ikke mødes igen :)
Den er "startet" (selvom vi dog er igang med redesign/omkodning.. google lidt rundt så skal du nok finde den)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.