suchen
HeimBackend-EntwicklungPHP-TutorialErstellen einer Pokémon-API in PHP: Ein Leitfaden für Anfänger

Building a Pokémon API in PHP: A Beginner

In diesem Leitfaden gehen wir die Schritte durch, um ein einfaches PHP-Projekt zu erstellen, das die Pokémon-API mit dem Flight-Framework und zusätzlichen Paketen wie Zebra_cURL und Latte verwendet. Wir werden uns mit der Einrichtung des Projekts, dem Hinzufügen von Routen und dem Rendern von Ansichten befassen.

tl;dr: Es ist nicht schwer, ein einfaches API-basiertes Projekt in Flight zu erstellen. Sehen Sie sich den in diesem Handbuch verwendeten Code an.

Schritt 1: Einrichten der Umgebung

Zuerst müssen wir einen neuen Projektordner einrichten. Öffnen Sie Ihr Terminal, navigieren Sie zum gewünschten Speicherort und führen Sie die folgenden Befehle aus, um ein neues Verzeichnis zu erstellen und es einzugeben.

mkdir flight-pokeapi
cd flight-pokeapi

Schritt 2: Composer installieren

Bevor wir uns mit dem Code befassen, müssen wir sicherstellen, dass Composer installiert ist. Composer ist der Abhängigkeitsmanager für PHP und hilft uns, die notwendigen Bibliotheken einzubinden.

Wenn Sie Composer nicht installiert haben, können Sie es wie folgt installieren:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Da Composer nun in einer aktuellen Datei namens ./composer.phar installiert ist, verwalten wir unsere Abhängigkeiten.

Schritt 3: Abhängigkeiten installieren

Um die erforderlichen Pakete zu verwalten, müssen wir sie nur mit Composer hinzufügen.

./composer.phar require flightphp/core stefangabos/zebra_curl latte/latte

Dadurch wird Folgendes installiert:

  • Flight PHP: Ein leichtes PHP-Framework.
  • Zebra_cURL: Ein cURL-Wrapper zur Verarbeitung von HTTP-Anfragen.
  • Latte: Eine Vorlagen-Engine zum Rendern von Ansichten.

Schritt 4: Einrichten von index.php

Als nächstes erstellen wir den Einstiegspunkt für unsere Anwendung: public/index.php. Diese Datei richtet unsere App ein, konfiguriert Routen und übernimmt das Rendern von Ansichten.

Erstellen Sie das öffentliche Verzeichnis und die Datei index.php:

mkdir public
touch public/index.php

Fügen Sie nun den folgenden Inhalt zu index.php hinzu:

<?php use flight\net\Router;
use Latte\Engine;

require __DIR__ . '/../vendor/autoload.php'; // Autoload the installed packages

// Setup Latte for view rendering
$Latte = new Engine;
$Latte->setTempDirectory(__DIR__ . '/../temp');
Flight::map('render', function(string $template_path, array $data = []) use ($Latte) {
  $Latte->render(__DIR__ . '/../views/' . $template_path, $data);
});

// Setup Zebra_cURL for handling HTTP requests
$Curl = new Zebra_cURL();
$Curl->cache(__DIR__ . '/../temp');
Flight::map('curl', function() use ($Curl) { 
    return $Curl; 
});

// Define a simple route
Flight::route('/', function() {
  echo 'hello world!';
});

Flight::start();

In dieser Datei:

  • Wir laden den Autoloader von Composer.
  • Richten Sie Latte für das Rendern von Ansichten ein.
  • Ordnen Sie eine benutzerdefinierte Rendermethode zu, die Latte verwendet, um Vorlagen aus dem Ordner /views zu rendern.
  • Richten Sie Zebra_cURL ein, um API-Anfragen zu verarbeiten, und ordnen Sie es so zu, dass Flight::curl() verwendet wird, wenn wir es aufrufen möchten.
  • Definieren Sie eine einfache Route für die Homepage (/), die nur „Hallo Welt!“ zurückgibt.

