Back to Question Center
0

செயல்முறை, PHP, மற்றும் WebSockets உடன் நடைமுறைக்கேற்ப உருவாக்கப்பட்ட விளையாட்டு நிலப்பரப்பு            செயல்முறை, PHP, மற்றும் WebSockets உடன் நடைமுறைக்கேற்ப உருவாக்கப்பட்ட கேம் நிலப்பரப்பு தொடர்புடைய தலைப்புகள்: FrameworksPIsSecurityPatterns & நடைம

1 answers:
செயலில், PHP, மற்றும் WebSockets

PHP மற்றும் ReactJS உடன் விளையாட்டு மேம்பாடு

  • விளையாட்டு மற்றும் PHP உடன் விளையாட்டு மேம்பாடு: எப்படி அவர்கள் தகுதியானதா?
  • செயல்முறை, PHP மற்றும் WebSockets

உயர் தர, ஆழ்ந்த அறிமுகப்படுத்தியதற்கு, கனடியன் முழு ஸ்டாக் டெவலப்பர் வெஸ் போஸை நீங்கள் கடந்திருக்க முடியாது. இங்கே தனது படிப்பைத் தொடரவும், SITEPOINT 25% ஆஃப் பெறவும் தள தளத்தை ஆதரிக்கவும் பயன்படுத்தவும்.

கடைசியாக, நான் ஒரு விளையாட்டை எப்படி தயாரிக்க விரும்பினேன் என்று கதை சொல்ல ஆரம்பித்தேன். நான் async PHP சர்வர் அமைக்க எப்படி விவரித்தார், Laravel மிக்ஸ் கட்ட சங்கிலி, எதிர் இறுதியில் இறுதியில், மற்றும் ஒன்றாக இந்த இணைய இணைப்பு WebSockets - biggest it consulting companies in Portland. இப்போது, ​​நான் எதிர்வினை, PHP, மற்றும் WebSockets இந்த கலவையை விளையாட்டு இயந்திரவியல் கட்டி தொடங்கும் போது என்ன நடந்தது பற்றி நீங்கள் சொல்லட்டும் .


இந்த பகுதிக்கான குறியீட்டை கித்யூப்பில் காணலாம். காம் / assertchris-பயிற்சிகள் / sitepoint தயாரித்தல் விளையாட்டுகள் / மரம் / பகுதி 2. இது PHP 7. 1 உடன், Google Chrome இன் சமீபத்திய பதிப்பில் சோதித்துப் பார்த்தேன்.


செயல்முறை, PHP, மற்றும் WebSockets உடன் நடைமுறைக்கேற்ப உருவாக்கப்பட்ட விளையாட்டு நிலப்பரப்புசெயல்முறை, PHP, மற்றும் WebSockets உடன் நடைமுறைக்கேற்ப உருவாக்கப்பட்ட கேம் நிலப்பரப்பு தொடர்புடைய தலைப்புகள்:
FrameworksPIsSecurityPatterns & PracticesDebugging & Semalt

ஒரு பண்ணை தயாரித்தல்

"செமால்ட் தொடக்க எளிய. 10 ஆல் 10 பைட்டுகள், சீரற்ற முறையில் உருவாக்கப்பட்ட பொருள்களைக் கொண்டிருக்கும். "

நான் பண்ணையில் பண்ணை , மற்றும் ஒரு பேட்ச் ஒவ்வொரு ஓடு போன்றவற்றைக் குறிக்க முடிவு செய்தேன். இருந்து பயன்பாடு / மாதிரி / பண்ணை மாடலாக. முன் :

     பெயர்வெளி பயன்பாடு \ மாதிரி;வர்க்க பண்ணை{தனிப்பட்ட $ அகலம்{கிடைக்கும் {$ -> அகலம்; }}தனியார் $ உயரம்{{return $ this-> உயரம்; }}பொது செயல்பாடு __construct (int $ width = 10,int $ உயரம் = 10){$ this-> width = $ width;$ this-> உயரம் = $ உயரம்;}}    

