PHP bästa praxis: Typparametrar
Det finns de metoder som vi lär oss i skolan, de vi tar på oss genom lättja, de vi anammar av vana, antingen genom att se det eller genom att systematiskt kopiera och klistra in. Med tid och erfarenhet är det tydligt att vi letar efter allt tydligare metoder och syntaxer. Trots trenderna som urskiljs runt varje språk kan vi ofta avgöra genom att läsa kod, vem av vårt team som har en sådan syntax. I C # kommer purister att ta för vana att börja alla sina gränssnitt med ett "I" Till exempel .
Sommaire
PHP, en gratis syntax... för gratis?
Jag har själv flera vanor som gör att jag kan bygga min kod på ett vanligt sätt. Detta för att enkelt hitta runt, för att arbeta snabbt, men också för att underlätta felsökning och läsning av min kod för mina kollegor.
Skriv dess parametrar, för vad? Och varför är detta en bra praxis?
I PHP är syntaxen väldigt fri. Jag menar väldigt fritt med att språket inte är särskilt mångsidigt. Utan att vara en anhängare av språk som Java till exempel, tror jag att att skriva dess parametrar bara kan hjälpa oss i vårt arbete.
Varför slösa tid på att skriva datatypen?
Ja, men låt oss omedelbart jämföra för- och nackdelarna.
I nackdelarna, utan att vara dåliga tider, kommer jag att ha svårt att citera ett annat argument än det jag skrev ovan.
I proffsen kan jag ange en liten lista:
- Det hjälper mig att bygga min kod. I min prototyp (deklaration av min funktion) vet jag att ett sådant och ett argument måste vara ett astråle ou int.
- Detta gör att jag kan felsöka snabbare. Om du deklarerade att du ville ha ett slags argument Användare i din metod kommer PHP att förvänta sig en användarinstans. Eller försök att ge ett astråle eller någon annan typ än den som anges, kommer att få PHP att stoppas omedelbart. Visserligen riskerar felet att bli ganska "svårt", men all övrig utveckling kommer sannolikt inte att misslyckas.
- Mina kollegor gillar att läsa min kod som en bok. Faktum är att när vi vet att setItem(...)-metoden tar ett argument av typen foo, det hjälper. Nej ?
12fungera setItem($item);fungera setItem(Foo $item);
Visserligen innehåller denna lista bara 3 punkter, men vårt arbete tvingar oss att alltid vara på krigsstigen och att alltid utforska nya vägar, jag råder dig att försöka se själv.
Ett avstängt problem med typen blandad
Ja, jag måste ändå erkänna en svaghet, typen blandad. Hemsk kille och att bli förbjuden. För de som har kodat i C/C++ är det som att deklarera en instanspekare med en (void *).
Jag råder dig så mycket som möjligt att inte använda denna typ och att begränsa användningen. Ett exempel ?
Metoden setPoireau(blandad $poireau) tar purjolök som parametrar men eftersom den inte är maskinskriven kan du också ge den en babysäl... Problematiskt.
Om du ville tvinga att ha purjolök, du vet vad du måste göra, och låt oss erkänna att du har ett vridet sinne och att du skulle vilja kunna ge grönsaker, jag inbjuder dig att använda ett gränssnitt (eller en klassabstrakt ) och definiera din metod så här.
|
|
Jag håller med om att det här exemplet kanske inte är det bästa som finns, men det har förtjänsten att vara tydligt.
Slutsats
Inskrivningen är inte obligatorisk, men förblir tillgänglig för alla som vill arbeta tydligt och rent. Jag rekommenderar det starkt till dig.
Kanske kommer vi att ha rätten, en dag, att skriva tillbaka en metod för att hjälpa oss i vår strävan efter en allt bättre semantik.