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:
Tag: CakePHP 1.x
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: Performance der Datenbank optimieren
Auf classoutfit.com findet sich eine sehr umfangreiche Beschreibung, wie sich eine Datenbank für CakePHP (und sicher auch für allgemeine MySQL-Projekte) optimieren und damit die Geschwindigkeit von CakePHP verbessern lässt:
http://articles.classoutfit.com/2010/02/cakephp-basic-database-table-tuning-tips/
CakePHP 1: 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 1: 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.