Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Erste Schritte mit dem Fuel PHP Framework

by
Difficulty:BeginnerLength:LongLanguages:

German (Deutsch) translation by Valentina (you can also view the original English article)

In diesem zweiteiligen Tutorial werden Sie mit dem Fuel PHP-Framework vertraut gemacht. Wir beginnen mit den Grundlagen und gehen dann im zweiten Teil auf einige fortgeschrittenere Themen ein! Lassen Sie uns anfangen.


Einführung

Fuel ist ein neues PHP-Framework, das speziell für PHP 5.3 entwickelt wurde. Es verwendet die bewährte MVC-Architektur für die logische Codetrennung und kombiniert die besten Ideen einiger vorhandener Frameworks mit Verbesserungen und eigenen Ideen. Eine endgültige Version 1.0 wurde erst kürzlich veröffentlicht, aber das Framework hat bereits nach neun Monaten intensiver Entwicklung eine große Fangemeinde. In diesem Artikel erfahren Sie, wie Sie Websites mit Fuel erstellen. Lassen Sie uns jedoch zunächst ein wenig über die Architektur sprechen.

MVC verstehen

Die MVC-Architektur (Model-View-Controller) wird von vielen vorhandenen Frameworks wie CodeIgniter, Zend Framework, Symphony und Ruby on Rails verwendet. Wenn Sie mit einem dieser Frameworks vertraut sind, haben Sie einen Vorsprung! 

Für diejenigen, die mit dieser Architektur noch nicht vertraut sind, ist MVC ein Ansatz zum Trennen Ihres Codes, je nachdem, welche Rolle er in Ihrer Anwendung spielt. Im Anwendungsablauf beginnt es mit einem Controller, der mit Kraftstoff geladen wird. Anschließend wird eine Methode ausgeführt, die anhand eines Modells ermittelt, welche Daten abgerufen werden sollen. Sobald dies erledigt ist, kann der Controller entscheiden, welche Ansichten geladen werden sollen (falls vorhanden). Ansichten enthalten die Ausgabe, die Ihre Besucher sehen, AJAX-Antworten oder Fehlermeldungen.

Eine ausführlichere Erläuterung von MVC aus Sicht von Fuel finden Sie in der Fuel MVC-Dokumentation. Also springen wir zu den guten Sachen.

Wir werden mit einigen Grundlagen beginnen, um brandneue Benutzer zum Laufen zu bringen. Wenn etwas davon offensichtlich erscheint, überspringen Sie bitte etwas, um zu einigen der aufregenderen Funktionen zu gelangen.


Schritt 1: Installation

Die Installation ist so einfach wie das Abrufen einer Kopie von GitHub oder das Herunterladen einer ZIP-Datei von der Site. Sie können auch eine einzeilige Installation verwenden, wenn Sie ein *nix-System wie Linux, Mac OS X usw. verwenden, für dessen Ausführung Git erforderlich ist. Die Installation von Git ist recht einfach und erleichtert die Entwicklung Ihrer Anwendungen erheblich:

Dadurch wird eine sehr eingeschränkte Version von "oil" installiert. Dies ist der Name des Befehlszeilenprogramms, das Sie bei der Arbeit mit Kraftstoffanwendungen verwenden können. Diese abgespeckte Version kann zum Erstellen von Anwendungen verwendet werden:

Dadurch wird in Ihrem aktuellen Verzeichnis ein Blog-Ordner erstellt, der das Basis-Framework enthält. Wenn Sie auf Probleme stoßen, lesen Sie die detaillierteren Installationsanweisungen.

Angenommen, Sie haben diesen Befehl im Webstamm Ihres lokalen Servers ausgeführt, sollten wir in der Lage sein, zu http://localhost/test/public zu navigieren und die Begrüßungsseite anzuzeigen.

Dateistruktur

Das Stammverzeichnis Ihrer Anwendung sollte drei Hauptelemente enthalten:

  • fiel/ - Wo all Ihr PHP-Code leben wird.
  • public/ - Alles, worauf Sie direkt im Browser zugreifen möchten, also JS, CSS, Bilder usw.
  • oil - Eine ausführbare Datei, bei der es sich um eine Vollversion des zuvor installierten Oil handelt, die Befehlszeilenaufgaben wie das Generieren von Code oder das interaktive Debuggen in Ihrer Anwendung ausführen kann. Es ist optional, sodass Sie es löschen können, wenn Ihnen die Befehlszeile nicht gefällt.

Innerhalb von Kraftstoff haben wir einige wichtige Ordner:

  • app/ - Hier wird der gesamte anwendungsspezifische PHP-Code eingegeben, einschließlich Ihrer Modelle, Ansichten und Controller.
  • core/ - Hier lebt der Kraftstoff selbst. Wenn Sie Git verwenden, ist dies ein Untermodul, das leicht aktualisiert werden kann.
  • packages/ - Fuel trennt bestimmte Logik in Pakete, um ein Aufblähen des Kerns zu vermeiden. Standardmäßig enthält Kraftstoff drei Pakete: oil, auth und orm. Diese Pakete werden erst geladen, wenn Sie sie benötigen. Wir werden sie später filtern.

Der wichtige Teil hier ist die App/der Ordner:

  • config/ - Konfigurationsdateien für verschiedene Klassen und die allgemeine Datei "config.php" befinden sich hier.
  • classes/ - Hier werden alle Controller, Modelle, Hilfsklassen, Geschäftslogikbibliotheken usw. abgelegt. Wenn Sie eine Klasse schreiben müssen, um sie in Ihrem Code zu verwenden, wird sie wahrscheinlich hier eingetragen. Namen sind alle Kleinbuchstaben.
  • classes/controller/ - Hier werden Controller platziert.
  • classes/model/ - Ort für Ihre Modelle, obwohl sie eigentlich nur eine andere Klasse sind.
  • views/ - Legen Sie Ihre Ansichtsdateien hier in Ordnern oder einfach im Stammverzeichnis ab. Es gibt keine spezifischen Namenskonventionen für Ansichten.

Bevor wir eine weitere Theorie durchgehen, schreiben wir einen Code.


Schritt 2: Hallo Welt

Löschen fuel/app/classes/controller/welcome.php-Controller und erstellen unseren eigenen mit dem Namen hello.php.

Fügen Sie in dieser Datei den folgenden Code hinzu:

Wenn wir jetzt zu http://localhost/test/public/index.php/hello navigieren, sollten Sie "Hallo Welt!" Ausgabe an den Browser. Das action_prefix sagt uns, dass dies eine routingfähige Methode ist und kein Rückruf oder eine andere gemeinsam genutzte Methode. Dies bedeutet, dass Sie Methodennamen wie "list" verwenden können, ohne dass PHP verwirrt wird.

Wenn wir möchten, dass dieser Hallo-Controller unser "Root" -Controller anstelle der jetzt verschwundenen welcome.php ist, müssen wir nur die Datei fuel/app/config/route.php öffnen und die _root_route wie folgt ändern:

Ihre erste Ansicht

Erstellen Sie eine Datei fuel/app/views/hello.php und fügen Sie hinzu:

Ändern Sie als Nächstes Ihren Controller ein wenig:

Wenn Sie jetzt http://localhost/test/public/index.php/hello/buddy oder http://localhost/test/public/index.php/hello/buddy/John laden, wird die Variable $name angezeigt von der Methode zur Ansicht weitergeleitet werden. Im Wesentlichen wird extract() für die Ansicht ausgeführt.


Schritt 3: Grundkonfiguration

Wie Sie sehen können, kann Fuel grundlegende Controller- / View-Aufgaben sofort ausführen. Wenn wir jedoch noch viel mehr tun möchten, müssen wir einige grundlegende Konfigurationsänderungen vornehmen. Beginnen wir damit, die Datei fuel/app/config/config.php zu öffnen und einige Dinge einzurichten:

Wenn Sie mod_rewrite installiert haben, können wir diesen Wert in eine leere Zeichenfolge ändern, mit der wir index.php aus unseren URLs entfernen können. Es gibt eine .htaccess-Datei in public/, die dies unterstützt.

Als nächstes müssen wir die Datenbankkonfiguration einrichten, die wir für dieses Tutorial als MySQL annehmen. Erstellen Sie Ihre Datenbank mit Ihrer Desktop-GUI, phpMyAdmin oder der Befehlszeile usw.:

Öffnen Sie fuel/app/config/db.php und legen Sie das Array Fuel::DEVELOPMENT wie folgt fest:

Aktivieren Sie als Nächstes das Paket orm und auth, indem Sie die folgenden Zeilen auskommentieren:

Dieser Schritt ist nur erforderlich, wenn Sie sie verwenden möchten - was wir in diesem Tutorial sein werden.

Optional: Verwenden eines virtuellen Hosts

Der letzte Schritt der Einrichtung besteht darin, einen virtuellen Host zu erstellen. Sie müssen dies nicht tun, aber es bedeutet, dass Sie eine echte URL verwenden und /public/ aus Ihren URLs entfernen können. Wenn Sie Apache verwenden, sollte ein einfacher Block wie dieser den Trick tun:

Wenn dies eine Live-Site wäre, würden wir den Servernamen als "myawesomeblog.com" anstelle von "local.blog" hinzufügen, aber dies funktioniert für unsere Demo. Sobald Sie "127.0.0.1 local.blog" zu Ihrer Datei /etc/hosts hinzugefügt haben, sollten Sie bereit sein. Wenn Sie diesen Schritt überspringen möchten, passen Sie die URLs in diesem Artikel an.


Schritt 4: Startschuss für die Entwicklung

Mit diesem grundlegenden Verständnis der Funktionsweise von Controllern, Ansichten und Konfigurationen könnten Sie wahrscheinlich in die Dokumentation springen und ziemlich schnell loslegen, aber um wirklich loszulegen, muss der beste Weg das Gerüst sein.

Gerüste sind kein neues Konzept und bekannt für ihren Platz im Framework Ruby on Rails. Es ist im Wesentlichen eine sehr einfache Möglichkeit, Code basierend auf einigen Annahmen über die Befehlszeile zu erstellen. Sie möchten eine Entität hinzufügen, bearbeiten und löschen, für die Sie Felder benennen und bereitstellen. Dies geschieht durch Öl und den Unterbefehl "oil generate scaffold"

Wenn wir also ein einfaches Blog erstellen möchten, müssen wir nur "$oil g scaffold post title:string summary:varchar[250] body:text" schreiben. Oil wird sehr ausführlich darüber sein, was es tut, und Ihnen alle erstellten Dateien mitteilen:

Hinweis: Modelle, die durch Gerüste generiert wurden, verwenden das ORM-Paket. Stellen Sie daher sicher, dass es wie oben beschrieben aktiviert ist.

Sie sehen hier ein Modell mit dem Namen "post", eine Migration (dazu später mehr), einen Controller "posts" und eine Reihe von Ansichten. Die Felder werden alle basierend auf den angegebenen Argumenten generiert: fieldname: fieldtyp[optional-length]. Für title haben wir ": string" verwendet. Solange Sie MySQL verwenden, wird der Alias :varchar[255] verwendet, aber jeder DB-Typ wird unterstützt.

Mit diesem Befehl müssen wir unsere Migrationen ausführen. Eine Migration besteht aus einer Reihe von Änderungen, die an einer Datenbank vorgenommen werden müssen. Dies ist nützlich, wenn mehrere Entwickler an einem Projekt arbeiten, da jeder Entwickler eine Migration hinzufügen kann und Sie einen einzelnen Befehl ausführen können, um sicherzustellen, dass Ihre lokale Kopie auf dem neuesten Stand ist. Keine Fehler mehr "fehlendes Feld" oder "Tabelle existiert nicht" nach dem Abrufen der neuesten Entwicklungskopie!

Um diese Migration auszuführen, geben Sie einfach Folgendes ein:

Jetzt können Sie unter http://local.blog/posts sehen, was Oil für Sie gemacht hat

Wenn Sie Controller, Modelle und Migrationen separat und nicht alle zusammen so erstellen möchten, können Sie dies ganz einfach mit oil g controller, oil g migrate, oil g modell usw. tun.

Vorlagen

Möglicherweise haben Sie im obigen Schritt bemerkt, dass Oil eine Datei erstellt hat:

Dies wird erstellt, wenn Sie zum ersten Mal einen Gerüstbefehl ausführen, da alle Ansichten mit einer "Vorlage" oder einem "Layout" umbrochen werden. Dies ist eine Kopf- und Fußzeile, die Ihren Inhalt umschließt. Um vom Standarddesign abzuweichen, müssen Sie lediglich diese Vorlage bearbeiten, Ihr eigenes CSS einfügen, ein Logo hinzufügen und beliebige Metadaten eingeben.

Wenn Sie neue Controller manuell erstellen, können Sie 'Controller_Template' anstelle des üblichen 'Controller's erweitern, um diese Vorlage um alle in den Controller geladenen Ansichten zu wickeln.

Wenn Sie eine andere Vorlage für einen Controller verwenden möchten, ändern Sie einfach die Eigenschaft $template in eine andere.

Dies verwendet die Ansichtsdatei fuel/app/views/alternative.php  anstelle der üblichen Datei fuel/app/views/template.php.

Arbeiten mit Formularen

Einer der wichtigsten Aspekte eines Antrags ist das Einreichen eines Formulars. Auf diese Weise werden Daten von einem Benutzer erfasst. Es kann sich um ein Login, einen Kommentar, eine Kaufabwicklung usw. handeln. Dies geschieht normalerweise mit HTML, aber Fuel bietet Ihnen einige hilfreiche Methoden, um diesen Prozess erheblich zu vereinfachen. Sie sind optional. Wenn Sie also ein HTML-Fan sind, machen Sie weiter, aber um die Dinge zu beschleunigen, lesen Sie weiter:

Dies ist ein sehr einfaches Formular, das sowohl zum create als auch zum edit geeignet ist. Wenn für jede Eingabe eine Übereinstimmung in POST gefunden wird, wird sie verwendet. Andernfalls wird nach der Variablen $post gesucht und der Wert eingegeben (gut zum Bearbeiten).

Der eigentliche Vorteil dieser Helfer liegt nicht in einer saubereren Syntax, wie Sie vielleicht denken, sondern darin, dass das Framework Ihr Formular programmgesteuert umbrechen kann. Dies bedeutet, dass Fuel Attribute automatisch in alle Formulare einbetten kann, um sicherzustellen, dass die Daten im richtigen Zeichensatz gesendet werden, und CRSF (Cross-Site Request Forgery) automatisch aktiviert.

Validieren Sie Ihre Formulare

Die Validierung ist ein einfacher Weg, um sicherzustellen, dass bestimmte Informationen in einem Formular ordnungsgemäß übermittelt wurden. Es kann mit bestimmten Mustern, Datentypen oder Bedingungen übereinstimmen und hilft, die Integrität oder die Daten zu verbessern.

Standardmäßig wird die Validierung von Scaffolding nicht verwendet, da es schwierig ist, Annahmen darüber zu treffen, was der Entwickler in den Daten erwartet. Aus diesem Grund ist die Validierung optional, lässt sich jedoch ganz einfach zu Ihren generierten Controllern hinzufügen oder von Grund auf neu bearbeiten.

Schauen wir uns an, wie eine Methode "Beitrag erstellen" für unser Blog aussehen kann:

Wir können hier sehen, dass wir der Validierungsklasse (die wie alle Klassen automatisch geladen wird) mitteilen, welche Felder uns interessieren. Wir weisen dann Regeln zu und geben ihnen Beschriftungen, die der Mensch lesen kann. Wenn $val->run() true ist, erstellen wir mithilfe der Factory eine neue Model_Post-Instanz und senden $val->validated(), das ein Array aller übermittelten Daten enthält. Damit können wir einfach die Instanz speichern, die ORM verwendet, um alles für Sie zu erledigen.

Wenn eine der Validierungsregeln false zurückgibt, schlägt $val->run() fehl und wir erhalten eine Reihe von Fehlern in $val->errors(), die wir an den Benutzer zurücksenden können. Die Standardvorlage template.php sucht nach einem "Hinweis"-Flashdata (Teil der Sitzungsklasse) oder nur nach normalen Ansichtsdaten und kann eine Zeichenfolge oder ein Array ausgeben, sodass dies perfekt funktioniert.

Mit Ihrem Wissen über Validierung und Formularerstellung können Sie beginnen, beliebige Controller-basierte Anwendungen zu erstellen.

Arbeiten mit Aufgaben

Aufgaben ähneln Controllern, können jedoch nicht über eine URL aufgerufen oder in irgendeiner Weise weitergeleitet werden. Stattdessen werden sie über den Unterbefehl "oil refine" im Terminal ausgeführt. Dies ist ideal für die Erstellung interaktiver Shell-Skripte, die Zugriff auf Ihre Codebasis haben, und macht das Erstellen sicherer Cron-Jobs zum Kinderspiel.

Einige Frameworks schlagen vor, dass Sie wget, curl oder ähnliches verwenden, um einen Controller zum Ausführen eines Cron-Jobs auszuführen. Dies kann jedoch zu potenziellen Sicherheits- oder Konsistenzproblemen führen, wenn Cron-Jobs nicht mehr genügend Zeit haben, um böswillige oder unerwartete Ergebnisse zu erzielen. Auf diese Weise ist es vollständig vor der Außenwelt geschützt.

Ein Beispiel für eine Aufgabe finden Sie in der bereitgestellten Aufgabe "robots" in fuel/app/task/robots.php:

Um diese scherzhafte Aufgabe auszuführen, geben Sie einfach "oil r robots" oder "oil r robots 'Kill all Mice'" ein, damit der Roboter etwas anderes sagt.


Zusammenfassung

Wenn Sie jeden Schritt befolgt haben, haben Sie Fuel installiert, gelernt, wohin die wichtigen Dateien gehen, eine Basisinstallation für die Ausführung auf Apache mit mod_rewrite konfiguriert (andere Server funktionieren ebenfalls einwandfrei) und einfache Controller und Ansichten mithilfe von Formularen und Validierung erstellt. Mit Gerüsten zur Generierung von Code zum Auseinandernehmen sollte es genügend Code geben, von dem man lernen kann!

An diesem Punkt sollten Sie über genügend Wissen verfügen, um herumzuspielen und einige wirklich einfache Apps zu erstellen - das heißt, bis zum zweiten Teil dieser Serie werden wir den Prozess des Erstellens und Erweiterns von Basis-Controllern durchlaufen, um Ihre Frontend / Backend-Trennung zu erstellen. Wir werden auch fortgeschrittenes ORM, Authentifizierungstreiber und Datei-Uploads überprüfen. Bleib dran!

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.