나는 일종의 템플릿 엔진 및 서비스 로케이터를 포함시키는 것이 좋은 생각이라고 생각합니다. PHP 리그의 각 버전을 선택했습니다. 마지막으로, 의 사용자 정의 구문을 처리하는 데 사용되는 및 나중에 사용할 짧은 클로저에 사용됩니다 ... composer.json
.
그런 다음 라우팅 파일을 만들기 시작했습니다.
: 에서
최종 터치는 Aerys 서버의 개발 및 생산 버전을 시작하기 위해 바로 가기 스크립트를 추가하는 것입니다.
: routes/web.pre
:
이 모든 후에는 새 서버를 시작하고 다음 명령을 입력하여 http://127.0.0.1:8080에 액세스 할 수 있습니다.
<code class="language-php">use Aerys\Router;
use App\Action\HomeAction;
return (Router $router) => {
$router->route(
"GET", "/", new HomeAction
);
};</code>
프론트 엔드 설정
"좋아요, 이제 PHP 측에서 비교적 안정적인 물건을 만들었으므로 Reactjs 파일을 어떻게 작성합니까? 아마도 Laravel Mix를 사용할 수 있을까요?"
나는 실제로 새로운 빌드 체인을 만들고 싶지 않으며, 믹스가 아닌 프로젝트에서 잘 작동하도록 믹스가 재건되었습니다. 구성과 확장은 비교적 쉽지만 기본적으로 더 vuejs 지향적입니다. routes/api.pre
가장 먼저해야 할 일은 NPM 종속성을 설치하는 것입니다.
: 에서
<code class="language-php">use Aerys\Router;
use App\Action\Api\HomeAction;
return (Router $router) => {
$router->route(
"GET", "/api", new HomeAction
);
};</code>
믹스는 WebPack을 사용하여 Preprocess 및 Bundle JS 및 CSS 파일을 사용합니다. 또한 JSX 파일을 빌드하려면 React 및 관련 Babel 라이브러리를 설치해야합니다. 마지막으로 부트 스트랩 파일을 추가하여 기본 스타일을 얻었습니다.
믹스는 사용자 정의 구성 파일을 자동으로로드하여 다음을 추가했습니다. config.pre
: 에서
$router
JSX 파일을 처리하는 방법을 믹스에게 알려야하므로 일반적으로 에 배치 된 구성과 동일한 구성을 추가했습니다. 응용 프로그램의 다양한 부분에 단일 JS 및 CSS 진입 점을 얻을 계획입니다.
참고 : 향후 버전의 믹스는 Reactjs 자산을 구축하는 데 지원할 것입니다. 당시 코드를 삭제할 수 있습니다.
다시 한 번, 많은 타이핑 작업을 저장하기 위해 바로 가기 스크립트를 만들었습니다. : 에서
mix.webpackConfig
세 스크립트는 모두 WebPack 변수 명령을 사용하지만 그 이외의 작업이 다릅니다. JS 및 CSS 파일의 디버그 버전을 빌드하십시오. 스위치는 웹 팩 모니터를 시작합니다 (번들이 부분적으로 재건 될 수 있음).
스위치는 번들의 간소화 된 프로덕션 버전을 가능하게합니다.
번들 버전 컨트롤을 사용하기 때문에 해시 값을 모르고 package.json
와 같은 파일을 참조하는 방법이 필요합니다. 나는 Mix가 Manifest 파일을 만드는 것을 좋아한다는 것을 알았으므로 쿼리를 위해 도우미 기능을 만들었습니다.
: 에서
<code class="language-php">$host = new Aerys\Host();
$host->expose("*", 8080);
$host->use($router = Aerys\router());
$host->use($root = Aerys\root(.."/public"));
$web = process .."/routes/web.pre";
$web($router);
$api = process .."/routes/api.pre";
$api($router);</code>
aerys는 약속이 형태로 나타날 때 약속을 처리하는 방법을 알고 있으므로 Amp의 약속 구현을 사용했습니다. 파일을 읽고 디코딩 한 후 일치하는 파일 경로를 찾을 수 있습니다. dev
를 조정했습니다. -w
: 에서
-p
나는 코드를 비동기식으로 유지하기 위해 약속을 반환하고이를 사용하는 기능을 계속 만들 수 있다는 것을 깨달았습니다. 이것은
: 의 JS 코드입니다
/js/app.60795d5b3951178abba1.js
helpers.pre
결국, 믹스가 JSX 파일을 컴파일하는지 여부와 Async 함수를 사용하여 다시 찾을 수 있는지 확인하고 싶습니다. 그것은 일하는 것으로 밝혀졌습니다!
참고 : 특히 같은 파일을로드하는 경우 매번 <code class="language-bash">vendor/bin/aerys -d -c config.php</code>
기능을 사용하는 데 비용이 많이 듭니다. 대신 서버 부팅 단계에서 모든 템플릿을로드하고 필요한 경우 작업 내부에서 참조 할 수 있습니다. 우리가 시작하는 구성 파일은 약속을 반환 할 수 있으므로 (예 : 에 의해 우리에게 주어진 것과 같은) 서버가 시작되기 전에 모든 템플릿을 구문 분석 할 수 있습니다.
$val = yield $promise
WebSockets를 사용하여 연결 HomeAction
거의 설정했습니다. 마지막으로해야 할 일은 Websockets를 통해 백엔드와 프론트 엔드를 연결하는 것입니다. 나는 새로운 수업을 사용하여 비교적 간단하다는 것을 알았습니다. app/Actions/HomeAction.pre
: 에서
) :
<code class="language-php">return Pre\processAndRequire(__DIR__ . "/config.pre");</code>
이제 JS를 변경 하여이 WebSocket에 연결하고 연결된 모든 사람에게 메시지를 보낼 수 있습니다. : 에서
assets/js/component.jsx
객체를 만들 때 WebSocket 서버에 연결하고 새 메시지에 대한 이벤트 리스너를 추가합니다. 디버깅 코드를 추가하여 올바르게 연결하고 새 메시지를 보내도록했습니다.
우리는 PHP와 WebSockets에 대해 나중에 더 자세히 설명 할 것입니다. 걱정하지 마십시오. <code class="language-json">"require": {
"amphp/aerys": "dev-amp_v2",
"amphp/parallel": "dev-master",
"league/container": "^2.2",
"league/plates": "^3.3",
"pre/short-closures": "^0.4.0"
},
"require-dev": {
"phpunit/phpunit": "^6.0"
},</code>
요약 assets/js/app.jsx
이 섹션에서는 간단한 비동기 PHP 웹 서버를 설정하는 방법, 비 라벨 프로젝트에서 Laravel Mix를 사용하는 방법 및 Websockets를 사용하여 백엔드 및 프론트 엔드를 연결하는 방법을 살펴 보았습니다.
와우! 그것은 많은 콘텐츠를 다루고 있으며 아직 게임 코드 라인을 작성하지 않았습니다. 두 번째 부분에서 저와 함께하면 게임 로직 구축을 시작하고 인터페이스를 반응합니다.
(이 기사는 Niklas Keller에 의해 동료 검토되었습니다. Sitepoint의 모든 동료 검토 자 덕분에 Sitepoint의 내용을 최대한 활용했습니다!) .
REACTJS 및 PHP 를 사용한 게임 개발을위한 FAQ
게임 개발에서 Reactjs 및 PHP 호환성은 어떻습니까?
Reactjs 및 PHP는 게임 개발에서 매우 호환됩니다. Reactjs는 사용자 인터페이스, 특히 단일 페이지 응용 프로그램에 이상적인 JavaScript 라이브러리입니다. 빠르고 반응이 좋은 웹 디자인을 허용합니다. 반면, PHP는 백엔드 개발에 매우 적합한 서버 측 스크립팅 언어입니다. 데이터베이스, 사용자 인증 및 서버 측 로직을 처리 할 수 있습니다. 함께 사용하면 Reactjs는 프론트 엔드를 처리하고 동적 및 대화식 사용자 인터페이스를 만들 수 있으며 PHP는 백엔드를 관리 할 수 있습니다.
reactjs 게임에서 게임 로직에 PHP를 사용할 수 있습니까?
예, Reactjs 게임에서 게임 로직에 PHP를 사용할 수 있습니다. Reactjs는 사용자 인터페이스를 처리하지만 PHP는 서버 측에서 게임 로직을 관리 할 수 있습니다. 여기에는 데이터 처리, 사용자 세션 관리 및 게임 규칙 제어가 포함됩니다. 이러한 우려의 분리는보다 질서 있고 효율적인 개발 프로세스를 가능하게합니다.
게임 개발에 Reactjs를 사용하면 어떤 이점이 있습니까?
Reactjs는 게임 개발에 많은 이점을 제공합니다. 가상 DOM을 사용하면 효율적인 업데이트 및 렌더링이 가능하여 게임을 더 매끄럽게 만듭니다. 또한 재사용 가능한 구성 요소를 지원하여 개발 시간을 크게 높일 수 있습니다. 또한 Reactjs는 문제에 대한 솔루션을 쉽게 찾거나 새로운 기술을 배울 수 있도록 거대한 커뮤니티와 풍부한 자원을 보유하고 있습니다.
게임 개발에 PHP를 사용하면 어떤 장점이 있습니까?
PHP는 게임 개발에 많은 장점이 있습니다. 서버 측 언어이므로 데이터 관리, 사용자 인증 및 서버 측 게임 로직을 처리 할 수 있습니다. PHP는 또한 배우기 쉽고 간단한 구문을 가지고 있으며 거대한 개발자 커뮤니티가 있습니다. 또한 확장 가능성이 높으므로 많은 사용자를 처리 해야하는 게임에 적합합니다.
Reactjs 및 PHP로 게임 개발을 시작하는 방법은 무엇입니까?
REACTJS 및 PHP로 게임을 개발하기 위해서는 먼저 두 언어의 기본 사항을 배워야합니다. 많은 온라인 리소스와 튜토리얼이 있습니다. 이 언어에 익숙해지면 간단한 게임을 구축하여 시작할 수 있습니다. 이것은 기본 텍스트 게임 또는 간단한 퍼즐 게임 일 수 있습니다. 더 많은 경험을 얻을 수 있으면 더 복잡한 게임을 구축 할 수 있습니다.
REACTJ 및 PHP를 사용하여 게임 개발에 도움이되는 리소스 또는 라이브러리는 무엇입니까?
예, Reactjs 및 PHP를 사용하여 게임 개발에 도움이 될 수있는 몇 가지 리소스와 라이브러리가 있습니다. Reactjs의 경우 React Game Kit 및 React Game Engine과 같은 라이브러리가 매우 유용합니다. PHP의 경우 PHP-SDL 또는 Wyvern과 같은 라이브러리가 유용 할 수 있습니다. 또한 온라인으로 많은 튜토리얼, 가이드 및 포럼이 있습니다. 자세한 내용은 더 배우고 도움을받을 수 있습니다.
reactjs 및 php를 사용하여 멀티 플레이어 게임을 구축 할 수 있습니까?
예, Reactjs 및 PHP를 사용하여 멀티 플레이어 게임을 구축 할 수 있습니다. Reactjs는 사용자 인터페이스를 처리 할 수 있으며 PHP는 플레이어 세션 관리 및 여러 클라이언트의 게임 상태 동기화를 포함하여 서버 측로 로직을 관리 할 수 있습니다.
reactjs 및 php를 사용하여 어떤 유형의 게임을 구축 할 수 있습니까?
reactjs 및 php를 사용하면 다양한 게임을 구축 할 수 있습니다. 여기에는 간단한 텍스트 게임, 퍼즐 게임, 플랫폼 게임, 롤 플레잉 게임 및 멀티 플레이어 온라인 게임이 포함됩니다. 가능성은 엄청나고 한계는 실제로 당신의 상상력과 기술 수준입니다.
Reactjs 및 PHP를 사용하여 개발 된 게임에서 데이터를 처리하는 방법은 무엇입니까?
REACTJ 및 PHP를 사용하여 개발 된 게임에서 서버 측 PHP를 사용하여 데이터를 처리 할 수 있습니다. 여기에는 플레이어 데이터, 게임 상태, 점수 등이 포함될 수 있습니다. 이 데이터는 데이터베이스에 저장 될 수 있으며 PHP를 사용 하여이 데이터베이스와 상호 작용하여 필요에 따라 데이터를 검색하고 업데이트 할 수 있습니다.
reactjs를 사용하여 개발 된 게임에서 사용자 입력을 처리하는 방법은 무엇입니까?
reactjs를 사용하여 개발 된 게임에서 사용자 입력은 React의 이벤트 처리 시스템을 사용하여 처리 할 수 있습니다. 여기에는 마우스 클릭, 키보드 키 및 터치 이벤트가 포함될 수 있습니다. React의 이벤트 처리 시스템은 강력하고 유연하여 게임이 사용자 입력에 어떻게 응답하는지 쉽게 제어 할 수 있습니다.