Archive for the 'PHP' Category

PHPUnit installeren op WAMP

Carl on jun 4th 2012

Voordat u PHPUnit kunt installeren, moet PEAR geïnstalleerd zijn. Als dat nog niet het geval is, kan dat door de volgende stappen uit te voeren:

  • Ga naar wamp-directory, b.v. :
    C:\>cd wamp\bin\php\php5.3.0
  • Om PEAR te installeren voert u het volgende commando uit:
    C:\wamp\bin\php\php5.3.0>go-pear.bat
  • Dit geeft een aantal vragen, waarvan u de standaard instellingen kunt accepteren.
  • Vervolgens stelt u de omgevingsvariabelen in voor PEAR. Daarvoor voert u C:\wamp\bin\php\php5.3.0>PEAR_ENV.reg uit. Hiermee worden een aantal waarden in de Registry geplaatst (Voordat u het uitvoert wellicht handig een backup te maken van de registry met regedit). Als die variabelen zijn ingesteld, kunt u overal op de command-line PEAR aanroepen.
    Als u PEAR niet van de command-line kunt aanroepen, moet u handmatig de directory aan de lijst met Omgevingsvariabelen toevoegen, deze vindt u in System Properties -> Advanced-> Environment Variables, vervolgens de directory C:\wamp\bin\php\php5.3.0 aan de PATH variable toevoegen.

PHPUnit installeren

  • Het kanaal van PHPUnit in pear registreren C:\wamp\bin\php\php5.3.0>pear channel-discover pear.phpunit.de
  • Vervolgens PHPUnit installeren C:\wamp\bin\php\php5.3.0>pear install phpunit/PHPUnit
    of php5.3.0>pear install --alldeps phpunit/PHPUnit

Als u een verkeerde versie (te laag) van PEAR op uw systeem hebt kunt u PEAR upgraden
...php5.3.0>pear upgrade pear

Filed in PHP | Reacties uitgeschakeld

Recursie

Carl on mrt 2nd 2011

PHP is soms niet gemakkelijk te doorgronden. Een van de problemen die je als programmeur geheid tegen zal komen is dat je een functie recursief wilt aanroepen. Als je dan je code zover hebt om te testen, kom je er achter dat de waarde van je initïele variabele ineens niet meer hetzelfde is. Je array of hash bevat niet meer dezelfde waarde(n) maar alleen de eerste …

In PHP kan je een methode recursief aanroepen, niet een functie. Verwarrend? Ja, nogal, want dit wil zeggen dat je alleen in een class/object recursief kan werken. Ondanks dat het lijkt dat je functies schrijft in een class – doordat je ‘function’ gebruikt – zijn het methoden.

Het recursief aanroepen van de methode kan je niet op de gebruikelijke manier: ‘$this->methodname ([all your paramaters]);’. Recursie krijg je alleen voorelkaar met ‘classname::methodname([all your params);’. Indien je het met ‘$this->..’ probeert, zal je merken dat je array|hash wederom is teruggebracht naar één waarde. Dat komt omdat je data zich nog in dezelfde instantie/namespace (of hoe je het ook noemen wilt) bevindt. Daardoor wordt je variabele overschreven. Indien je gebruik maakt van ‘class::method ..’, maak je gebruik van een nieuwe instantie van je class, waar die variabele nog niet in voorkomt.

Filed in PHP | Reacties uitgeschakeld

Class Variabelen PHP5

Carl on feb 24th 2011

Een andere aardigheid om te weten:

Als je een class schrijft in PHP 5 en je gebruikt booleans in je methoden, moet je deze eerst initialiseren/declareren.

function methodenaam () {
$booleanvar = false;
...
}

Als je dat niet doet, heb je in PHP5 de kans dat je, ongeacht het feit dat je de variabele de waarde ‘true’ meegeeft, ‘false’ terugkrijgt. Het is sowieso goed om van te voren je variabelen vooraf te declareren/initialiseren.

Filed in PHP | Reacties uitgeschakeld

Het gebruik van aanhalingstekens

Carl on jan 25th 2011

Veel programmeurs maken gebruik van dubbele aanhalingstekens in hun code. Vaak is de rede dat het eenvoudig is of beter leesbaar. Echter, PHP is een interpreterende taal en zal alles dat tussen dubbele aanhalingstekens staat interpreteren. Dit kan bij het doorlopen van grote hoeveelheden code vertragend werken.

Alles dat u tussen enkele aanhalingstekens schrijft, wordt niet geïnterpreteerd. Dit impliceert dat concateneren snellere code oplevert. Een gegeven dat bij sites met een hoog bezoekersaantal meespeelt.

B.v.:
echo “Welcome to {$_SERVER[''HOST'']} bla bla, $_today”;
echo ‘Welcome to ‘ . $_SERVER['HOST'] . ‘ bla bla, ‘ . $_today;

Filed in PHP | Reacties uitgeschakeld