Wann muss ich ein Framework verwenden? [geschlossen]

15

Ich bin neu in der Webprogrammierung und lerne gerade etwas über PHP. Ich würde gerne wissen, wann ich ein PHP-Framework wie CakePHP verwenden muss. Was bieten mir dieses und ähnliche PHP-Frameworks? Und ist es wirklich wichtig, ein Framework zu verwenden, um professionell zu sein?

  • Und kann ich mein eigenes Framework erstellen, um die Funktionen bereitzustellen, die mir gefallen?
Goma
quelle
3
Verwenden Sie das [xyz] -Framework, wenn Sie wissen, was es bietet, und wenn Sie es bei Bedarf umgehen können. Frameworks sind Tools für Fachleute, die wissen, wie sie verwendet werden, und die Grenzen ihrer Auswahl kennen. Lernen Sie unter keinen Umständen eine Sprache, indem Sie ein Framework alleine studieren. Das ist so, als ob Sie Ihre Zehen absichtlich abstellen oder periphere Sicht. Hinweis, Sitzungen verhalten sich je nach verwendetem PHP-Framework merkwürdig. Seien Sie vorsichtig :)
Tim Post

Antworten:

10

Wenn Sie mit PHP vertraut sind, können Sie ein Framework verwenden. Und Sie sollten sie immer verwenden:

  1. Es ist viel, viel schneller als alles neu zu codieren
  2. Dies erleichtert Änderungen wie das Ändern von Datenbanken oder Ansichten
  3. Die Zusammenarbeit mit anderen Personen wird ebenfalls einfacher, da diese häufig an die MVC-Pattern-Frameworks gewöhnt sind

Sie können Ihr eigenes Framework erstellen, aber ich würde es definitiv nicht empfehlen. Es ist kompliziert, es gibt bereits viele gute Frameworks und es ist unwahrscheinlich, dass Sie eine fehlende Funktion finden. Außerdem bieten sie häufig Möglichkeiten, eigene Funktionen hinzuzufügen, ohne dass eine ganz neue erstellt werden muss.

DistantEcho
quelle
2
+1 für Wenn Sie mit PHP vertraut sind, können Sie ein Framework verwenden. Ihr Punkt 3) funktioniert nur gut, wenn die Frameworks sehr ähnlich sind. Ich würde hinzufügen "erstelle kein Framework bevor du ein paar andere stark benutzt
hast
7
Ich bin absolut nicht einverstanden mit der Aussage "Sie sollten sie immer verwenden". Sie sind nicht für jedes Projekt geeignet und erschweren häufig Änderungen . Dienstprogramme sind weitaus wertvoller als Frameworks.
Nicole
+1 für @ NickC, ich konnte nicht mehr zustimmen. Einige Frameworks behaupten , dynamisch zu sein und Dinge einfach zu ändern, aber dann kommt man zu einem bestimmten Punkt und kann es einfach nicht. Ich habe eine Menge über diese Art von Dingen geschwatzt :)
Steve Hill
Ich würde zustimmen, dass MVC eine sehr gute Gemeinsamkeit ist, die es anderen Leuten ermöglicht, mit weniger Lernaufwand in Ihren Code einzusteigen, wenn er richtig verwendet wird. Aber MVC ist dort der leuchtende Stern, das Framework (oder das Fehlen davon) ist nur die Implementierung.
Tim Post
All dies ist theoretisch und funktioniert in der Praxis nicht. PHP-Frameworks erschweren mit größerer Wahrscheinlichkeit all diese Dinge. Die durchschnittliche, von Grund auf neu geschriebene Anwendung benötigt etwa fünfhundert bis fünftausend Zeilen Framework-Code. Das ist ungefähr ein Wochendurchschnitt. Wenn es mehr ist als das, schreiben Sie wahrscheinlich entweder eine Bibliothek oder Sie machen eine innere Plattform.
jgmjgm
9

Erstellen Sie ein paar Seiten ohne Framework ... Sie werden im Wesentlichen durch Ausprobieren mit dem Schreiben Ihres eigenen Frameworks beginnen. Wechseln Sie anschließend zu einem Framework und genießen Sie, wie viel Zeit Sie sparen. Der Versuch, ein eigenes Framework zu erstellen, kann Ihnen einige Dinge beibringen und Ihnen dabei helfen, die bereits vorhandenen Frameworks zu schätzen.

