Warum ich aktiv PHP 5.3 Kompatibilität aufgeben werde

PHP Supported Versions

Das geht ganz einfach und elegant, da in PHP 5.4 die short array syntax eingeführt wurde:

$everySingleArrayInitializationFromNowOn = [];

Warum dieser Schritt? Eine alarmierend große Zahl an Websites läuft noch auf PHP 5.3, das seit dem 14.8.2014 nach einem Jahr “security only” Support nicht mehr aktualisiert wird. Das heißt im Klartext, die nächste kritische Sicherheitslücke wird nur noch für Versionen ab 5.4 gefixt. Die aktive Weiterentwicklung am PHP 5.4 Branch ist übrigens auch am 14.9.2014 eingestellt worden, auch hier sind wir bereits in der “security only” Phase. Am 28.8.2014 ist PHP 5.6 released worden, am 20.6.2013 also vor fast 1,5 Jahren PHP 5.5

Im Jahre 2014 sollten wir also alle längst auf PHP 5.5 arbeiten. Soweit die Theorie. In der Praxis sieht es leider so aus:
PHP versions statistics - October 2014 - Pascal MARTIN
Quelle: http://blog.pascal-martin.fr/post/php-versions-stats-2014-10-en

Fast die Hälfte der Alexa Top 1M Sites, die auf PHP laufen, geben noch die Version 5.3 an, knapp ein viertel sogar noch 5.2, das seit Januar 2011 nicht mehr supported wird. PHP 5.2.17 ist sogar die am meisten in der Statistik auftauchende Patch-Version.

Gründe gibt es vermutlich viele:

  • “never touch a running system” Mentalität
  • Gar nicht oder nicht ausreichend gewartete Server
  • Inkompatible Frameworks und Legacy Anwendungen

Auf einige Hintergründe will ich kurz eingehen.

Continue reading “Warum ich aktiv PHP 5.3 Kompatibilität aufgeben werde”

Magento: Secure Base URL für eigene Controller verwenden

Die Frage tauchte auf Magento.SE auf und es sollte bekannter sein, wie kinderleicht dies eigentlich ist.

Schaut man sich core/Mage/Checkout/etc/config.xml an, kann man sehen, wie Magento für den Checkout definiert, dass die “Secure Base URL” genutzt wird, also HTTPS:

<frontend>
    <secure_url>
        <checkout_onepage>/checkout/onepage</checkout_onepage>
        <checkout_multishipping>/checkout/multishipping</checkout_multishipping>
    </secure_url>
</frontend>

Das ist auch schon alles. Auf die selbe Weise können eigene Controller konfiguriert werden, die sichere Basis-URL zu verwenden. Anschließend wird Mage::getUrl() die sichere URL für die konfigurierten Routen zurückgeben und Requests auf die ungesicherten URLs werden weitergeleitet.

Problem: Doppelte Accents (“^^”) in Windows 7

Gut zu wissen: Wenn Du Windows 7 nutzt und beim Schreiben doppelte Accents bekommst, könntest du ein ernsthaftes Problem haben, da dies ein Nebeneffekt von aktivierten Keyloggern ist. Es ist zwar nett, dass die nicht vollkommen unentdeckt bleiben können, aber auch ärgerlich wenn ein installiertes Programm tatsächlich gewollt die Tastaturaktionen loggt.

In meinem Fall hat der Text Expander FastFox als gewollter Keylogger fungiert, um Shortcuts beim Tippen anzubieten.