이 가이드에서는 Flight 프레임워크 및 Zebra_cURL 및 Latte와 같은 추가 패키지와 함께 Pokémon API를 사용하는 기본 PHP 프로젝트를 생성하는 단계를 안내합니다. 프로젝트 설정, 경로 추가 및 뷰 렌더링을 살펴보겠습니다.
tl;dr: Flight에서 간단한 API 기반 프로젝트를 만드는 것은 어렵지 않습니다. 이 가이드에 사용된 코드를 확인해 보세요.
1단계: 환경 설정
먼저 새 프로젝트 폴더를 설정해야 합니다. 터미널을 열고 원하는 위치로 이동한 후 다음 명령을 실행하여 새 디렉터리를 만들고 입력하세요.
mkdir flight-pokeapi cd flight-pokeapi
2단계: Composer 설치
코드를 살펴보기 전에 Composer가 설치되어 있는지 확인해야 합니다. Composer는 PHP의 종속성 관리자이며 필요한 라이브러리를 포함하는 데 도움이 됩니다.
Composer가 설치되어 있지 않은 경우 다음을 사용하여 설치할 수 있습니다.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php php -r "unlink('composer-setup.php');"
이제 Composer가 ./composer.phar라는 현재 파일에 설치되었으므로 종속성을 관리해 보겠습니다.
3단계: 종속성 설치
필요한 패키지를 관리하려면 Composer로 추가하기만 하면 됩니다.
./composer.phar require flightphp/core stefangabos/zebra_curl latte/latte
설치 대상:
- Flight PHP: 경량 PHP 프레임워크
- Zebra_cURL: HTTP 요청을 처리하기 위한 cURL 래퍼
- Latte: 뷰 렌더링을 위한 템플릿 엔진
4단계: index.php 설정
다음으로 애플리케이션의 진입점인 public/index.php를 만들어 보겠습니다. 이 파일은 앱을 설정하고, 경로를 구성하고, 뷰 렌더링을 처리합니다.
공용 디렉터리와 index.php 파일을 만듭니다.
mkdir public touch public/index.php
이제 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();
이 파일의 내용:
- Composer의 오토로더를 로드합니다.
- 렌더링 뷰를 위해 Latte를 설정하세요.
- Latte를 사용하여 /views 폴더의 템플릿을 렌더링하는 사용자 정의 렌더링 방법을 매핑합니다.
- API 요청을 처리하고 호출하려는 경우 Flight::curl()을 사용하도록 매핑하도록 Zebra_cURL을 설정합니다.
- "hello world!"만 반환하는 홈페이지(/)에 대한 간단한 경로를 정의하세요.
이 설정을 테스트하려면 공개 디렉토리에서 PHP 서버를 시작할 수 있습니다.
php -S localhost:8000 -t public/
이제 브라우저에서 http://localhost:8000/을 방문하면 "hello world!"가 표시됩니다. 멋지죠?
5단계: 경로 추가
이제 기본 경로가 설정되었으므로 Pokémon API를 사용하는 더 복잡한 경로를 추가해 보겠습니다. 다음 코드를 포함하도록 public/index.php를 업데이트하세요.
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 ]); }); });
- /포켓몬 루트 그룹을 만들었습니다. 경로 그룹은 경로를 "둘러싸며" 그룹 내의 모든 경로에 대한 공통 기능을 정의할 수 있게 해줍니다.
- /pokemon 경로는 Zebra_cURL을 사용하여 Pokémon API에서 가져와 사용 가능한 모든 포켓몬 유형을 나열합니다.
- 포켓몬 유형을 표시하려면 home.latte 보기를 추가해야 하므로 아직은 작동하지 않습니다.
6단계: Latte를 사용하여 뷰 렌더링
이제 데이터를 가져왔으니 이를 표시할 뷰를 설정해 보겠습니다. views 디렉토리를 생성하고 포켓몬 유형을 표시하기 위한 Latte 템플릿 파일을 추가합니다.
mkdir views touch views/home.latte
views/home.latte에 다음 코드를 추가하세요.
<p>Welcome to the Pokemon World!</p> <p>Types of Pokemon</p>
-
{foreach $types as $type}
- {$type->name|firstUpper} {/foreach}
이 파일의 내용:
- 라우트에서 전달된 $types 배열을 반복하여 각 포켓몬 유형의 이름을 표시합니다.
이제 /pokemon에 접속하면 모든 포켓몬 종류의 목록이 표시됩니다!
7단계: 경로 그룹화 및 추가
특정 유형과 개별 포켓몬에 대한 자세한 정보를 가져오기 위해 포켓몬 경로를 확장해 보겠습니다. /pokemon 그룹에 다음 경로를 추가하세요:
// 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 ]); });
이 경로에서 우리는:
- 관련된 모든 포켓몬을 포함하여 특정 포켓몬 유형에 대한 세부정보를 가져옵니다.
- 여러 API 요청을 보내 각 포켓몬에 대한 세부정보를 가져옵니다.
- 템플릿(type.latte)을 사용하여 데이터를 렌더링합니다.
다음으로 type.latte 뷰를 만듭니다.
touch views/type.latte
type.latte에 다음 콘텐츠를 추가하세요.
<h1 id="type-firstUpper">{$type|firstUpper}</h1>
-
{foreach $pokemons as $pokemon}
- {$pokemon->name|firstUpper} {/foreach}
이 템플릿은 특정 유형과 관련된 각 포켓몬의 이름을 표시합니다.
8단계: 작동하나요?
이제 Flight PHP, API 요청용 Zebra_cURL, 뷰 렌더링용 Latte를 사용하여 기본 Pokémon API 소비자가 설정되었습니다. 더 많은 경로를 추가하고 템플릿을 수정하여 이 프로젝트를 더욱 확장할 수 있습니다.
프로젝트를 보려면 공개 디렉토리에서 PHP 서버를 시작하세요.
php -S localhost:8000 -t public/
이제 브라우저에서 http://localhost:8000/pokemon을 방문하면 포켓몬 유형 목록이 표시됩니다.
문제 해결
도움이 필요하거나 문제가 발생한 경우 Github에서 전체 코드를 확인하여 실수한 부분을 확인할 수 있습니다.
이 작은 튜토리얼이 도움이 되셨기를 바랍니다. 질문이 있거나 도움이 필요하시면 아래 댓글로 언제든지 문의해 주세요. 즐거운 코딩하세요!
위 내용은 PHP로 Pokémon API 구축: 초보자 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

