How to make console with Laravel 5 : การสร้าง Console เพื่อใช้งานอย่างง่ายด้วย Laravel 5


Laravel console
คือ การสร้างการทำงานของ Laravel โดยให้ทำงานผ่าน command line โดย php cli สรุปสั้น ๆคือไม่ได้รันผ่าน Browser แต่รันผ่าน Command line หน้าจอดำ ๆ นั่นเอง
คำถาม.คือทำไมต้องรันผ่าน Command line ในเมื่อมันรันผ่านเว็บบาวเซอร์ได้อยู่แล้ว
ตอบ. จริง ๆ แล้วข้อเสียของการรันผ่านเว็บบาวเซอร์เองมันค่อนข้างที่จะแสดงผลลัพท์ช้า ยิ่งมีปริมาณการประมวลผลมากยิ่งจะแปลผันตรงกับเวลาที่ใช้ และการแสดงผลลัพธ์ออกมาเป็นช่วง ๆแทนที่จะแสดงผลลัพธ์แบบเรียวไทม์ ซึ่งความสามารถตรงนี้  php cli แก้ไขได้ นั่นหมายความว่าการประมวลผลการทำงานย่อมทำได้เร็วกว่า หลาย ๆท่านคงเคยได้ยิน bash อ่านว่า(แบช) ลักษณะการทำงานของ php cli ก็คล้ายกันกับ bash เอาล่ะมาเริ่มกันเลย

สำหรับท่านที่ยังไม่ได้ทำการติดตั้ง Laravel ให้ทำการติดตั้งก่อนให้เรียบร้อยครับ สำหรับวิธีการติดตั้งได้เขียนไว้ในบทความก่อนหน้านี้แล้ว เมื่อทำการติดตั้ง Laravel เสร็ดแล้ว สิ่งแรกที่จะทำคือการสร้าง Console file ด้วยคำสั่งของ Artisan ครับ โดยมีคำสั่งดังนี้

  • php artisan make:console Consolename
หลังจากนั้นก็จะได้ไฟล์ console มาหนึ่งไฟล์ชื่อ Consolename ซึ่งจะอยู่ใน path 
  • App\Console\Commands\Consolename.php
ในไฟล์นี้ประกอบไปด้วย propertie ที่น่าสนใจอยู่สองตัวคือ 
  • signature 
    • คือส่วนที่จะบอกว่าจะให้พิมพ์คำสั่งอะไรเวลาเรียกใช้งานซึ่งจะสามารถรับอาร์กิวเมนต์ผ่านเข้ามาได้ด้วยเช่น 
    • execute:sendemail{อาร์กิวเมนต์} ...{n}
    • สามารถรับอาร์กิวเมนต์ได้โดย $this->argument('argumentName');
  • description
    • คือคำอธิบายว่า Console ทำงานอะไรยังไง เมื่อเราพิมพ์คำสั่ง php artisan จะแสดงผลในส่วนของ description  
ฟังก์ชั่นที่ทำงานของ console 
  • หลังจากที่สร้างไฟล์ console ขึ้นมาฟังก์ชั่นหนึ่งที่จะติดมาด้วยคือ handle นั่นหมายความว่าถ้าเราต้องการนำการบวนการทำงานอะไร ให้นำมาใส่ไว้ที่นี่เท่านั้น
Regitering console เพิ่ม console ของสู่ kernal เพื่อให้ artisan รู้จักคำสั่งที่เราสร้างขึ้นมาสามารถทำได้ดังต่อไปนี้ 
  • path kernel= App\Console;
  • เพิ่ม class เข้าไปใน propertie commands;
    •  Commands\autogenAdslink::class,
การ execute console สามารถทำได้ดังนี้
  • ไปที่ path project ของเอาผ่านทาง command line 
  • พิมพ์​ php artisan  signature เช่น
    • php artisan execute:sendemail --user=samak
นอกจากนี้ตัว console มีคุณสมบัติน่าสนใจอื่น ๆดังนี้
  • สามารถทำ Process bar ได้ (อันนี้ผมชอบมาก) 
    • สร้าง $bar  = $this->output->createProgressBar($total);
    • ประมวลผล  $bar->advance();
    • เสร็ด  $bar->finish();
  • สามารถเรียกใช้งานผ่าน Artisan::call(); 
  • method ที่น่าสนใจเช่น
    • $this->ask('ตั้งคำถาม');
    • $this->secret('password');
    • $this->confirm('do you want to continue y|n');
    • $this->anticipate('suggest name ',['max','maxca']);
    • $this->choice('suggest name ',['max','maxca']);
  • writing output 
    • $this->info();
    • $this->line();
    • $this->error();
    • $this->table(); -->layout




Share on Google Plus

About maxcom

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 ความคิดเห็น:

แสดงความคิดเห็น