Categorie
Sviluppo

Come Testare le Versioni di Sviluppo di PHP con 3v4l

PHP 8 porterà con sé moltissime novità. Si va dall’introduzione di JIT (Just-In-Time Compiler) agli Union Types e alle Weak Map. Ma le novità sono davvero molte, come si vede nell’elenco delle RFC.

Uno dei problemi che potreste trovarvi ad affrontare se decidete di testare le funzionalità in arrivo con le nuove versioni di PHP, è la difficoltà di trovare una sandbox per testare il codice prima che questo venga integrato nella versione stabile. La difficoltà nasce dal fatto che molte novità non sono state ancora approvate, alcune nemmeno discusse, altre si trovano ancora in bozza. Se siete curiosi e volete sapere come si svolge il processo di creazione, discussione e approvazione degli RFC, leggete questi articoli:

Per provare tutte le funzionalità prima del rilascio del linguaggio, sarebbe necessario compilare e configurare manualmente la versione desiderata di PHP sul proprio server, e questo non è proprio semplice. Si può sempre optare per un’immagine di Docker, come quella di Devilbox, ma si viene comunque a dipendere dalla disponibilità dell’autore ad aggiornare l’immagine man mano che si procede verso la data del rilascio finale.

Allora come fare? Si può utilizzare 3v4l.org.

Categorie
Software Sviluppo

Selezione Multipla con le Espressioni Regolari in Sublime Text

Se lavorate con lunghi file strutturati, come potrebbero essere i file di testo che permettono di generare i sottotitoli dei video, potreste avere la necessità di selezionare solo righe di testo che iniziano con un determinato carattere.

Partendo da questo thread su Stack Overflow in cui si spiega come selezionare righe alternate, ho cambiato l’espressione regolare dell’articolo utilizzandone una che può essere molto utile per individuare tutte le righe di un file di testo che iniziano con una lettera dell’alfabeto.

Categorie
Software Sviluppo

Gli Snippet di Sublime Text

Uno snippet di Sublime Text è un file XML con estensione .sublime-snippet che permette di automatizzare operazioni ripetitive.

In pratica, gli snippet di Sublime Text sono dei piccoli blocchi di testo o di codice che possono essere inseriti all’interno dei documenti con 2 clic o con una combinazione di tasti.

Categorie
Sviluppo Web Design

Aggiungere Dashicons e Font Awesome in WordPress

Dashicons e Font Awesome sono due set di icone che in termini generali vengono definiti Icon Font.

Gli Icon Font sono font che, invece di essere composti da caratteri testuali, contengono simboli e glifi. In pratica, sono icone che possono essere inserite all’interno dei contenuti come se fossero dei normali web font.

Il vantaggio nell’ambito del web design è che permettono di inserire icone ed elementi grafici che caricano velocemente se utilizzati correttamente, e sono perfettamente scalabili e reattivi al variare delle dimensioni delle schermo. Gli icon font, essendo trattati dal browser come semplice testo, possono essere presentati a video attraverso le proprietà dei fogli di stile.

Categorie
Sviluppo

Ottimizzare le Prestazioni di WordPress con il plugin Perfmatters

Le prestazioni sono determinanti per il successo di un sito web, sia dal punto di vista della User Experience, sia dal punto di vista della SEO. La velocità di caricamento delle pagine è un importante fattore di indicizzazione è va tenuto nella massima considerazione quando si progetta e/o gestisce un sito web.

Sono moltissimi gli strumenti a disposizione dei gestori di siti WordPress per l’analisi e l’ottimizzazione delle pagine del sito ai fini delle prestazioni. Tra i moltissimi plugin in circolazione, perfmatters è sicuramente uno dei più semplici e completi, dotato di alcune opzioni esclusive.

Categorie
Sviluppo

Interrogare il Database di WordPress (WP_Query, pre_get_posts, get_posts)

Cosa succede quando un visitatore richiede una pagina del vostro sito?

Si attiva una complessa procedura che vede coinvolto il client (il browser dell’utente), il server, il CMS e infine di nuovo il client, che riporterà all’utente la risorsa richiesta oppure, se qualcosa non è andato come avrebbe dovuto, un messaggio di errore del server.

