


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()
unddelete()
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(); ?>
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
<?php $app = new Slim(array( "MODE" => "development", "TEMPLATES.PATH" => "./templates" )); ?>
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
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); ?>
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) ...
get()
use
Handles GET -Anfragen. application/json
erm?glicht den Zugriff auf externe Variablen innerhalb der anonymen Funktion. Der Antwortheader ist auf
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) ...
: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(); ?>
$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" )); ?>
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!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen





Um zwei PHP -Arrays zusammenzuführen und eindeutige Werte zu behalten, gibt es zwei Hauptmethoden. 1. Verwenden Sie für Index -Arrays oder nur Deduplizierung Array_merge und Array_unique -Kombinationen: Zuerst merge array_merge ($ array1, $ array2) und verwenden Sie dann Array_unique (), um sie endgültig zu erhalten, um ein neues Array zu erhalten, das alle eindeutigen Werte enth?lt. 2. Verwenden Sie für assoziative Arrays und m?chten im ersten Array Schlüsselwertepaare beibehalten: $ result = $ array1 $ array2, was sicherstellt, dass die Schlüssel im ersten Array vom zweiten Array nicht überschrieben werden. Diese beiden Methoden gelten für verschiedene Szenarien, je nachdem, ob der Schlüsselname beibehalten wird oder nur der Fokus liegt

Um die St?rke des Kennworts zu bestimmen, muss die regelm??ige und logische Verarbeitung kombiniert werden. Die grundlegenden Anforderungen umfassen: 1. Die L?nge betr?gt mindestens 8 Ziffern; 2. Enthaltende Kleinbuchstaben, Gro?buchstaben und Zahlen; 3.. Spezielle Charakterbeschr?nkungen k?nnen hinzugefügt werden; In Bezug auf fortgeschrittene Aspekte müssen eine kontinuierliche Vervielf?ltigung von Zeichen und inkrementelle/abnehmende Sequenzen vermieden werden, was eine PHP -Funktionserkennung erfordert. Gleichzeitig sollten Blacklists vorgestellt werden, um gemeinsame schwache Passw?rter wie Passwort und 123456 zu filtern. Schlie?lich wird empfohlen, die ZXCVBN -Bibliothek zu kombinieren, um die Bewertungsgenauigkeit zu verbessern.

Um PHP -Datei -Uploads sicher zu verarbeiten, müssen Sie die Quelle und die Type und die Eingabe des Dateinamens und des Pfades überprüfen, Serverbeschr?nkungen festlegen und Mediendateien zweimal verarbeiten. 1. überprüfen Sie die Upload -Quelle, um CSRF durch Token zu verhindern, und erkennen Sie den realen MIME -Typ über die Finfo_file mithilfe der Whitelist -Steuerung. 2. Benennen Sie die Datei in eine zuf?llige Zeichenfolge um und bestimmen Sie die Erweiterung, um sie gem?? dem Erkennungstyp in einem Verzeichnis ohne Web zu speichern. 3. Die PHP -Konfiguration begrenzt die Hochladengr??e und das tempor?re Verzeichnis Nginx/Apache verbietet den Zugriff auf das Upload -Verzeichnis. 4. Die GD -Bibliothek stellt die Bilder neu, um potenzielle b?swillige Daten zu l?schen.

H?ufige Probleme und L?sungen für den variablen PHP -Umfang umfassen: 1. Die globale Variable kann innerhalb der Funktion nicht zugegriffen werden, und sie muss bei der Verwendung des globalen Schlüsselworts oder Parameters übergeben werden. 2. Die statische Variable wird statisch deklariert und nur einmal initialisiert und der Wert wird zwischen mehreren Aufrufen beibehalten. 3.. Hyperglobale Variablen wie $ _get und $ _post k?nnen direkt in jedem Bereich verwendet werden, aber Sie müssen auf eine sichere Filterung achten. 4. Die anonymen Funktionen müssen über das Schlüsselwort verwenden, und wenn Sie externe Variablen ?ndern, müssen Sie eine Referenz übergeben. Das Beherrschen dieser Regeln kann dazu beitragen, Fehler zu vermeiden und die Code -Stabilit?t zu verbessern.

Es gibt drei g?ngige Methoden für den PHP -Kommentarcode: 1. Verwenden Sie // oder #, um eine Codezeile zu blockieren, und es wird empfohlen, // zu verwenden. 2. Verwenden Sie /.../, um Codebl?cke mit mehreren Zeilen zu wickeln, die nicht verschachtelt werden k?nnen, aber gekreuzt werden k?nnen. 3.. Kombinationskenntnisse Kommentare wie die Verwendung / if () {} / Um Logikbl?cke zu steuern oder um die Effizienz mit Editor -Verknüpfungsschlüssel zu verbessern, sollten Sie auf die Schlie?ung von Symbolen achten und das Verschachteln bei der Verwendung vermeiden.

Der Schlüssel zum Schreiben von PHP -Kommentaren liegt in der Kl?rung des Zwecks und der Spezifikationen. Kommentare sollten "Warum" und nicht "was getan" erkl?ren, um Redundanz oder zu Einfachheit zu vermeiden. 1. Verwenden Sie ein einheitliches Format wie Docblock (/*/) für Klassen- und Methodenbeschreibungen, um die Lesbarkeit und die Kompatibilit?t der Werkzeuge zu verbessern. 2. Betonen Sie die Gründe für die Logik, z. B. warum JS -Sprünge manuell ausgeben müssen. 3. Fügen Sie eine übersichtsbeschreibung vor komplexem Code hinzu, beschreiben Sie den Prozess in Schritten und helfen Sie, die Gesamtidee zu verstehen. V. Gute Anmerkungen k?nnen die Kommunikationskosten senken und die Effizienz der Code -Wartung verbessern.

AgneeratorinphpiSamemory-effizientes WaytoiterateOverlargedatasetsByyieldingValueatimeinsteadofReturningThemallatonce.1.GeneratorsusetheyieldKeywordtoproduktenvaluesonDemand, ReducingMemoryUsage.2.TheyareusefulforfulforfulfordlingBiglopploups, Lesebiglochen, Leselungen, Lesebigs, Leselung, oder

Es gibt zwei M?glichkeiten, ein Array in PHP zu erstellen: Verwenden Sie die Funktion array () oder verwenden Sie Klammern []. 1. Die Verwendung der Funktion array () ist eine traditionelle Art und Weise mit guter Kompatibilit?t. Definieren Sie Indexarrays wie $ fruits = Array ("Apple", "Banana", "Orange") und assoziative Arrays wie $ user = array ("name" => "John", "Age" => 25); 2. Die Verwendung [] ist eine einfachere M?glichkeit, seit Php5.4 wie $ Color zu unterstützen
