WordPress Plugin Boilerplate Generator

Allgemein Schlagwörter: 0 Kommentare

In diesem r23-Artikel zeigen wir euch, wie ihr euch mit dem Plugin Boilerplate Generator eine Vorlage für ein WordPress Plugin erstellen könnt.

Dieser Artikel ist Teil einer Artikelserie:

Artikelserie zum Thema Plugin-Entwicklung für WordPress
Schritt 1 = Planung und Vorbereitung
Schritt 2 = WordPress Plugin Boilerplate Generator
Schritt 3 = Cube-Mapping
Schritt 4 = THREE.GLTFLoader
Schritt 5 = Prototypenentwurf

WordPress Plugin Boilerplate Generator

In der Programmierung bezeichnet der Begriff boilerplate code Codefragmente, die an vielen Stellen in mehr oder weniger unveränderter Form benötigt werden. Boilerplates sind in der Programmierung quasi fertige Vorlagen, die Dinge enthalten, die sich wiederholen. Mit dem WordPress Plugin Boilerplate Generator könnt ihr euch nun eine eigene Vorlage erstellen, die garantiert dem aktuellen Standard von WordPress entspricht.

WordPress Plugin Boilerplate Generator

 

Sehr praktisch, so reicht es den eigenen Code zu integrieren und ein paar Anpassungen vorzunehmen, die korrekte Struktur und die korrekten Inhalte liefert der WordPress Plugin Boilerplate Generator bereits vorab. Sehr zeitsparend und vor allem einfach praktisch.

Der WordPress Plugin Boilerplate Generator liefert die Grundlage für eine eigene Erweiterung, also Beispiel-Dateien bzw. alle Dateien die notwendig sind und in den nächsten Schritten angepasst werden.

Download – Plugin-Vorlage
https://www.dropbox.com/s/drtrqdrrc85lcth/r23_gltf.zip?dl=0

Nach dem wir uns die Vorlage heruntergeladen haben installieren wir uns das Dokumentationswerkzeug Doxygen.

Dokumentationswerkzeug Doxygen

Doxygen ist ein Open-Source-Dokumentationswerkzeug, um innerhalb von Quelltexten zu dokumentieren. Doxygen läßt sich mit Hilfe einer Konfigurationsdatei, in der man eine Vielzahl von Optionen einstellen kann, anpassen. Diese Konfigurationsdatei kann mit einem beliebigen Texteditor modifiziert werden, oder man verwendet das mitgelieferte Programm Doxywizard.

Download – Dokumentationswerkzeug Doxygen
http://www.stack.nl/~dimitri/doxygen/

Installation Doxygen

Lizenz - Zustimmung
Lizenz – Zustimmung

Komponenten
Komponenten -Auswahl