Wenn Sie dieses Setup testen möchten, können Sie einen PHP-Server aus dem öffentlichen Verzeichnis starten:

php -S localhost:8000 -t public/

Besuchen Sie nun http://localhost:8000/ in Ihrem Browser und Sie sollten „Hallo Welt!“ sehen. Cool, oder?

Schritt 5: Routen hinzufügen

Da wir nun eine grundlegende Route eingerichtet haben, fügen wir eine komplexere Route hinzu, die die Pokémon-API verwendet. Aktualisieren Sie public/index.php, um den folgenden Code einzuschließen:

Flight::group('/pokemon', function(Router $router) {
    // Route to list all Pokémon types
    $router->get('/', function() {
        $types_response = json_decode(Flight::curl()->scrap('https://pokeapi.co/api/v2/type/', true));
        $results = [];
        while ($types_response->next) {
            $results = array_merge($results, $types_response->results);
            $types_response = json_decode(Flight::curl()->scrap($types_response->next, true));
        }
        $results = array_merge($results, $types_response->results);
        Flight::render('home.latte', [ 'types' => $results ]);
    });
});
  • Wir haben eine /pokemon-Routengruppe erstellt. Eine Routengruppe „umgibt“ die Routen und ermöglicht es uns, gemeinsame Funktionalität für alle Routen innerhalb der Gruppe zu definieren.
  • Die /pokemon-Route listet alle verfügbaren Pokémon-Typen auf, indem sie sie mit Zebra_cURL von der Pokémon-API abruft.
  • Das wird noch nicht funktionieren, da wir die home.latte-Ansicht hinzufügen müssen, um die Pokémon-Typen anzuzeigen.

Schritt 6: Ansichten mit Latte rendern

Da wir nun Daten abrufen, richten wir Ansichten ein, um sie anzuzeigen. Erstellen Sie das Ansichtenverzeichnis und fügen Sie eine Latte-Vorlagendatei zur Anzeige der Pokémon-Typen hinzu.

mkdir views
touch views/home.latte

Fügen Sie den folgenden Code zu „views/home.latte“ hinzu:

<p>Welcome to the Pokemon World!</p>

<p>Types of Pokemon</p>

In dieser Datei:

  • Wir durchlaufen das $types-Array, das von unserer Route übergeben wurde, und zeigen den Namen jedes Pokémon-Typs an.

Wenn Sie jetzt /pokemon aufrufen, wird eine Liste aller Pokémon-Typen angezeigt!

Schritt 7: Gruppieren und Hinzufügen weiterer Routen

Erweitern wir unsere Pokémon-Routen, um mehr Details zu bestimmten Typen und einzelnen Pokémon abzurufen. Fügen Sie die folgenden Routen zu Ihrer /pokemon-Gruppe hinzu:

// Route to fetch a specific Pokémon type and list all associated Pokémon
$router->get('/type/@type', function(string $type) {
    $Curl = Flight::curl();
    $type_response = json_decode($Curl->scrap('https://pokeapi.co/api/v2/type/' . $type, true));
    $pokemon_urls = [];
    foreach($type_response->pokemon as $pokemon_data) {
        $pokemon_urls[] = $pokemon_data->pokemon->url;
    }
    $pokemon_data = [];

    // The little & here is important to pass the variable by reference.
    // In other words it allows us to modify the variable inside the closure.
    $Curl->get($pokemon_urls, function(stdClass $result) use (&$pokemon_data) {
        $pokemon_data[] = json_decode($result->body);
    });

    Flight::render('type.latte', [ 
        'type' => $type_response->name,
        'pokemons' => $pokemon_data
    ]);
});

Auf dieser Route:

  • Rufen Sie Details für einen bestimmten Pokémon-Typ ab, einschließlich aller zugehörigen Pokémon.
  • Senden Sie mehrere API-Anfragen, um Details für jedes Pokémon abzurufen.
  • Rendern Sie die Daten mithilfe einer Vorlage (type.latte).

