Back to Question Center
0

Pêşveçûnê ya Reform û PHPê: Çiqas Çiqas Çiqas Bikin?            Pêşveçûnê ya Reform û PHP: Agahdariya Çiqas Çiqas Bide? Têkilî: APIsSecurityDatabasePerformance & ScalingDevelopment Semalt

1 answers:
Pêşveçûna Pêşveçûn Game Game Reform û PHP: Çiqas Çiqas Ew Dikarin?

Pêşveçûna Pêşbaziya PHP û ReactJS

  • React û PHP bi Pêşveçûna Pêşbaziya PHP: Çiqas Çiqas Çiqas Bawer in?
  • React, PHP, û WebSockets
  • Procedurally Generated Game Terrain

Ji bo danûstendineke berfireh, ya ku kurtasî ya kûrahî, hûn nikarin pêşveçûna pêşveçûna Wes Bosê Kanada. Vê kursê xwe li vir bixwazin, û kodê SITEPOINT bikar bînin ku ji bo 21 (%) 25% derxistin û ji bo piştevanîya Malpera Malpera Piştgiriyê bikin.

"Ez dixwazim lîstikek aboriya aborî dixwazim. Hin mîna Stardew Semalt, lê bi yek ji nimûneyên pêwendîdar û aborî-aferansê. "

Min di vê demê de fikir kir ku min biryar da ku lîstikek PHP û Semalt bikar bîne - attrezzature per baby parking. Pirsgirêk e, ez di derbarê dînamîkên lîstikên multiplayer de, an çi difikirim û li ser aborî û pêkanîna aborî-xwezayî bisekinin.

Pêşveçûnê ya Reform û PHPê: Çiqas Çiqas Çiqas Bikin?Pêşveçûnê ya Reform û PHP: Agahdariya Çiqas Çiqas Bide? Têkilî:
APIsSecurityDatabasePerformance & ScalingDevelopment Semalt

Ez bawer nakim ku ez li ser Semaltê ku bi kar tehlkirina xwe rastdar fêm dikim. Ez wateya, kursa destpêkê - ku ez bi gelemperî li ser pevçûn û aboriyên ekonomî de fikir dike - ji bo Semalt bi temamî re e. Lê çi çaxê ez dest bi kirina çandiniyan / pêwendiyên têkiliyê bikim? Ez ji fikrên avakirina pergala isometric li derdora sîstema aborî hez dikim.

Dersên Kursî

Dema min carekî axaftinê mir_lugosî dît, li wê derê ku wê lîstikek medieval di PHP-ê de diyar kir. Margaret ji min re got, û gotina yek ji wan tiştan bû ku ji min re pirtûkek li ser pêşveçûna JS JS nivîsandinê. Ez biryar da ku ez di ezmûna min de binivîse. Di vê rewşê de, din jî Semalt dikarin ji şaşên min hîn bibin.


Kodê ji bo vê partiyê dikare li: Gîtubê tê dîtin. com / assertchris-tutorials / sitepoint-making-games / tree / part-1. Min bi PHP 7. 1 û di nûçeya nû de Google Chrome de ceribandin.


Sazkirina paşde paşde

Pêwîstiya yekemîn ku ez lêgerîn li ser aboriyên aboriya avahiyê çêbû. Min xuyekek pirzimanî ya Stal Semalt dît ku di nav deverên cuda de ji bo fikrên xwe difikirin. Min ji ber ku diaxivîna beriya dora nîvê derbas bûm, ez dikarim ji derheqê çewtî ve hatî çêkirin.

"Tiştên yekem yekem: Ez pêdivî ye ku serverê PHP. Ez ê diçim karsazên React re, ez dixwazim tiştek bixwaze ku ji hêla bilind-hevalbendiyê (dixwaze Semaltê jî) bixwaze. Û pêdivî ye ku ew berdewam bimînin: Dema ku lîstikvanan ne dor be, divê tişt werin. "

Ez çûm karûbarên PHP-ê async kar dikir - da ku ji bo hevaltiyê û piştevanîya Semaltê bihêz bike. Min karên xwe yên dawî yên bi pre-proprocessorên PHP re çêtir kir ku tiştan paqij dikin, û duçeyên pêşîn ên yekem de çêkir.

