2009-08-05 8 views
6

Also, ich bin sehr versucht, meine Anwendung mit einem PHP-Framework neu zu schreiben, wie ich denke, es wird es für die Menschen leichter zu beteiligen, sowie das Design der App zu verbessern.Umschreiben einer PHP-App in CakePHP

CakePHP sieht wie die besten PHP-Web-Frameworks aus. Hat jemand irgendwelche Erfahrungen davon? Was sind die Vorbehalte, die ich in Betracht ziehen sollte, von handcodiertem PHP zu einem Framework zu gehen?

Antwort

8

Nicht auf dem Rahmen je Sie gewählt haben, das erste, was Sie wissen müssen, ist, dass:

  • es einige Zeit dauern werde, damit Sie es wissen
  • Sie Dinge crapping werde tun, während dieser Zeit ^^
  • so berücksichtigen die Tatsache, es wird einige Zeit dauern, bis Sie voll funktions sind :-)

ich denke, diese Punkte sind die am meisten unterschätzten Punkten: die Verwendung eines Frameworks braucht nicht viel Zeit ... Es gut und in vollem Umfang zu nutzen, dauert ... Nun, ein paar Monate, vielleicht ... Was bedeutet, wenn Sie an der Am Ende deines Projekts wirst du sagen: "Ich sollte das mit all den Dingen neu schreiben, die ich beim ersten Mal geschrieben habe" :-D

Was es bedeutet ist: lernen, was das Framework tun kann, lernen wie um es zu benutzen, und benutze es eine Weile für kleine Anwendungen, bevor du anfängst, dein großes zu schreiben!


Dann gibt es wahrscheinlich keinen „bester Rahmen“: ein Rahmen für ein Projekt sehr gut geeignet sein kann, und ein andere kann für ein zweites, anderes Projekt am besten.

Ich habe noch nie mit CakePHP gearbeitet; Ich mag wirklich Zend Framework10. Aber das ist eine persönliche Meinung, und O Leute kennen, die wirklich mögen symfony; Sie sind nicht falsch: symfony ist großartig - und ich liege auch nicht falsch ^^
Dennoch sind wir manchmal einig über einige Dinge; wie die Tatsache, dass Doctrine (default ORM Schicht von symfony) wirklich tolle Sachen, und wir neigen dazu, sowohl in symfony und ZF-basierte Projekte zu verwenden ...


Wenn motiviert Sie einen Blick auf viele Beiträge nehmen über SO, über Frameworks ...Hier sind ein paar von denen:

Viel Glück mit diesen ^^
("Welche f AHMT“ist eine ganz pationnating - und subjektiv - Frage ^^)

+0

Aus irgendeinem Grund dachte ich, das Zend Framework sei proprietär. Ich denke, ich habe noch etwas zu tun. – mattl

+0

Wenn es darum geht, meine große App in das Framework zu schreiben, haben wir schon eine ganze Reihe von Entwicklern, aber wir können immer mehr verwenden. Wären Sie daran interessiert zu helfen? – mattl

+0

Es gibt eine Firma (Zend) dahinter, aber nein, es ist definitiv nicht proprietär; Wenn ich mich richtig erinnere, ist es unter einer Art BSD-Lizenz (und das ist eine großartige Sache für Benutzer); siehe http://framework.zend.com/license - und es ist nicht der einzige Rahmen mit einer Firma dahinter; symfony hat auch einen, zum Beispiel –

2

CakePHP hat seine guten Teile, aber es gibt keinen "besten" Rahmen. Here's a thread mit einigen Hinweisen darüber, was in den meisten gängigen PHP-Frameworks gut ist.

Wenn Sie noch nie MVC-Frameworks verwendet haben (und Cake ist MVC Framework), sollten Sie sich zuerst mit MVC architecture vertraut machen.

+0

Ich habe MVC ein wenig auf einem Rails-Projekt gemacht. Danke für den Zeiger. – mattl

+0

Warum wirst du deine App dann nicht in Rails umschreiben? – RaYell

+0

Rails lassen sich nur schwer implementieren, und wir möchten, dass dies so einfach wie möglich ist. Die Leute sollten in der Lage sein, dies auf ein $ 5 Hosting-Konto zu werfen. – mattl

1

FWIW, habe ich es für eine Zeit, als ich einige PHP-Entwicklung tat. Ich fand es einfach zu bedienen, und der schnelle Entwicklungsaspekt war großartig, und ich könnte mir vorstellen, dass es in den letzten 3 Jahren einfach besser geworden ist. Es gibt eine Menge Hilfe in der irc channel, und die Dokumentation ist gut. Ich bin nicht lange genug in PHP geblieben, um Experte zu werden. Allerdings fing ich gerade erst als Programmierer an und stieß auf Larry Masters (den Schöpfer, alias phpnut) und er war einfach ein guter Mensch, mit dem ich über Designprinzipien reden konnte, und ein rundherum netter Typ. Andererseits musst du kein super netter Kerl sein, um ein gutes Web-Framework zu schreiben (ich schaue dir DHH an).

0

Die meisten Frameworks "binden" Sie an sie, was bedeutet, dass Sie die Dinge auf ihre Art tun müssen. Wenn Sie etwas tun wollen, für das sie nicht entwickelt wurden, müssen Sie es normalerweise hacken. Zum Beispiel, wie viele PHP Frameworks unterstützen derzeit Facebook Connect?

Persönlich bevorzuge ich "Frameworks", die Sie nur die Teile verwenden können, die Sie möchten. Zend ist so, Doctrine und Propel sind ORM, die für die Verwendung mit anderem Code entwickelt wurden. Zum Beispiel kann das Symfony-Framework beides verwenden.

Schließlich habe ich kein populäres PHP-Framework gefunden, das gut skaliert.

0

Ich habe Cakephp für ein paar Projekte verwendet. Von dem Moment an, als ich es gelernt habe, habe ich nie wieder Php geschrieben ohne es zu machen (es sei denn, es ist ein lustiger Code, in dem ich neue Sachen ausprobieren oder andere Design-Ideen außerhalb von MVC lernen möchte). Wie bereits erwähnt, wird das Lernen etwas dauern. Wie viel Zeit es braucht, hängt wirklich von Ihrem Hintergrund ab. Wenn Sie ein anderes MVC-Framework für eine Web-Skriptsprache verwendet haben, lernen Sie es sehr schnell. RoR-Entwickler werden es innerhalb von Stunden/Tagen abholen. Wenn Sie keine Erfahrung mit MVC-Frameworks haben, kann es ein wenig dauern, aber es wird Ihnen wirklich später Zeit sparen (einschließlich in dem Projekt, mit dem Sie beginnen).

Bis heute lerne ich immer noch etwas Neues über CakePHP, wenn ich ein neues Projekt daraus starte, obwohl ich eine Menge Quellcode eingreife (du brauchst das definitiv nicht, Dokumentation und Hilfe-Boards) sind mehr als genug).

Ich empfehle definitiv, dass Sie sich damit befassen. Es wird Ihnen viel Zeit sparen und Ihren Kopf anders denken lassen (wenn Sie nicht an den MVC gewöhnt sind).

Viel Glück.

+0

Ich habe bemerkt, dass du die Bereitstellung kommentiert hast. Ich hatte keine Probleme mit der Bereitstellung, es ist so einfach wie das Verschieben auf den Server (Angenommen, Ihr Server ist bereit zum Ausführen von PHP-Code und hat mod_rewrite) und einige Konfigurationsdateien ändern. – Alejandro

0

convention over configuration Ansatz der CakePHP hat einige Vorteile, wenn man sie lernen:

  • hilft es Ihnen, Code zu halten organisiert und verständlich
  • macht es einfacher für mehrere Entwickler auf der gleichen Anwendung zur Zusammenarbeit
  • Marken Entwickler können die Anwendungen anderer Entwickler verstehen

Sie haben zwei Hauptoptionen, wenn Sie einen Legac umschreiben y Anwendung in CakePHP:

  • Änderung der Datenbankschema, die Konventionen zu reflektieren - was zu weniger Code
  • Code Ihre Modelle mit der Legacy-Datenbank-Schnittstelle - this book geht in allen Details

Entweder So, nachdem Sie das oben genannte gemacht haben, ist es ziemlich einfach zu segeln und eine gute Lernerfahrung.