cari
Rumahpembangunan bahagian belakangtutorial phpMembina API Pokémon dalam PHP: Panduan Pemula

Building a Pokémon API in PHP: A Beginner

Dalam panduan ini, kami akan melalui langkah-langkah untuk mencipta projek PHP asas yang menggunakan API Pokémon dengan rangka kerja Penerbangan dan pakej tambahan seperti Zebra_cURL dan Latte. Kami akan meneroka penyediaan projek, menambah laluan dan memaparkan paparan.

tl;dr: Tidak sukar untuk membuat projek berasaskan API mudah dalam Penerbangan. Lihat kod yang digunakan dalam panduan ini.

Langkah 1: Menyediakan Persekitaran

Pertama, kita perlu menyediakan folder projek baharu. Buka terminal anda, navigasi ke lokasi yang anda inginkan dan jalankan arahan berikut untuk mencipta direktori baharu dan masukkannya.

mkdir flight-pokeapi
cd flight-pokeapi

Langkah 2: Memasang Komposer

Sebelum kita menyelami kod, kita perlu memastikan bahawa Komposer dipasang. Komposer ialah pengurus pergantungan untuk PHP dan ia akan membantu kami memasukkan perpustakaan yang diperlukan.

Jika anda tidak memasang Komposer, anda boleh memasangnya menggunakan:

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

Sekarang Komposer dipasang dalam fail semasa yang dipanggil ./composer.phar, mari urus kebergantungan kami.

Langkah 3: Memasang Ketergantungan

Untuk mengurus pakej yang diperlukan, kami hanya perlu menambahkannya dengan komposer.

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

Ini akan memasang:

  • PHP Penerbangan: Rangka kerja PHP yang ringan.
  • Zebra_cURL: Pembalut cURL untuk mengendalikan permintaan HTTP.
  • Latte: Enjin templat untuk memaparkan paparan.

Langkah 4: Menyediakan index.php

Seterusnya, mari buat titik masuk untuk aplikasi kami: public/index.php. Fail ini akan menyediakan apl kami, mengkonfigurasi laluan dan mengendalikan pemaparan paparan.

Buat direktori awam dan fail index.php:

mkdir public
touch public/index.php

Sekarang tambah kandungan berikut pada index.php:

<?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();

Dalam fail ini:

  • Kami memuatkan autoloader Komposer.
  • Sediakan Latte untuk paparan paparan.
  • Peta kaedah pemaparan tersuai yang menggunakan Latte untuk memaparkan templat daripada folder /views.
  • Sediakan Zebra_cURL untuk mengendalikan permintaan API dan petakannya untuk menggunakan Flight::curl() apabila kami mahu menggunakannya.
  • Tentukan laluan mudah untuk halaman utama (/) yang hanya mengembalikan "hello world!"

Jika anda ingin menguji persediaan ini, anda boleh memulakan pelayan PHP dari direktori awam:

php -S localhost:8000 -t public/

Sekarang, lawati http://localhost:8000/ dalam penyemak imbas anda, dan anda sepatutnya melihat "hello world!". Sejuk eh?

Langkah 5: Menambah Laluan

Sekarang kita telah menyediakan laluan asas, mari tambahkan laluan yang lebih kompleks yang menggunakan API Pokémon. Kemas kini public/index.php untuk memasukkan kod berikut:

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 ]);
    });
});
  • Kami mencipta kumpulan laluan /pokemon. Kumpulan laluan "mengepung" laluan dan membolehkan kami menentukan kefungsian biasa untuk semua laluan dalam kumpulan.
  • Laluan /pokemon menyenaraikan semua jenis Pokémon yang tersedia dengan mengambilnya daripada API Pokémon menggunakan Zebra_cURL.
  • Ini masih belum berfungsi kerana kita perlu menambah paparan home.latte untuk memaparkan jenis Pokémon.

Langkah 6: Memaparkan Paparan dengan Latte

Sekarang kita sedang mengambil data, mari kita sediakan paparan untuk memaparkannya. Cipta direktori pandangan dan tambahkan fail templat Latte untuk memaparkan jenis Pokémon.

mkdir views
touch views/home.latte

Tambahkan kod berikut pada views/home.latte:

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

<p>Types of Pokemon</p>

Dalam fail ini:

  • Kami mengulangi tatasusunan $types yang diluluskan dari laluan kami dan memaparkan nama setiap jenis Pokémon.

Kini, melawati /pokemon akan memaparkan senarai semua jenis Pokémon!

Langkah 7: Mengumpul dan Menambah Lebih Banyak Laluan

Mari panjangkan laluan Pokémon kami untuk mendapatkan butiran lanjut untuk jenis tertentu dan Pokémon individu. Tambahkan laluan berikut pada kumpulan /pokemon anda:

// 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
    ]);
});

Dalam laluan ini, kami:

  • Ambil butiran untuk jenis Pokémon tertentu, termasuk semua Pokémon yang berkaitan.
  • Hantar berbilang permintaan API untuk mengambil butiran bagi setiap Pokémon.
  • Render data menggunakan templat (type.latte).

Seterusnya, buat paparan type.latte:

touch views/type.latte

Tambah kandungan berikut untuk menaip.latte:

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

Templat ini memaparkan nama setiap Pokémon yang dikaitkan dengan jenis tertentu.

Langkah 8: Adakah ia berfungsi?

Pada ketika ini, anda telah menyediakan pengguna API Pokémon asas menggunakan Flight PHP, Zebra_cURL untuk permintaan API dan Latte untuk pemaparan paparan. Anda boleh mengembangkan lagi projek ini dengan menambah lebih banyak laluan dan memperhalusi templat.

