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
Lisa KudrowOriginal
2025-02-26 09:13:10644Durchsuche

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

:
<code class="language-php"><?php
require "Slim/Slim.php";

$app = new Slim();

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

$app->run();
?></code>

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:
<code class="language-php"><?php
$app = new Slim(array(
    "MODE" => "development",
    "TEMPLATES.PATH" => "./templates"
));
?></code>

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).
<code class="language-php"><?php
require "NotORM.php";

$pdo = new PDO($dsn, $username, $password); // Replace with your database credentials
$db = new NotORM($pdo);
?></code>

Auflistungsbücher:

Dieser Endpunkt listet alle Bücher im JSON -Format auf:
<code class="language-php"><?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) ...</code>

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:
<code class="language-php"><?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) ...</code>

: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:

<code class="language-php"><?php
require "Slim/Slim.php";

$app = new Slim();

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

$app->run();
?></code>

$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:

<code class="language-php"><?php
$app = new Slim(array(
    "MODE" => "development",
    "TEMPLATES.PATH" => "./templates"
));
?></code>

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!

Stellungnahme:
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