มีอะไรใหม่ใน Laravel เวอร์ชัน 6.0

1. ต้องใช้ PHP เวอร์ชัน 7.2.0 ขึ้นไป

.
2. มีการแยกงาน frontend scaffolding ออกจาก framework หลักแล้วนะครับ ถ้าใครต้องการ ui สำเร็จรูป และระบบล็อกอินสำเร็จรูปต้องติดตั้ง package ชื่อว่า laravel/ui แทน

ด้วยคำสั่ง composer require laravel/ui

ยกตัวอย่างเช่น ถ้าผมต้องการใช้ vue.js และระบบล็อกอินสำเร็จรูป (เป็น Bootstrap 4)

ก็ใช้คำสั่ง php artisan ui vue –auth เป็นต้น

ณ ตอนนี้ หากเราติดตั้ง Laravel 6 ใหม่จะไม่มีส่วนนี้ติดมาให้แล้วนะครับ

.
3. ปรับปรุง Eloquent Subquery ให้เขียนง่ายขึ้นภายในคำสั่งเดียว

.
4. ปรับปรุง Authorization Responses เพื่อให้สามารถแจ้งข้อความแก่ผู้ใช้ได้ง่ายขึ้น (ใช้เมธอด Gate::inspect)

.
5. เพิ่มคลาส LazyCollection สำหรับทำงานกับ datasets ที่มีขนาดใหญ่ ทำให้ใช้ memory น้อยลง (โหลดทีละ query ด้วย method ที่ชื่อว่า cursor())

.
6. มีการนำเอา String และ Array Helpers ออกจาก framework หลักแล้วนะครับ ใครที่ใช้ helpers สองตัวนี้อยู่ก็ให้ลงเพิ่ม ด้วยคำสั่ง composer require laravel/helpers

.
7. นำเอาคำสั่ง Input::get ออกแล้ว ก็ให้ใช้ Request::input แทน

.
8. รองรับ Laravel Vapor ซึ่งเป็น serverless deployment platform ใหม่ที่ผู้สร้าง Laravel ทำขึ้นมา สะดวกมากหากใครไม่อยากทำ Server เอง

.
9. เวอร์ชันนี้จะเป็นเวอร์ชัน LTS ครับ support ยาวจนถึงปี 2022

.
10. มาพร้อมกับโลโก้ และเว็บไซต์ ใหม่ 🙂

.
ขอสรุปสั้นๆ แค่นี้ก่อนแล้วกันนะครับ ใครสนใจก็ไปอ่านเพิ่มเติมได้ที่ => http://bit.ly/2KUmVeG

.
ลองดูครับ 🙂
โค้ชเอก

มีอะไรใหม่ใน Laravel 5.8!!

Laravel 5.8 เพิ่งออกมาครับ เป็น Laravel เวอร์ชันใหม่ล่าสุดที่ถูกพัฒนาและเพิ่ม features ต่างๆจากเวอร์ชัน 5.7 นั่นเอง โดยรวมแล้วมีการเพิ่ม features หลายอย่างด้วยกันยกตัวอย่างเช่น มีการเพิ่ม has-one-through ของ Eloquent relationships, ปรับปรุงเรื่อง validation ของ email รวมถึงอัปเกรดเวอร์ชัน packages ต่างๆ ยกตัวอย่างเช่น PHPUnit 8.0, Carbon 2.0, Pheanstalk 4.0, dotenv 3.0 เป็นต้น


มาดูเป็นข้อๆครับว่าในเวอร์ชันนี้ใหม่นี้มีอะไรบ้าง…

1. มีการเพิ่มคุณสมบัติ Auto-Discovery ให้กับ Model Policies สำหรับคนที่ใช้งาน Policy อยู่ก็ไม่ต้อง register ในไฟล์ AuthServiceProvider แล้วนะครับ แต่เราต้องตั้งชื่อ Model ให้ถูกหลักด้วย เช่น ถ้ามี Model ชื่อว่า Product ก็ให้ตั้งว่า ProductPolicy เก็บไว้ในโฟลเดอร์ app/Policies ครับ แค่นี้ก็ใช้ได้เลย

2. ใน Laravel 5.8 จะเปลี่ยนการระบุเวลาของ Cache จากนาทีเป็นหน่วยวินาทีนะครับ ตามมาตรฐานของ PSR-16 ยกตัวอย่างเช่น

