Nudge am 27.02.2017

Ist GraphQL das bessere REST?

in PHP, Web | Tags: GraphQL, Laravel, PHP, REST

JSON-REST ist der de-facto Standard für Web-Schnittstellen (sogenannte APIs) in unserer heutigen Welt. Eine Welt, die aus so vielen verteilten Diensten besteht. Mal hier das Wetter ziehen, mal dort die Likes und Kommentare auflisten. Es ist schematisch einfach und effektiv. Und als Nutzer eines Dienstes kommt man damit schnell zum Ziel. Braucht man etwas also etwas neues, besseres? Wenn ja, warum? Was ist schlecht an REST? Hier ein kurzer Blick auf GraphQL, eine vielversprechende Alternative zu REST von Facebook.

Weiter lesen »

Nudge am 01.05.2013

Zend Framework 2 – Los geht’s

in Buch-Tipps, PHP | Tags: Buch, Framework, PHP, Zend, ZF2

Alles neu macht der Mai! Ab heute werde ich mich dem Thema Zend Framework 2 (ZF2) widmen, welches ich bisher weitestgehend ignoriert habe. Die Ankündigung von Magento, auch die neue Version Magento 2 (zu erwarten vermutlich 2014) weiterhin auf ZF1 zu basieren, hatte mir zu einer Beschäftigung keinen Anlass gegeben.

Ich habe mir dazu die Lektüre von Ralf Eggert ausgesucht. Zufällig hatte ich mal einen Blick in dessen ziemlich aktuelles Buch (ZF Version 2.1.3) gewagt und für eine Code-Reduzierung seitens Magento sehr interessante Neuerungen wie zum Beispiel den Event-Manager oder die Dependency Injection entdeckt. Ich finde ein Buch sehr schön, denn ich mag ab und zu echtes Papier, nicht nur für Tickets an Kanban-Boards.

Nun gut, ich bin mal gespannt, wie Luigi diesmal seine Pizzen baut … und werde Euch nach der Lektüre ob einer Weiterempfehlung berichten.

Nudge am 28.01.2013

DB-Performance von Zend

in MySQL, PHP | Tags: MySQL, Performance, PHP, Zend

Ich wollte das schon immer mal loswerden, habe aber bisher nie die Zeit dazu gefunden: Zend_Db und vor allem Zend_Db_Table  sind lame. So. Früher habe ich schon oft überlegt, warum tust du dir diesen ganzen SQL-Kram immer noch an? Es gibt doch angefangen von PDO auch so bequeme Frameworks wie Zend, CakePHP oder Symfony mit Doctrine. Niemand muss doch mehr diesen Quatsch selbst hacken. Aber am Ende steht manchmal noch die Frage im Raum, ob man nun eine komplexe Infrastruktur benötigt oder einfach mal ein bisschen schnelleren Code verwenden sollte. Zu der Zeit, als ich die Überlegungen traf, kam es halt (in meiner Situation) auf jede Millisekunde an.

Weiter lesen »

Nudge am 22.03.2012

PHP 5.4.0 in Debian Testing

in PHP | Tags: PHP

Da hatte ich mir das Paket gerade selbst kompiliert, um die ganzen neuen Features gleich einmal zu testen. Und schon ist es passiert: Ganz offiziell zog gestern die Version 5.4.0 von PHP in Debian Testing ein.

Cool finde ich am neuen PHP vor allem Traits, die hybride Objekte ähnlich dem Polymorphismus in C++ erlauben. Seit Java war das ja verpönt und galt als “unbeherrschbar” ähnlich wie Atomkraftwerke. Stattdessen sollte man lieber mit diesen leeren Worthülsen von Interfaces werkeln. Doch die erlauben zwar eine gewisse Formalisierung von Analogien, aber keinen echten DRY-Code. Mit Traits ist man “im Objekt” und kann daher in $this schalten und walten wie man möchte – was witzige Sachen erlaubt.