Als ich zum ersten Mal mit PHP anfing, hielt ich Frameworks für eine komplizierte Zeitverschwendung. Jetzt benutze ich CodeIgniter auch für einfache Projekte. Es dauert ungefähr 1 Minute, bis Sie den Betrieb aufgenommen haben. Sie haben bereits eine Menge großartiger Bibliotheken zur Verfügung. Wie bereits erwähnt, sind die meisten Frameworks erweiterbar, sodass Sie jederzeit die gewünschten Funktionen hinzufügen können.

TaylorOtwell
quelle
2
Aber wie kann ich später sicherstellen, dass der Code im Framework genau so ist, wie ich es möchte? Ich meine, jeder Programmierer hat seinen eigenen Stil, oder? Was ist mit dem Framework !!
Goma
1
@Goma Was ist mit der Sprache? Ich habe noch keinen gefunden, der alles so macht, wie ich es will. Das Framework fügt nur etwas sehr, sehr Ähnliches hinzu (hoffentlich auf einer etwas höheren Abstraktionsebene). Im Ernst, beim Codieren geht es nicht darum, dass alles so aussieht / sich so verhält, wie ich es möchte. Es geht darum, dass etwas Nützliches geschaffen wird. Code ist nur die Haftung, mit der wir uns selbst belasten, da die Vorteile die Kosten für diesen Code in der Software überwiegen erster Platz.
Christopher Creutzig
Und jetzt @TaylorOtwell ist der Schöpfer von Laravel ...
Hos Mercury
4

Wie Niphra bereits sagte, verwenden Sie ein Framework nur, wenn Sie PHP ohne Framework verwenden können ( dh , Sie können auf die Datenbank zugreifen, Header und Inhalte senden, Zeichenfolgen verarbeiten, Daten bearbeiten usw.). In Bezug auf Ihre Fragen:

  • Wann muss ich ein PHP-Framework wie CakePHP verwenden? Wenn Ihr Projekt über einige PHP-Dateien hinauswächst; In dem Moment, in dem Sie beginnen, die Logik stark in verschiedene Elemente zu unterteilen und Funktionen (Sitzungen usw.) zu modularisieren / gemeinsam zu nutzen, sollten Sie ein Framework verwenden.

  • Was bieten mir dieses und ähnliche PHP-Frameworks? Abstraktion; Anstatt direkt mit der Datenbank zu interagieren, können Sie mit einem Object-Relational Mapping (ORM) die Struktur und die Beziehungen zwischen Ihren Daten in der Datenbank verwalten. Die meisten Frameworks in vielen Sprachen bieten ORMs, um die Interaktion mit der Datenbankebene Ihrer Anwendung zu vereinfachen. In ähnlicher Weise trennen Frameworks häufig die Ebenen, in denen auf Benutzerinteraktionen reagiert wird. Die gebräuchlichste Trennung ist das Model View Controller (MVC) -Paradigma, das, um es kurz zu machen, die Datenbanklogik in das Modell (in vielen Fällen eine Schnittstelle zum ORM) abstrahiert, Anforderungen verarbeitet und mit Modellen in den Controller interagiert Rendering des eigentlichen HTML / PDF / Image / etc. in die Ansicht. Frameworks stellen häufig andere Tools wie Routing bereit (um eine komplexe Verarbeitung des Anforderungs-URI zu ermöglichen (z. B. Zuordnung der Anforderung).http://example.com/users/1 "an den Controller Users, der dann das Benutzermodell mit der ID 1) und einer Abstraktion von Sitzungen und anderen Grundstrukturen nachschlägt.

  • Und ist es wirklich wichtig, ein Framework zu verwenden, um professionell zu sein? Nicht unbedingt; Rahmenbedingungen erleichtern das Leben; Aber man muss keinen benutzen, um ein Profi zu sein. Frameworks bieten eine praktische Abstraktion und Standardisierung, sind jedoch in den meisten Fällen nicht erforderlich.

Dolch
quelle
3

Nachdem ich einige der Antworten gelesen habe, möchte ich zuerst sagen, dass Sie nicht oft eine große Auswahl haben, welches Framework Sie verwenden werden oder ob Sie eines verwenden werden oder nicht (als Profi). Ich möchte Sie nicht einschüchtern, aber Sie müssen ein ausreichendes Verständnis von PHP entwickeln, um von einem Framework zu einem anderen wechseln zu können und gleichzeitig mehr als ein Framework zu verwenden.

Wann muss ich ein PHP-Framework wie CakePHP verwenden?

Darauf gibt es keine allgemeingültige Antwort. Als Fachmann werden Sie beauftragt, bestimmte Probleme zu lösen. Dies ist der entscheidende Faktor für das Wann und Was eines jeden Projekts, insbesondere wenn ein Kunde eine bestimmte Nachfrage hat. Aber im Allgemeinen werden Sie immer eine Form von Framework mit PHP verwenden, es sei denn, Sie ändern oder erweitern eine bereits vorhandene Anwendung, die über ein eigenes Framework verfügt (z. B. Wordpress oder PHPBB).

Was bieten mir dieses und ähnliche PHP-Frameworks?

Wie von dirk gesagt, bieten sie Abstraktion. Dies bedeutet, dass sie gemeinsame, mehrstufige Verfahren anwenden und versuchen, diese so einfach und rational wie möglich zu gestalten. Kurz gesagt, sie versuchen, Lösungen für allgemeine Aufgaben vorzustellen, bei denen nur Wasser hinzugefügt werden muss.

Und ist es wirklich wichtig, ein Framework zu verwenden, um professionell zu sein?

Generell nein ist es nicht wichtig , zu verwenden , einen Rahmen ein Fachmann zu sein. Aber realistisch gesehen haben Sie keine große Karriere, wenn Sie nicht mit ein paar gängigen Frameworks vertraut sind. PHP ohne Framework ist wie C ++ ohne eine Standardbibliothek. Sie brauchen es nicht, und Sie können sogar mehr ohne es tun, da Sie direkt die untergeordneten Bausteinfunktionen der Sprache verwenden, aber Sie werden viel länger brauchen, um dasselbe zu tun.

Und kann ich mein eigenes Framework erstellen, um die Funktionen bereitzustellen, die mir gefallen?

Ja. Tatsächlich werden Sie dies wahrscheinlich auch dann tun, wenn Sie es ungewollt tun. Damit meine ich kein umfangreiches Allround-Framework, sondern eher eine Tooltasche mit grundlegenden Funktionen und Skripten, die Aufgaben ausführen, die nicht allgemein oder allgemein genug sind, um von einem durchschnittlichen Framework verarbeitet zu werden. Meins besteht im Wesentlichen aus verschiedenen Dateisystemen, Prozesshandhabungen und rex-ex-tid-Bits mit einigen verschiedenen Dienstprogrammen für das Aufrollen und Streaming / Socket.

JSON
quelle
1

Häufig von einer Person, die jahrelang meine eigenen Methoden ausprobiert hat, um mit einer Datenbank und mit Online-APIs zu sprechen, und erst jetzt anfängt, Frameworks zu verwenden, verwenden Sie sie, wenn Sie zumindest ein Verständnis dafür haben, was sie tun, wenn dies möglich ist.

Wechseln Sie nicht sofort zu RedBean, wenn Sie zum ersten Mal mit einer Datenbank arbeiten, sondern arbeiten Sie zuerst manuell mit der Datenbank. Auf diese Weise haben Sie ein umfassendes Verständnis dafür, wie Sie die Datenbank tatsächlich abrufen und bearbeiten, was die Skalierbarkeit erheblich verbessern kann. Sie können dann auch Ihre eigene Lösung erstellen, wenn das Framework, das Sie verwenden, nicht das tut, was Sie tun müssen.

Wenn Sie jedoch verstanden haben, was los ist, verwenden Sie ein Framework! Es macht die Dinge so viel einfacher. Die Verrücktheit mit Speichern eine Abfrage dann mit den Ergebnissen Schleifen über mysql_fetch_assocalles weg, zu einem einzigen Aufruf reduziert: $book = R::load( "book", $id ). Sie werden viel produktiver und können zukünftige Fehler beheben oder zukünftige Funktionen viel einfacher hinzufügen.

TheLQ
quelle
1

Verwenden Sie ein Framework, wenn Sie die zugrunde liegenden Technologien gut genug kennen, um zu wissen, was das Framework für Sie bewirkt und warum dies gut (oder schlecht) ist.

Ein Framework ist so etwas wie ein Meta-Tool, mit dem Sie ein bisschen schneller mit Ihren Tools (Sprache, Datenbank) arbeiten können, ohne sich um einige Details Ihrer Arbeit kümmern zu müssen. Das ist gut, wenn Sie sich wirklich auskennen Werkzeuge.

Was Sie NICHT wollen, ist, dass Sie das Framework statt der Tools erlernen, sich in eine bestimmte Art und Weise einarbeiten und am Ende die zugrunde liegenden Sprachen und Konzepte nicht wirklich beherrschen - es sollte eine sein Werkzeug, keine Krücke.

Eli
quelle
1

Wenn Sie feststellen, dass Sie immer wieder dasselbe tun, schauen Sie sich um und sehen Sie, ob es ein Framework gibt, das dieselben redundanten Aufgaben ausführt, die Sie am Ende selbst erledigt hätten. Verwenden Sie nicht nur ein Framework wegen des Hype. Ich persönlich mag CodeIgniter und Rasmus Lerdorfs "No-Framework PHP MVC Framework" http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

Programmierer
quelle
Ich habe mehrere 'no framework frameworks' geschrieben, um den Schmerz zu lindern, neue Funktionen zu meist statischen (und riesigen) Sites hinzuzufügen, die einfach nicht in irgendeine Art von Management- / Publikationssystem portiert werden können, so dass sie ihre Verwendung haben. Aber ich würde mein eigenes für ein brandneues Projekt nicht rollen (ich würde nur CI verwenden, wenn ein Framework benötigt wird).
Tim Post
@ Tim Post Auf diese Frage gibt es normalerweise keine Schwarz-Weiß-Antwort. Es hängt alles vom jeweiligen Projekt ab, der ursprüngliche Beitrag enthielt keine Details zu einem bestimmten Projekt.
Programmierer
1
Sieht so aus, als hätte ich von einem Framework-Fanatiker eine Gegenstimme bekommen, nett!
Programmierer
Ich auch nicht :) Vielleicht hat jemand auf den von Ihnen geposteten Link reagiert, ohne wirklich ins Detail zu gehen.
Tim Post
@ Tim Post Heh! Deshalb habe ich beide Kommentare getrennt. : D
Programmierer
-1

Ich würde empfehlen, sorgfältig zu überlegen, warum Sie das Framework x, y oder z verwenden. Jedes Framework bietet nicht nur Funktionen, die Sie nicht selbst implementieren müssen, sondern auch eine Denkweise. Schauen Sie sich Spring, JEE, Rails oder Django an. Vier Frameworks, die in kurzer Zeit ausreichen, um eine Webanwendung zu starten.

Aber alle vier vertreten ihre eigene Denkweise, wie Web-Apps erstellt werden sollten. Und wenn das nicht Ihren Bedürfnissen entspricht oder Ihrem Geschmack entspricht, fällt es Ihnen schwer, die Dinge weiterzuentwickeln.

Dies war ein sehr radikaler Vergleich, aber vielleicht passt der Aufbau einer kleinen Bibliothek besser zu Ihren Bedürfnissen. Aber wenn Sie die Frameworks kennen, können Sie auf jeden Fall in größeren Teams arbeiten oder neue Jobs finden, da dies zeigt, dass Sie an der Softwareentwicklung insgesamt interessiert sind.

Florian Salihovic
quelle
-2

Frameworks sind von Anfang an immer gut zu verwenden. Es fördert die Wiederverwendbarkeit von Code, verbessert die Lesbarkeit und spart ein wenig Entwicklungszeit.

Ich bin nicht sehr erfahren mit PHP, aber ich würde jede Framework-Nutzung fördern.

Pierre Pretorius
quelle
Warum stimmen die Abwärtsstimmen?
Pierre Pretorius