Heim > Backend-Entwicklung > PHP-Tutorial > PHP Master | Schreiben Sie einen erholsamen Webdienst mit Slim

PHP Master | Schreiben Sie einen erholsamen Webdienst mit Slim

Lisa Kudrow
Freigeben: 2025-02-26 09:13:10
Original
639 Leute haben es durchsucht

PHP Master | Writing a RESTful Web Service with Slim

Diese SitePoint -Serie hat REST -Prinzipien untersucht. Dieser Artikel zeigt, dass ein erholsamer Webdienst mit Slim, einem von Sinatra (Ruby) inspirierten PHP Micro-Framework, erstellt wird. Die leichte Natur von SLIM mit Kernkomponenten wie Routing, Anforderungs-/Antworthandhabung und minimaler Ansichtsunterstützung macht es ideal für einfache REST -APIs.

Schlüsselkonzepte:

  • Slim ist ein PHP Micro-Framework, das perfekt für einfache Ruhestandsdienste ist und PHP 5.2 und sowohl prozedurale als auch (5.3) funktionale Programmierstile unterstützt.
  • Routes ordnen URIs zu Rückruffunktionen für bestimmte HTTP -Methoden ab. Slim effizient mit mehreren Methoden für denselben Uri behandelt.
  • Ein Beispiel für Bibliotheksverwaltungsanwendungen zeigt die Auflistung, Hinzufügen, Löschen und Aktualisieren von Buchdetails über Webdienst -Anrufe. NotorM, eine leichte PHP -Datenbankbibliothek, übernimmt die Datenbankinteraktion.
  • Endpunkte verwenden post(), put() und delete() Methoden zum Erstellen, Aktualisieren und Löschen von Buchsätzen.
  • .

Einführung in schlanker Einführung:

index.php Beginnen Sie mit dem Herunterladen von Slim. In diesem Beispiel wird der 5.3 -Stil verwendet. Erstellen Sie

:
<?php
require "Slim/Slim.php";

$app = new Slim();

$app->get("/", function () {
    echo "<h1>Hello Slim World</h1>";
});

$app->run();
?>
Nach dem Login kopieren
Nach dem Login kopieren

index.php Zugriff auf MODE in Ihrem Browser zeigt "Hallo Slim World" an. Slim Autoloads notwendige Dateien. Der schlanke Konstruktor akzeptiert die Konfiguration (z. B. TEMPLATES.PATH, VIEW, MODE). TEMPLATES.PATH legt die Umgebung (Entwicklung/Produktion) fest, und Slim_View Gibt das Vorlagenverzeichnis an. Benutzerdefinierte Ansichtshandler können die Standardeinstellung

ersetzen. Beispiel:
<?php
$app = new Slim(array(
    "MODE" => "development",
    "TEMPLATES.PATH" => "./templates"
));
?>
Nach dem Login kopieren
Nach dem Login kopieren

run() Routenerstellung ist entscheidend. Routes mart URIs zu Rückruffunktionen basierend auf HTTP -Methoden. Slim priorisiert die erste passende Route; Unübertroffene Anforderungen führen zu einem 404 -Fehler. Rufen Sie nach dem Definieren von Routen

auf, um die Anwendung zu starten.

Erstellen eines Bibliotheksdienstes:

Erstellen wir einen Bibliotheksverwaltungsdienst. NotorM vereinfacht die Datenbankinteraktion (erfordert eine PDO -Instanz).
<?php
require "NotORM.php";

$pdo = new PDO($dsn, $username, $password); // Replace with your database credentials
$db = new NotORM($pdo);
?>
Nach dem Login kopieren

Auflistungsbücher:

Dieser Endpunkt listet alle Bücher im JSON -Format auf:
<?php
// ... (previous code) ...

$app->get("/books", function () use ($app, $db) {
    $books = array();
    foreach ($db->books() as $book) {
        $books[] = array(
            "id" => $book["id"],
            "title" => $book["title"],
            "author" => $book["author"],
            "summary" => $book["summary"]
        );
    }
    $app->response()->header("Content-Type", "application/json");
    echo json_encode($books);
});
// ... (rest of the code) ...
Nach dem Login kopieren

get() use Handles GET -Anfragen. application/json ermöglicht den Zugriff auf externe Variablen innerhalb der anonymen Funktion. Der Antwortheader ist auf

gesetzt, und die Buchdaten werden als JSON codiert.

Buchdetails erhalten:

ein Buch nach ID abrufen:
<?php
// ... (previous code) ...

$app->get("/book/:id", function ($id) use ($app, $db) {
    $app->response()->header("Content-Type", "application/json");
    $book = $db->books()->where("id", $id);
    if ($data = $book->fetch()) {
        echo json_encode(array(
            "id" => $data["id"],
            "title" => $data["title"],
            "author" => $data["author"],
            "summary" => $data["summary"]
        ));
    } else {
        echo json_encode(array(
            "status" => false,
            "message" => "Book ID $id does not exist"
        ));
    }
});
// ... (rest of the code) ...
Nach dem Login kopieren

:id Der Routenparameter /book(/:id) wird an die Rückruffunktion übergeben. Optionale Parameter verwenden func_get_args(). Verwenden Sie für optionale Parameter ohne explizite Rückrufargumente

.

Hinzufügen und Bearbeiten von Büchern:

<🎜>

post() fügt und put() Bücher hinzu:

<?php
require "Slim/Slim.php";

$app = new Slim();

$app->get("/", function () {
    echo "<h1>Hello Slim World</h1>";
});

$app->run();
?>
Nach dem Login kopieren
Nach dem Login kopieren

$app->request()->post() und $app->request()->put() post- bzw. Daten abrufen. Verwenden Sie für Browser-basierte Put-Anforderungen ein verstecktes Feld _METHOD mit dem Wert "Put" in Ihrem Formular.

Bücher löschen:

Ein Buch durch ID löschen:

<?php
$app = new Slim(array(
    "MODE" => "development",
    "TEMPLATES.PATH" => "./templates"
));
?>
Nach dem Login kopieren
Nach dem Login kopieren

Die delete() -Methode entfernt den Datenbankdatensatz. Die Methode map() verarbeitet mehrere HTTP -Methoden auf einer einzelnen Route (hier nicht gezeigt).

Schlussfolgerung:

Dieser Artikel zeigt, dass ein grundlegender Rastful -Webdienst mit SLIM erstellt wird. Die Weiterentwicklung sollte eine robuste Fehlerbehandlung und die Eingabevalidierung umfassen. Der Quellcode (hier nicht enthalten) finden Sie in GitHub (Link nicht im Originaltext angegeben). Der FAQS -Abschnitt des Originaltextes wird weggelassen, da er grundlegende Informationen liefert, die durch SLIM -Dokumentation leicht verfügbar sind.

Das obige ist der detaillierte Inhalt vonPHP Master | Schreiben Sie einen erholsamen Webdienst mit Slim. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage