Skip to content
CodingThailand's Blog
CodingThailand's Blog

by โค้ชเอก

  • Home
  • About Me
  • CodingThailand.com
CodingThailand's Blog

by โค้ชเอก

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

03/08/2019

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

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

Views: 880

Laravel Laravel 5

Post navigation

Previous post
Next post

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Posts ล่าสุด

  • การใช้งาน Prefetching ใน Next.js
  • 14 ข้อคิด เพื่อการเป็น Developer ที่ดีขึ้น จาก “Lee Robinson”
  • เคยเจอ “TypeError: Cannot read property ‘x’ of undefined” หรือเปล่า
  • บันทึกการเขียนเว็บไซต์ใหม่ในรอบ 10 ปี ย้ายมาใช้ Next.js
  • ทำไมการจัดการ Error ใน JavaScript ถึงเป็นเรื่องท้าทาย?

Recent Comments

    หมวดหมู่

    • .NET
    • AI
    • Android
    • Angular
    • Angular 2
    • Coding
    • CSS
    • Database
    • Editor
    • Flutter
    • Git
    • HTML5
    • Ionic 2
    • Ionic 4
    • Ionic Framwork
    • JavaScript
    • Laravel
    • Laravel 5
    • Next.js
    • Node.js
    • PHP
    • PHP 7
    • Plugins
    • React
    • React Native
    • Template
    • Tools
    • TypeScript
    • UI
    • Uncategorized
    • Vue.js
    • XAMPP
    • Yii
    • คอร์สเรียน
    • แรงบันดาลใจ

    Archives

    • July 2025
    • April 2025
    • November 2024
    • October 2024
    • April 2020
    • February 2020
    • August 2019
    • September 2018
    • August 2018
    • February 2018
    • November 2017
    • October 2017
    • August 2017
    • July 2017
    • April 2017
    • October 2016
    • August 2016
    • May 2016

    Tags

    .NET android Angular Angular 2 Atom Coding Coding Standard CSS CSS 3 Datepicker Express.js extensions Git HTML HTML5 Ionic2 JavaScript Laravel5 laravel 5.5 MariaDB Material Design MySQL Node.js npm PHP PHP7 plugins PouchDB recaptcha Restful sail.js template typescript typscript XAMPP Yii2

    ผู้เยี่ยมชม

    • 0
    • 1,818,208
    • 547,574
    • 881
    ©2025 CodingThailand's Blog | WordPress Theme by SuperbThemes