PHP 다차원 어레이에서 총 요소 수를 계산하는 것은 재귀 적 또는 반복적 인 방법을 사용하여 수행 할 수 있습니다. 1. 재귀 방법은 배열을 가로 지르고 중첩 배열을 재귀 적으로 처리함으로써 계산됩니다. 2. 반복 방법은 스택을 사용하여 깊이 문제를 피하기 위해 재귀를 시뮬레이션합니다. 3. Array_Walk_Recursive 함수도 구현할 수 있지만 수동 계산이 필요합니다.

PHP에서, do-while 루프의 특성은 루프 본체가 적어도 한 번 실행되도록하고 조건에 따라 루프를 계속할지 여부를 결정하는 것입니다. 1) 조건부 점검 전에 루프 본체를 실행하며, 사용자 입력 확인 및 메뉴 시스템과 같이 작업을 적어도 한 번 수행 해야하는 시나리오에 적합합니다. 2) 그러나, do-while 루프의 구문은 초보자들 사이에서 혼란을 야기 할 수 있으며 불필요한 성능 오버 헤드를 추가 할 수 있습니다.

PHP의 효율적인 해싱 스트링은 다음 방법을 사용할 수 있습니다. 1. 빠른 해싱에 MD5 기능을 사용하지만 비밀번호 저장에는 적합하지 않습니다. 2. SHA256 기능을 사용하여 보안을 향상시킵니다. 3. Password_hash 함수를 사용하여 비밀번호를 처리하여 최고 보안과 편의성을 제공하십시오.

PHP에서 배열 슬라이딩 윈도우 구현 기능은 SlideWindow 및 SlideWindowAverage 기능으로 수행 할 수 있습니다. 1. Slide-Window 함수를 사용하여 배열을 고정 크기 서브 어레이로 분할하십시오. 2. SlideWindowAverage 함수를 사용하여 각 창의 평균 값을 계산하십시오. 3. 실시간 데이터 스트림의 경우, 비동기 처리 및 이상치 감지를 Reactphp를 사용하여 사용할 수 있습니다.

PHP의 __clone 방법은 객체 클로닝시 사용자 정의 작업을 수행하는 데 사용됩니다. 클론 키워드를 사용하여 객체를 클로닝 할 때 객체에 __ 클론 메소드가있는 경우 방법이 자동으로 호출되어 클로닝 프로세스 중에 클로닝 된 객체의 독립성을 보장하기 위해 참조 유형 속성을 재설정하는 것과 같은 클로닝 프로세스 중에 맞춤형 처리가 가능합니다.

PHP에서 GOTO 진술은 프로그램의 특정 태그로 무조건 점프하는 데 사용됩니다. 1) 복잡한 중첩 루프 또는 조건부 명세서의 처리를 단순화 할 수 있지만 2) GOTO를 사용하면 코드를 이해하고 유지하기가 어렵게 만들 수 있으며 3) 구조화 된 제어 문의 사용에 우선 순위를 부여하는 것이 좋습니다. 전반적으로, GOTO는 조심스럽게 사용해야하며 모범 사례를 따라 코드의 가독성과 유지 보수 가능성을 보장합니다.

PHP에서 내장 기능, 사용자 정의 기능 및 타사 라이브러리를 사용하여 데이터 통계를 달성 할 수 있습니다. 1) array_sum () 및 count ()와 같은 내장 함수를 사용하여 기본 통계를 수행하십시오. 2) 중앙값과 같은 복잡한 통계를 계산하기 위해 사용자 정의 기능을 작성하십시오. 3) PHP-ML 라이브러리를 사용하여 고급 통계 분석을 수행하십시오. 이러한 방법을 통해 데이터 통계를 효율적으로 수행 할 수 있습니다.

예, PHP의 익명 함수는 이름이없는 함수를 나타냅니다. 다른 함수의 매개 변수로 전달되고 함수의 리턴 값으로 전달 될 수있어 코드를보다 유연하고 효율적으로 만듭니다. 익명 기능을 사용하는 경우 범위 및 성능 문제에주의를 기울여야합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경