2010-08-30 20 views
5

Kann mir jemand auflisten, welche Nachteile von CakePHP-Framework gegenüber anderen PHP-Frameworks haben?
1) Und erklären Sie bitte, warum diese fehlende Funktion für ein PHP-Projekt so wichtig ist?Nachteile von CakePHP-Framework

2) Wie diese fehlende Funktion den Webentwicklern hilft, die das Framework mit dieser Funktion verwenden?

Antwort

6

Das große Problem mit Cake ist, dass es sehr eigensinnig ist. Das ist natürlich auch seine große Stärke. Damit meine ich, dass Cake stark auf bestimmte Arten von Apps verzerrt ist, nämlich Standard CRUD apps. Wenn Ihr Projekt CRUD ist, kann Cake eine große Hilfe sein. Wenn Sie versuchen, etwas ganz anderes zu tun und viel Anpassung wünschen, kann Cake tatsächlich in die Quere kommen.

Da es sehr eigenwillig ist, kann es nicht gut mit Ihnen sitzen, wenn Ihre Meinungen abweichen. Wenn du mit Cake arbeitest, musst du Dinge tun der Kuchen Weg. Das heißt nicht, dass Sie es nicht erweitern und anpassen können, aber selbst wenn Sie dies tun, müssen Sie es tun der Kuchen Weg. Die anfängliche Lernkurve kann ziemlich steil sein, und Sie müssen etwas erfahren sein, wenn Sie die Kuchengrenzen überschreiten möchten. Die Kehrseite davon ist, dass es unter allen Cake-Projekten normalerweise einen sehr einheitlichen Programmierstil gibt.

Kuchen ist im Vergleich zu denen, die explizit versuchen, fettfrei zu sein, ein eher grobstofflicher Rahmen. Wenn High-Speed-Leistung Ihr Hauptziel ist, müssen Sie möglicherweise am Ende mehr Zeit zum Optimieren verbringen. Das wird normalerweise durch schnellere Entwicklungszeiten ausgeglichen. Das ist das zweischneidige Schwert, das viel Automagisches benutzt.

In Cake gibt es keinen großen Deal Breaker. Sie können damit alles tun, was Sie wollen, genauso wie Sie es mit anderen Frameworks können. Es eignet sich nur für einige Projekte besser als für andere.

0

Benchmarks zeigen, dass Kuchen ist ein bisschen langsamer als andere Frameworks. und es hat auch keine Vorlagenunterstützung.

+4

"Keine Vorlagenunterstützung"? PHP ist bereits eine Template-Sprache. Zweitens gibt es Cake-Plugins für die meisten gängigen Template-Sprachen, und wenn nicht, kannst du deinen eigenen Thin Wrapper (eine benutzerdefinierte Ansicht) darauf schreiben und schon kann es losgehen. Benutzerdefinierte Ansichten sind ein explizites Feature von Cake. Kannst du bitte auf aktuelle Benchmarks verweisen? Kuchen kann oder darf nicht langsam sein, aber niemand ist in der Lage gewesen, irgendwelche harten Tatsachen zu produzieren, um diese Behauptung mit den letzten Daten zu stützen. – deceze

0

Ich mag cakephp aber fand es nicht freundlich mit Nicht-Kuchen-Code herum. Es ist schwer, Cake-Code mit generischen PHP-Seiten und Sitzungen zu verschmelzen. Kuchen kam nach 2 Jahren (aufgrund seiner Vorteile) in mein Projekt. Legacy-Code existiert noch und wird aktiv entwickelt, aber wir müssen vorsichtig sein, wenn wir Modul X im Kuchen oder draußen programmieren. Es ist auch schwierig, Kuchen-Controller von außerhalb des Kuchens zu nennen.

+0

Es ist nur unfreundlich zu saphgetti code. Das heißt, wenn Sie Ihre Logik, Modell und Ansicht in eine Datei zusammenführen und diese als Controller in Kuchen verwenden möchten, wird Kuchen unglücklich sein. Wenn Sie jedoch vorhandenen Code als Anbieter einfügen, wird es mit seinen Funktionen gut funktionieren. Cake verwendet die Standardsitzungen. Das Problem könnte tatsächlich das Fehlen von Standards für den Legacy-Code sein, nicht die Struktur des Frameworks. –

2

Es ist derzeit noch ein PHP4-Framework und verwendet daher keine der neueren PHP-Funktionen.

+4

... was wiederum für eine hohe Kompatibilität sorgt. Es gibt viele Flip-Seiten zu Cake. Mit Frameworks wie Zend können Sie in Schwierigkeiten geraten, weil sie nicht einmal auf etwas älteren PHP-Installationen laufen. Ich stimme allerdings zu, dass sie die PHP 4-Unterstützung fallen lassen sollten, es ist Wahnsinn, sie immer noch zu benutzen. :) – deceze

+0

Ja, die kommende CakePHP 2.0 wird PHP4-Unterstützung fallen lassen. – dhofstet

+0

Außerdem wird CakePHP 2 mit CakePHP 1 API-kompatibel sein.Wenn Sie also ein neues Projekt starten, sollten Sie in der Lage sein, einfach in V2 einzulegen, wenn es verfügbar ist, ohne Ihren Code zu ändern. – bjudson