Sind Frameworks in PHP wirklich notwendig?
Was sind die Vor- und Nachteile einer Verwendung?
Sind Frameworks in PHP wirklich notwendig?
Was sind die Vor- und Nachteile einer Verwendung?
Antworten:
Nein, aber sie sind nett.
Vorteile : Spart Zeit, da Sie den Code nicht selbst neu erstellen müssen. Verwenden Sie die unzähligen Features, Funktionen und Datenstrukturen, die von einer anderen Person für Ihr Projekt erstellt wurden.
Nachteile : Wenn Sie den Code nicht selbst erstellt haben, kann dies zu einem besseren Verständnis führen, auf dessen Grundlage Ihr Projekt ausgeführt wird.
Webanwendungs-Frameworks sind nur so gut wie Ihre Erfahrung damit.
Jedes Framework hat eine Lernkurve. Bis Sie diese Kurve überwinden, werden Sie wahrscheinlich Dinge tun, die so rückständig sind, dass Sie alle Vorteile der Verwendung eines Frameworks zunichte machen. Die Entwicklung Ihrer Anwendung wird unnötig langsam sein, der Code wird schwer zu befolgen sein und das Ganze wird kaputt gehen, wenn eine neue Version des Frameworks veröffentlicht wird. Ich würde davon abraten, ein unbekanntes Framework (oder eine unbekannte Technologie) für Projekte mit einer engen Frist zu verwenden.
Wie kann man Frameworks besser nutzen?
Sie müssen eine Handvoll gottesfürchtiger Anwendungen erstellen und iterieren. Schließlich werden Sie die Macken herausfinden, und die Verwendung eines Frameworks ermöglicht Ihnen kürzere Entwicklungszeiten und besser organisierten Code.
Sollten Sie ein PHP-Framework verwenden?
Jeder, der genug PHP codiert, verwendet schließlich ein Framework. Die Frage ist, werden Sie Ihr eigenes Framework verwenden oder eines, das von einem Dritten entwickelt wurde? Nach meiner Erfahrung werden Sie wahrscheinlich nie ein eigenes Framework entwickeln, das der Robustheit und Qualität eines Frameworks von Drittanbietern entspricht. Die Entwicklung eines eigenen Frameworks scheint jedoch ein Durchgangsrecht in der PHP-Community zu sein. Lassen Sie sich also nicht davon abhalten, Ihre eigene Datenbankabstraktionsklasse zu schreiben.
Hier ist eine hilfreiche Grafik:
Laut Rasmus Lerdorf benötigen Sie kein zusätzliches Framework, da PHP selbst ein Framework ist. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
Nun, es hängt wirklich von der Größe Ihres Projekts ab. Bei einer Homepage ohne Datenbank und nicht mehr als 10 Seiten wird ein Framework zu umfangreich sein, vor allem, weil Framewroks in den meisten Fällen immer viel Konfiguration und Anpassung erfordern, um bestimmten Anforderungen gerecht zu werden. In einigen Situationen können sie etwas langsamer sein als mehrere Seiten in einer Datei (denken Sie an alles, was das Framework laden muss, um seine Funktionen nutzen zu können).
Wenn Sie nun eine mittelgroße / große Site mit Datenbankinteraktionen, Webservices usw. usw. planen, benötigen Sie ein Framework, mit dem Sie mit verschiedenen Technologien interagieren und Ihren Code so organisieren können, dass Sie ihn haben, wenn die Dinge kaputt gehen die Habilitie, es schnell zu erkennen und zu reparieren. Auch wenn Sie an Clients denken, ändern diese ständig ihre Meinung zu Software. Wenn der Client also eine neue Funktion ändern oder hinzufügen muss, sollten Sie nicht den gesamten Code durchgehen und darüber nachdenken müssen, wie ich diese neue Funktion in alle einbinden kann diese Sphagetti.
Es gibt viele andere Vor- und Nachteile, aber diese sind mir zuerst in den Sinn gekommen.
Bearbeiten: Ich verwende das Symfony-Framework täglich und arbeite auch mit PHP für die Universität (ich hatte einige Kurse über Webentwicklung, in denen kein Framework verwendet werden darf), daher stammt das meiste davon aus dieser Erfahrung.
Du machst Scherze, oder?
Die Notwendigkeit hängt von der Verwendung ab. Computer sind für die Menschheit nicht notwendig, weder Autos usw.
In Bezug auf Vor- und Nachteile ist jeder für sich!
Ich möchte einen Beispielcode aus meinem eigenen Framework zeigen:
class Product extends DatabaseRow {
public $name='';
public $price=0.0;
public $images=array();
public $description='';
public table(){
return 'products';
}
}
$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();
Siehst du was ich dort gemacht habe? Diese Klasse dient als Modell für ein Geschäft. Was ist so besonders außer OO? Wenn die Tabelle oder eine Spalte nicht vorhanden ist, wird sie dynamisch erstellt. 0 Skripte installieren. Dies ist natürlich eine Besonderheit in meinem Framework. Aber du kommst auf die Idee.
$p=new Product($the_id); $p->load();
Das load()
ist das Zusammenführen einer Zeile, anstatt die gesamte Zeile zu überschreiben.
Nicht alle Anwendungen erfordern ein Framework, die meisten Folgeanwendungen jedoch.
Die Vorteile sind:
Die Nachteile sind:
Alles in allem ist es besser, eine zu verwenden.