பொது விருந்தாளிகளுடன் தனியார் சொத்துக்களை அறிவிப்பதன் மூலம் வர்க்கம் அணுகுவோர் மேக்ரோவை முயற்சிப்பது வேடிக்கையான நேரம் என நான் நினைத்தேன். இதற்காக நான் முன் / வகுப்பு-அணுகிகளை (33 (இசையமைப்பாளர்) தேவை வழியாக நிறுவ வேண்டும்.

கோரிக்கையின் பேரில் புதிய பண்ணைகள் உருவாக்க அனுமதிக்க நான் சாக்கெட் குறியீட்டை மாற்றினேன். இருந்து பயன்பாட்டை / சாக்கெட் / கேம்செட். முன் :

     பெயர்வெளி பயன்பாடு \ Socket;பயன்படுத்த Aerys \ கோரிக்கை;பயன்படுத்த Aerys \ பதில்;Aerys \ Websocket;Aerys \ Websocket \ Endpoint;Aerys \ Websocket \ Message;பயன்பாடு \ Model \ FarmModel;வர்க்கம் விளையாட்டுசாக்கெட் Websocket செயல்படுத்துகிறது{தனியார் $ பண்ணைகள் = [];பொது செயல்பாடு onData (int $ clientId,செய்தி $ செய்தி){$ body = $ message கொடுக்கிறது;($ body === "புதிய பண்ணை") {$ பண்ணை = புதிய பண்ணை மாதிரி   ;$ payload = json_encode (["farm" => ["அகலம்" => $ பண்ணை-> அகலம்,"உயரம்" => $ பண்ணை-> உயரம்,],]);$ this-> endpoint-> அனுப்ப ($ payload, $ clientId);$ this-> பண்ணைகள் [$ clientId] = $ பண்ணை;}}பொது செயல்பாடு onClose (int $ clientId,எண்ணாக குறியீடு குறியீடு, சரம் $ காரணம்){அமைக்காமல் ($ this-> இணைப்புகளுக்கான வரம் [$ clientId]);அமைக்காமல் ($ this-> பண்ணைகள் [$ clientId]);}// .}    

நான் எப்படி இருந்தேன் கேம்செட் நான் முன்பு இருந்ததைக் காட்டிலும் - ஒரு எதிரொலி ஒளிபரப்பவதற்கு பதிலாக, புதிய பண்ணைக்காக சோதனை செய்தேன், கேட்டிருந்த வாடிக்கையாளர்.

"ஒருவேளை பதில் குறியீடு குறைவாக பொதுவான பெற ஒரு நல்ல நேரம். நான் கூறுகளை மறுபெயரிடுகிறேன். jsx முதல் பண்ணை. jsx . "

சொத்துக்கள் / js / பண்ணையில் இருந்து. jsx :

     இறக்குமதி "எதிர்வினை"வர்க்க பண்ணை பிரதிபலிக்கிறது. சாக்கெட் = புதிய WebSocket ("ws: // 127 0. 0. 1: 8080 / ws")இந்த. சாக்கெட். addEventListener ("செய்தி", இது. onMessage)// DEBUGஇந்த. சாக்கெட். addEventListener ("திறந்த",    => {இந்த. சாக்கெட். ( "புதிய விவசாய") அனுப்ப})}}இயல்புநிலை பண்ணை ஏற்றுமதி    

உண்மையில், நான் மாறிய ஒரே ஒரு விஷயம் புதிய பண்ணை ஹலோ உலகம் க்கு பதிலாக அனுப்பப்பட்டது. எல்லாம் வேறு. நான் பயன்பாட்டை மாற்ற வேண்டும். jsx குறியீடு என்றாலும். இருந்து சொத்துக்கள் / JS / பயன்பாட்டை. jsx :

     இறக்குமதி "எதிர்வினை""React-dom" இலிருந்து ReactDOM ஐ இறக்குமதி செய்யவும்இறக்குமதி பண்ணை ". / பண்ணை"ReactDOM. வழங்க ( <பண்ணை /> ,ஆவணம். querySelector ("பயன்பாடு."))    

நான் இருக்க வேண்டிய இடத்திலிருந்து தொலைவில் இருந்தேன், ஆனால் இந்த மாற்றங்களைப் பயன்படுத்தி நான் வகுப்பு அணுகிகளை செயலில் காண முடிந்தது, அத்துடன் வருங்கால WebSocket பரஸ்பர விழிப்புணர்வுக்கான கோரிக்கை / பிரதிபலிப்பு மாதிரி முன்மாதிரி. நான் கன்சோல் திறந்து பார்த்தேன் {"பண்ணை": {"அகலம்": 10, "உயரம்": 10}} .

"மகத்தான!"

பிறகு, நான் பட்டு வகுப்புகளை ஒவ்வொரு ஓலைக்குள்ளும் படைத்தேன். நான் விளையாட்டின் தர்க்கம் நிறைய நடக்கும் எங்கே இந்த வந்தார். இருந்து பயன்பாடு / மாதிரி / பேட்ச் மாடல். முன் :

     பெயர்வெளி பயன்பாடு \ மாதிரி;வர்க்கம் PatchModel{தனியார் $ x{கிடைக்கும் {return $ this-> x; }}தனியார் $ y{கிடைக்கும் {return $ this-> y; }}பொது செயல்பாடு __construct (int $ x, int $ y){$ this-> x = $ x;$ this-> y = $ y;}}    

ஒரு புதிய பண்ணை இல் இடைவெளிகள் இருப்பதால் பல இணைப்புகளை உருவாக்க வேண்டும். நான் FarmModel கட்டுமானத்தின் ஒரு பகுதியாக இதை செய்ய முடியும். இருந்து பயன்பாடு / மாதிரி / பண்ணை மாடலாக. முன் :

     பெயர்வெளி பயன்பாடு \ மாதிரி;வர்க்க பண்ணை மாதிரி{தனிப்பட்ட $ அகலம்{கிடைக்கும் {$ -> அகலம்; }}தனியார் $ உயரம்{{return $ this-> உயரம்; }}தனியார் $ இணைப்புகளை{கிடைக்கும் {இந்த $ திரும்ப> இணைப்புகளை; }}பொது செயல்பாடு __construct ($ அகலம் = 10, $ உயரம் = 10){$ this-> width = $ width;$ this-> உயரம் = $ உயரம்;$ This-> createPatches   ;}தனியார் செயல்பாடு உருவாக்கபக்கங்கள்   {($ i = 0; $ i  <$ this->  width; $ i ++) {$ this-> இணைப்புகளை [$ i] = [];($ j = 0; $ j  <$ this->  height; $ j ++) {$ this-> இணைப்புகளை [$ i] [$ j] =புதிய PatchModel ($ i, $ j);}}}}    

ஒவ்வொரு கலத்திற்கும் ஒரு புதிய பேட்ச் மாடல் பொருள் உருவாக்கப்பட்டது. இந்த தொடங்குவதற்கு மிகவும் எளிது, ஆனால் அவர்கள் சீரற்ற ஒரு உறுப்பு தேவை - மரங்கள் வளர ஒரு வழி, களைகள், மலர்கள் .குறைந்தது தொடங்கும். இருந்து பயன்பாடு / மாதிரி / பேட்ச் மாடல். முன் :

     பொது செயல்பாடு தொடக்க (எண்ணாக அகலம், எண்ணாக $ உயரம்,வரிசை $ இணைப்புகளை){(! $ this-> தொடங்கியது && random_int (0, 10)> 7) {$ this-> உண்மை = தொடங்கியது;உண்மை திரும்ப;}தவறான திரும்ப;}    

நான் தோராயமாக ஒரு இணைப்பு வளர ஆரம்பிப்பேன் என்று நினைத்தேன். இது பேட்சின் வெளிப்புற நிலைமையை மாற்றவில்லை, ஆனால் அவர்கள் பண்ணையில் எப்படி ஆரம்பித்தார்கள் என்பதை சோதிக்க எனக்கு ஒரு வழியைக் கொடுத்தது. இருந்து பயன்பாடு / மாதிரி / பண்ணை மாடலாக. தொடக்கத்தில், நான் ஒரு async செயல்பாடு முக்கியம் ஒரு மேக்ரோ பயன்படுத்தி அறிமுகப்படுத்தப்பட்டது. நீங்கள் பார்க்கிறீர்கள், ஆம்ப் மகசூல் சொல்வழக்குகளை உறுதிப்படுத்துவதன் மூலம் சொல். புள்ளிக்கு மேலும்: அம்ப் மகசூல் சொல்வதைப் பார்த்தால், அது என்னென்ன செய்யப்படுகிறது என்பதைக் கருதுகிறது (பெரும்பாலான சந்தர்ப்பங்களில்).

நான் createPatches ஒரு சாதாரண செயல்பாட்டைச் செயல்படுத்தி, அதன் மூலம் ஒரு கோர்ட்டைன் திரும்பினேன், ஆனால் இது ஒரு பொதுவான குறியீடு ஆகும், அதற்காக நான் ஒரு சிறப்பு மேக்ரோவை உருவாக்கியிருக்கிறேன். அதே நேரத்தில், நான் முந்தைய பகுதியிலிருந்தே உருவாக்கப்பட்ட குறியீட்டை மாற்ற முடியும். இருந்து உதவியாளர்கள். முன் :

     async செயல்பாடு கலவை ($ பாதை) {$ மேனிஃபிஃபெஸ்ட் = Amp \ file- ஐ பெறலாம் (. "/ பொது / கலவை- manifest json");$ manifest = json_decode ($ மேனிஃபெஸ்ட், உண்மை);(isset ($ manifest [$ path])) {$ manifest [$ path] திரும்ப;}புதிய விதிவிலக்கு எறியுங்கள் ("{$ path} காணப்படவில்லை");}    

முன்னர், நான் ஒரு ஜெனரேட்டரை உருவாக்க வேண்டும், பின்னர் அதை ஒரு புதிய குரோவீன்

     அம்ப் கர்வடைன்;செயல்பாடு கலவை ($ பாதை) {$ ஜெனரேட்டர் =    => {$ மேனிஃபிஃபெஸ்ட் = Amp \ file- ஐ பெறலாம் (. "/ பொது / கலவை- manifest json");$ manifest = json_decode ($ மேனிஃபெஸ்ட், உண்மை);(isset ($ manifest [$ path])) {$ manifest [$ path] திரும்ப;}புதிய விதிவிலக்கு எறியுங்கள் ("{$ path} காணப்படவில்லை");};புதிய கோருட்டீன் ($ ஜெனரேட்டர்    ஜெனரேட்டர்;}    

நான் உருவாக்கியது முறைகள் முன்னர், x மற்றும் y ஆகியவற்றிற்கான புதிய பேட்ச் மாடல் பொருள்களை உருவாக்கியது. பின்னர் நான் மற்றொரு வளையத்தை ஆரம்பித்தேன், ஒவ்வொரு குழுவிலும் தொடக்கம் முறையை அழைப்பதற்கு. நான் அதே படிவத்தில் இதை செய்திருப்பேன், ஆனால் என் தொடக்கம் முறை சுற்றியுள்ள இணைப்புகளை ஆய்வு செய்ய வேண்டும் என்று நான் விரும்பினேன். அதாவது, முதலில் அவர்கள் அனைவரையும் உருவாக்கி, இணைப்புகளை ஒருவருக்கொருவர் சுற்றிப் பார்க்கும் முன்.

நான் FarmModel மாற்றப்பட்டது மீது வளர மூடல். யோசனை ஒரு இணைப்பு வளர்ந்தால் (பூட்ஸ்ட்ராப்பிங் கட்டத்தின் போது) நான் அந்த மூடல் என்று அழைக்க முடியும் என்று இருந்தது.

ஒவ்வொரு முறையும் ஒரு இணைப்பு வளர்ந்தது, நான் $ மாற்றங்களை மாறிவிட்டேன். பண்ணையின் மொத்த பாஸ் எந்த மாற்றமும் அளிக்காத வரை இந்த இணைப்புகளை வளர்க்க வேண்டும் என்று உறுதி அளித்தது. நான் மீது வளர மூடல். நான் வளர ஒரு சாதாரண மூடிமறைவு அல்லது கோருடைன் திரும்பவும் அனுமதிக்க விரும்பினேன். அதனால்தான் createPatches மற்றும் async செயல்பாடு செய்ய வேண்டும்.

குறிப்பு: ஒப்புக் கொள்ளுதல் வளர்ப்பதில் கூட்டிணைவு சிக்கலான காரியங்களைச் சமாளிக்க அனுமதிக்கிறது, ஆனால் ஒரு பிட்ச் வளர்ந்தபோது மற்ற அசைக்க முடியாத செயல்களை அனுமதித்ததை நான் அவசியமாகக் கண்டேன். ஒருவேளை பின்னர் நான் ஒரு சாக்கெட் செய்தியை அனுப்ப விரும்புகிறேன், மற்றும் மகசூல் இல் இல் வேலை செய்தால் மட்டுமே நான் செய்ய முடியும். 34 createPatches ஒரு async சார்பாக இருந்தால், வளர்ப்பில் மட்டுமே நான் கொடுக்க முடியும். ஏனெனில் createPatches ஒரு async செயல்பாடு இருந்தது, நான் GameSocket உள்ளே அதை கொடுக்க வேண்டும்.

"ஒருவரின் முதல் அசின்க் PHP பயன்பாடு செய்யும் போது கற்க வேண்டிய அனைத்து விஷயங்களுக்கும் இது எளிதானது. செமால்ட் சீக்கிரம் சீக்கிரம் விடு! "

நான் இந்த அனைத்து வேலை GameSocket இருந்தது என்று சரிபார்க்க எழுதும் குறியீடு கடைசி பிட். இருந்து பயன்பாட்டை / சாக்கெட் / கேம்செட். முன் :

     என்றால் ($ body === "புதிய பண்ணை") {$ patches = [];$ பண்ணை = புதிய பண்ணை மாதிரி (10, 10,செயல்பாடு (PatchModel $ பேட்ச்) பயன்படுத்த (& $ பேட்ச்ஸ்)array_push ($ patches, ["x" => $ patch-> x,"y" => $ patch-> y,]);});விளைவிக்கும் $ farm-> createPatches   ;$ payload = json_encode (["farm" => ["அகலம்" => $ பண்ணை-> அகலம்,"உயரம்" => $ பண்ணை-> உயரம்,],"இணைப்புகளை" => $ பேட்சுகள்,]);$ this-> endpoint-> அனுப்ப ($ payload, $ clientId);$ this-> பண்ணைகள் [$ clientId] = $ பண்ணை;}    

இது முந்தைய குறியீடுக்கு விட சற்றே சிக்கலானதாக இருந்தது. அதற்குப் பிறகு, நான் சாக்கெட் பேலோடுக்கு இணைப்புகளை ஒரு ஸ்னாப்ஷாட் அனுப்ப வேண்டும்.

செயல்முறை, PHP, மற்றும் WebSockets உடன் நடைமுறைக்கேற்ப உருவாக்கப்பட்ட விளையாட்டு நிலப்பரப்புசெயல்முறை, PHP, மற்றும் WebSockets உடன் நடைமுறைக்கேற்ப உருவாக்கப்பட்ட கேம் நிலப்பரப்பு தொடர்புடைய தலைப்புகள்:
FrameworksPIsSecurityPatterns & PracticesDebugging & Semalt

"நான் ஒவ்வொரு பாதையும் உலர்ந்த அழுக்கைப் போல் ஆரம்பித்தால் என்ன செய்வது? பின்னர் நான் சில இணைப்புகளை களைக்க முடியும், மற்றும் பிற மரங்கள் ."

நான் இணைப்புகளை தனிப்பயனாக்க பற்றி அமைக்கிறேன். இருந்து பயன்பாடு / மாதிரி / பேட்ச் மாடல். முன் :

     தனியார் $ தொடங்கியது = பொய்;தனியார் $ ஈரமான {பெற {return $ this-> ஈரமான?: தவறான; }};தனியார் $ வகை {{return $ this-> வகை:: "அழுக்கு"; }};பொது செயல்பாடு தொடக்க (எண்ணாக அகலம், எண்ணாக $ உயரம்,வரிசை $ இணைப்புகளை){($ இந்த-> தொடங்கியது) {தவறான திரும்ப;}(random_int (0, 100)  <90) {தவறான திரும்ப;}$ this->  உண்மை = தொடங்கியது;$ this-> type = "களை";உண்மை திரும்ப;}    

நான் தட்டச்சு செய்ய ஆரம்பித்திருந்தால் தட்டச்சு செய்தேன். வளர்ச்சியின் வாய்ப்புகளையும் நான் குறைத்தேன். இந்த ஆரம்ப வெளியேற்றங்கள் எதுவும் நடக்கவில்லை என்றால், இணைப்பு வகை களைக்கு மாற்றப்படும்.

நான் சாக்கெட் செய்தியை பேலோடு பகுதியாக இந்த வகை பயன்படுத்த முடியும். இருந்து பயன்பாட்டை / சாக்கெட் / கேம்செட். முன் :

     $ பண்ணை = புதிய பண்ணை மாதிரி (10, 10,செயல்பாடு (PatchModel $ பேட்ச்) பயன்படுத்த (& $ பேட்ச்ஸ்)array_push ($ patches, ["x" => $ patch-> x,"y" => $ patch-> y,"ஈரமான" => $ பேட்ச்-> ஈரமான,"வகை" => $ பேட்ச்-> வகை,]);});    

பண்ணைக்கு அளித்தல்

நான் முன்னர் அமைத்துள்ள செயல்திறன் செயல்முறை பயன்படுத்தி, பண்ணை காட்ட நேரம் இருந்தது. நான் பண்ணையில் அகலம் மற்றும் உயரம் ஆகியவற்றைப் பெற்றுக்கொண்டேன். எனவே, ஒவ்வொரு காய்ந்த உலர்ந்த அழுக்கை (ஒரு களை வளரக்கூடாது) நான் செய்ய முடியும். இருந்து சொத்துக்கள் / JS / பயன்பாட்டை. jsx :

     இறக்குமதி "எதிர்வினை"வர்க்க பண்ணை பிரதிபலிக்கிறது. உபகரண{கட்டமைப்பாளருக்கு   {சூப்பர்   இந்த. onMessage = இது. onMessage. ஜெர்மானிய (இந்த)இந்த. state = {"பண்ணை": {"அகலம்": 0,"உயரம்": 0,},"இணைப்புகளை": [],};}componentWillMount   {இந்த. சாக்கெட் = புதிய WebSocket ("ws: // 127 0. 0. 1: 8080 / ws")இந்த. சாக்கெட். addEventListener ("செய்தி", இது. onMessage)// DEBUGஇந்த. சாக்கெட். addEventListener ("திறந்த",    => {இந்த. சாக்கெட். ( "புதிய விவசாய") அனுப்ப})}onMessage (உ){தரவு = JSON ஐ அனுமதிக்கவும். பாராஸ் (இ. தரவு);(தரவு பண்ணை)இந்த. setState ({"பண்ணை": தரவு பண்ணை))}(தரவு இணைப்புகளை)இந்த. setState ({"இணைப்புகளை": தரவு. இணைப்புகளை})}}componentWillUnmount   {இந்த. சாக்கெட். removeEventListener (இந்த செய்தி)இந்த. சாக்கெட் = பூஜ்ய}வழங்க    {வரிசைகள் = []பண்ணை = இதை விடு. நிலை. விவசாயநிலைப்பாடு = இது. நிலை. திட்டுகள்(y = 0; y <பண்ணை உயரம்; y ++) {இணைப்புகளை விடுங்கள் = [](x = 0; x  <பண்ணை. அகலம் x ++) {className = "பேட்ச்"statePatches. forEach ((இணைப்பு) =>  {(இணைப்பு x === x && patch y === y) {className + = "" + பேட்ச். வகைஎன்றால் (இணைப்பு ஈரமான)className + = "" + ஈரமான}}})திட்டுகள். push ( 
)}வரிசைகள். push (
{திட்டுகள்}
)}திரும்ப (
{rows}
)}}இயல்புநிலை பண்ணை ஏற்றுமதி

