Come strutturare un plugin
-
02-11-2019 - |
Domanda
Questa non è una domanda su come costruire un plug -in WordPress. Piuttosto, cosa, se del caso, le guide potrebbero essere applicate a come mettere insieme l'architettura del file di qualsiasi plug -in.
Alcuni altri linguaggi di programmazione o librerie hanno modi molto controllati per organizzare directory e file. A volte questo è fastidioso e mette in evidenza la libertà offerta da Php, ma sui plugin WordPress sul lato rovescio sono messi insieme in qualsiasi modo determinato dal loro autore.
Non c'è una risposta giusta, ma la mia speranza è di perfezionare come io e gli altri costruiamo plugin per renderli più amichevoli per gli altri sviluppatori da districare, più facili da debug, più facili da navigare e possibilmente più efficienti.
La domanda finale: cosa fare voi Pensi che sia il modo migliore per organizzare un plugin?
Di seguito sono riportate alcune strutture di esempio, ma in nessun modo è un elenco esaustivo. Sentiti libero di aggiungere i tuoi consigli.
Struttura predefinita presunta
/wp-content
/plugins
/my-plugin
my-plugin.php
Metodo del controller di visualizzazione del modello (MVC)
/wp-content
/plugins
/my-plugin
/controller
Controller.php
/model
Model.php
/view
view.php
my-plugin.php
Le tre parti di MVC:
- Il modello Interagisce con il database, interrogare e salvare i dati e contiene logica.
- Il controller Conterrebbe tag e funzioni modello che la vista utilizzerebbe.
- Il Visualizza è responsabile di visualizzare i dati forniti dal modello come costruito dal controller.
Organizzato per tipo di metodo
/wp-content
/plugins
/my-plugin
/admin
admin.php
/assets
css/
images/
/classes
my-class.php
/lang
my-es_ES.mo
/templates
my-template.php
/widgets
my-widget.php
my-plugin.php
Piastra plug -in wordpress
Disponibile su Github
Basato sul API plugin, Standard di codifica, e Standard di documentazione.
/wp-content
/plugins
/my-plugin
/admin
/css
/js
/partials
my-plugin-admin.php
/includes
my_plugin_activator.php
my_plugin_deactivator.php
my_plugin_i18n.php
my_plugin_loader.php
my_plugin.php
/languages
my_plugin.pot
/public
/css
/js
/partials
my-plugin-public.php
LICENSE.txt
README.txt
index.php
my-plugin.php
uninstall.php
Metodo vagamente organizzato
/wp-content
/plugins
/my-plugin
css/
images/
js/
my-admin.php
my-class.php
my-template.php
my-widget.php
my-plugin.php
Nessuna soluzione corretta