[PHP] IDE's en het gebruik (Netbeans?)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
Inleiding
Ik programmeer al een geruime tijd in PHP, zowel kleine als grote projecten. In al deze tijd heb ik nooit gebruik gemaakt van een IDE en/of debug mogelijkheden. Het debuggen zelf deed ik in de applicatie zelf. Dit was meestal voldoende. Echter krijg ik nu (pas?) door dat het een gebruik van een IDE veel tijd kan besparen. Zowel in het ontwikkelen zelf (code completion, syntax controle's etc.) als met debuggen. De mogelijkheid om breakpoints te selecteren en door je programma heen te "bladeren" is natuurlijk ideaal.

Achtergrond
Ik heb geen formele programmeer opleiding genoten; ik ben begonnen als systeembeheerder > systeem specialist > webdeveloper. Voor het overgrote deel autodidact.

Development omgeving
Ubuntu Server (op vmware ESX) met Apache 2.x/PHP 5.x/Mysql
Vista werkstation met SMB toegang tot de development server. Editen met Notepad++.

Doel
Ik wil gebruik gaan maken van een IDE voor met name grotere PHP projecten. Dit kunnen projecten zijn op basis van frameworks (bv. Codeigniter/Cake etc.) maar ook bestaande (OS) applicaties (Expression Engine / Joomla / MediaWiki etc.).

Hoe groter het project, zeker als je andermans code moet debuggen, hoe lastiger het wordt. Juist in dit soort situaties lijkt mij het gebruik van een IDE ideaal.

Wat heb ik gedaan?
Afgelopen weekend heb ik Netbeans getest in combinatie met xdebug op de development server. De interface van Netbeans bevalt me erg goed, en het debuggen van "enkele" scripts werkt prima. Waar ik echter tegen aan looop is dat ik NIET weet hoe ik precies met een IDE moet omgaan voor grotere projecten.

In het geval van netbeans/xdebug edit je een script en als je gaat debuggen stuurt hij een request naar de webserver. De xdebug module kijkt naar eventuele breakpoints en stuurt informatie terug naar Netbeans. (Als ik het goed begrijp).

Uiteraard heb ik de documentatie doorgelezen en wat screencasts bekeken.

Concrete vraagstukken
Allereerst (ik besef dat dit een algemene vraag is) hoe pak je debuggen met een IDE het beste aan voor een PHP project?

Netbeans roept de url aan van een script wat je wilt debuggen, maar ik maak vaak gebruik van search engine friendly urls waardoor het direct aanroepen geen zin heeft, en soms zelfs helemaal niet werkt. Wat je zou willen is een custom url opgeven, eventuele POST en/of GET variabelen meegeven en op basis daarvan debuggen.

Zou je bijvoorbeeld een breakpoint kunnen zetten op het aller aller begin van een applicatie (die bijvoorbeeld de SEF regelt, libraries include etc.) en echt stap voor stap door je programma (dus ook de verschillende includes) heenstappen terwijl je je debug sessie niet initieel op dat script bent gestart (url). b.v. http://server/app/supapp/blabla.html. Intern wordt dan alles eerst naar /index.php geleid en die verwerkt dan verder de url segments.

Tot zover een paar direct vragen, maar kan me voorstellen dat ik eventueel met meer vragen ga komen. Als iemand mij op weg zou willen helpen, graag!

Ook als je geen Netbeans ervaring hebt, hoor ik graag reacties. Het is dat ik dat nu als eerste geprobeerd heb, maar ik sta open voor andere IDE's.

Acties:
  • 0 Henk 'm!

  • GrooV
  • Registratie: September 2004
  • Laatst online: 16-09 16:01
Volgens mij is de php debug functionaliteit van Netbeans gelimiteerd aan x-debug. Netbeans heeft gewoon de debug engine van java naar php gepoort dus dat is het probleem niet.

Maar goed voor zo ver ik lees levert x-debug gewoon debug functionaliteit met stacktraces en profiling tools dus je zou gewoon door je applicatie heen kunnen lopen in zover dat in PHP mogelijk is. Aangezien voor PHP iedere refresh een nieuwe applicatie is

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 00:03
Ik gebruik geen Netbeans, maar Zend Studio, vind dat een erg fijne IDE. Bevat alles wat elke andere IDE heeft, en mogelijkheid tot debuggen aan de hand van de zend debug extension (te downloaden van de zend site). Eventueel kan die ook gebruik maken van Zend Server of Zend platform. Het debuggen kan je beginnen vanuit je browser (FF of IE) aan de hand van een toolbar. Je kunt in de browser naar een pagina gaan, vervolgens klik je op debug, en Zend Studio begint mooi met debuggen van dat script, het mooie is dat ie dan ook POST en GET mee neemt zoals die in je browser bekend is/was, wat x-debug dus niet doet als ik dat zo lees.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:03

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik gebruik vs.php, een PHP addon voor Visual Studio. Ook deze gebruikt de x-debug functionaliteit van PHP. Het voordeel is dat je tevens ook meteen vanuit VS javascript kunt debuggen als je met IE de pagina laadt - erg handig voor AJAX requests.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Bij grotere projecten zou ik al snel afstappen van het 'testen' of debuggen van een script aan de hand van het openen van een webpagina met bepaalde parameters. Immers, als je slechts één functie wilt debuggen, zal je app het hele uitvoeringspad moeten doorlopen om bij dat ene stukje terecht te komen.

Je zou ten eerste kunnen kijken naar unit tests om losse stukken functionaliteit te testen en, als je goeie testcases maakt, te debuggen. Daarna kun je naar functionele tests gaan, die geautomatiseerd een website doorlopen en bepaalde processen doorlopen, op bepaalde links klikken, en het resultaat nakijken.

€0,02.

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 19-09 16:54

DexterDee

I doubt, therefore I might be

Ik werk professioneel met PHP en stuur een team aan van ontwikkelaars die vrijwel exclusief PHP programmeren. De keuze voor een IDE heb ik vrijgelaten, met als enige eis dat er fatsoenlijke debugging, profiling en subversion integratie aanwezig moest zijn. Wij bevinden ons op een apart vlak, daar meer dan 80% van onze PHP code backend code is die standalone draait en niet via een browser te benaderen is. Hierbij maken wij veelvuldig gebruik van IPC, zoals sockets, unix pipes, shared memory, message queues, semaphores en allerlei process control zaken zoals het daemonizen van de diverse PHP scripts. Het is vitaal om dan een goede omgeving te hebben om te kunnen debuggen en profilen.

De meeste ontwikkelaars gebruiken Eclipse + PDT als IDE. Eclipse biedt standaard een enorme berg mogelijkheden voor een programmeur om zeer productief te zijn. Hier kunnen ze dan ook erg goed mee uit de voeten. Om te debuggen gebruik je in deze omgeving XDebug of Zend Debugger.

Ikzelf ben fan van Komodo IDE 5, een IDE gemaakt door ActiveState. Dit zijn experts op het gebied van scripttalen en hebben bijv. ook Perl naar windows gebracht. XDebug zit bij de installatie ingebakken en omdat Komodo op de Mozilla engine is gebouwd, kun je plugins gebruiken die daar op aansluiten zoals een javascript debugger. Met Python is de IDE relatief gemakkelijk uit te breiden.

Een aantal jaren terug gebruikte ik Zend Studio als IDE. De Zend debugger werkt vooral voor webprojecten erg goed. In de browser wordt een toolbar geinstalleerd en met 1 druk op de knop kun je de pagina herladen en stoppen bij het eerste statement om vervolgens door de code heen te steppen. De profiling functie werkt ook fraaier dan bij XDebug, want deze laat meteen grafische output zien. Bij XDebug moet je eerst een stukje software halen als KCacheGrind (voor windows gebruikers WinGrind) om de log files te analyseren.

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
Dank voor de antwoorden voorlopig. Ik ben nu even naar Zend Studio aan het kijken. Vooral het eenvoudigweg "on demand" debuggen spreekt me aan. Je kunt als ik het goed begrijp dus gewoon de webapplicatie doorlopen met je browser en op het moment dat je een pagina wilt debuggen klik je vanaf daar op de debug button.

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 20-09 00:16

Matis

Rubber Rocket

Ik gebruik sinds jaar en dag Zend Development Studio. Is niet gratis! Daarnaast kun je ook in Eclipse php ontwikkelen (DexterDee)

Persoonlijk vind ik ZDE het fijnste!

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 19-09 16:54

DexterDee

I doubt, therefore I might be

J3roen schreef op maandag 15 juni 2009 @ 21:12:
Dank voor de antwoorden voorlopig. Ik ben nu even naar Zend Studio aan het kijken. Vooral het eenvoudigweg "on demand" debuggen spreekt me aan. Je kunt als ik het goed begrijp dus gewoon de webapplicatie doorlopen met je browser en op het moment dat je een pagina wilt debuggen klik je vanaf daar op de debug button.
Ja dat kan. Maar daarvoor moet je de Zend Debugger ook op de webserver hebben draaien. Dat is een aparte installatie. Ik ben er al een tijdje uit met de producten van Zend, maar als ik het goed heb, heb je daarvoor drie opties:
Zend Core (complete php serveromgeving)
Zend Platform (hulptools voor ontwikkelaars, naast bestaande apache+php)
Standalone Zend Debugger (handmatige installatie)

De eerste en derde zijn gratis te downloaden, de tweede kun je een trial voor aanvragen en als die verloopt dan kun je alleen de debugger nog gratis gebruiken.

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 20-09 00:16

Matis

Rubber Rocket

DexterDee schreef op maandag 15 juni 2009 @ 21:41:
Ja dat kan. Maar daarvoor moet je de Zend Debugger ook op de webserver hebben draaien. Dat is een aparte installatie.
Klopt, mijn webhost heeft dat; heerlijk :)
Ik ben er al een tijdje uit met de producten van Zend, maar als ik het goed heb, heb je daarvoor drie opties:
Zend Core (complete php serveromgeving)
Zend Platform (hulptools voor ontwikkelaars, naast bestaande apache+php)
Standalone Zend Debugger (handmatige installatie)

De eerste en derde zijn gratis te downloaden, de tweede kun je een trial voor aanvragen en als die verloopt dan kun je alleen de debugger nog gratis gebruiken.
Correct so far ;)

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Even voor de duidelijkheid:
Note to Zend Core users: Zend Core is now included with the Zend Platform Enterprise Solution (ES) and is no longer available for purchase as a standalone product. Zend will continue to update and support this product.
Zend Server heeft een (betaalde) enterprise editie en een CE (community edition). Zover ik kan zien kan ik Zend Platform gewoon downloaden (gratis dus kennelijk?).

Zelf gebruik ik Eclipse met PDT. Omdat ik met mijn bedrijfje in een opstartende fase verkeer is het investeren in Zend Studio en alle andere betaalde tools (nog) niet mogelijk. Ik ga binnenkort van mijn LAMP omgeving afstappen er er Zend Studio CE opzetten, om eens te kijken wat de verschillen zijn. Wellicht dat het met de monitoring nog best handig kan zijn (al gaat dit niet meer over IDE's).

Acties:
  • 0 Henk 'm!

  • user109731
  • Registratie: Maart 2004
  • Niet online
NetBeans kan ook Javascript debuggen (dmv een plugin in FF/IE). Ik heb het nooit geprobeerd en kan dus niets zeggen over de bruikbaarheid, maar wellicht handig om te weten :)

Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
.oisyn schreef op maandag 15 juni 2009 @ 19:37:
Ik gebruik vs.php, een PHP addon voor Visual Studio. Ook deze gebruikt de x-debug functionaliteit van PHP. Het voordeel is dat je tevens ook meteen vanuit VS javascript kunt debuggen als je met IE de pagina laadt - erg handig voor AJAX requests.
He kijk, die ga ik uitproberen.

