WordCamp Europe 2017: Tolle Vorträge aus Paris

Sicherheit und Co

Miriam Schwab ist aus Israel, wo Hacking ein sehr großes Problem ist und sie mit ihrem Unternehmen ständig hinter den aktuellsten Sicherheitsmechanismen hinterher ist. Es ist ein ständiges Katz&Maus-Spiel mit den Angreifern, denn während die Seite immer sicherer werden, entwerfen die Hacker ebenfalls neue Techniken und finden andere Schlupflöcher. In diesem Vortrag geht sie quer durch die Welt der WordPress-Sicherheit und worauf jeder achten sollte.

In Summe alles was im Codex unter „WordPress Hardening“ steht in 40 Minuten und ein paar kleine Extras.

 

Mehr Performance durch ständige Analysen

Zum Vortrag von Otto Kekäläinen gibt es leider noch kein Video, doch seine Anätze sind sehr interessant. Als Entwickler kennen wir alle Werkzeuge wie XDebug und den Profiler, um auf wirklich professionellem Wege herauszufinden, was die Seite langsam macht. Zusätzlich wurde noch xhprof und uprofiler vorgestellt, welche auch auf dem Live-Server permanent mitlaufen können und so einen Haufen von Daten über die Engpässe einer Seite liefern.

Wer von Apache auf nginx umgestiegen ist hat noch mehr in der Hand, da nginx ein viel besseres Logging bieten kann als das schlichte Apache. Während Apache nur aufnimmt, ob jemand auf der Seite war, kann ngin zusätzlich erfassen, wie lange die Anfragen gedauert haben und welche Dateien offensichtlich am meisten oder langsamsten geladen werden. Das alles über Tools aus der nginx Community.

Aus der deutschen Community

Interview zum Contributor Day

Auch beim Contributor Day war Gutenberg das Top-Thema der Veranstaltung. Der neue Editor ist mittlerweile als Plugin erhältlich und seit WordPres 4.8 ist auch der TinyMCE bereit diesen ordentlich abbilden zu können. Bisher konnte der Editor von WordPress nur mit viel Mühe erweitert werden, was sich seit der letzten Version erheblich geändert haben soll.

Birgit Olzem (bekannt aus der deutschen WP Community) wurde sogar von wptavern zum Contributor Day interviewed: https://wptavern.com/wpweekly-episode-278-recap-of-wordcamp-europe-2017

wp-core-bootstrap – Wie startet WordPress sich selbst ?

Auch Alain Schlesser, der seit kurzem bei wp-cli als Comitter dabei ist, muss genannt werden, da dieser wp-core-bootstrap ins Leben gerufen hat. Ein Projekt, das genau ergründet, was beim Besuch einer Webseite passiert, was WordPress in diesem Prozess alles startet und vieles mehr rund um das Thema Bootstrapping. Ein Projekt, das per GitHub weiter verfolgt werden kann: https://github.com/wp-core-bootstrap/documentation

Nächste WordCamp in NRW

Insgesamt ist die deutsche Community immer stärker im WordPress-Kern vertreren, sogar mehr als unsere Freunde aus Amerika. So geht es dann weiter beim nächsten WordCamp, was in NRW stattfinden soll. Voraussichtlich Köln, soweit wir gehört haben.

6. Juni, WordPress Meetup Paderborn #15

WP Meetup – AMP / Child-Themes

Am Dienstag den 6. Juni 2017, 19:00 Uhr bis 21:00 Uhr Treffen wir uns im Sputnik Paderborn und reden dort über Aktuelles, Kurioses und Interessantes rund um WordPress. Einer von zwei Kurzvorträgen (circa 20 Minuten) kann an diesem Abend ausgewählt werden zu den Themen:

Parkplätze finden sich in den umliegenden Straßen. Wer nicht lange suchen will, kann direkt auf die Tiefgarage Königsplatz ausweichen.

Navifutter zum Sputnik: Imadstraße 7, 33102 Paderborn

Agenda

  • 18:45 Uhr; Treffen vorm Sputnik.
  • 19:00 Uhr; Gemütliches reden über WordPress
  • ggf. 19:30 Uhr: Vortrag
  • 21:00 Uhr; Vermutlich Ende

Nachzügler können uns unter 0151 1674 8976 (Dominic) oder 05251 41 71 991 (Mike) erreichen. Bei Fragen und Anregungen einfach eine kurze Mail an feedback@wpmeetup-paderborn.de .

Hilf uns bei der Planung!

Das kannst Du tun in dem Du Dich hier über die Kommentare anmeldest oder in unserer Facebook Gruppe und den dort erstellten Veranstaltungen zusagst. Du darfst gerne einen Vortrag halten, im Idealfall sagst Du uns vorher Bescheid und dann tragen wir das in der Agenda ein. Twitter | eMail | Facebook-Gruppe | Meetup.com

Nie wieder einen Termin verpassen!

Trag Dich in unseren Newsletter ein und Du bekommst ca. eine Woche vor jedem Termin einer Erinnerung und die aktuelle Agenda!

2. Mai, WordPress Meetup Paderborn #14

WP Meetup – WordPress und Docker

Am Dienstag den 2. Mai 2017, 19:00 Uhr bis 21:00 Uhr Treffen wir uns im Sputnik Paderborn und reden dort über Aktuelles, Kurioses und Interessantes rund um WordPress. Dieses Mal mit einem Kurzvortrag Rund um Docker getreu dem Motto:

„Weniger Stress mit Kundenservern, kostenloses GitHub, hauseigenes Slack und mehr.“

Parkplätze finden sich in den umliegenden Straßen. Wer nicht lange suchen will, kann direkt auf die Tiefgarage Königsplatz ausweichen.

Navifutter zum Sputnik: Imadstraße 7, 33102 Paderborn

Agenda

  • 18:45 Uhr; Treffen vorm Sputnik.
  • 19:00 Uhr; Gemütliches reden über WordPress
  • ggf. 19:30 Uhr: Vortrag
  • 21:00 Uhr; Vermutlich Ende

Nachzügler können uns unter 0151 1674 8976 (Dominic) oder 05251 41 71 991 (Mike) erreichen. Bei Fragen und Anregungen einfach eine kurze Mail an feedback@wpmeetup-paderborn.de .

Hilf uns bei der Planung!

Das kannst Du tun in dem Du Dich hier über die Kommentare anmeldest oder in unserer Facebook Gruppe und den dort erstellten Veranstaltungen zusagst. Du darfst gerne einen Vortrag halten, im Idealfall sagst Du uns vorher Bescheid und dann tragen wir das in der Agenda ein. Twitter | eMail | Facebook-Gruppe | Meetup.com

Nie wieder einen Termin verpassen!

Trag Dich in unseren Newsletter ein und Du bekommst ca. eine Woche vor jedem Termin einer Erinnerung und die aktuelle Agenda!

Den internen Autoloader von WordPress nutzen

Bei dem letzten Meetup war unter anderem der Autoloader für Klassen das Thema. Über diesen freue ich mich so sehr, dass ich ihn hier nochmal vorstellen möchte.

Was macht ein Autoloader?

In WordPress müssen zur Zeit Klassen-Definitionen / -Dateien wie class-mein-post-type.php einzeln geladen werden:

require_once 'foo/bar/class-baz.php';

    $x = new Baz();

Das ist in modernen Architekturen angenehmer gelöst, indem die Klassen und deren Namespaces passend im Dateibaum abgelegt sind:

  • mein-plugin/
    • includes/
      • classes/
        • class-mein-post-type.php
        • class-eine-tax.php

Mit einer passenden Struktur und einem Autoloader ist von da an viel einfacher ein Objekt zu erzeugen:

$x = new Mein_Post_Type();
    $y = new Eine_Tax();

Ein require_once oder include_once für diese Klassen wird nicht mehr benötigt. Vielmehr bittet PHP den Autoloader nach der Datei für diese Klasse zu suchen. Das kann der Autoloader sehr gut, da ihm die Struktur der Daten bekannt ist.

WordPress Autoloader

Die Struktur für den WP Coding Standards ist bestimmt bekannt:

  • Alle Dateinamen beginnen mit „class-“ und haben ein „-“ als Trenner (z.B. „class-mein-post-type.php“)
  • Alle Klassen können in einem Namespace sein und haben ein _ als Trenner (z.B. Mein_Post_Type)

Dies ließe sich in einer der kommenden WordPress-Versionen für ein Plugin oder Theme wie folgt umsetzen:

global $spl_autoloaders;

    // hole alle Klassen die "Acme_*" heißen aus dem Plugin-/Theme-Verzeichnise "includes/acme/"
    $spl_autoloaders[] = new WP_Autoload_Prefixed( 'Acme_', __DIR__ . 'includes/acme' );

    $x = new Acme_Post_Type_Foo();
    // holt nun automagisch die Datei "includes/acme/class-acme-post-type-foo.php"

Das ist ein cooler Schritt vorwärts, für WordPress selbst. Nach der Einführung dieser Autoloader soll auch der Verzeichnisbaum von WordPress, insbesondere die Klassen, etwas aufgeräumt werden. Hoffentlich ist es bald einfacher sich durch den Wust an Klassen zurechtzufinden.

PSR0 / PSR4 Autoloader in WordPress

Auch für alle Freunde des Composers gibt es eine Lösung zu PSR0 und PSR4. Das ist ähnlich einfach geplant:

$spl_autoloader[] = new WP_Autoload_PSR0( 'Acme', 'includes/' );

    $x = new Acme\Foo\Bar();
    // holt automatisch die Datei "includes/Acme/Foo/Bar.php"

Wem der WordPress-Standard nicht so wichtig ist und gern mit PSR0 und PSR4 arbeitet, für den ist diese Lösung wie geschaffen. Mittels WP_Autoload_Classmap ließe sich auch eine Classmap wie in Composer lösen. Es wird sicherlich von Vorteil sein, nur die relevanten Sachen in die WordPress-Blase zu heben, anstatt bei jedem Aufruf der Webseite alle Composer-Pakete zu laden.

Das geht noch besser

Das Proposal und die Umsetzung welche im Trac zum Core Autoloader aktuell läuft ist für ein Future Release geplant und wird noch debattiert. Von meiner Seite werde ich in den kommenden Tagen einbringen, dass Namespaces ebenfalls Beachtung finden sollten. Zwar sind diese nicht im WP-Coding-Standard beschrieben, dennoch arbeitet die Welt seit Jahren damit und WordPress hinkt hinterher.

Zumindest holt es dank diesem Autoloader bald wieder ein bisschen auf.