Na? Haben Sie den Feiertag – den Tag der Deutschen Einheit – gut überstanden? Und sind Sie gut in die GeekMentalHelpWeek gestartet? Für mich fühlte sich der Montag irgendwie wie ein Sonntag an. Dazu hat das Wetter sicherlich beigetragen. Denn im südlichen Bereich Deutschlands war es doch eher verregnet. Was tut man also an einem regnerischen Feiertag als Entwickler? Genau: man entwickelt sich weiter. Bei mir war es React.js. Denn seit nunmehr einem Jahr bekommen wir eingebläut: bitte lernt JavaScript!
Ich gebe zu: es ist schwer auf dem Laufenden zu bleiben wenn man ein gutes Tagesgeschäft hat. Ihnen geht es da sicherlich nicht anders. Neues zu lernen, während man mit dem „alten“ beschäftigt ist, ist schwierig, keine Frage. Deswegen musste bei mir der Feiertag herhalten.
So viel Neues: ich kenne mich nicht mehr aus!
Vielleicht liegt es aber auch daran, dass es zu schwierig ist? Wer sich den JavaScript-Markt schon einmal etwas angeschaut hat, dem wird schlecht von den vielen Begrifflichkeiten wie React.js, Node.JS, Angular.JS, Electron, Gulp, React-Route, Babel, EcmaScript und so weiter. Es tut sich so viel in dieser schönen neuen Welt, dass es schon nicht mehr auszuhalten ist.
So erging es auch Sacha Greif. Vor einem Jahr hat er mit JavaScript angefangen und sich dann gefragt: was soll das eigentlich? Die Folge: Er hat einfach mal eine Umfrage gestartet.. Und was dabei herausgekommen ist, ist die The State of JavaScript 2016.
WP-Tavern hat es schön zusammengefasst:
Die meisten Entwickler denken, dass die Entwicklung von JavaScript-Apps übermäßig komplex ist. Und auch das Ecosystem an sich verändert sich viel zu schnell.
Komplexität führt zu Spezialisierung
Und ja, es ist tatsächlich so: Es ist komplex. Deswegen müssen wir uns auf eine bestimmte Nische konzentrieren. Denn die Zeiten, in denen es nur HTML, CSS und PHP gab, sind vorbei. Heute haben wir WordPress, Drupal, Typo3, Joomla und viele mehr. Natürlich bauen alle auf die selben „alten“ Technologien auf. Aber allesamt sind mittlerweile eigene kleine „Frameworks“ geworden und wir können uns nicht auf alle gleichzeitig einschießen.
Leseempfehlung
Wie dem auch sei: Entwickler müssen die Augen offen halten und ab und an in neue Techniken hinein schnuppern. Das hab ich getan mit React.js und deswegen kann ich guten Gewissens folgende Inhalte empfehlen, die vielleicht auch für Sie interessant sein dürften:
- React.js Essentials (eBook englisch)
- React – die praktische Einführung (Buch, deutsch)
- JavAscript: Aller Anfang ist leicht (Buch, deutsch)
- Leveling Up With React: (Web, englisch, dreiteilig)
- React Fundamentals (Web, englisch, Videotutorials, Anmeldung nötig)
Viel Spaß beim Stöbern! Jetzt aber zu den eigentlichen WordPress-News:
1. WordPress Entwickler News
1.1. WordPress Kurz Updates
Wer mit WordPress arbeitet kennt die Gettext-Funktionen wie z.B. __()
. Sie dienen der Übersetzung. Aber in JavaScript gibt es sie nicht. Viele nutzten wp_localize_script()
um ein Objekt mit Übersetzungen auszugeben. Laut dieser Dev-Chat-Zusammenfassung sollen mit WordPress 4.7 dann auch Gettext-Funktionen in JavaScript Einzug halten. Hurray!
Für Theme-Entwickler wird es in WordPress 4.7 neue Funktionen und Hooks geben. Dabei sei als erstes die neue get_theme_file_uri()
Funktion genannt. Damit können Theme-Autoren es z.B. erlauben, dass Pfade zu Stylesheets von Child-Themes überschrieben werden.
Die neuen dynamischen Filter {$type}_template_hierarchy
erlauben es hingegen, die komplette Hierarchie eines Templates umzuschreiben.
Daran muss man sich in WordPress erst gewöhnen: globale Variablen. Keiner mag sie so wirklich, weil man a) am Anfang gar nicht weiß, welche es davon gibt und b) sie nicht wirklich greifbar sind. Abhilfe soll nun die Einführung von Objekten schaffen. Damit werden sie zwar nicht direkt abgeschafft aber die Veränderung von außen ist nicht mehr so einfach möglich.
Als erstes ist $wp_filter dran. Die globale Variable enthält alle Hooks und dessen Funktionen. Bis jetzt ist es ein normales Array. Ab WP 4.7 soll es ein Objekt sein, welches ArrayAccess implementiert. D.h. nach außen ist es nach wie vor ein Array. Intern aber ein WP_Hook Objekt. D.h. folgendes wird dann nicht mehr funktionieren:
unset( $wp_filter['save_post'][10][ $my_callback_id ] );
Man ist also dazu gezwungen, die API-Funktionen zu nutzen:
remove_action( 'save_post', 'my_callback_function', 10, 2 );
Die Plugin-Directory Guidelines wurden überarbeitet. Wer also plant, ein Plugin in das Archiv von WordPress.org hochzuladen, sollte die Regeln kennen.
1.2. WordPress lernen
Was sind eigentlich Nonces in WordPress? Torque gibt einen Überblick (engl.).
Torque hat ja schon seit längerem eine Artikel-Reihe mit dem Titel „Build a WordPress Plugin“ am laufen. Die letzten drei Artikel sind jetzt erschienen:
- Setting Up a Custom Content Type
- Looking at Displaying Content via Shortcodes
- Finishing off our settings
- Further Options and Final Toughts
Darüber hinaus gab es noch folgende interessante Artikel (alle engl):
Schleifen sind out. Es leben die Funktionen! Wenn man oft mit Arrays arbeitet, lassen sich auch die PHP-Array-Funktionen prima nutzen. Wie? Noch nie gemacht? Dann lesen Sie diesen Artikel zur Inspiration.
Wie kann man WordPress als Backend für eine Laravel App nutzen?
Passend dazu: Laravel Homestead lernen.
1.3. React.js und REST-API
Tolle Aussage aus einer Präsentation vom WordCamp Frankfurt:
Wofür ist die REST API gut? "Na, du bekommst den ganzen HTML-Scheiß nicht mit" #wcfra #WordPress
— Florian Simeth ⓦ (@floriansimeth) September 3, 2016
Wer bereits die neuesten Technologien nutzt, stellt sich irgenwann die Frage: Wie lässt sich React.JS skalieren? Max Stoiber hat bei SmashingMagazine darüber geschrieben (engl). Am Anfang steht zuerst einmal die Schaffung von Struktur.
CodeAcadamy bietet einen kostenlosen React-Kurs an (engl.).
JetPack in der Version 4.3 wurde komplett in React.js geschrieben. Naja fast. Zumindest das Admin-Interface.
Tickets für „A Day of REST“ werden jetzt offiziell zum Verkauf angeboten. Tickets kosten 275 USD wenn man sich früh genug entscheidet. Der Workshop findet vom 8. bis 10 März 2017 in Boston statt.
2. Tools und App-News
MAMP4 hat vor kurzem das Licht der Welt erblickt. Erstaunlicherweise hatte ich letztens mit einem Entwickler Kontakt, der gar keine lokale Installation zum Entwickeln nutzt. Da frage ich mich: wie machen die das denn? Wie testet man? Wie bekommt man Fehler mit? Naja. Bei mir hat Pressmatics mittlerweile MAMP ersetzt.
Passend dazu: eine zweite App. Derzeit nur für den Mac erhältlich. Nennt sich ThemeJuice und ist eine App zum Entwickeln von WordPress Websiten auf lokaler Ebene um sie dann später per SSH zu deployen.
Tom McFarlin hat sich mal damit beschäftigt, wie man Pressmatics und Unit-Testing zusammenbringt.
Googles berühmter ClosureCompiler ist jetzt auch in JavaScript verfügbar. Der Compiler hilft dabei, den Code effizienter/kleiner zu machen.
Google hat einen Cross-Site-Scripting Evaluator online gebracht.
Mein Tool der Wahl, wenn man WordPress von einer URL zur anderen umziehen will: Search and Replace for WordPress.
Firefox Debugger läuft mit Node.js. D.h. der Debugger lässt sich dann auch unabhängig vom Browser zum Laufen bringen.
Wer nutzt Chrome zur Webentwicklung? ElegantThemes hat einige Erweiterungen vorgestellt. Z.B. eines, mit dem man herausfinden kann, welches Themes/Plugins andere Seiten nutzen.
Passend dazu: wussten Sie, was man mit der Chrome Konsole alles machen kann? Z.B. das Monitoring von Events. Oder die Ausgabe von Konsoleninhalten als Tabelle? Nein? Dann lesen Sie den verlinkten Beitrag.
Passend dazu: Evtl. können wir bald Chrome-Plugins in Firefox nutzen. Mozilla experimentiert nämlich mit Support für Chrome-Plugins.
Ein neues Plugin nennt sich Performance Tester und soll die Performance des Servers testen können.
3. Server und Hosting-News
HeiseOnline hat Webservice-Performance getestet: Hosteurope ist „hui“. 1und1 und Strato sind … Naja. Sie wissen schon.
SmashingMag hat gefragt, wer schon auf HTTP/2 umgestiegen ist: 56% haben noch keine Pläne es überhaupt in Angriff zu nehmen:
Have you switched to HTTP/2 yet? If not, why not?
— Smashing Magazine (@smashingmag) September 16, 2016
Wir nutzen es in einem neuen Kundenprojekt demnächst und sind gespannt wie es sich auf die Performance auswirkt.
MySQL8 wird zukünftig UTF-8 als Standardzeichensatz nutzen. Zeit wird’s!
4. Happy Dev
Ab und zu ist das notwendig: eine Erhöhung des eigenen Honorars. Wie aber sagt man das dem Kunden? Chris Lema hat darüber geschrieben (engl).
5. Fundus
Wer bei Envato Themes oder Plugins verkauft kann sich freuen: die meisten Autoren können jetzt selbst entscheiden, welchen Preis sie für ihr Produkt verlangen wollen. Das war lange Zeit nicht möglich.
Böse, böse. Das beliebte Kommentar-System Disqus hängt wohl ungefragt Affiliate-Links an URLs in Kommentaren an.
phpWorld wird einen eigenen Track für WordPress Themen haben. Sie finden vom 14. bis 18. November in den USA (Washington) statt.
That’s it!
Ich wünsche eine schönen geekigen Monat!
Ihr Dip. Ing. (FH) Florian Simeth