Als nächstes erstellen Sie die type.latte-Ansicht:

touch views/type.latte

Fügen Sie den folgenden Inhalt zu type.latte hinzu:

<h1 id="type-firstUpper">{$type|firstUpper}</h1>

Diese Vorlage zeigt den Namen jedes Pokémon an, das einem bestimmten Typ zugeordnet ist.

Schritt 8: Funktioniert es?

Zu diesem Zeitpunkt haben Sie einen grundlegenden Pokémon-API-Konsumenten eingerichtet, der Flight PHP, Zebra_cURL für API-Anfragen und Latte für das Rendern von Ansichten verwendet. Sie können dieses Projekt weiter ausbauen, indem Sie weitere Routen hinzufügen und die Vorlagen verfeinern.

Um Ihr Projekt anzuzeigen, starten Sie den PHP-Server aus dem öffentlichen Verzeichnis:

php -S localhost:8000 -t public/

Besuchen Sie nun http://localhost:8000/pokemon in Ihrem Browser und Sie sollten eine Liste der Pokémon-Typen sehen.

Fehlerbehebung

Wenn Sie Hilfe benötigen oder auf Probleme stoßen, können Sie den vollständigen Code in Github überprüfen, um zu sehen, wo Sie möglicherweise einen Fehltritt gemacht haben.

Hoffentlich hat Ihnen dieses kleine Tutorial gefallen. Wenn Sie Fragen haben oder Hilfe benötigen, können Sie diese gerne in den Kommentaren unten stellen. Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonErstellen einer Pokémon-API in PHP: Ein Leitfaden für Anfänger. 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
Was sind die Vorteile der Verwendung einer Datenbank zum Speichern von Sitzungen?Was sind die Vorteile der Verwendung einer Datenbank zum Speichern von Sitzungen?Apr 24, 2025 am 12:16 AM

Die Hauptvorteile der Verwendung von Datenbankspeichersitzungen sind Persistenz, Skalierbarkeit und Sicherheit. 1. Persistenz: Auch wenn der Server neu gestartet wird, können die Sitzungsdaten unverändert bleiben. 2. Skalierbarkeit: Anwendbar für verteilte Systeme, um sicherzustellen, dass Sitzungsdaten zwischen mehreren Servern synchronisiert werden. 3. Sicherheit: Die Datenbank bietet verschlüsselten Speicher zum Schutz vertraulicher Informationen.

Wie implementieren Sie eine benutzerdefinierte Sitzung in PHP?Wie implementieren Sie eine benutzerdefinierte Sitzung in PHP?Apr 24, 2025 am 12:16 AM

Das Implementieren der benutzerdefinierten Sitzung in PHP kann durch die Implementierung der SessionHandlerInterface -Schnittstelle durchgeführt werden. Die spezifischen Schritte umfassen: 1) Erstellen einer Klasse, die SessionHandlerInterface wie CustomSessionHandler implementiert; 2) Umschreiben von Methoden in der Schnittstelle (z. B. offen, schließen, lesen, schreiben, zerstören, GC), um die Lebenszyklus- und Speichermethode von Sitzungsdaten zu definieren; 3) Registrieren Sie einen benutzerdefinierten Sitzungsprozessor in einem PHP -Skript und starten Sie die Sitzung. Auf diese Weise können Daten in Medien wie MySQL und Redis gespeichert werden, um Leistung, Sicherheit und Skalierbarkeit zu verbessern.

Was ist eine Sitzungs -ID?Was ist eine Sitzungs -ID?Apr 24, 2025 am 12:13 AM

SessionID ist ein Mechanismus, der in Webanwendungen verwendet wird, um den Benutzersitzstatus zu verfolgen. 1. Es handelt sich um eine zufällig generierte Zeichenfolge, mit der die Identitätsinformationen des Benutzers während mehrerer Interaktionen zwischen dem Benutzer und dem Server aufrechterhalten werden. 2. Der Server generiert und sendet ihn über Cookies- oder URL -Parameter an den Client, um diese Anforderungen in mehreren Anforderungen des Benutzers zu identifizieren und zu verknüpfen. 3. Die Erzeugung verwendet normalerweise zufällige Algorithmen, um Einzigartigkeit und Unvorhersehbarkeit zu gewährleisten. 4. In der tatsächlichen Entwicklung können In-Memory-Datenbanken wie Redis verwendet werden, um Sitzungsdaten zu speichern, um die Leistung und Sicherheit zu verbessern.

