Ik probeer een klein documentatie script te maken.

Nu loop ik tegen één klein probleem aan dat ik voor een functie de code bij me documentatie wil laten generen.

Is er een makkelijke manier om de source van een bepaalde functie op te halen.
of moet het gewoon maar met een aantal regexen ?
Ik snap niet precies wat je bedoelt, maar ik denk dat je een soort code block wil creëren? Of kun je het anders wat duidelijker uitleggen, eventueel met een voorbeeldje?
je moet



<pre>
<code>
 $variabele = 0;

echo $variabele;
</code>
</pre>



en dan kan je in je css pre enof code opmaken :)
Ja dat is hoe je het uiteindelijk op de pagina zet :p maar w8 zal even beter verwoorden mischien dat het dan stuk duidelijker is.


met de volgende functie


<?php
    private function getComments($filename)
    {
        $expr = "/((?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:\/\/.*))/";
        $file = fopen($filename, "r");
        $length = filesize($filename);
        $comments = fread($file, $length);

        preg_match_all($expr, $comments, $matchs);

        foreach($matchs[0] as $id => $variable){
            $comments = str_replace($variable,'',$comments);
        }
        fclose($file);
}
?>


Haal ik all mijn phpdoc style comments uit een class.
Vevolgens maak ik daar een mooi object van blablabla.

maar nu wil ik ook de functie him zelf in het object toevoegen zo dat ik ook een source code van de functie zelf kan weergeven op mijn pagina.

Hoop dat ik me nu beter duidelijk gemaakt heb.

Reshad F op 13/07/2012 10:42:45

je moet



<pre>
<code>
 $variabele = 0;

echo $variabele;
</code>
</pre>



en dan kan je in je css pre enof code opmaken :)


Waarom ben je het wel aan het uitvinden voor nog een PHPdoc parser? Kan je niet gewoon beter PHPdoc2 of Sami gebruiken?

En anders zul je dit inderdaad met REGEXEN op moeten lossen.
Omdat het kan en leuk is.
En mischien omdat het niet alleen een PHPdoc wordt maar ook meteen anderen documentatie en dan vond ik het toch wel handig om alles in eigen beheer te hebben en niet afhankelijk ben van een derde partij.
Je bent sowieso afhankelijk van een derde partij. Of draait jouw pc op een fiets?
Dat slaat nergens op, kun je niet eens tegen een beetje humor?
Wouter vraagt alleen waarom je het wiel opnieuw uit wil vinden. Er zijn mensen die het werk al voor jou gedaan hebben, en dan hoogstwaarschijnlijk nog veel beter ook.

Overigens verwijderen we niet zomaar topics hier, dus ga verder met je vraag. :-)
Rowdy, begrijp me niet verkeerd. Als we nergens het wiel opnieuw zouden willen uitvinden kan ik wel stoppen met programmeren. Alleen weet wel dat het wel een helse klus is.

En volgens mij had ik het antwoord al gegeven, je hebt hier inderdaad regexen voor nodig. In PHP bestaat niet zoiets als in JS waarbij je elke functie naar een string kan omtoveren. Alleen ook dat wordt een heel karwei. Want je kan niet zomaar `function .*?\(.*?\) {(.*?)}` gebruiken, aangezien je dan totaan de eerste volgende } matched, wat ook een if statement kan zijn bijv. Maar als je die ? weghaalt match je het hele bestand vanaf de eerste functie totaan de laatste.

Reageren