A seguito dell’invio di una richiesta da parte del client, WordPress carica svariati file del core, tra cui wp-config.php, wp-settings.php, wp-includes/functions.php, ecc. (per una descrizione dettagliata, si veda Query Overview).
Ad un certo punto, cioè quando è stato caricato l’oggetto $wp, in WordPress si attiva una sequenza di operazioni:

  1. WordPress analizza l’URL della richiesta e lo scompone in una serie di parametri. Questi parametri costituiscono la query specification.
  2. Vengono definite le variabili is_ utilizzate dai conditional tag, ossia quelle funzioni di WordPress che verificano la sussistenza di determinate condizioni (ad es. la funzione is_home() verifica se la pagina richiesta dall’utente sia la home page del sito). Queste funzioni dipendono dalle variabili presenti nella query specification.
  3. La query specification viene convertita in una query MySQL, che viene eseguita sul database. All’interno di un Loop, la risposta viene memorizzata in un oggetto $wp_query, mentre se la richiesta viene dalla funzione get_posts(), la risposta sarà memorizzata in un array di oggetti $post.
  4. WordPress gestisce, quindi, gli errori 404, invia gli header HTTP, inizializza alcune variabili del Loop e seleziona il template da utilizzare per visualizzare la risorsa richiesta in base alle variabili della query specification
  5. WordPress carica il Template secondo l’ordine della gerarchia dei template.
  6. WordPress esegue il Loop.
Categorie
Software Sviluppo

Sublime Text: Scorciatoie da Tastiera e Funzionalità Nascoste

Sublime Text è un potente editor di testo che permette di semplificare l’editing dei testi e del codice e di velocizzare al contempo il proprio flusso di lavoro. Si tratta di un editor estremamente completo e avanzato, che permette di lavorare sia su più schede nella stessa finestra che su finestre separate.

Categorie
Sviluppo

Sicurezza e Prestazioni: Le Keyword noopener e noreferrer

La documentazione ufficiale di Google Lighthouse individua due punti critici nei link web esterni (cross-origin) delle pagine web: prestazioni e sicurezza. Ecco cosa ci dice Google a proposito delle prestazioni:

Quando aprite un’altra pagina utilizzando target="_blank", l’altra pagina potrebbe essere eseguita sullo stesso processo della vostra pagina, a meno che non sia abilitato l’isolamento del sito. Se l’altra pagina esegue una gran quantità di codice JavaScript, ne potrebbe soffrire anche la vostra pagina. Si legga The Performance Benefits of rel=noopener

Ed ecco, invece, quanto si afferma a proposito della sicurezza:

L’altra pagina può accedere al vostro oggetto window con la proprietà window.opener. Questo espone una superficie di attacco in quanto l’altra pagina può potenzialmente reindirizzare la vostra pagina ad un URL malevolo. Si legga About rel=noopener.

Categorie
Sviluppo

Le Relazioni tra le Risorse: l’Attributo rel="alternate"

L’attributo rel stabilisce la relazione tra il documento corrente e un documento collegato e incide su diversi ambiti della gestione di un sito web: sicurezza, prestazioni, indicizzazione, informazioni di vario tipo e molto altro. In pratica, l’attributo rel si presta a numerosi impieghi e per questo motivo può assumere un numero considerevole di valori.

Categorie
Sviluppo

WordCamp Torino 2019: Tipi di Post, Tassonomie e Campi Personalizzati

Lascio in questo post la presentazione dell’intervento al WordCamp Torino 2019 in cui ho parlato di custom post type, custom taxonomy e custom field, oltre all’elenco delle risorse che ho citato durante lo speech. Chi volesse approfondire questi argomenti o chiedermi altre informazioni, non deve far altro che lasciarmi un commento qui sotto 🙂

Il codice utilizzato è disponibile su Gist.

Risorse citate:

Risorse interne a questo sito:

Risorse del Codex:

I plugin di cui ho parlato al WordCamp Torino 2019: