PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for März, 2012

APC „Potential cache slam averted for key XXX“

with 4 comments

Erst gestern bin ich wieder auf den folgenden „Bug“ (bzw. Feature) gestossen und musste den Workaround raussuchen, deshalb schreibe ich ihn jetzt hier nieder, vielleicht stösst ja auch jemand von euch mal darauf.

Es geht um die allseits beliebte APC Extension. Seit Version 3.1.3 (von August 2009) gibt es in APC einen Schutz gegen potentielle Race-Condition-Probleme bzw. einem Deadlock bzw. einem Cache-Slam (so genau weiß ich das auch nicht 😉 ). Es geht jedenfalls darum dass viele parallele bzw. aufeinander folgende APC-Schreibbefehle (apc_add()/apc_store()…) ein Problem auslösen können, und deshalb wurde eine Sperre eingebaut sodass auf einen Key nicht innerhalb kurzer Zeit mehrfach schreibend zugegriffen werden kann. Doch je nach Last auf der Maschine bzw. dem eingesetzten Script kann das durchaus vorkommen, und dann gibt es den Fehler:

Weiterlesen »

Written by Michael Kliewe

März 31st, 2012 at 11:52 am

Posted in PHP

Tagged with , , ,

Script zur Entfernung von schliessenden PHP Tags

with 29 comments

Nach wie vor gibt es viele Diskussionen ob das schliessende PHP-Tag am Ende einer PHP-Datei weggelassen werden sollte oder nicht. In vielen großen Projekten wird das Weglassen mittlerweile vorgeschrieben (Zend Framework, Symfony, Doctrine), in einigen muss es zwingend vorhanden sein (Lithium), aber in noch mehr Projekten ist es nicht festgelegt und wird mal weggelassen mal eingefügt, je nachdem welcher Entwickler die Datei erstellt bzw. als letztes geändert hat.

Besonders in Projekten mit gemischtem Vorgehen sollte eine einheitliche Lösung gefunden werden, und falls das die Löschung der End Tags bedeutet, dann nutze ich mein kleines Script hier um alle Dateien von schliessenden PHP Tags am Ende zu befreien:

Weiterlesen »

Written by Michael Kliewe

März 28th, 2012 at 10:12 am

Slides der Confoo 2012 Konferenz

without comments

Whao, Ende Februar fand die diesjährige Confoo statt, unglaubliche 167 Sessions an 5 Tagen.  Da hätte ich auch mal Lust nach Kanada zu fliegen bei solch einem Programm. Wenn das Lesematerial mal nicht für 2 Wochenenden reicht… Viel Spass!

27. Februar 2012

Training: Advanced PHP Development
Sebastian Bergmann, Arne Blankerts, Stefan Priebsch

Training: HTML5
Benoit Piette

Training: Diving into Symfony2 Advanced Features
Hugo Hamon

Training: Sécurité web PHP
Jonathan Marcil

Training: PHP Web security
Jonathan Marcil

28. Februar 2012

The HTML5 Landscape
Andrew Lombardi

Mashing up JavaScript
Bastian Hofmann

How to Design a Mobile Friendly API
Fred Brunel

Weiterlesen »

Written by Michael Kliewe

März 24th, 2012 at 11:29 am

PHP-Programmierung gehört zu den Hauptskills auf den Projektplattformen

with 14 comments

Gastartikel von Wojciech Dziedzic

Wojciech Dziedzic hat an der Humboldt Universität zu Berlin Germanistische Linguistik, Anglistik und Polonistik im Magisterstudiengang abgeschlossen. Jetzt arbeitet er im Online Marketing bei twago – einer Projektvermittlungsplattform für Freelancer und KMU’s.

Die Projektvermittlungsplattformen oder Online-Marktplätze wachsen jeden Monat, weil immer mehr Spezialisten und Auftraggeber von solcher Art der Zusammenarbeit überzeugt sind. Zielgruppe dieser Anbieter sind vor allem Freelancer und KMU’s. Programmierer, Webdesigner, Übersetzer, SEO- und IT-Experten, Grafikdesigner und viele mehr gehören zu tausenden registrierten Dienstleistern bei den Projektplattformen. Einer der Hauptskills, sprich die Anzahl der registrierten Nutzer mit dieser Fähigkeit, ist die PHP-Programmierung. Das spiegelt sich auch in der Anzahl der ausgeschriebenen Projekte, für die dieser Skill benötigt wird. Plattform, Projekt, Skills – das sind nur Begriffe, aber wie das ganze Verfahren funktioniert, das wird im Folgenden kurz beschrieben.

Weiterlesen »

Written by Michael Kliewe

März 22nd, 2012 at 10:16 am

Push Notifications in Android Apps via C2DM

with 6 comments

Seit Android 2.2 gibt es in Android Apps die Möglichkeit auf Push-Nachrichten zu reagieren. Dieser Dienst wird Cloud to Device Messaging oder kurz C2DM genannt.

Die App registriert sich dazu bei den C2DM Servern an und bekommt dafür eine DeviceRegistrationID. Ab dann wird die Verbindung zwischen dem Android Market (neuerdings Google Play genannt) und den Google-Servern genutzt um die Push-Nachrichten auf das Handy zu bekommen.

Die DeviceRegistrationID muss die App dann an unseren Server melden, und alle Nachrichten an diese DeviceRegistrationID kommen dann auf genau diesem Handy an. Sollte das Handy ausgeschaltet sein werden die Nachrichten zugestellt sobald das Handy (und die App) wieder gestartet sind. Falls alle Nachrichten den selben „Collapse Key“ haben wird nur die neueste zugestellt.

Der Server, der eine Nachricht senden möchte, sendet dazu einen POST Request an Googles C2DM Dienst. Der Text der Nachricht ist auf maximal 1024 Byte beschränkt, sollte also nur für kurze „Aufweckpings“ bzw. Nachrichten a la „Es gibt Neuigkeiten vom Typ X, frag beim Server nach“ geeignet sein.

Weiterlesen »

Written by Michael Kliewe

März 20th, 2012 at 9:56 am