Nhanh hơn, chính xác hơn trên Laravel – P1

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.

Ví dụ chúng ta muốn convert một template từ file .html sang laravel. Việc đầu tiên chúng ta nghĩ sẽ là copy đống html vào views rồi đổi tên của chúng từ .html sang .blade.php.

Công việc dễ dàng quá, nhưng số lượng file .html ở đây chắc chắn không phải là nhỏ. Công việc đơn giản nhất là click vào từng file và đổi thôi. Có rất nhiều cách để thực hiện hô biến 1 phát tất cả đống file kia theo ý muốn, nhưng ở đây mình xin phép sử dụng kiến thức của laravel làm điều đó.

Mình đã lựa chọn sử dụng command .

Cách sử dụng của nó thế nào thì các bạn có thể tham khảo trên trang docs của laravel cho rõ:

Để không phải mông lung như một trò đùa. Chúng ta liên hệ một bài toán đơn giản nhé. 😀

Chúng ta cần chuyển đống template omo kia sang cho nó chạy trên laravel. Đổi từng file một sang .blade.php. Có ai đã từng giống mình chưa nhỉ? Giờ chúng ta chỉ cần một câu lệnh :

php artisan file:rename neon blade.php

Và đây là kết quả trong một nốt nhạc. 😀

Giờ chắc nhiều bạn nghĩ là có nhiều cách để làm như thế đúng không? Nhưng nếu mà có thể từ những dòng code tạo ra như vậy vẫn có điều gì đó thú vị chứ? :D.

Đây là đoạn code cho vấn đề đơn giản đó.

Giải thích cho đoạn code trên để các bạn dễ hình dung nhé.

Đây là nơi chúng ta khai báo command và các tham số truyền vào. Cụ thể như trên ta:

– {folder=””}  là folder chứa file cần đổi.

– {tail=blade.php} là tên đuôi của file muốn đổi thành (mặc định ở đây là blade.php).

Đây là nơi chúng ta viết mã lệnh thực hiện công việc đổi tên các file. Ở đây chúng ta lấy các input truyền vào:

–  Tên folder: $folder = $this->argument(‘folder’);

–  Tên đuôi file: $this->tail = $this->argument(‘tail’);

Hàm trên sẽ duyệt tất cả các file ở trong thư mục resources/views/ “folder truyền vào”. Hàm thực hiện đổi file được gọi là: $this->done($dir);

Cảm ơn vì các bạn còn đọc tới đây nhé. Hơi dài dòng phải không? Chúng ta tiếp tục nhé. 😀

Trong hàm done này nó truyền địa chỉ thư mục để duyệt file đổi tên.

– echo “Filename: ” . $dir . “\n”; Chỉ là in tên folder ra nhìn cho nó hay hay ấy mà. Run  command  thấy nó  chạy chạy  trông nó  nguy hiểm ý mà. :D.

– Ở đây sẽ có trường hợp là nếu trong folder có những folder khác thì lại duyệt forder đó tiếp, nếu là file thực hiện gọi hàm để đổi tên: $this->renames($file);.

Nếu không nó sẽ gọi lại chính nó: $this->done($file);. Nó sẽ duyệt đến khi nào không còn gì để duyệt nữa.

– Chúng ta sẽ tách tên file và đuôi file thành 1 mảng chứa tên file và đuôi file:  $names = explode(‘.’, $file);

– Thiết lập tên file với đuôi mới truyền vào: $newName = $names[0] . ‘.’ . $this->tail;

– Cuối cùng là câu lệnh quan trọng nhất chắc ai cũng đoán được: rename($file, $newName);

Thực sự đoạn code trên còn nhiều bug tiềm ẩn, đơn giản nhất là hàm renames chắc nhiều bạn phát hiện ra rồi phải không nào?

Cảm ơn các bạn đã quan tâm và theo dõi, bài viết có gì sai sót, các bạn cứ comment góp ý thẳng thắn để mình tiến bộ nhé.

Nếu thấy hay nhớ like.

Giờ chúng ta cùng click vào link và thư giãn 1 chút nào. 😀