Nhanh hơn, chính xác hơn trên laravel – P3

Với tiêu đề trên, mình muốn chia sẻ với mọi người một số thứ mình tạo ra để thực hiện việc nhanh hơn và chính xác hơn khi lập trình với Laravel.

Có những vấn đề rất nhỏ và rất đơn giản , nhưng nhiều khi rất tốn thời gian của chúng ta rất nhiều khi gặp phải. Vì vậy chúng ta có thể làm nó với 1 cách khác nhanh hơn và đơn giản hơn rất nhiều.

Mình muốn kể tại sao mình lại tạo ra đoạn code sắp trình bày. Ngày trước mình có làm ở một công ty cấp cho con máy rất cùi mía, nó chạy rất giật lag, đặc biết là rất thiếu ram. Code trên nó như bị tra tấn, cực hình đây mừ 😀 . Đã thế mình lại khoái dùng phpstrom cơ chứ, nên bật thêm 1 cái gì đó thôi, nó load đợi thì thôi rồi. Lúc đó muốn khóc quá.

Nhớ là mình được giao nhiệm vụ nâng cấp con CMS đó từ symfony sang laravel, nên lúc nào cũng phải bật mysqlworkbead lên để xem hệ thống table liên quan nó ra sao, các colum trong một table nó như thế nào. Nó có ngốn chút ram nữa thôi, mà sao nó quý thế. Công ty máy thì cùi, đã thế không cho dùng laptop riêng, internet thì off với thế giới bên ngoài, không bao giờ có chuyện lộ dữ liệu của công ty.

Đơn giản là mình muốn xem và lọc các table và cấu trúc table nhanh như ý muốn, mà nó không ngốn thêm ram của máy thôi. Vài vậy đống code này đã xuất hiện như một định mệnh. :D. Và mình cũng bớt đi 1 cửa sổ trong trên cái màn hình à. Nhiều cửa số rất khó chịu nhất là không có thêm 1 cái màn hình thứ 2 để code thì đúng là một thảm họa.

Bài viết vẫn sử dụng command của laravel.

Tìm hiểu đoạn code chút nhé. Hehe .

Chúng ta chỉ tập trung vào phần code quan trọng nhất là function handle()

Đầu tiên chúng ta lấy tất cả các table của database qua hàm: $tables = DB::select(‘SHOW TABLES’);

$database = ‘Tables_in_’ . env(‘DB_DATABASE’); Đây là thứ để chúng ta thực hiện việc lấy tên table .

Lấy thông tin lọc dữ liệu: $filter = $this->argument(‘name’);

Dòng rẽ nhánh này sẽ in ra ra tất cả các table của database

Còn đây sẽ lọc theo giá trị filter

 

 

{
$tables = DB::select(‘SHOW TABLES’);

$database = ‘Tables_in_’ . env(‘DB_DATABASE’);
$filter = $this->argument(‘name’);

if ($filter == ‘””‘) {
foreach ($tables as $table) {
echo $table->$database . “\n”;
}
} else {
foreach ($tables as $table) {
$tableName = $table->$database;
if (strpos($tableName, $filt