För att hålla ordning i koden är det viktigt att välja tydliga regler för hur vi tar fram namn. Den här sidan är en översikt över de relativt populära tillvägagångssätt som används av ett stort antal programmerare, inklusive mig själv och personer som jag arbetar med.
Om du arbetar i ett utvecklingsteam kan du absolut använda deras regler, men för allmän utveckling är det lika bra att skapa några goda vanor.
Eftersom begreppet hela PHP-syntaxen är väldigt brett har jag delat upp guiden i många kategorier som är mycket specialiserade.
Om du letar efter en snabb lösning rekommenderar jag att du studerar SPR-4-standarden.
Varje skript måste börja med taggen <?php
.
Om det inte finns utan HTML i slutet av filen ska den inte avslutas (för att förhindra att ett vitt tecken visas i slutet av sidan).
Laddning av andra filer bör följa följande regler:
include 'file.php';
require 'file.php';
Om det åtminstone är lite möjligt bör vi separera logiken för datahämtning från HTML-återgivningen, dvs. använda MVC-modellen (model - view - controller).
Vi förbereder alltså först data i till exempel Presenter:
Presenter.php
$cisla = [1, 2, 3];$data = [];$data['nummer'] = $cisla; // överföra data till malleninclude 'renderCisel.php'; // ladda in mallen
Sedan ritar du den i mallen:
renderCisel.php
<table><?phpforeach ($data['cisla'] as $cislo) {echo '<tr><td>' . $cislo . '</td></tr>';}?></table>
Detta tillvägagångssätt används av de flesta ramverk och är användbart för att öka kodens tydlighet. Under den senare delen av utvecklingsprocessen bör detta tillvägagångssätt användas av alla erfarna programmerare som vill utveckla tydligt strukturerade program (för stora program är detta tillvägagångssätt ett måste).
Om en variabel innehåller en array av värden eller andra objekt ska den namnges i plural:
$numbers = [1, 2, 3];
Då kan vi helt enkelt iterera värdena med ett enda nummer:
foreach ($numbers as $number) {// Behandling av siffror}
Ett namn som består av flera ord kombineras till ett långt ord med cameCase-syntaxen, dvs. det första ordet börjar med en liten bokstav och varje efterföljande ord med en stor bokstav:
$promenna = 'Hallå! Hallå!';$seznamUzivatelu = ['Jan Barášek','Barack Obama','Steve Jobs','Stephen Wolfram',];$maxFilesInDirectory = 12;$nameOfPhpScript = 'index.php'; // PHP-förkortningen har minskat i storlek
Funktioner och metoder ska alltid ange tydligt i sitt namn vad de gör. Ofta kan de förväntade inparametrarna och returvärdet också inkluderas i namnet.
Försök att gissa vad följande funktioner gör och vad de returnerar:
getUserById($id);saveErrorToLog($message);createDefaultDirectory($path);setAuthors(['Jan Barášek', 'Chuck Norris']);getCurrentTime();
Hela tricket ligger i det första ordet i namnet, som gör det tydligt vilken metod som funktionen kommer att använda. Följande konvention brukar följas:
get
- hämtar data som en matris eller ett objekt, ingångsparametrarna anger den enhet som söks.save
- sparar till en fil eller en databascreate
- skapar en enhet (t.ex. en instans av ett objekt).set
- sparar data till en fördefinierad variabel (i en funktion).En klass är en stor enhet som innehåller ett stort antal egenskaper och metoder, så den bör också börja med en stor bokstav. En klass ska också bara innehålla en enhet (och beskriva dess egenskaper), så den ska namnges med ett singulärt namn. Om vi behöver arbeta med flera enheter kan vi bara lagra varje instans i en array.
Exempel:
class User{public string $username;public string $password;public string $role;}class Users{/** @var User[] */public array $users;public function addUser(User $user): void{$this->users = array_push($this->users, $user);}}
Klassen User är specialiserad på information om endast en specifik användare. Om vi vill arbeta med flera användare skapar vi en annan klass (envelope) som innehåller en rad instanser av en viss enhet.
Fabriker kan också ofta vara användbara för detta, eftersom de gör det möjligt att enkelt skapa liknande objekt och återanvända de ursprungliga instanserna, vilket leder till tydligare kod samtidigt som systemresurser sparas.
Namespace är oberoende av den fysiska katalogen där skriptet finns tillgängligt, men det är bra att åtminstone delvis respektera projektets layout (vilket leder till ett bättre system för att skapa nya namn som är mer entydigt på detta sätt).
Personligen namnger jag namnområden enligt den gemensamma underkatalogen för klasser av den typen.
Exempel:
App\Presenters; // Här är namnen på alla föredragshållareApp\Model; // Detta är namnet på den allmänna modellenApp\Model\Math; // Detta är namnet på den modell som arbetar med matematik.
För korrekt autoladdning av klasser är det en bra idé att följa PSR-4-standarden.
Och vad kallar du dina för? Jag skulle uppskatta tips om hur jag kan förbättra den här artikeln.
Generellt sett är det dock inte särskilt klokt att använda egna konventioner inom ett team, eftersom det gör det svårare att anpassa koden till andra ramverk och du måste lära dig de aktuella konventionerna när du anställer en ny kollega. Det är därför bäst att följa standarden PSR-4
.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | sv