Der nun in PHP selbst eingebaute Webserver ist allerdings nicht so das, was ich mir vorstellte. Eher zum Testen gedacht, durchläuft er pro Request jede PHP-Datei noch einmal und baut alle Objekte immer neu auf. Es ist also keine Deploy-and-Run-Lösung wie ein Zend Server. Immerhin kann man beim Testen schnell per F5 wissen, ob alles so läuft wie man möchte. Und für Bibliotheken kann man eine kleine launch.sh beilegen, die die Lösung auch ohne Webserver an Ort und Stelle demonstriert. Allerdings beantwortet der Server nur einen Request auf einmal, was ihn als echten Ersatz für den mittlerweile vielen als zu fett geltenden Apache nichtig macht.

Neu hinzugekommen ist übrigens die Restriktion, dass man eine date.timezone-Einstellung per ini benötigt, sonst gibts eine dicke Warnung beim Erzeugen eines Datetime-Objekts. Ansonsten ist glaube ich noch der Safe-Mode entfallen und die ganzen unnützen magic-quotes-Sachen…Vielleicht noch interessant sind die neuen Schnellzugriffe auf Arrays – erzeugen per [1,2,3] und auch bei der Rückgabe einer Funktion kann jetzt direkt darauf zugegriffen werden: getArray()[5] – das schreit geradezu nach try-catch.

Auf jeden Fall bewegt sich PHP (wie so oft) in die richtige Richtung. Aus der Spaghetti-Sprache für blinkende Vereinshomepages ist mittlerweile eine Feature-H*re geworden, die neben neuen Features rechtzeitig auch über Konsolidierung nachdenken sollte – auf Abwärtskompatibilität muss man eben manchmal verzichten.

Nudge am 12.12.2010

vi: Getter und Setter automatisch generieren

in PHP, Tipp | Tags: Code, Generieren, Getter, PHP, Setter, Stub, vi

Ich habe bisher im vi nicht wirklich vermisst, dass Code generiert wird.
Aber seit dem ich es habe, finde ich es nur noch cool. 🙂 Das möchte ich Euch auf jeden Fall vorstellen.
Weiter lesen »

Nudge am 30.07.2010

Perl 6 released – wo bleibt PHP 6?

in PHP | Tags: OOP, Perl, PHP, Unicode

Wollten die PHP-Entwickler nicht PHP 6 unbedingt vor Perl 6 fertigstellen? Naja, mit PHP-Version 5.3 haben wir immerhin ein halbes PHP 6 bekommen. Was jetzt noch fehlt, ist das geplante Unicode-Ding. Was allerdings nicht so schmerzt…finde ich.

Gratulation an dieser Stelle an die Perl-Gurus, die sich unter anderem mit neuen OOP-Features auf unbekannte Wiesen und Felder begeben können…ich wünsche auf jeden viel Spaß beim Coden.

PS: Ich bin mir ganz sicher: Eines Tages werden außerirdische Archäologen Perl-Code finden und ihn für prähistorische Hieroglyphen halten!

Nudge am 20.04.2010

PHP User-Group Leipzig?

in Events, Lokales, PHP | Tags: Group, Leipzig, PHP, Stammtisch, Treffen, User, Usergroup

Hier mal eine allgemeine Frage in die Runde – ist jemand interessiert an einer PHP User-Group Leipzig?

Ich weiß, dass es da 2005 schon mal Gedanken dazu in einem Forum gab. Hat sich wohl leider nie ergeben, zumindest ist mir unter den Stichworten PHP, User, Group oder Usergroup, Leipzig im Netz nix aufgefallen. Ich wäre schon daran interessiert.

Man könnte sich ja, sagen wir mal, einmal pro Monat als Stammtisch (in lockerer Runde) in einer der Innenstadt-Kneipen treffen und ein Bierchen genießen – und nebenhei über aktuelle PHP-Themen philosophieren. Besser wäre es natürlich, hier und da kleine Vorträge mit nem Beamer zu unterstützen (falls sich der eine oder andere traut :-)).

Was haltet ihr so davon?

Nudge am 19.02.2010

