[PHP] In kaart brengen van alle functies

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DaLuca
  • Registratie: November 2005
  • Laatst online: 17-09 15:47
Allen gegroet,

Ik heb een probleem(pje?)... Voor een project moet ik alle functies met onderliggende functies die in de code (PHP) staan in kaart brengen. Dit is super handig voor eventuele programmeurs. Men kan dan direct zien welke functie met welke functie te maken heeft.

Bijvoorbeeld:

Functie XXX
--> Functie YYY
--> Functie ZZZ

Functie YYY
--> Functie AAA

Functie ZZZ
--> -

Functie AAA
--> -

Dit is het idee... Het is natuurlijk niet haalbaar om dit te doen met de hand! Aangezien we het hebben over een zeer uitgebreide portal hebben.

In Zend heb ik geprobeerd om met de PHPdocumentor alles in kaart te brengen, maar deze laat alle funncies links liggen en gaat niet verder dan 1 niveau.

Heeft iemand een idee om dit te doen? THNX

Computers; de meeste fouten zitten tussen het toetsenbord en de stoel...


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Volgens mij is dit op PHP.net al aardig gedaan. De documentatie dus... :X

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

PHPdoc en goed documenteren.

Wat bedoel je met functies links laten liggen en niet verder gaan dan 1 niveau?

Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
je zou natuurlijk zelf een programma kunnen schrijven..

structuur zou ongeveer dit zijn:

- zoek alle functie namen op
- ga 1 voor 1 alle functies langs
- kijk in deze functie of hij een andere functie aanroept

je kan in princiepe niet eeuwig functies in functies documenteren, want dan krijg je bij bijv. recursieve functies al gauw een aardige lap documentatie ;)

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • DaLuca
  • Registratie: November 2005
  • Laatst online: 17-09 15:47
Misschien doe ik iets fout met de PHPdocumentator. Maar het lijkt erop dat dit programma wel de bestanden, dus X.php, laat zien maar niet de code. Dit ligt denk ik aan dat er geen discription is aangegeven bij een functie.

Ik heb de code niet zelf geschreven... ik moet zeg maar de rommel van de ontwikkelaar opruimen!

De bedoeling is dat ik straks een document of webpage heb waarin alle (zelf)geschreven functies staan met de onderliggende functie etc. etc.

ik hoop dat ik het nu beter heb uitgelegd!

Computers; de meeste fouten zitten tussen het toetsenbord en de stoel...


Acties:
  • 0 Henk 'm!

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 17:10

Knutselsmurf

LED's make things better

Je zou een script kunnen maken dat behulp van de tokenizer de code analyseert en op die manier alle functies binnenhaalt.

- This line is intentionally left blank -


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

PHPdoc gaat uit van speciale comments bij iedere functie die uitleggen wat ze doen, welke input ze verwachten en output ze geven. Dat kan geen enkel script zelf verzinnen natuurlijk ;)

Als je domweg een lijstje wilt lijkt het me handiger zelf even met een scriptje door je code heen te lopen... al vind ik het nut nogal ver te zoeken eerlijk gezegd. Er is ook een functie in PHP die alle user defined functions weer kan geven volgens mij zelfs.

get_defined_functions

[ Voor 8% gewijzigd door Bosmonster op 30-01-2006 15:10 ]


Acties:
  • 0 Henk 'm!

  • DaLuca
  • Registratie: November 2005
  • Laatst online: 17-09 15:47
Klopt get_defined_functions, alleen gaat deze maar 1 niveau diep... Ben nu bezig om een scripje te maken. Als iemand nog ideeen heeft zijn ze van harte welkom!

Computers; de meeste fouten zitten tussen het toetsenbord en de stoel...


Acties:
  • 0 Henk 'm!

Verwijderd

Waar BasieP je ook al op wees:
Als je dat script maakt dat die functie lijst probeert te achterhalen, let er dan wel op dat er ook bijvoorbeeld recursive functies kunnen voorkomen (functies die zichzelf weer aanroepen, deze worden bijvoorbeeld gebruikt om in een directory ook alle subdirs door te lopen). Dit zou je programma in een oneindige loop kunnen brengen.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Wat voor nut heeft het voor andere programmeurs om in een lijstje te kunnen zien welke functie welke andere functie aanroept? Dat zien ze toch ook in je code wel? Het is veel belangrijker om in je commentaar/documentatie aan te geven wàt een functie doet, en wàt de dependancies zijn. De rest kan een eventuele volgende programmeur ook wel zien aan je code. Met overdocumentatie schiet je ook niet veel op.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Het lijkt me niet dat je je functies wilt documenteren 'at-runtime', dus het oneindige loop verhaal is imho niet van toepassing.

Als je al je functie declaraties uit je code filtert en vervolgens per functie kijkt welke andere functies aangeroepen worden uit je originele functielijst (om de tig PHP functie te negeren), heb je al wat TS wilde.

(nut is zoals ik ook eerder al zei, nogal wazig... zorg liever voor goede documentatie en dan is PHPdoc een prima tool om daar een manual van te bakken).

[ Voor 20% gewijzigd door Bosmonster op 30-01-2006 15:48 ]


Acties:
  • 0 Henk 'm!

  • DaLuca
  • Registratie: November 2005
  • Laatst online: 17-09 15:47
-NMe- schreef op maandag 30 januari 2006 @ 15:47:
Wat voor nut heeft het voor andere programmeurs om in een lijstje te kunnen zien welke functie welke andere functie aanroept? Dat zien ze toch ook in je code wel? Het is veel belangrijker om in je commentaar/documentatie aan te geven wàt een functie doet, en wàt de dependancies zijn. De rest kan een eventuele volgende programmeur ook wel zien aan je code. Met overdocumentatie schiet je ook niet veel op.
Orders zijn orders...

Computers; de meeste fouten zitten tussen het toetsenbord en de stoel...

Pagina: 1