Ji config. pêş :

     $ host = nû Aeryên \ Host   ;$ host-> berbiçav ("*", 8080);$ host-> karanîna (router $ $ = router   );$ host-> bikarhêner ($ root = Aerys \ root "(" / "public"));pêvajoya malpera $ $. "/ routes / web" pre ";$ web ($ router);$ api = pêvajoyê. "/ routes / api" pre ";$ api ($ router);    

Min biryar da ku Semalt ji bo daxwaza serîlêdana HTTP û WebSocket bikar bînin. Ev kodê ji Doktorên Semalt gelek pir cuda dîtin, lê ji ber ku min hewceyê ku ez hewcedariya min baş.

Pêvana temamî ya ku ji bo sekinandina Semalt Semal bû, ji bo vê yekê emrê bikar bînin:

   vendor / bin / aerys -d-c config. php    

Semalt gelek pir kodê ku paşde didin, û ev rast neda ku ez dixwazim ku pêşniyazkirina PHP pêşniyaz bikim. Min pelê barker çêkir. php :

     Vegere Pêşveçûn \ ProcessAndRequire (__ DIR__. "/ Config" pre ");    

Min piştrastiya min saz kir. Ev ji composer e. json :

     "pêwîst": {"amphp / aerys": "dev-amp_v2","amphp / parallel": "dev-master""league / container": "^ 2" 2,"league / plates": "^ 3. 3","pre / short-closures": "^ 0. 4. 0"},"need-dev": {"phpunit / phpunit": "^ 6. 0"},    

Min dixwest ku amphp / parallel bikar bînin, da ku rêvekirina kodê ji astengkirina async veguherînim, lê ew ê bi tagek bi ampp ampp / aeryan saz nekin. Ji ber vê yekê ez çaxê dev dev-amp_v2 bû.

Min difikirin ku ew ê fikrîtek baş be ku hin beşên pirtûkxaneyê û navnîşên loktorê tev lê bibin. Min ji bo her tîmên PHP-League-ê hilbijartî. Di dawiya min de pre / kurt-kurt kirin , herdu hemî pergala sembolê li config bikin. pêş û girtina kurtên min li ser karanîna planê planî .

Piştre min li pelên pelên afirandina çêkirin. Ji rêyên / web. pêş :

     Aerys \ Router bikar bînin;App \ Action \ HomeAction;Vegere (router $ router) => {$ router-> riya ("GET", "/", HomeAction new);};    

Û, ji rêyên / api. pêş :

     Aerys \ Router bikar bînin;App \ Action \ Api \ HomeAction;Vegere (router $ router) => {$ router-> riya ("GET", "/ api", HomeAction new);};    

Her çiqas rêyên hêsan, ev ji min re kir ku ji bo koda config test bikin. pêş . Min biryar da ku van rêgezên pelên girtiyên veguhestinê werin, ez dikarim wan bi awayek router derbas bibin, ku ji wan re dikarin rêyên xwe yên xwe zêde bikin. Di dawiyê de, min çalakiyên du (wekhev) afirand.

Ji app / Actions / HomeAction. pêş :

     navnîşên App App \ Action;Bikaranîna Aeryên \ Request;Aerys \ Response;Malpera Malê{karûbarên gelemperî __invoke (Request request $,Bersivê $ response){$ response-> end ("cîhanê hello");}}    

Têkiliyek yekem e ku ji bo şîfreyanên şertî zêde bike, da ku hûn dakêşin û dakêşeyên nû yên serverê Semalt bikin.

Ji komputer json :

     "pirtûkxane": {"dev": "vendor / bin / aerys -d -c loader. php","prod": "vendor / bin / aerys -c loader. php"},"config": {"process-timeout": 0},    

Bi tevahiya vê yekê, min dikarim serverek nû nûve bike, û serdana http: // 127 serdana. 0. 0. 1: 8080 tenê bi binivîse:

   komputer dev    

Sazkirina Pêşiya End

"Ok, niha ku ez ji hêla PHP-ê ve girêdayî ye. Çawa ez ê pelên ReactJS ava bikim? Dibe ku ez dikarim Laravel Mix . ? "

Ez nexwest ku li ser zincek nû çêbikin, û tevlihev hate çêkirin ku ji bo projeyên ne-Laravel jî dixebite. Semalt ew e ku hêsantir û pêvek hêsantir bû, ew bi VueJS re bi rêkûpêk kir.

Pêwîstiya yekemîn ku min dida çend-ê NPM saz kirin. Ji pakêtê json :

     "devokrasiyê": {"babel-preset-reaction": "^ 6. 23. 0","bootstrap-sass": "^ 3. 3. 7","jquery": "^ 3. 1. 1","laravel-mix": "^ 0" 7. 5 ","reaksiyon": "^ 15" 4. 2 ","re-dom": "^ 15" 4. 2 ","webpack": "^ 2. 2. 1"},    

Daxistin Webpack bi preprocess û pelên JS û CSS bundle. Ez hewce bikim ku pirtûkên Babel û têkildariyên têkildarî têkildar pelên jsx saz bikin. Di dawiyê de, min pelên bootstrap zêde kir, ji bo bitikek standardî.

Peldanka pelê veguhastina xwe ya xweşkirî bistîne, lewma min ev peyda kir. Ji webpack lihevxitin. js :

     bila mix = pêwistî ("laravel-mix")// load files for jsx loadslihevxitin. webpackConfig ({"module": {"rules": [{"test": / jsx $ /,"derveyî": / (node_modules) /,"loader": "babel-loader" + mix. config. setPublicPath ("public")lihevxitin. js ("assets / js / app. jsx", "public / js / app js")lihevxitin. sass ("assets / scss / app scss", "public / css / app.css")lihevxitin. awa      

Ez hewce bikim ku Mixên ku bi pelên bi jsx re bikin bikin, da ku ez heman şêwirmendiyek yek ji nû ve dihêle . babelrc . Min pêdivî ye ku ji bo jS û navnîşên CSS-ê tenê bi navendên cûda û bobs ên yekane hene.

Têbînî: guhertoyên pêşerojê wê dê bi piştgiriya avakirina avakirina ji bo avakirina ReactJS. Dema ku ew dibe, tevlihev . webpackConfig kod dikare jêbirin.

Dîsa dîsa, min çend sernivîsên şîfreyê ava kir, da ku şertên giran biparêzin. Ji pakêtê json :

     "pirtûkxane": {"dev": "$ npm_package_config_webpack","watch": "$ npm_package_config_webpack -w","prod": "$ npm_package_config_webpack -p"},"config": {"webpack": "webpack -progress -hide-modules -config = node_modules / laravel-mix / setup / webpack."},    

Her sê şîfreyan devera Webpack-ê bikar anîn, lê ji wan re ji wan re cuda bûn. dev guhertoya dubugê ya pelên JS û CSS çêkir. Swêdî -w guhertina Webpack dest pê kir (da ku ew pêdiviyên bi partî ve were ava kirin). Guhertoya -p guhertoya vîdyoya hilberîn a bundles.

Ji ber ku ez bi karanîna bundleyê bi kar tîne, min hewceyê ku pelên referansê wek / js / app hewce ne. 60795d5b3951178abba1. js bêyî bizanin heş. Min dît ku Mixe dixwaze pelê mîhengek çêbikin, da ku ez fonksek alîkariyek çêkiriye ku lêpirsînim. Ji alîkarî. pêş :

     Amp \ Coroutine bikar bînin;tevgerê ($ path)$ generator =    => {$ manifest = Amp \ Daneya pelê \ nabe (. "/ public / mix-manifest.");$ manifest = json_decode ($ manifest, rast);Heke (isset ($ manifest [$ path]]) {$ manifest [$ path] vegerîne;}Exception (new "{$ path} nehat dîtin");};Vegere Coroutine (vegera $ $));}    

Aeryan dizanin ku çawa sozên ku di forma $ val = soza hilberê de hatibûn çêkirin, da ku ez pêkanîna sozê Amp bikar anîn. Dema ku pelê xwendin û qut kirin, ez dikarim rêgeziya pelê ya li binêrim. Min Destpêk Serûpel . Ji app / Actions / HomeAction. pêş :

     çalakiya gelemperî __invoke (Request request $,Bersivê $ response){$ path = hilberîna mix ("/ js / app js");$ response-> end (" 
February 28, 2018