Wie gehen Sie mit Sitzungen in einer staatenlosen Umgebung (z. B. API) um?Wie gehen Sie mit Sitzungen in einer staatenlosen Umgebung (z. B. API) um?Apr 24, 2025 am 12:12 AM

Das Verwalten von Sitzungen in staatenlosen Umgebungen wie APIs kann durch Verwendung von JWT oder Cookies erreicht werden. 1. JWT ist für Staatenlosigkeit und Skalierbarkeit geeignet, aber es ist groß, wenn es um Big Data geht. 2. Kookies sind traditioneller und einfacher zu implementieren, müssen jedoch mit Vorsicht konfiguriert werden, um die Sicherheit zu gewährleisten.

Wie können Sie vor SPRECTS-Angriffen (XSS) schützen?Wie können Sie vor SPRECTS-Angriffen (XSS) schützen?Apr 23, 2025 am 12:16 AM

Um die Anwendung vor Sitzungsangriffen im Zusammenhang mit den Sitzungen zu schützen, sind folgende Maßnahmen erforderlich: 1. Stellen Sie die HTTPonly- und sicheren Flags ein, um die Sitzungs Cookies zu schützen. 2. Exportcodes für alle Benutzereingaben. 3. Implementieren Sie die Inhaltssicherheitsrichtlinie (CSP), um die Skriptquellen einzuschränken. Durch diese Richtlinien können Sitzungsangriffe im Zusammenhang mit Sitzungen effektiv geschützt und Benutzerdaten sichergestellt werden.

Wie können Sie die PHP -Sitzungsleistung optimieren?Wie können Sie die PHP -Sitzungsleistung optimieren?Apr 23, 2025 am 12:13 AM

Methoden zur Optimierung der PHP -Sitzungsleistung gehören: 1. Start der Verzögerung der Sitzung, 2. Verwenden Sie Datenbank zum Speichern von Sitzungen, 3. Kompress -Sitzungsdaten, 14. Sitzungslebenszyklus verwalten und 5. Sitzungsfreigabe implementieren. Diese Strategien können die Effizienz von Anwendungen in hohen Parallelitätsumgebungen erheblich verbessern.

Wie lautet die Konfigurationseinstellung von Session.gc_maxlifetime?Wie lautet die Konfigurationseinstellung von Session.gc_maxlifetime?Apr 23, 2025 am 12:10 AM

Thesession.gc_maxlifetimesettingInphpdeterminesthelifspanofSessionData, setInseconds.1) ItsconfiguredInphp.iniorviaini_Set (). 2) AbalanceIsneedToAvoidPerformanceSandunexexwortedyg -Probablogouts

Wie konfigurieren Sie den Sitzungsnamen in PHP?Wie konfigurieren Sie den Sitzungsnamen in PHP?Apr 23, 2025 am 12:08 AM

In PHP können Sie die Funktion Session_name () verwenden, um den Sitzungsnamen zu konfigurieren. Die spezifischen Schritte sind wie folgt: 1. Verwenden Sie die Funktion Session_name (), um den Sitzungsnamen wie Session_name ("my_Session") festzulegen. 2. Nachdem Sie den Sitzungsnamen festgelegt haben, call Session_start (), um die Sitzung zu starten. Das Konfigurieren von Sitzungsnamen kann Sitzungsdatenkonflikte zwischen mehreren Anwendungen vermeiden und die Sicherheit verbessern, aber auf die Einzigartigkeit, Sicherheit, Länge und Festlegen des Zeitpunkts der Sitzungsnamen achten.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.