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

Come utilizzare i plugin di WordPress per il caricamento automatico di PSR-4

9

Supponiamo che stai lavorando a un progetto per qualcuno e lo hai individuato, le attività sono delegate, hai tutte le librerie e gli strumenti necessari per iniziare e hai separato quello che sarà il tema o la presentazione e quali saranno le funzionalità o i plugin.

Ma invece di avere una manciata di singoli plug-in, cosa accadrebbe se ci fosse un pacchetto di plug-in o micro-plug-in funzionali più piccoli o come vuoi chiamarli che funzionano per alimentare il pacchetto?

Inoltre, questi sono tutti costruiti sulla stessa base ma condividono anche il codice tra loro e per rendere le cose più interessanti, scegli di utilizzare un caricatore automatico PSR-4 tramite Composer per occuparti di tutto questo?

PSR-4 Caricamento automatico dei plugin di WordPress

Innanzitutto, il modo per pensare a quello che sto cercando di dire (perché chissà se sono chiaro 🙃) è che hai il tuo lavoro nella wp-content/pluginsdirectory. E il tuo plugin risiede, diciamo, acme-pluginse ha sottodirectory per i tuoi micro-plugin.

Lo terremo semplice per questo esempio e diciamo che c’è il plug-in principale e quindi solo un micro-plugin. La directory sarebbe simile a questa;

Come utilizzare i plugin di WordPress per il caricamento automatico di PSR-4

Ora, ci sono i file che ti aspetti di vedere in un plug-in:

  • LEGGIMI,
  • LICENZA,
  • CAMBIAMENTI,
  • compositore.json
  • compositore.lock
  • venditore
  • il file bootstrap del plugin,
  • eccetera.

Ora ecco il punto: se stai usando la PSR-2 e utilizzerai un caricatore automatico PSR-4, allora ci sono due cose che devi sapere:

  1. Gli spazi dei nomi devono corrispondere all’organizzazione della directory. Ne ho parlato un po’ durante la mia presentazione di WordCamp Atlanta 2017 (in particolare sotto l’organizzazione virtuale e logica).
  2. Come lavorare composer.jsonper definire i tuoi caricatori automatici. Puoi leggere molto su questo qui, ma darò le note sulla scogliera nel resto di questo post.

Quindi il problema è che la vendordirectory risiede a un livello sopra il punto in cui esistono alcuni dei file di origine. Pertanto, il modo standard di impostare un caricatore automatico personalizzato in Composer non funzionerà.

Ad esempio, è molto tipico vedere questo :

{ "name": "pressware/acme-plugins", "description": "A demo plugin", "autoload": { "psr-4": { "Acme": "src/", } }, // ... }

Ma per compensare il nostro lavoro, dobbiamo fare questo :

{ "name": "pressware/acme-plugins", "description": "A demo plugin", "autoload": { "psr-4": { "Acme": "", "AcmeMicroPlugin": "MicroPlugin/src/" } }, // ... }

È un semplice cambiamento, ma è un semplice esempio, giusto? Allora, qual è il vantaggio di questo?

Tieni presente che abbiamo aggiornato alcune modifiche nella  posizione di caricamento automatico. Nello specifico, questo è quello che sta succedendo:

  • Il primo elemento è lo spazio dei nomi di primo livello a cui apparterranno tutti i plugin che apparterranno al plugin Acme.
  • La seconda voce si riferisce al MicroPlugin che vedi nella directory ripresa sopra. Questo rappresenta lo spazio dei nomi per questo particolare plugin e dice al Composer di cercare i file di origine da caricare automaticamente usando la directory delle proprietà

Da qui, aggiungerai una nuova voce per il caricatore automatico che corrisponde a ciascun micro-plugin che apparterrà al plug-in di primo livello.

Organizzare i futuri micro plugin

Esistono alcuni modi in cui puoi gestire l’organizzazione del codice in modo da poter utilizzare un caricatore automatico predefinito.

Se segui il modello del micro-plugin (per mancanza di un termine migliore), non funzionerà, quindi devi riorganizzare i tuoi file e questo può essere un problema nel tempo.

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