„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > PHP -Experte | Schreiben Sie erholsame Webdienste mit Slim Framework

PHP -Experte | Schreiben Sie erholsame Webdienste mit Slim Framework

Gepostet am 2025-04-14
Durchsuche:795

PHP Master | Writing a RESTful Web Service with Slim

Diese SitePoint -Serie hat Ruheprinzipien 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 Support für minimale Sichtweise macht es ideal für einfache REST -APIs.

Schlüsselkonzepte:

  • Slim ist ein PHP Micro-Framework, das perfekt für einfache erholsame Dienste ist und PHP 5.2 und sowohl prozedurale als auch (5.3) funktionale Programmierstile unterstützt.
  • Routes map URIs zu Rückruffunktionen für bestimmte HTTP -Methoden. Slim effizient behandelt mehrere Methoden für denselben Uri.
  • In einem Beispiel für Bibliotheksverwaltungsanwendungen werden Buchdetails über Webdienstanrufe aufgeführt, hinzugefügt, gelöscht und aktualisiert. NotorM, eine leichte PHP -Datenbankbibliothek, übernimmt die Datenbankinteraktion.
  • endpoints verwenden post () , put () und delete () Methoden zum Erstellen, Aktualisieren und Löschen von Buchsätzen.
  • .

vorstellen schlank:

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

get("/", function () {
    echo "

Hello Slim World

"; }); $app->run(); ?>

auf index.php in Ihrem Browser anzeigen "Hallo schlanke Welt". Slim Autoloads notwendige Dateien. Der schlanke Konstruktor akzeptiert die Konfiguration (z. B. modus , templates.path , view ). modus legt die Umgebung (Entwicklung/Produktion) fest, und templates.path Gibt das Vorlagenverzeichnis an. Benutzerdefinierte Ansicht können die Standard SLIM_View ersetzen. Beispiel:

 "development",
    "TEMPLATES.PATH" => "./templates"
));
?>

Routenschöpfung 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. Nachdem Sie Routen definiert haben, rufen Sie run () an, um die Anwendung zu starten.

Erstellen eines Bibliotheksdienstes:

Lassen Sie uns einen Bibliotheksmanagementdienst erstellen. NotorM vereinfacht die Datenbankinteraktion (erfordert eine PDO -Instanz).

.

Listing Bücher:

Dieser Endpunkt listet alle Bücher im JSON -Format auf:

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) ...

get () Handles Get Anfragen. verwenden erlaubt den Zugriff auf externe Variablen in der anonymen Funktion. Der Antwortkopf ist auf application/json gesetzt, und die Buchdaten werden als json codiert.

Erhalten Sie Buchdetails:

Ring ein Buch von ID ab:

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) ...

Die Route Parameter : id wird an die Rückruffunktion übergeben. Optionale Parameter verwenden /book (/: id) . Für optionale Parameter ohne explizite Rückrufargumente verwenden Sie func_get_args () .

.

Hinzufügen und Bearbeiten von Büchern:

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

post("/book", function () use ($app, $db) {
    $app->response()->header("Content-Type", "application/json");
    $book = $app->request()->post();
    $result = $db->books->insert($book);
    echo json_encode(array("id" => $result["id"]));
});

$app->put("/book/:id", function ($id) use ($app, $db) {
    $app->response()->header("Content-Type", "application/json");
    $book = $db->books()->where("id", $id);
    if ($book->fetch()) {
        $post = $app->request()->put();
        $result = $book->update($post);
        echo json_encode(array(
            "status" => (bool)$result,
            "message" => "Book updated successfully"
        ));
    } else {
        echo json_encode(array(
            "status" => false,
            "message" => "Book id $id does not exist"
        ));
    }
});
// ... (rest of the code) ...

$ app-> request ()-> post () und $ app-> request ()-> put () post abgerufen bzw. Daten. Verwenden Sie für Browser-basierte Put-Anfragen ein verstecktes Feld _ method mit Wert "put" in Ihrem Formular.

Bücher löschen:

Löschen Sie ein Buch nach ID:

delete("/book/:id", function ($id) use ($app, $db) {
    $app->response()->header("Content-Type", "application/json");
    $book = $db->books()->where("id", $id);
    if ($book->fetch()) {
        $result = $book->delete();
        echo json_encode(array(
            "status" => true,
            "message" => "Book deleted successfully"
        ));
    } else {
        echo json_encode(array(
            "status" => false,
            "message" => "Book id $id does not exist"
        ));
    }
});
// ... (rest of the code) ...

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

Abschluss:

Dieser Artikel zeigt, dass ein grundlegender Restful -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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3