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
0 ความคิดเห็น:
แสดงความคิดเห็น