Kategorie: CakePHP 1.x

CakePHP: Warum funktionieren Shells (bei gleichem Aufruf) nicht als Cronjob?

Shells lassen sich in CakePHP auch für den Aufruf aus Cronjobs verwenden. Dabei kann es jedoch vorkommen, dass der Aufruf einer Shell über das Terminal ohne Probleme funktioniert, aber im späteren Einsatz beim Aufruf über einen Cronjob nicht mehr so richtig will. Es hatte mich einiges an Zeit gekostet, herauszufinden warum dies passieren kann:

CakePHP und Probleme mit nocache-Tags

In CakePHP ist es möglich, Bereich anzugeben, welche bei einem View-Caching der Seite nicht mit „gechached“ werden sollen. Dies geht sehr komfortabel mit den Kommentar-Tags <!--nocache--> und <!--/nocache-->. Damit wird beliebiger PHP-Code zwischen dieses beiden Tags auch bei einer Cache-Seite weiterhin ausgeführt und die Ausgaben nicht in statischen Text umgewandelt.

Bei einem Projekt kam es allerdings vor, dass sich die Inhalte mehrerer nocache-Tags nicht ganz nachvollziehbar vermischten und so an einer anderer Cache-Stelle wieder auftauchten. Nach längerem Suchen hier der Grund:

CakePHP: $virtualFields in $conditions einer Abfrage verwenden

Ein virtuelles Feld einer Datenbank, welches mit $virtualFields definiert wurde, ließ sich bis zur Version 1.3.0 von CakePHP nur zur Ausgabe verwenden. Ab Version 1.3.0 ist dies nun auch für Abfragen möglich (siehe Changelog).
Man sollte aber folgendes beachten: die Bedingungen in $conditions müssen als Array angegeben werden, ein String in $conditions funktioniert hier nicht!

CakePHP: Upload von Dateien und Grafiken vereinfachen

Auf www.jamesfairhurst.co.uk ist eine sehr ausführliche Beschreibung zu finden, wie sich der Upload von Dateien/Grafiken in CakePHP vereinfachen lässt. Wichtigster Teil ist dabei die Funktion uploadFiles(), welche dem AppController hinzugefügt wird und somit in der ganzen App verfügbar ist. Diese verarbeitet die Formulardaten des Eingabeformulars und speichert die Uploads im einem angegebenen Verzeichnis ab. Mit dieser Funktion sind auch mehrfache Uploads möglich.

CakePHP: das Versenden von Emails prüfen

Über die Email-Komponente von CakePHP lassen sich ziemlich komfortabel Emails versenden. Ob diese Emails dann auch ankommen kann man (im Entwicklerstatus) beispielsweise durch die Angabe der eigenen Email-Adresse als Empfänger realisieren, was allerdings nicht gerade vorteilhaft und manchmal auch etwas zeitintensiv ist. Angenehmer ist hier die eingebaute Debug-Möglichkeit der Email-Komponente.