Doxygen
===============
Doxygen is the de facto standard tool for generating documentation from
annotated C++ sources, but it also supports other popular programming
languages such as C, Objective-C, C#, PHP, Java, Python, IDL
(Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
and to some extent D.

Doxygen can help you in three ways:

1. It can generate an on-line documentation browser (in HTML) and/or an
off-line reference manual (in LaTeX) from a set of documented source files.
There is also support for generating output in RTF (MS-Word), PostScript,
hyperlinked PDF, compressed HTML, DocBook and Unix man pages.
The documentation is extracted directly from the sources, which makes
it much easier to keep the documentation consistent with the source code.
2. You can configure doxygen to extract the code structure from undocumented
source files. This is very useful to quickly find your way in large
source distributions. Doxygen can also visualize the relations between
the various elements by means of include dependency graphs, inheritance
diagrams, and collaboration diagrams, which are all generated automatically.
3. You can also use doxygen for creating normal documentation (as I did for
the doxygen user manual and doxygen web-site).

Download
———
The latest binaries and source of Doxygen can be downloaded from:
* http://www.doxygen.org/

Projekteinstellungen

Startet man den Doxywizard, so ist zunächst die Kartei Project aktiviert. In dieser lassen sich allgemeine Einstellungen für das Projekt vornehmen.
Dort findet sich ein Textfeld, zum Festlegen des Projektnamens. In unserem Workshop erstellen wir ein Plugin für die Darstellung von glTF™ (GL Transmission Format) in WordPress und tragen hier WordPress Plugin R23 glTL ein.

Projekteinstellungen

Konfigurationsbeispiel

Der folgende Auszug stammt aus der Beispieldatei, die zuerst mit Doxygen generiert und dann mit Doxywizard modifiziert und dem glTF™ – Projekt angepasst wurde.
 
# Doxyfile 1.8.14

#—————————————————————————
# Project related configuration options
#—————————————————————————
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = „WordPress Plugin R23 glTL“
PROJECT_NUMBER = 1.0.0
PROJECT_BRIEF =
PROJECT_LOGO =
OUTPUT_DIRECTORY = C:\xampp\htdocs\r23_gltf
CREATE_SUBDIRS = NO
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = „The $name class “ \
„The $name widget “ \
„The $name file “ \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = C:/r23_gltf/
STRIP_FROM_INC_PATH = C:/r23_gltf/
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES =
TCL_SUBST =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
TOC_INCLUDE_HEADINGS = 0
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
#—————————————————————————
# Build related configuration options
#—————————————————————————
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = YES
HIDE_COMPOUND_REFERENCE= NO
SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =
#—————————————————————————
# Configuration options related to warning and progress messages
#—————————————————————————
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_AS_ERROR = NO
WARN_FORMAT = „$file:$line: $text“
WARN_LOGFILE =
#—————————————————————————
# Configuration options related to the input files
#—————————————————————————
INPUT = C:\r23_gltf
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.d \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.idl \
*.odl \
*.cs \
*.php \
*.php3 \
*.inc \
*.m \
*.mm \
*.dox \
*.py \
*.C \
*.CC \
*.C++ \
*.II \
*.I++ \
*.H \
*.HH \
*.H++ \
*.CS \
*.PHP \
*.PHP3 \
*.M \
*.MM \
*.PY
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
#—————————————————————————
# Configuration options related to source browsing
#—————————————————————————
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = NO
USE_HTAGS = NO
VERBATIM_HEADERS = YES
CLANG_ASSISTED_PARSING = NO
CLANG_OPTIONS =
CLANG_COMPILATION_DATABASE_PATH=
#—————————————————————————
# Configuration options related to the alphabetical class index
#—————————————————————————
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#—————————————————————————
# Configuration options related to the HTML output
#—————————————————————————
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .php
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES
HTML_DYNAMIC_MENUS = NO
HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = YES
DOCSET_FEEDNAME = „Doxygen generated docs“
DOCSET_BUNDLE_ID = org.doxygen.Project
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME = Publisher
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
GENERATE_TREEVIEW = NO
ENUM_VALUES_PER_LINE = 4
TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = NO
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
#—————————————————————————
# Configuration options related to the LaTeX output
#—————————————————————————
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
LATEX_FOOTER =
LATEX_EXTRA_STYLESHEET =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = NO
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
LATEX_SOURCE_CODE = NO
LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
#—————————————————————————
# Configuration options related to the RTF output
#—————————————————————————
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
RTF_SOURCE_CODE = NO
#—————————————————————————
# Configuration options related to the man page output
#—————————————————————————
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_SUBDIR =
MAN_LINKS = NO
#—————————————————————————
# Configuration options related to the XML output
#—————————————————————————
GENERATE_XML = NO
XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
#—————————————————————————
# Configuration options related to the DOCBOOK output
#—————————————————————————
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT =
DOCBOOK_PROGRAMLISTING = NO
#—————————————————————————
# Configuration options for the AutoGen Definitions output
#—————————————————————————
GENERATE_AUTOGEN_DEF = NO
#—————————————————————————
# Configuration options related to the Perl module output
#—————————————————————————
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#—————————————————————————
# Configuration options related to the preprocessor
#—————————————————————————
ENABLE_PREPROCESSING = NO
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = NO
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#—————————————————————————
# Configuration options related to external references
#—————————————————————————
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = NO
PERL_PATH = /usr/bin/perl
#—————————————————————————
# Configuration options related to the dot tool
#—————————————————————————
CLASS_DIAGRAMS = NO
MSCGEN_PATH =
DIA_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
DOT_NUM_THREADS = 0
DOT_FONTNAME = FreeSans
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
UML_LIMIT_NUM_FIELDS = 10
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
INTERACTIVE_SVG = NO
DOT_PATH =
DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_CFG_FILE =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES

Die Vorbereitung der Dokumentation sieht so aus.

https://blog.r23.de/wp/gltf/index.php

Besonders hilfreich ist der PHP Code in dem Handbuch
https://blog.r23.de/wp/gltf/class-r23__gltf-admin_8php_source.php

Entwicklungsumgebung

Für die Änderungen und erweiterungen von PHP Scripten benötigen wir noch eine IDE. Wir empfehlen und verwenden in diesem Workshop NetBeans IDE

NetBeans

NetBeans ist eine freie integrierte Entwicklungsumgebung, die komplett in der Programmiersprache Java geschrieben wurde und auf der NetBeans-Plattform läuft. Die NetBeans IDE wurde hauptsächlich für die Programmiersprache Java entwickelt, unterstützt jedoch auch PHP und HTML5.

NetBeans ist ein Open-Source-Projekt, das als Plattform für eigene Anwendungen verwendet werden kann. Mit einem sehr großen Nutzerkreis und einer ständig wachsenden Community und über 100 Partnern ist es eine weltweit verbreitete, integrierte Entwicklungsumgebung.

Download NetBeans
https://netbeans.org/

 

Links:

WordPress Plugin Boilerplate Generator
GitHub
Dokumentationswerkzeug Doxygen

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Ich bin dir für jede Unterstützung dankbar!

Foto: Screenshot / wppb.me

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

 Durch das Anhaken der Checkbox erklärst Du Dich mit der Speicherung und Verabeitung Deiner Daten durch diese Webseite einverstanden. Um die Übersicht über Kommentare zu behalten und Missbrauch zu verhindern, speichert diese Webseite Name, E-Mail und Kommentar. Detaillierte Informationen findest Du in meiner Datenschutzerklärung

Aktuell