Untuk melihat projek anda, mulakan pelayan PHP dari direktori awam:

php -S localhost:8000 -t public/

Sekarang, lawati http://localhost:8000/pokemon dalam penyemak imbas anda, dan anda akan melihat senarai jenis Pokémon.

Menyelesaikan masalah

Jika anda memerlukan bantuan atau menghadapi masalah, anda boleh menyemak kod penuh dalam Github untuk melihat di mana anda mungkin telah tersilap langkah.

Semoga anda menikmati tutorial kecil ini. Jika anda mempunyai sebarang soalan atau memerlukan bantuan, jangan ragu untuk bertanya dalam komen di bawah. Selamat mengekod!

Atas ialah kandungan terperinci Membina API Pokémon dalam PHP: Panduan Pemula. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Suntikan Ketergantungan di PHP: Menghindari Perangkap BiasaSuntikan Ketergantungan di PHP: Menghindari Perangkap BiasaMay 16, 2025 am 12:17 AM

DependencyInjection (DI) inphpenhancescodeflexabilityandtestabilitybydecouplingDependencyCreationFromusage.toImplementDieffectively: 1) UseIcontainersjudiciousytoavoavoidover-engineering.2) mengelakkan constructoLoadbylimitingdendenchreeorfour.3)

Cara mempercepat laman web PHP anda: Penalaan PrestasiCara mempercepat laman web PHP anda: Penalaan PrestasiMay 16, 2025 am 12:12 AM

Toimproveyourphpwebsite'sperformance, usetheseStrategies: 1) pelaksanaanPodeCachingWithopcachetospeedupscriptinterpretation.2) OptimisedataBasequeriesqueriesSelectingOnlyNessaryFields.3)

Menghantar e -mel massa dengan PHP: Adakah mungkin?Menghantar e -mel massa dengan PHP: Adakah mungkin?May 16, 2025 am 12:10 AM

Ya, itispossibletosendmassemailswithphp.1) uselibrarieshpmailerorswiftmailoreforefficientemailsending.2)

Apakah tujuan suntikan ketergantungan dalam PHP?Apakah tujuan suntikan ketergantungan dalam PHP?May 16, 2025 am 12:10 AM

DependencyInjection (DI) inphpisadesignpatternTheevesinversionofControl (IOC) ByallowingdependencyestobeNectedIntoClasses, Enhancingmodularity, Testability, danFlexibility.DideDecouplassClassSesesesesSesesSesesSesesSesesSesesSesesspeciflementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglementations, MakeCodemorAglemors, Maklumat

Bagaimana cara menghantar e -mel menggunakan php?Bagaimana cara menghantar e -mel menggunakan php?May 16, 2025 am 12:03 AM

Cara terbaik untuk menghantar e -mel menggunakan PHP termasuk: 1. Gunakan fungsi mel () php untuk penghantaran asas; 2. Gunakan perpustakaan phpmailer untuk menghantar mel lebih kompleks HTML; 3. Gunakan perkhidmatan mel transaksional seperti SendGrid untuk meningkatkan keupayaan kebolehpercayaan dan analisis. Dengan kaedah ini, anda boleh memastikan bahawa e -mel bukan sahaja mencapai peti masuk, tetapi juga menarik penerima.

Bagaimana cara mengira jumlah elemen dalam pelbagai PHP multidimensional?Bagaimana cara mengira jumlah elemen dalam pelbagai PHP multidimensional?May 15, 2025 pm 09:00 PM

Mengira jumlah elemen dalam array multidimensi PHP boleh dilakukan dengan menggunakan kaedah rekursif atau berulang. 1. Kaedah rekursif dikira dengan melintasi array dan rekursif memproses susunan bersarang. 2. Kaedah berulang menggunakan timbunan untuk mensimulasikan rekursi untuk mengelakkan masalah kedalaman. 3. Fungsi Array_Walk_Recursive juga boleh dilaksanakan, tetapi ia memerlukan pengiraan manual.

Apakah ciri-ciri gelung sementara di PHP?Apakah ciri-ciri gelung sementara di PHP?May 15, 2025 pm 08:57 PM

Dalam PHP, ciri-ciri gelung do-sementara adalah untuk memastikan bahawa badan gelung dilaksanakan sekurang-kurangnya sekali, dan kemudian memutuskan sama ada untuk meneruskan gelung berdasarkan syarat-syarat. 1) Ia melaksanakan badan gelung sebelum pemeriksaan bersyarat, sesuai untuk senario di mana operasi perlu dilakukan sekurang -kurangnya sekali, seperti pengesahan input pengguna dan sistem menu. 2) Walau bagaimanapun, sintaks gelung do-sementara boleh menyebabkan kekeliruan di kalangan pemula dan boleh menambah overhead prestasi yang tidak perlu.

Bagaimana Hash Strings dalam PHP?Bagaimana Hash Strings dalam PHP?May 15, 2025 pm 08:54 PM

String hashing yang cekap dalam PHP boleh menggunakan kaedah berikut: 1. Gunakan fungsi MD5 untuk hashing cepat, tetapi tidak sesuai untuk penyimpanan kata laluan. 2. Gunakan fungsi SHA256 untuk meningkatkan keselamatan. 3. Gunakan fungsi password_hash untuk memproses kata laluan untuk menyediakan keselamatan dan kemudahan tertinggi.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
<🎜> obscur: Ekspedisi 33 - Cara mendapatkan pemangkin Chroma yang sempurna
2 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.