Subversion: propset keyword Id automatisieren

in PHP, Tipp | Tags: Id, Keyword, PHP, Property, Subversion, SVN

Wer seine Quelldateien in einem Subversion (SVN) vorhält, kennt die Keywords Id oder Revision, die man zum Beispiel in PHP folgendermaßen in einer Datei example.php als Kommentar benutzen kann:

1
/* $Id$ */
/* $Id$ */

Beim Einchecken macht SVN aus dem Keyword Id:

1
/* $Id: example.php 569 2010-02-19 15:17:49Z nudge $ */
/* $Id: example.php 569 2010-02-19 15:17:49Z nudge $ */

Wenn nun jemand im Projekt ein bisschen herumsucht und nicht so richtig zurechtkommt, so sagt ihm diese Angabe, dass es sich um die Datei example.php handelt, die in Revision 569 des Projekts vorliegt, und diese wurde am 19.02.2010 um 15:17 das letzte Mal geändert, und zwar vom Benutzer Nudge. Das ist richtig toll, doch leider macht das SVN erst, wenn man alle Dateien mit diesem Keyword-Property ausgestattet hat. Besser also, man erleichtert sich das durch eine geeignete Voreinstellung. Diese bekommt man in der Datei ~/.subversion/config hin:

1
2
3
4
5
[miscellany]
enable-auto-props = yes
 
[auto-props]
*.php = svn:keywords=Id;svn:eol-style=native
[miscellany]
enable-auto-props = yes

[auto-props]
*.php = svn:keywords=Id;svn:eol-style=native

Bisher erstellte Dateien berührt diese Voreinstellung nicht. Wenn man schon eine ganze Menge Dateien eingecheckt hat, so benutzt man am besten ausgecheckten (!) Pfad des Projekts folgenden Bash-Befehl, um alle darin enthaltenen PHP-Dateien nachträglich das Keyword-Property zu verpassen:

1
$ find ./ -name '*.php' -exec svn propset svn:keywords 'Id' {} \;
$ find ./ -name '*.php' -exec svn propset svn:keywords 'Id' {} \;

Und schon ist man dem PHP-Entwickler-Glück wieder ein Stückchen näher gekommen. 🙂

Nudge am 20.12.2009

Ein klares Statement

in MySQL, PHP, Web | Tags: CalDAV, DAViCal, Kalender, Linux, MySQL, Postgresql, WebDAV, Windows

Auf der Suche nach einem zentralem Kalender bin ich auf das Projekt DAViCal gestoßen. Auf dessen Homepage steht dieses schöne Zitat:

“We use Debian GNU/Linux for this, but other people use various different versions of Linux, FreeBSD, Mac OSX and even Microsoft Windows. We definitely do not recommend using Windows for this unless you are completely hobbled by silly internal IT policies and have to do so.”

🙂

PS: Jetzt würde ich mir nur noch wünschen, dass es auf MySQL statt Postgresql läuft – wobei ich mir vorbehalte, diese Meinung nach dem Oracle-Sun-Deal zu überdenken…

Nudge am 17.10.2009

Memcache – gib mir Speed!

in PHP, Tipp, Uncategorized, Web | Tags: Apache, Cache, memcache, memcached, PHP, Server, SQL

Ich habe diese Woche den memcache-daemon memcached in Version 1.4.2 mit der PHP-extension memcache ausprobiert und bin einfach nur begeistert.

Was ist denn Memcache?

Memcache ist ein Dienst, der es erlaubt, Daten im Arbeitsspeicher vorzuhalten. Daneben erlaubt er es auch noch, dies über mehrere Server zu verteilen, also ein richtiges Speicher-Netzwerk aufzubauen. Und Arbeitsspeicher ist eine der schnellsten Zugriffsformen auf Daten, die wir zur Zeit haben. Memcache kann durch das Zwischenspeichern von Daten, die sonst mühsam aus anderer Stelle geholt werden müssen, das Leben leichter und angenehm schneller gestalten.

Weiter lesen »