CakePHP 1.1 auf 1.2 portieren

Da CakePHP 1.1 nicht kompatibel zu PHP 5.3 ist, müssen CakePHP 1.1 Anwendungen auf CakePHP 1.2 portiert werden, damit sie unter PHP 5.3 laufen.

Zur Portierung sind folgende Änderungen notwendig:

Benenne app um in app_.

Benenne cake um in cake_.

Lade CakePHP 1.2 herunter, entpacke so, dass das Verzeichnis app das alte app ersetzt und cake das alte cake.

Konfiguriere alles wie in der alten Anwendung.

Kopiere alle Controller von app_/controller nach app/controller.

Kopiere alle Views von app_/views nach app/views.

Kopiere alle Dateien von app_/webroot nach app/webroot.

Kopiere alle Models von app_/model nach app/model.

Benenne views/layouts/defaults.thtml um in defaults.ctp.

Zum Modell: Ein Attribut darf nicht gleich wie das Modell heißen, sonst macht cakePHP im form helper aus type='text' ein type='select'. Workaround: Man setzt

$options['options']:
$form->input('tour', array('type' => 'text', 'options'=>array(), ...)

Controller: Ersetze execute('...') durch query('...').

Controller: Ersetze generateList(...) durch find(...), wobei find andere Parameter benötigt.

Controller: Bedingungen der Form

$condition['datum']= "LIKE ".$this->data['Belastung']['datum']."%";

müssen umgeschrieben werden in

$condition['datum LIKE']= $this->data['Belastung']['datum']."%";

analog statt LIKE weitere Operatoren wie >, < usw.

Ersetze HTML-Code zur Erzeugung von Formularen durch

$form->create('Model', array('url' => '/model/add'));
$form->submit('save');
$form->end();

Ersetze Formular-Elemente mit $html->input() durch $form->input().

Ersetze auch alle anderen Formularelemente mit input(), z.B. select usw.

Die genannten Anpassungen waren bei der Portierung einer Anwendung notwendig. Vermutlich sind in anderen Anwendungen weitere Anpassungen nötig. Nach der Portierung auf CakePHP 1.2 kann auf CakePHP 1.3 portiert werden. Der entsprechende Migrationspfad für ein Update von 1.2 auf 1.3 ist dokumentiert unter:

http://book.cakephp.org/1.3/de/The-Manual/Appendices/Migrating-from-CakePHP-1-2-to-1-3.html