// ใน Laravel 5.7 จากโค้ดด้านล่างนี้หมายถึง 30 นาที
Cache::put(‘foo’, ‘bar’, 30);

// ใน Laravel 5.8 จะหมายถึง 30 วินาที!!
Cache::put(‘foo’, ‘bar’, 30);

// ทั้ง Laravel 5.7 หรือ 5.8 อันนี้หมายถึงใช้วินาทีครับ เขียนแบบนี้จะเข้าใจง่ายกว่า
Cache::put(‘foo’, ‘bar’, now()->addSeconds(30));

**ใครที่ใช้ 5.7 อยู่ต้องระวังเรื่องนี้ด้วยนะครับจะกระทบกับโค้ดเก่าของเราโดยตรงเลยถ้าจะ upgrade มาใช้ 5.8

3. สำหรับคนที่เขียน APIs (ใช้ token guard) ตอนนี้ในส่วนของการสร้าง tokens สามารถ hash tokens ในรูปแบบของ SHA-256 ได้แล้วครับเพื่อความปลอดภัย โดยสามารถตั้งค่า hash เป็น true ได้ในที่ไฟล์ config/auth.php ในส่วนของ api guard ครับ

*ถึงแม้วิธีนี้จะง่าย แต่จริงๆ ถ้าให้ดีก็ควรใช้ Laravel Passport ไปเลยดีกว่าครับ

4. สามารถกำหนด Default Timezone ให้กับ scheduled task ได้แล้วนะครับ ทั้งในส่วนของแต่ละ method หรือจะกำหนด default timezone ให้กับทั้ง scheduled tasks ทั้งหมดก็ได้ เช่น

$schedule->command(‘inspire’)
->hourly()
->timezone(‘Asia/Bangkok’);

.
5. สามารถแสดง path เต็ม และชื่อไฟล์ original ของ Blade Template ที่ผ่านการ Compiled ได้แล้วครับ (แสดงส่วนบนของไฟล์) อันนี้ทำให้เวลา error สามารถดูชื่อ view ได้ง่ายขึ้น ดูภาพที่ http://bit.ly/2C4PRMx

6. เราสามารถใช้ driver เป็น DynamoDB ได้แล้ว เพื่อทำ cache และ session ในโปรเจคของเรา

7. กำลังจะยกเลิก global helpers ในส่วนของ array และ string แล้วครับ ใครที่ใช้อยู่ในเวอร์ชันต่อไป (5.9) จะเอาออกแล้วนะ ถ้าจะใช้ก็ให้ use คลาสมาใช้โดยตรง ยกตัวอย่างเช่น

use Illuminate\Support\Arr;

// จะยกเลิกแล้ว
array_add($array, $key, $value);

// ใช้แบบนี้แทน
Arr::add($array, $key, $value);

8. เปลี่ยนโฟลเดอร์ Markdown mail จาก /resources/views/vendor/mail/markdown ไปเป็น /resources/views/vendor/mail/text
ถ้าใครใช้ตัวนี้ ถ้าอัปเกรดอย่าลืมเปลี่ยนชื่อโฟลเดอร์ด้วยครับ

ส่วนเรื่องอื่นๆ สามารถอ่านเพิ่มเติมได้ที่นี่นะครับ => http://bit.ly/2NHfhnY

สำหรับคนที่อยากอัปเกรดดูได้ที่นี่ => http://bit.ly/2ELMGer

ขอบคุณที่ติดตามอ่านครับ
โค้ชเอก

แนะนำ package CKEditor กับ File Manager สำหรับ Laravel 5.2

แนะนำ package CKEditor กับ File Manager (ใช้ร่วมกัน) สำหรับคนที่เขียน Laravel 5.2 ครับ เท่าที่ผมลองใช้ดู คิดว่ามือใหม่ติดตั้งได้ไม่ยากเลย🙂

1. ให้ติดตั้ง CKEditor ก่อน รายละเอียด
https://goo.gl/ZQBvN7

2. แล้วต่อด้วย File Manager ตามนี้
https://goo.gl/E05NBS

config ให้ดูตามคู่มือของแต่ละตัวนะครับ ไม่ยาก ลองดูครับผม