Lint værktøj til PHP
JavaScript har vi jslint til at tjekke ens kode for de værste tåbeligheder.
Findes der noget lignende til PHP?
Jeg mener ikke "php -l", da den kun tjekker syntaksen af den ene fil men ikke for om man fx. bruger uinitialiserede variabler eller for et hav af andre ting som PHP tillader, men som er/kan være en virkelig dårlig ide.
- Log in to post comments
Kommentarer6
Hvad skal du dog med det?!
Hvad skal du dog med det?! :P PHP er sproget, hvor alle slags tåbeligheder er tilladt.
Jeg har ikke hørt om sådan et værktøj. Jeg bruger netbeans, som kan tjekke syntaksfejl on the fly, samt i mindre grad kan checke uhensigtsmæssig kode.
Uinitialiserede variabler
Uinitialiserede variabler giver en NOTICE hvis du har din error reporting skruet helt op. Hvilket jeg iøvrigt anbefaler når du udvikler. Der er ikke noget grimmere end at sætte et projekt i søen fyldt med warnings og notices. Then again, Typo3 har af uransagelige årsager overlevet det i mange år...
Umiddelbart vil jeg tro dit bedste bud er enten at bruge et IDE med et PHP-plugin der kan give dig begrænset kodetjek -- eller simpelthen skrive din egen.
Hvad skal du dog med
#1: Hvad skal du dog med det?! :P PHP er sproget, hvor alle slags tåbeligheder er tilladt.
Endnu mere end JavaScript, ja. Men JavaScript har et glimrende værktøj til at holde de værste af den slags væk.
#2
Kender godt til den warning, jeg vil bare kunne tjekke det uden at afvikle scriptet og det er langt fra den eneste fejl som man burde tjekke for. Der er også "skønheder" som variables variable fx.:
$varName = "^hhjgds£½436@";
$$varName = "Hugo";
Hvis man havde et script som jslint bare til PHP, så kunne man have det som commit-hook og nægte dårlig kode i ens repository.
Jeg bruger Komodo IDE
#3:
Jeg bruger Komodo IDE som er fint til at syntaxtjekke php. Det findes også i en gratisversion, Komodo Edit. Der findes endda Open Komodo, men jeg har ikke kigget efter hvad det dækker over.
Mht. dit sidste eksempel er det jo fuldt tilladt og i sjældne tilfælde nyttigt.
$varName = "test";
$$varName = "Hugo";
echo $test; // Hugo
Jeg ved ikke om php kan fange dette da jo er tillladt.
Mht. dit sidste eksempel
#4: Mht. dit sidste eksempel er det jo fuldt tilladt og i sjældne tilfælde nyttigt.
Præcis, det er tilladt og det er helt utrolig dårlig kode at bruge det feature.
Jeg kan virkelig ikke komme på et eksempel, hvor det er en god ide at bruge det.
Hvis man vil have en global variable med sådan et navn, så brug $GLOBALS, hvis man vil have en get, post, cookie variable, så brug $_GET, $_POST, $_COOKIE eller $_REQUEST. (Og i øvrigt slår register_globals fra).
Jeg fandt en tråd på
Jeg fandt en tråd på stackoverflow om netop dette emne, jeg har endnu ikke selv undersøgt værktøjerne der foreslås.
http://stackoverflow.com/questions/3601031/is-there-a-good-robust-php-l…