sql >> Databasteknik >  >> RDS >> Mysql

flera funktioner är en stor funktion i PHP?

En funktion bör ha tydligt definierade, snäva ansvarsområden med tydligt definierade, minimalistiska returtyper. Om du börjar skapa "gudsfunktioner" som gör allt och diskbänken beroende på vilka argument du passerar, går du tungt in på territoriet med svår att upprätthålla spagettikod. Du vill inte ha en funktion som gör A och returnerar B om du klarar det X, men gör C och returnerar D om du skickar det Y osv...

Det är en bra idé att börja konkret och generalisera över tid när du ser liknande mönster dyka upp. Så skapa de metoder du faktiskt behöver:

public function findUserById($id)
public function findUserByEmail($email)
public function updateCompanyName($id, $newName)

Om du upptäcker att du har delat kod mellan dessa funktioner, förena koden bakom kulisserna för att hålla den torr:

public function findUserById($id) {
    return $this->find('SELECT * FROM user WHERE id = ?', $id);
}

public function findUserByEmail($email) {
    return $this->find('SELECT * FROM user WHERE email = ?', $email);
}

protected function find($query, $arg) {
    ...
}

Börja inte tvärtom, tänk att du "bara behöver X, Y och Z" som verkar lika nog för att förenas till en metod, för att senare ta reda på att det finns små skillnader mellan X, Y och Z och skräpa din kod med särskilda fall för varje. Det leder bara till funktioner som antingen är enorma eller så allmänna att de i princip inte gör något på egen hand.



  1. Kombinera fält från olika rader på skick

  2. Nya funktioner i SQL Server 2017 (databasmotor)

  3. MySQL - Sök exakt ord från sträng

  4. Skapa tabell med PHP och fyll i från MySQL