Gli standard di codifica di WordPress virgolette singole e virgolette doppie

In questa serie, diamo uno sguardo agli standard di codifica PHP di WordPress per capire ulteriormente come dovrebbe essere scritto il codice WordPress di qualità.

Certo, tutto questo è documentato negli standard di codifica di WordPress ed è un sito che ogni sviluppatore di WordPress dovrebbe avere messo tra i segnalibri e a portata di mano quando si lavora su un tema, un plugin o un'applicazione; tuttavia, se ti stai dedicando allo sviluppo di WordPress, è importante capire la logica perché le convenzioni sono come sono.

In questo articolo, daremo un'occhiata all'utilizzo di virgolette singole e virgolette specifiche quando si ha a che fare con le stringhe.

Questo potrebbe essere l'articolo più breve e diretto della serie, ma dovrebbe coprire alcune sfumature importanti in relazione al lavoro con citazioni singole, virgolette doppie e stringhe in WordPress.


Stringhe in PHP e stringhe in WordPress

Prima di discutere effettivamente le stringhe in relazione a WordPress, è importante capire in che modo il linguaggio PHP interpreta le stringhe quando sono quotate singole o doppie.

Virgolette singole in PHP

Innanzitutto, il modo più semplice e diretto per definire una stringa in PHP consiste semplicemente nel racchiuderlo tra virgolette singole (cioè il carattere).

Come con la maggior parte dei linguaggi di programmazione, lì siamo modi per sfuggire ai caratteri in modo da poter scrivere una stringa letterale. Ad esempio, se si desidera scrivere: "String's in PHP is easy", come stringa, è possibile eseguire questa operazione:

'String \' s in PHP sono facili. '

Vedere? I backslash istruiranno PHP a scrivere la singola virgoletta anziché terminare la stringa vera e propria.

La seconda cosa da notare è che se si dispone di una variabile, lo sarà non essere sostituito quando citato tra virgolette singole. Ad esempio, supponiamo di avere una variabile chiamata nome $ e contiene il valore "Envato".

Più specificamente, nel codice, questo sarebbe simile a questo:

$ name = 'Envato'

Se dovessi incorporare il nome $ variabile in un'altra stringa, "Envato" non verrà sostituito.

 $ name = 'Envato'; echo 'Sto scrivendo per $ name. È molto divertente.';

Questo farebbe solo eco: Sto scrivendo per $ name. È molto divertente.

Qui è dove le doppie virgolette cominciano a tornare utili.

Virgolette doppie in PHP

Direttamente dal manuale PHP:

Se la stringa è racchiusa tra virgolette ("), PHP interpreterà più sequenze di escape per caratteri speciali.

Puoi leggere ulteriori informazioni sui personaggi di escape e altre informazioni nel manuale PHP, ma diciamo che dovremmo rielaborare alcune delle stringhe che abbiamo definito sopra.

Il nostro primo esempio, quello con la citazione singola evasiva, potrebbe ora essere definito in questo modo:

"Le stringhe in PHP sono semplici."

Il nostro secondo esempio potrebbe essere un ulteriore passo in avanti: non solo la sequenza di escape non è più necessaria, ma anche la variabile verrà valutata:

 $ name = 'Envato'; echo "Sto scrivendo per $ name. È molto divertente.";

La seconda riga sarà letteralmente eco: Sto scrivendo per Envato. È molto divertente.

Quindi, considerato come un'introduzione, parliamo delle specifiche delle stringhe in WordPress. La verità è che se hai una forte comprensione di tutto quanto sopra, non c'è molto altro da aggiungere oltre a casi unici.

Citazioni singole in WordPress

In linea con le convenzioni di codifica PHP, la regola generale da seguire è quella di utilizzare sempre virgolette singole per definire le stringhe.

Poiché gran parte del lavoro svolto in WordPress include anche la scrittura del markup entro una stringa PHP, è meglio posizionare tali stringhe tra virgolette singole in modo che gli attributi dell'elemento HTML possano essere racchiusi tra virgolette doppie.

Per esempio:

$ html = 'WordPress';

Ovviamente, quanto sopra rende l'esperienza di lettura molto più pulita di dover inserire diversi caratteri di escape per gestire le virgolette doppie, le barre e così via.

Se hai a che fare con il markup che deve estendersi su più righe o dove stai creando diversi elementi, alcuni dei quali sono elementi figlio di altri, consiglio sempre di indentare il codice in modo che legga come un documento HTML.

Per esempio:

 $ name = 'Tom McFarlin'; $ html = '
'; $ html. = ''. $ nome. ''; $ html. =
';

È importante notare che questo non fa parte degli standard di codifica di WordPress - questa convenzione è quella che trovo semplicemente utile quando si tratta di mantenere il codice - tuttavia, ricorda che le singole stringhe citate fanno non valutare il valore di una variabile.

Pertanto, è importante notare che, in questo caso, stiamo utilizzando la concatenazione di stringhe per includere la definizione di variabile.

Virgolette doppie in WordPress

Proprio come con le virgolette doppie in PHP, è importante notare che ci sono momenti in cui è preferibile usarli specialmente quando è necessario valutare una variabile.

Nell'usare l'esempio del codice sopra, lo adattiamo come segue:

 $ name = 'Tom McFarlin'; $ html = "
"; $ html. ="nome $"; $ html. ="
";

Si noti che abbiamo sostituito tutte le virgolette singole con virgolette doppie e che non è più necessario eseguire alcuna concatenazione di stringhe con nome $ variabile poiché sarà valutata.

È anche importante notare che, sebbene sia discutibile più comune per vedere le virgolette applicate agli attributi HTML, le virgolette funzionano bene, specialmente in scenari come questo.


Ma lì Siamo eccezioni

Quando si lavora con stringhe e vari linguaggi di programmazione, in particolare HTML, può risultare complicato in termini di modalità di nidificazione del codice.

Ad esempio, supponiamo che tu stia utilizzando PHP per scrivere JavaScript che è responsabile del rendering di HTML. In questo scenario, dovrai scrivere molte virgolette.

Sebbene sia possibile semplicemente alternare gli stili di quotazione, questo non funzionerà il 100% delle volte.

Anche gli standard di codifica indicano:

Un'eccezione a questo è JavaScript, che a volte richiede virgolette doppie o singole.

Sebbene ci siano momenti in cui potresti non essere in grado di farlo, ciò rafforza l'idea che dovremmo sforzarci di mantenere ogni linguaggio di programmazione nel proprio stile di file e includerli quando e dove necessario.


Ci sono problemi di sicurezza?

Sì, ma WordPress li rende estremamente facili da gestire, e anche se questo tecnicamente rientra nella convalida dei dati, è strettamente correlato esattamente a ciò di cui stiamo discutendo in questo articolo.

Il problema principale è che ci sono momenti in cui possiamo scrivere in modo dinamico gli attributi HTML nel nostro markup che hanno valori che non possiamo prevedere. In casi come questo, dobbiamo essere in grado di sfuggire a questi dati.

Fortunatamente, WordPress fornisce il esc_attr funzione. In poche parole, questa funzione prenderà una stringa in entrata e codificherà i caratteri per assicurarsi che vengano resi correttamente al browser.

In pratica, lo utilizzeresti esattamente come dimostra il Codex:

 eco '';

Per ulteriori informazioni, assicurati di rivedere l'articolo del Codex.


Conclusione

Quindi, come regola generale, dovresti usare le virgolette singole salvo che stai valutando una stringa o stai per tornare ed echeggiare HTML, JavaScript o potenzialmente anche i CSS al chiamante.

Proprio come lo stato di codifica afferma:

Non dovresti quasi mai sfuggire alle virgolette in una stringa, perché puoi semplicemente alternare lo stile di citazione.

Quindi, mentre lavori con le stringhe nel tuo lavoro futuro, tieni a mente questi principi e potresti fare in modo di assicurarti che le tue stringhe siano pulite e facili da comprendere nel contesto dei tuoi progetti basati su WordPress.