I forbindelse med at jeg skal lave en stak projekter i PHP, har jeg ledt efter en kodestandard sammen med et værktøj til at håndtere denne, da det gør projekterne lettere at vedligeholde senere.
Som beskrevet hos TIOBE kan det at lave og benytte en kodestandard ses som følgende 7 trins proces.
- Define Coding Standard
- Select Code Checking Tool
- Customize Code Checking Tool
- Integrate in SW Environment
- Set up Quality Database
- Define Quality Targets
- Enforce Compliancy
Da projekterne ikke er specielt store, og der ikke er mange udviklere på, har jeg valgt at springe quality databasen over, og kun benytte punkt 1, 2, 3, 4 og 7.
Som udgangspunkt kan man jo lave sin egen standard. Dette tager dog lang tid, og kræver stadig vedligeholdelse, samt udvikling af værktøj til at kontrollere overholdelse af denne. Derfor kan der være mange fordele i at adoptere en anerkendt standard.
Her er valgt at adoptere PHP PEAR standarden, da dette er en anerkendt standard i PHP miljøet, og der er meget PHP kode der bygger på denne. Samtidig er den meget gennemarbejdet.
Den væsentlige fordel ved at benytte PEAR standarden, er at PHP teamet også har udviklet et værktøj til at kontrollere kodestandarden i form af PHP_CodeSniffer, så punkt 1,2 og 3 kan klares af en gang.
Installering af værktøj
Først skal php pear installeres.
sudo apt-get install php-pear
Opdater pear databasen.
sudo pear channel_update pear.php.net
Installer kodestandarden.
sudo pear install PHP_CodeSniffer
Med dette kommer kommandoen phpcs som kan benyttes til at kontrollere php kode for om den overholder standarden.
Hvad punkt 4 angår, så benytter jeg bluefish som web editor, da denne er ekstrem hurtig (letvægts editor) på min gamle 1 GHz pentium 3, samtidig har den nogen pænt advanceret muligheder der gør den genial til web udvikling. Her integrere jeg phpcs, ved at gå ind i Rediger -> Præferencer og vælger uddata parsere, og tilføjer phpcs på samme måde som de andre muligheder.
Med dette haves en kodestandard for PHP, samt værktøj der integrere med ens IDE i form af phpcs integreret med bluefish. Alt i alt en stor hjælp når man ønsker at skrive PHP kode til lidt større projekter end single hygge projekter.