Schnäppchen

Kategorien

cakephp: CORE/cake/libs/controller/controller.php, line 746

Manchmal ist Fehlersuche ein richtig nerviges Unterfangen! Diese Stelle in controller.php hat mich vorhin eine geschlagene halbe Stunde gekostet. Code, der unter CakePHP 1.3.2 bestens lief, verabschiedet sich unter 1.3.3 plötzlich beim Redirect nach dem Login mit der Meldung:

Warning (2): Cannot modify header information – headers already sent by (output started at /home/wymorel/public_html/app/models/contact.php:40) . . . → Read More: cakephp: CORE/cake/libs/controller/controller.php, line 746

Datenbank Backup in CakePHP

Eigentlich finde ich es günstiger, die Sicherungskopien der Datenbank von Cron erledigen zu lassen, aber der Kunde ist König. Wenn er unbedingt eine Funktion zum Backup der Datenbank will, dann bekommt er sie.

Dieses ist eine frühe aber durchaus funktionierende Version meines CakePHP Datenbank Backup Controllers. Sicherheitshalber der Hinweis, dass für eine Produktionsversion noch . . . → Read More: Datenbank Backup in CakePHP

CakePHP: Controller ohne Datenbanktabelle

Manchmal benötigt man in CakePHP Funktionalitäten, die man beim besten Willen keiner Tabelle in der Datenbank zuordnen kann. Erstellt man einen Controller ohne dazu passendes Model erhält man eine Fehlermeldung.

Man kann aber natürlich trotzdem einen funktionierenden Controller ohne Model anlegen, nämlich indem man die Variable $uses einfach auf null (oder array()) setzt.

class . . . → Read More: CakePHP: Controller ohne Datenbanktabelle

CakePHP auf einer 1und1 Homepage

Ich weiß leider nicht, wie es bei den anderen 1&1 Hosting-Paketen ist, beim Paket 1und1 Homepage Perfekt ist es jedenfalls möglich die DocumentRoot des Webservers frei zu wählen. Das ist perfekt für CakePHP-Anwendungen – man kann die DocumentRoot auf den Ordner /app/webroot/ legen, wie es sich für CakePHP gehört.

Leider funktionieren die Anwendung anschließend . . . → Read More: CakePHP auf einer 1und1 Homepage

internal dummy connection

Solltest Du dich über gelegentliche merkwürdige Requests der Adresse “*” vom eigenen Webserver wundern – keine Angst, das sind keine chinesischen Hacker. Der Apache weckt damit einfach gelegentlich seine schlafenden Prozesse, damit sie nachsehen können, ob sie sich beenden können. Ein entsprechender Eintrag in der access.log könnte zum Beispiel so aussehen:

::1 – - . . . → Read More: internal dummy connection

CakePHP: id eines neuen Eintrags ermitteln

Ich brauche in der Funktion add() im Controller sofort die Id des neuen Eintrags. Problem: die Id ist der AUTO_INCREMENT Primary Key der Datenbank-Tabelle und wurde gerade erst in $this->Xxx->save() von der Datenbank automatisch erzeugt. Wie bekomme nun heraus, welche Id mysql erzeugt hat?

Ich weiß nicht genau, ob die Mysql-Funktion LAST_INSERT_ID() dafür geeignet . . . → Read More: CakePHP: id eines neuen Eintrags ermitteln

CakePHP: SQL-Dump ausgeben

Oh Mann, ich will doch nur kurz sehen, welche Anfrage CakePHP aus einem find-Statemant tatsächlich zusammen gebastelt hat. Früher machte man das über die Variable $cakeDebug. Leider gibt es die ab CakePHP 1.3 aber nicht mehr. Jetzt macht man es so:

echo $this->element(‘sql_dump’);

Siehe auch:

nuts-and-bolts-of-cakephp – Bye-bye $cakeDebug…

This email was sent using the CakePHP Framework…

Wie bekommt man das noch mal weg?

RTFM oder einfach ein entsprechendes Default Layout erstellen:

Für HTML-Mails: app/views/layouts/email/html/default.ctp Für Plain-Text: app/views/layouts/email/text/default.ctp

Und was muss da jeweils mindestens rein?

<?php echo $content_for_layout; ?>

CakePHP: Seiten ohne assoziierte Datenbank-Tabelle

Wenn man in einem CakePHP-Projekt mal eben eine neue Seite ganz ohne eine damit verbundene Datenbank-Tabelle braucht, dann gibt es dafür mehrere Möglichkeiten. Eine dieser Möglichkeiten ist es die Seite in den Router (…/app/config/routes.php) einzutragen:

Router::connect(‘/kontakt’, array(‘controller’ => ‘pages’, ‘action’ => ‘display’, ‘kontakt’));

Die statische Seite (hier kontakt.ctp) legt man dann im . . . → Read More: CakePHP: Seiten ohne assoziierte Datenbank-Tabelle

Start eines neuen CakePHP-Projektes

So oft fängt man ja kein neues CakePHP-Projekt an. Wenn es dann so weit ist, hat man meist vergessen, was alles zu tun ist. Hier eine kurze Checkliste:

Herunterladen einer stabilen CakePHP-Version auf den lokalen Development-Server. Entpacken des Archive ins Webroot-Verzeichnis Umbenennen des Ordners in einen vernünftigen Projekt-Namen Rechte sinnvoll vergeben (während der Entwicklung . . . → Read More: Start eines neuen CakePHP-Projektes