PHP
Webbureau » Digitaal nieuws » Beste praktijk voor PHP: typ parameters

Beste praktijk voor PHP: typ parameters

Er zijn praktijken die we op school leren, die we uit luiheid overnemen, die we uit gewoonte overnemen, hetzij door ze te zien of door systematisch te kopiëren en plakken. Met de tijd en ervaring is het duidelijk dat we op zoek zijn naar steeds duidelijkere methodologieën en syntaxis. Ondanks de trends die rond elke taal worden onderscheiden, zijn we vaak in staat om door het lezen van code te bepalen wie van ons team een ​​dergelijke syntaxis heeft. In C # zullen puristen er een gewoonte van maken om al hun interfaces met een "I" te beginnen. .

PHP, een vrije syntaxis… te vrij?

Ik heb zelf verschillende gewoonten waardoor ik mijn code op een regelmatige manier kan bouwen. Dit om gemakkelijk mijn weg te vinden, snel te werken, maar ook om het debuggen en het lezen van mijn code voor mijn collega's te vergemakkelijken.

Typ de parameters, waarvoor? En waarom is dit een goede gewoonte?

In PHP is de syntaxis erg vrij. Ik bedoel heel vrij door het feit dat de taal niet erg breedsprakig is. Zonder een voorstander te zijn van talen zoals Java, denk ik dat het typen van de parameters ons alleen maar kan helpen bij ons werk.

Waarom tijd verspillen aan het schrijven van het gegevenstype?
Inderdaad, maar laten we meteen de voor- en nadelen vergelijken.

In de nadelen, zonder slechte tijden te zijn, zal ik het moeilijk vinden om een ​​ander argument aan te halen dan het argument dat ik hierboven schreef.

Bij de profs zou ik een kleine lijst kunnen noemen:

  1. Het helpt me bij het bouwen van mijn code. In mijn prototype (verklaring van mijn functie) weet ik dat die en die redenering een a moet zijnstraal ou int.
  2. Hierdoor kan ik sneller debuggen. Als je verklaarde dat je een argument van het type wilde Gebruiker in uw methode verwacht PHP een gebruikersinstantie. Of probeer een a te gevenstraal of een ander type dan het aangegeven type, zorgt ervoor dat PHP onmiddellijk stopt. Toegegeven, de fout loopt het risico behoorlijk "moeilijk" te zijn, maar de rest van uw ontwikkeling zal waarschijnlijk niet mislukken.
  3. Mijn collega's lezen mijn code graag als een boek. Inderdaad, als we weten dat de methode setItem(...) een argument van het type nodig heeft foo, het helpt. Neen ?
    1
    2
    functie setItem($artikel);
    functie setItem(Foo $ item);

Toegegeven, deze lijst bevat slechts 3 punten, maar ons werk verplicht ons om altijd op oorlogsbasis te zijn en altijd nieuwe wegen te verkennen, ik raad u aan om het zelf te proberen.

Een opgeschort probleem met het type gemengd

Ik moet inderdaad toch een zwakte toegeven, het type gemengd. Vreselijke kerel en om verbannen te worden. Voor degenen die in C/C++ hebben gecodeerd, is het alsof je een instantiewijzer declareert met een (void *).

Ik raad u aan dit type zoveel mogelijk niet te gebruiken en het gebruik ervan te beperken. Een voorbeeld ?
De methode setPoireau(gemengd $poireau) neemt prei als parameters, maar aangezien het niet is getypt, kun je het ook een babyzeehond geven... Problematisch.

Als je het hebben van prei wilt forceren, weet je wat je te doen staat, en laten we toegeven dat je een gestoorde geest hebt, en dat je groenten zou willen kunnen geven, dan nodig ik je uit om een ​​interface te gebruiken (of een klasse abstract ) en definieer uw methode als volgt.

1
functie setPrei(I Groente $prei);

Ik ben het ermee eens dat dit voorbeeld misschien niet het beste is dat er is, maar het heeft de verdienste dat het duidelijk is.

Conclusie

Het typen is niet verplicht, maar blijft beschikbaar voor iedereen die duidelijk en netjes wil werken. Ik raad het je ten zeerste aan.

Misschien hebben we ooit het recht om de terugkeer van een methode te typen om ons te helpen in onze zoektocht naar steeds betere semantiek.

★ ★ ★ ★ ★