✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Evitare class_exists nel codice WordPress orientato agli oggetti

8

Se scrivi codice orientato agli oggetti per WordPress (di solito nel contesto dei plugin), è probabile che ti imbatti in un controllo class_exists prima di inizializzare una classe. Ma a questo punto dovremmo iniziare a evitare class_exists in gran parte del nostro codice (con alcune eccezioni che illustrerò di seguito).

A seconda della versione di PHP che stai utilizzando, questo ha senso. O lo ha fatto una volta. A partire da PHP 5.3.0, questo non è necessario. Invece, è una pratica migliore usare gli spazi dei nomi.

Evitando class_exists

Puoi vedere tutti i requisiti per varie versioni di WordPress in questa pagina, quindi se stai lavorando con versioni legacy di WordPress, l’intero controllo class_exists potrebbe valerne la pena.

Tuttavia, c’è una nota importante :

Nota: se ti trovi in ​​un ambiente legacy in cui hai solo versioni precedenti di PHP o MySQL, WordPress funziona anche con PHP 5.2.4+ e MySQL 5.0+, ma queste versioni hanno raggiunto la fine del ciclo di vita ufficiale e come tali potrebbero esporre il tuo sito a vulnerabilità di sicurezza.

Ma per la maggior parte di noi, i moderni ambienti di hosting supportano almeno PHP 5.3.0, se non superiore, e per questo motivo non è necessario utilizzare class_exists.

Detto questo, non è raro vedere qualcosa del genere :

O così :

Anni fa, scrivevo anche codice come questo. A volte doveva interfacciarsi con una base di codice preesistente. Altre volte era perché non sapevo niente di meglio. Il fatto è che questo è diventato qualcosa che vediamo nel codice basato su WordPress quando non dobbiamo usarlo.

In effetti, direi che non dovremmo usarlo più.

Ma più codice scrivi e più codice leggi, più impari, giusto? Questo fa parte dell’intero motivo per gli spazi dei nomi e il caricamento automatico.

Quindi come verrebbe scritto il codice sopra?

Forse così :

Tuttavia, questo solleva la domanda per alcuni: in che modo gli spazi dei nomi aiutano invece di usare class_exists?

Idealmente, se la stessa classe esiste all’interno di uno spazio dei nomi, c’è un problema con lo spazio dei nomi. Ricorda che puoi pensare a uno spazio dei nomi come a un pacchetto composto da pezzi unici. E poiché sono unici, non dovrebbe mai esserci un altro pezzo o, in questa classe, un’altra classe uguale.

A tal fine, anziché utilizzare i controlli class_exists, mira a utilizzare gli spazi dei nomi. Ovviamente, non sto dicendo di tornare indietro e refactoring di tutto il codice – non l’ho fatto – ma ciò non significa che il codice che scrivo o rivedo includa l’uso o i consigli per cui.

È una modifica semplice che può fare molto per mantenere il codice più facile da leggere, disseminato di meno condizionali (un post per un’altra volta) e mantenerlo molto più organizzato.

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More