Sto cercando di valutare le opinioni delle persone sull'uso di classi statiche invece di namespace. Vengo da uno sfondo C++ e sono abbastanza appassionato della sua sintassi e di come ti permette di strutturare il codice. Recentemente ho deciso che dovevo raggruppare il mio codice in unità logiche invece che solo file. Ad esempio preferisco le chiamate come User :: login a user_login. Così, ho fatto un po 'di google e sono stato sollevato nel constatare che PHP ha spazi dei nomi. Il mio sollievo non è durato a lungo però, davvero non mi piace la sintassi; aggiunge più disordine alle mie chiamate di funzione. Quindi, al momento sto usando le classi statiche per simulare i namespace. Ci sono degli aspetti negativi in questo?PHP Static Class o Namespace
Ho trovato una domanda simile a PHP Namespaces vs Classes with static functions ma non c'era un sacco di discussione.
Inoltre, c'è un modo per evitare la seguente situazione:
class Test {
public static void myFunc() {
Test::myOtherFunc();
}
public static void myOtherFunc() {
}
}
ho pensato che sarebbe stato ok per chiamare le funzioni della stessa classe senza specificare il nome, ma a quanto pare no. Ci sono soluzioni alternative per questo (ad esempio in C++ c'è la parola chiave using).
'self ::' e '$ this->' sono utilizzati in PHP per chiamare rispettivamente i propri metodi statici e di istanza. –
Quindi non è possibile che la qualifica sia implicita? vale a dire controllare la classe corrente per una funzione? – user1520427
No, ma trovo che sia esplicito essere una buona cosa :) –