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>
-
{foreach $types as $type}
- {$type->name|firstUpper} {/foreach}
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>
-
{foreach $pokemons as $pokemon}
- {$pokemon->name|firstUpper} {/foreach}
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!

Kelebihan utama menggunakan sesi penyimpanan pangkalan data termasuk kegigihan, skalabilitas, dan keselamatan. 1. Kegigihan: Walaupun pelayan dimulakan semula, data sesi tidak dapat berubah. 2. Skalabiliti: Berkenaan dengan sistem yang diedarkan, memastikan data sesi disegerakkan di antara pelbagai pelayan. 3. Keselamatan: Pangkalan data menyediakan storan yang disulitkan untuk melindungi maklumat sensitif.

Melaksanakan pemprosesan sesi tersuai dalam PHP boleh dilakukan dengan melaksanakan antara muka sessionHandlerInterface. Langkah -langkah khusus termasuk: 1) mewujudkan kelas yang melaksanakan sessionHandlerInterface, seperti CustomSessionHandler; 2) kaedah penulisan semula dalam antara muka (seperti terbuka, rapat, membaca, menulis, memusnahkan, gc) untuk menentukan kitaran hayat dan kaedah penyimpanan data sesi; 3) Daftar pemproses sesi tersuai dalam skrip PHP dan mulakan sesi. Ini membolehkan data disimpan dalam media seperti MySQL dan REDIS untuk meningkatkan prestasi, keselamatan dan skalabiliti.

SesionID adalah mekanisme yang digunakan dalam aplikasi web untuk mengesan status sesi pengguna. 1. Ia adalah rentetan yang dijana secara rawak yang digunakan untuk mengekalkan maklumat identiti pengguna semasa pelbagai interaksi antara pengguna dan pelayan. 2. Pelayan menjana dan menghantarnya kepada klien melalui kuki atau parameter URL untuk membantu mengenal pasti dan mengaitkan permintaan ini dalam pelbagai permintaan pengguna. 3. Generasi biasanya menggunakan algoritma rawak untuk memastikan keunikan dan ketidakpastian. 4. Dalam pembangunan sebenar, pangkalan data dalam memori seperti REDIS boleh digunakan untuk menyimpan data sesi untuk meningkatkan prestasi dan keselamatan.

Menguruskan sesi dalam persekitaran tanpa kerakyatan seperti API boleh dicapai dengan menggunakan JWT atau cookies. 1. JWT sesuai untuk ketiadaan dan skalabilitas, tetapi ia adalah saiz yang besar ketika datang ke data besar. 2.Cookies lebih tradisional dan mudah dilaksanakan, tetapi mereka perlu dikonfigurasikan dengan berhati -hati untuk memastikan keselamatan.

Untuk melindungi permohonan dari serangan XSS yang berkaitan dengan sesi, langkah-langkah berikut diperlukan: 1. Tetapkan bendera httponly dan selamat untuk melindungi kuki sesi. 2. Kod eksport untuk semua input pengguna. 3. Melaksanakan Dasar Keselamatan Kandungan (CSP) untuk mengehadkan sumber skrip. Melalui dasar-dasar ini, serangan XSS yang berkaitan dengan sesi dapat dilindungi dengan berkesan dan data pengguna dapat dipastikan.

Kaedah untuk mengoptimumkan prestasi sesi PHP termasuk: 1. Mula sesi kelewatan, 2. Gunakan pangkalan data untuk menyimpan sesi, 3. Data sesi kompres, 4. Mengurus kitaran hayat sesi, dan 5. Melaksanakan perkongsian sesi. Strategi ini dapat meningkatkan kecekapan aplikasi dalam persekitaran konkurensi yang tinggi.

Thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata, setInseconds.1) it'sconfiguredinphp.iniorviaini_set (). 2) abalanceisneededtoavoidperformanceissuesandunexpectedlogouts.3) php'sgarbageCollectionisprobabilistic, influedbygc_probabi

Dalam PHP, anda boleh menggunakan fungsi session_name () untuk mengkonfigurasi nama sesi. Langkah -langkah tertentu adalah seperti berikut: 1. Gunakan fungsi session_name () untuk menetapkan nama sesi, seperti session_name ("my_session"). 2. Selepas menetapkan nama sesi, hubungi session_start () untuk memulakan sesi. Mengkonfigurasi nama sesi boleh mengelakkan konflik data sesi antara pelbagai aplikasi dan meningkatkan keselamatan, tetapi memberi perhatian kepada keunikan, keselamatan, panjang dan penetapan masa sesi.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa