CodeIgniter 4 - Was ändert sich?

Hatte CodeIgniter im Vergleich zu Laravel immer weniger Chancen, um bei Entwicklern zu punkten, könnte sich das Blatt mit Version 4 von CodeIgniter nun wenden.

von Manuel Wutte
Lesezeit 6 Min.
Manuel Wutte anexia blau web
Softwareentwicklung
Manuel Wutte anexia blau web

Wie bereits im vorigen CodeIgniter-Beitrag angesprochen, wurde das CodeIgniter-Framework von EllisLab (welche das Framework ursprünglich entwickelt haben), an das BCIT (British Columbia Institute of Technology) übergeben. Bereits wenige Wochen nach dieser Übernahme kam eine neue, überarbeitete Version, nämlich Version 3.x des Frameworks, heraus. Obwohl damit zwar eine relativ solide Basis geschaffen werden konnte, hinkte das Framework seiner Konkurrenz immer noch teilweise stark hinterher. So hatte CodeIgniter im Vergleich zu Laravel verhältnismäßig immer weniger Chancen, um bei Entwicklern zu punkten, da der Funktionsumfang und die Art, wie damit programmiert werden kann, bei der Konkurrenz immer eine Spur besser war. Doch mit Version 4 von CodeIgniter könnte sich das Blatt nun doch wenden.

Der große Umstieg

Im offiziellen CodeIgniter-Forum wurde am 26.06.2016 bereits verkündet, dass der erste Meilenstein von CI4 nun erreicht wurde. Gleichzeitig wurde das Repository auch auf GitHub transferiert: https://github.com/bcit-ci/CodeIgniter4 Eine Dokumentation ist hier zu finden. Zu beachten ist nur, dass auch diese aktuell noch nicht fertig, und daher teilweise noch ziemlich lückenhaft ist. Die wohl auffälligste und offensichtlichste Änderung zu den Vorgänger-Versionen ist die Tatsache, dass es nun ein "public"-Verzeichnis gibt. Wie auch bei anderen Frameworks der Fall, hat dies einen essentiellen und sicherheitsbedingten Hintergrund: die Trennung von Applikation/Framework und öffentlichen Ressourcen (wie beispielsweise Javascript, CSS oder Bilder). Dadurch, dass das Framework nun nicht mehr so freizügig preisgegeben wird, fällt es potentiellen Angreifern wesentlich schwerer, Sicherheitslücken (o.ä.) zu finden bzw. gezielt auszunutzen. Das Einzige, was dafür serverseitig notwendig ist, ist eine kleine Modifikation der Vhost-Konfiguration (sofern vorhanden bzw. möglich). Der Document-Root wird nun nicht mehr ins Hauptverzeichnis von CodeIgniter gelegt, sondern in den Public-Ordner. Eine solche Vhost-Konfiguration könnte nun beispielsweise so aussehen:

<VirtualHost *:80> ServerName codeigniter4.local DocumentRoot /var/www/vhosts/codeigniter4.local/public/ </VirtualHost>