การเขียน laravel มันจะมีส่วนที่ต้องเข้าไปใน command เพื่อที่จะใช้ php artisan xxx บ่อยมากโดยเฉพาะที่เกี่ยวกับ cache ส่วนต่าง ๆ เลยทำทางลัด short cut จัดการจะได้ทำได้ง่าย ๆ
เปิดไฟล์ /routes/web.php แล้วเพิ่ม
//refresh cache
Route::get('/refresh', function () {
//php artisan optimize:clear
$commands = [
//clear
'auth:clear-resets',
'optimize:clear',
'queue:clear',
'schedule:clear-cache',
//add
'cache:table',
'lang:publish',
'optimize',
'stub:publish',
//'ziggy:generate',
//information
'about',
//'db:show',
'env',
'list', //all commands
'package:discover',
'route:list', //may fail if there are errors in routes
];
$output = '<!DOCTYPE html><html lang="en"><head><title>refresh</title></head><body><dl>';
foreach ($commands as $command) {
try {
Artisan::call($command);
$results = Artisan::output();
$results = explode("\n", $results);
$results = implode("</dd><dd>", $results);
$output .= '<dt>php artisan ' . $command . '</dt><dd>' . $results . '</dd>';
} catch (Exception $e) {
$output .= '<dt>php artisan ' . $command . '</dt><dd><h2 style="color: red;">Error executing command</h2>: ' . $e->getMessage() . '</dd>';
}
}
$output .= '</dl><br>All caches have been cleared and recreated.</body></html>';
return response($output)
->header('charset', 'utf-8')
->header('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0')
->header('Content-Type', 'text/html')
->header('Expires', 'Thu, 01 Jan 1970 00:00:00 GMT')
->header('Pragma', 'no-cache')
->header('X-Accel-Buffering', 'no');
});
การใช้ก็ง่าย ๆ แค่ ใส่ใน array แล้วเรียก URL ประมาณ http://127.0.0.1:8000/refresh ก็จะจัดงานที่ต้องใช้ php artisan
ให้เราได้แล้ว CI/DI เล็ก ๆ
เพื่อความปลอดภัย บางคำสั่งอย่าง php artisan db:show
ใน production ควรจะเอาออก / comment เอาไว้หรือตรวจสอบให้เฉพาะคนที่มีสิทธิ์เข้าใช้
จะปีใหม่แล้ว ล้างสิ่งเก่า ๆ เริ่มต้นส่ิงใหม่ ๆ กันครับ