PHP programming (tools)

Voor Opensourcecms.eu was ik op zoeken naar een meer professionelere aanpak en ontwikkelomgeving.

Ontwikkelomgeving

De eerste stap was de ontwikkelomgeving. Jarenlang heb ik gebruik gemaakt van de Zend IDE (Zend Studio). Dat leek ooit een goede keus, gezien dat bijvoorbeeld de mogelijkheid bood om Zend Encoder en Zend Guard te gebruiken. Twee tools om o.a. je code te kunnen beschermen en daar eventueel een licentie key aan te kunnen koppelen. Zend Encoder heb ik in het verleden wel eens gebruikt, maar de laatste jaren niet meer.

Na een tip die ik kreeg bij webdesiging.nl uit Nijmegen ben ik enkele maanden geleden overgestapt op Eclipse. Overigens wordt Zend Studio tegenwoordig ook aangeboden als plugin voor Eclipse. Ik heb gebruik gemaakt van het PDT Project (PHP Development Tools). Hiermee kon ik direct aan de slag. Tot op heden heb ik geen extra-plugins gedownload en bevalt het prima.

Versiebeheer

Tot op heden had ik uitsluitend een lokaal CVS Repository in gebruik. De maakte het voor andere lastig mee te ontwikkelen aan Opensourcecms.eu of zelfs om het te gebruiken. Ik heb er over gedacht om SVN te gaan gebruiken, maar tot op heden voldeed CVS ook prima. In plaats van zelf CVS te installeren heb ik gekozen om een account aan te maken op Sourceforge.net en daar gebruik te maken van de CVS. Het project is te vinden op: http://sourceforge.net/projects/opensourcecmseu/

Test-driven development

Test-driven development heeft zich de afgelopen jaren wel bewezen. Daar zou ik dus eigenlijk ook wel mee aan de slag willen. PHPunit is de tool die ik daarbij kan gebruiken. De documentatie geeft ook wat voorbeelden, die mij een beter idee geven voor het schrijven van tests. Test voor alle bestaande code schrijven leek mij niet te doen, maar ik heb mij wel voorgenomen, voor elke nieuwe bug en zoveel mogelijk voor nieuwe code wel tests te gaan schrijven.

Documentatie

De code wordt pas echt herbruikbaar en vooral overdraagbaar als deze voorzien is van goede documentatie. Phpdoc biedt de mogelijkheid deze documentatie automatisch te genereren. De documentatie wordt gemaakt uit de comments, die in de code staan. Het is even wennen en soms zoeken welke comments er moeten worden toegevoegd. Ik verwacht dat het wel snel routine zal worden.

Coding standaards

Het hanteren van de standaard voor coderen, houdt de code leesbaar en begrijpelijk voor andere programmeurs. Bij de ontwikkeling van Opensourcecms maak ik gebruikt van het Zend Framework. Daarom heb ik er voorgekozen om de Zend Framework Coding Standard for PHP te gaan gebruiken.
Checkstyle kan helpen de standaard te bewaken en overzichtelijk maken waar er van afgeweken is.
Verder is er voor Eclipse een speciale plugin voor Checkstyle. De komende weken moet ik nog testen of deze ook echt werkt en toepasbaar is op de Zend Framework Coding Standard.

Phpundercontrol

Phpundercontrol is een addon tool voor CruiseControl. Deze tools brengen veel van het bovengenoemde samen. het eindresultaat is een grafische interface, waar de documentatie te vinden is, die is samengesteld met Phpdoc. Verder wordt inzichtelijk gemaakt of de code de tests doorstaan (PHPunit) en hoeveel procent van de code gedekt is met een test (code coverage). Tot slot zijn ook de resultaten van Checkstyle terug te vinden. Gezien veel van mijn code nu nog niet voldoet aan de coding standards, geeft deze laatste tool enige problemen. Er kan in PHP nu niet voldoende geheugen gealloceerd worden om de Checkstyle over alle code uit te voeren.
Phpundercontrol gebruikt de laatste versie van de code uit het CVS Repository op Sourceforge.net.

Leave a Reply

(will not be published)