முந்தைய ஃபார்ம் கூறுகள் என்ன செய்து கொண்டிருந்தன என்பதை நான் விளக்க மறந்துவிட்டேன். பதில் கூறுகள் எவ்வாறு இடைமுகங்களை உருவாக்குவது என்பது பற்றி சிந்திக்கும் ஒரு வித்தியாசமான வழிமுறையாகும். நான் கூறுகள் போன்றவைகளை பயன்படுத்தலாம்.வீல்மவுண்ட் மற்றும் பாகம் WillUnmount மற்ற தரவு புள்ளிகளில் (WebSockets போன்றவை) கவர்ந்து வழிகளாக. நான் WebSocket மூலமாக புதுப்பித்தல்களைப் பெற்றுக்கொண்டபோது, ​​நான் கன்ஸ்ட்ரக்டரில் ஆரம்ப நிலை அமைத்தவரை, நான் அந்த அங்கத்தின் நிலையை புதுப்பிக்க முடியும்.

இது ஒரு அசிங்கமான, divs செயல்பாட்டு தொகுப்பு என்றாலும் விளைவித்தது. நான் சில ஸ்டைலிங் சேர்த்து பற்றி அமைக்க. இருந்து பயன்பாடு / அதிரடி / HomeAction. முன் :

     பெயர்வெளி பயன்பாடு \ செயல்;பயன்படுத்த Aerys \ கோரிக்கை;பயன்படுத்த Aerys \ பதில்;வர்க்கம் HomeAction{பொது செயல்பாடு __இணைக்க (கோரிக்கை $ கோரிக்கை,பதில் $ பதிலளிப்பு){$ js = yield mix ("/ js / app. js");$ css = மகசூல் கலவை ("/ css / app. css");$ Response-> இறுதியில் ( "   
March 1, 2018