PHP er ikkje så halvgale (ikkje så verst)

I denne artikkelen vil eg gjerne dele litt tips og triks for effektiv debugging av Craft CMS og liknande PHP-baserte applikasjoner.

elefant tøybamse på toppen av laptop

Foto av Ben GriffithsUnsplash.

Eg skreiv denne teksten originalt for mine kollegaer i Netlife. Etterpå kom eg på at det kan vere kjekt å dele desse tipsa med den vide veven. ☺️

Editere /etc/hosts fil 📄 #

Av og til så koder ein opp logikk som toggler funksjonalitet basert på domenet i nettlesar-URL. Til dømes ved bruk av Craft multi-site feature. Då kan du endre på /etc/hosts filen på maskinen din for å rute ein eller fleire domener til samme PHP applikasjon på maskinen din. (Hugs å endre tilbake når du gir deg for arbeidsdagen for å unngå framtidige overraskingar).

Endre rett i staging / produksjon 🚀 #

Dette er litt crazy, men det er også ein farbar veg å logge på server med SSH for endre filer med Vim eller liknende editor. Om du føler at du har ein veldig treig feedback-løkke ved å måtte pushe mini-endringer til staging eller produksjon heile tida så kan dette vere ein god løsning for å utforske raskt. Pass på å kopier endringene dine tilbake til kodebasen slik at dei ikkje blir utviska ut ved neste deploy.

Sidenote: Når eg tenkjer meg om så veit eg ikkje om så er det ikkje så mange andre språk som har ein så direkte arbeidsflyt. Programmerings­språk som Clojure og Common Lisp er dei næraste døma eg kjem på der ein kan kople seg på ein køyrande applikasjonen og endre den ute på verdensveven.

Dump and die 💣 #

Ein veldig klassisk PHP tilnærming er å logge ut variabler med var_dump og deretter kalle die() i PHP prosessen. Om du syns die() høyres veldig valdeleg ut så kan ein også bruke den tilsvarande kommandoen exit(). Twig har tilsvarande fasiliterer.

Bruke local / remote debugger 📡 #

Dersom du utvikler eller debugger PHP moduler for Craft CMS så sparer du frykteleg mykje tid med å bruke PhpStorm som tilbyr mykje funksjonalitet for PHP-utvikling. Ein killer feature er at du kan setje break points på ein lokal eller remote PHP prosess. Og når du debugger remote kode så er det også mogleg å oppdatere koden du debugger rett i server-miljøet (gisp!). Dette er ein stor hammer som ein kan hamre foten sin med, men det kan også vere ein nyttig måte å få ting gjort raskt. Du kan forresten også få auto-complete i twig templates med PhpStorm.

PHP for seriøs programmering #

«Problemet med JavaScript er at folk tek seg ikkje tid til å lære det skikkeleg.» Eg hugser diverre ikkje kor eg høyrde eller las dette utsagnet først, men eg syns det var godt sagt. I desse dager tek folk JS rimeleg seriøst, og likeins så tenkjer eg at me også bør byrje å ta PHP seriøst.

Noko som var med på å overbevise meg om at PHP var vel verdt å ta ein ekstra kikk på var da eg las ein artikkel ved namn Taking PHP Seriously som var skrive av utviklarar ved Slack.

Uniquely among modern languages, PHP was born in a web server. Its strengths are tightly coupled to the context of request-oriented, server-side execution (Keith Adams, Chief Architect, Taking PHP Seriously).

Å jobbe med PHP kan kjennast som å vere i veldig ukjend farvatn om ein kjem frå JavaScript, men eg kan rapportere at vatnet er bra. Hopp uti! 🏝️