March of the Eagles


Acties:
  • 0 Henk 'm!

  • stappel_
  • Registratie: Augustus 2000
  • Laatst online: 14-09 12:59
Misschien kan je ook kijken naar phped van Nusphere. Die wordt door ons op het werk gebruikt. Het is niet gratis maar de debugger is uitmuntend. Bijna alle bestaande php debuggers zijn een fork van een oude versie van deze debugger, alleen deze is nu vele malen beter.

Ubero: #2, Euler: #1, GOT: #1, Des: #1, Zeta: #1, Eon: #3, OGR-24: #3, OGR-25: #7,
LM: #7, AP: #5, DF: #19, D2OL: #37, SOB: #50, TSC: #63, RC5: #96


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
stappel_ schreef op woensdag 17 juni 2009 @ 14:35:
Misschien kan je ook kijken naar phped van Nusphere. Die wordt door ons op het werk gebruikt. Het is niet gratis maar de debugger is uitmuntend. Bijna alle bestaande php debuggers zijn een fork van een oude versie van deze debugger, alleen deze is nu vele malen beter.
Deze wilde ik net aanraden. Zeer compleet pakket met CVS, FTP, debug en profiling mogelijkheden.

Het is niet goedkoop, maar het werkt erg snel en makkelijk.

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 20-09 00:16

Matis

Rubber Rocket

Megamind schreef op woensdag 17 juni 2009 @ 15:14:
[...]

Deze wilde ik net aanraden. Zeer compleet pakket met CVS, FTP, debug en profiling mogelijkheden.

Het is niet goedkoop, maar het werkt erg snel en makkelijk.
Dat kun je ook met eclipse :p Maar ik snap waar je heen wilt. Profiling is dan wel weer handig :+

If money talks then I'm a mime
If time is money then I'm out of time

Pagina: 1