มีอะไรใหม่ใน Laravel 10: เจาะลึกการอัปเดตและคุณสมบัติล่าสุด

เผยแพร่แล้ว: 2023-01-25

หลังจากกว่าทศวรรษนับตั้งแต่มีการเปิดตัวเฟรมเวิร์ก Laravel ที่ได้รับความนิยมอย่างมาก คุณเคยสงสัยหรือไม่ว่า “Laravel สามารถเสนออะไรให้กับนักพัฒนา PHP ได้อีกบ้าง?”

เนื่องจากทำให้การพัฒนา PHP ง่ายขึ้นมากเพียงใดสำหรับทั้งนักพัฒนามือใหม่และมืออาชีพ บางคนอาจแย้งว่ามันได้ทำให้นักพัฒนาเสียไปโดยเชื่อว่า PHP เป็นภาษาโปรแกรมที่ง่ายที่สุด

Laravel ยังมีเซอร์ไพรส์อีกมากสำหรับนักพัฒนา Laravel หรือไม่? หรือหมดหนทางที่จะสนับสนุนนักพัฒนา PHP แล้ว?

อย่างน้อยที่สุด เราก็รู้ว่า Laravel 10 มีอะไรให้คุณทำมากมาย นี่คือสิ่งที่เราจะเปิดเผยในบทความนี้เมื่อเรานำคุณไปสู่การเดินทางผ่านฟีเจอร์ การแก้ไข และวิธีการและแพ็คเกจใหม่ๆ ของ Laravel 10

กำหนดการปล่อย Laravel

ทีมแกนหลักของ Laravel เคยปล่อยสองเวอร์ชันหลักทุกปี — หนึ่งเวอร์ชันทุกๆ หกเดือน

อย่างไรก็ตาม รอบการเปิดตัวเปลี่ยนไปเมื่อ Taylor Otwell ผู้สร้าง Laravel ประกาศว่าจะมีการเปิดตัวเวอร์ชันหลักเพียงเวอร์ชันเดียวในแต่ละปี สิ่งนี้ทำให้ทีมหลักและชุมชนสามารถทุ่มเทเวลาและความพยายามมากขึ้นกับเวอร์ชันเฉพาะของเฟรมเวิร์ก และแนะนำฟีเจอร์ใหม่ที่ทรงพลังโดยไม่ต้องทำการเปลี่ยนแปลงใด ๆ

ด้วย Laravel 9 ที่วางจำหน่ายในวันที่ 8 กุมภาพันธ์ 2022 กำหนดการวางจำหน่ายที่คาดไว้มีดังนี้:

  • Laravel 10 : 7 กุมภาพันธ์ 2023
  • Laravel 11 : 6 กุมภาพันธ์ 2567

นอกจากนี้ ตามนโยบายการสนับสนุน การแก้ไขข้อบกพร่องมีให้เป็นเวลา 18 เดือนและการอัปเดตความปลอดภัยเป็นเวลาสองปีสำหรับ Laravel ทุกเวอร์ชัน

ต่อไปนี้คือการแก้ไขข้อบกพร่องที่คาดไว้และกำหนดการอัพเดตความปลอดภัย:

  • Laravel 9 จะได้รับการแก้ไขข้อบกพร่องต่อไปจนถึงวันที่ 8 สิงหาคม 2023 และการแก้ไขความปลอดภัยจนถึงวันที่ 6 กุมภาพันธ์ 2024
  • Laravel 10 จะได้รับการแก้ไขข้อบกพร่องจนถึงวันที่ 6 สิงหาคม 2024 และแก้ไขความปลอดภัยจนถึงวันที่ 4 กุมภาพันธ์ 2025
  • Laravel 11 คาดว่าจะได้รับการแก้ไขข้อบกพร่องจนถึงวันที่ 4 สิงหาคม 2025 และแก้ไขความปลอดภัยจนถึงวันที่ 2 กุมภาพันธ์ 2026

คุณควรอัปเกรดเป็น Laravel 10 หรือไม่

สิ่งสำคัญคือต้องจำไว้ว่าเราไม่จำเป็นต้องอัปเกรดเวอร์ชัน Laravel ของแอปพลิเคชันของเราเป็นเวอร์ชันล่าสุดเสมอไปทันทีที่เวอร์ชันใหม่เปิดตัว

Laravel เป็นเฟรมเวิร์กโอเพ่นซอร์ส ซึ่งหมายความว่าทุกครั้งที่เราติดตั้งอินสแตนซ์ Laravel ใหม่บนเครื่องของเรา เราเป็นเจ้าของโค้ดเบสของเฟรมเวิร์ก ซึ่งหมายความว่าแม้ว่าเวอร์ชันเฟรมเวิร์กที่แอปของเราใช้ไม่ได้รับการสนับสนุนอีกต่อไป แอปจะยังคงใช้งานได้ เราจะต้องรักษามันเอง

ด้วยเหตุนี้ จึงมีการเสนอแนะอย่างกว้างขวางว่าควรให้ความสำคัญกับความเสถียรของแอปพลิเคชันมากกว่าการอัปเกรดเฟรมเวิร์ก

กล่าวโดยย่อ คุณควรพิจารณาอัปเกรดเป็น Laravel 10 เมื่อ:

  • แอปพลิเคชันมีความเสถียรในเวอร์ชันปัจจุบันและทำงานโดยไม่มีปัญหา
  • เวอร์ชันใหม่จะเพิ่มฟีเจอร์ที่แอปพลิเคชันของคุณต้องการหรือแก้ไขปัญหาที่แอปพลิเคชันของคุณประสบอยู่
  • แอปพลิเคชันจะได้รับการทดสอบอย่างดีก่อนที่จะผลักดันการเปลี่ยนแปลงการอัปเกรดไปสู่การผลิต

การอัปเดต Laravel 10 ยอดนิยม

โลโก้ Laravel 10
ภาพของโลโก้ Laravel 10

อย่างที่คุณทราบ Laravel 10 ยังไม่เปิดตัว อย่างไรก็ตาม เราจะอัปเดตบทความนี้ด้วยข้อมูลที่สดใหม่ทั้งหมดเกี่ยวกับการเปิดตัวที่คาดไว้ ดังนั้น เราขอแนะนำให้บุ๊กมาร์กหน้านี้และกลับมาดูเป็นระยะๆ

คุณสมบัติใหม่และการอัพเดทใน Laravel 10

ไม่ต้องสงสัยเลยว่าส่วนที่น่าตื่นเต้นที่สุดเกี่ยวกับการเปิดตัวใหม่คือการเพิ่มคุณสมบัติใหม่ เพื่อไม่ให้เป็นการเสียเวลา เรามาเริ่มต้นด้วยการดูคุณสมบัติและการอัปเดตใหม่ใน Laravel 10

1. PHP 8.1: หัวใจของ Laravel 10

PHP 8.1 เป็นเวอร์ชัน PHP ที่จำเป็นขั้นต่ำใน Laravel 10 จากการเปรียบเทียบระหว่างสาขา Laravel 9 และสาขาหลักของเฟรมเวิร์กบน GitHub คุณลักษณะบางอย่างของ PHP 8.1 เช่นคุณสมบัติแบบ readonly อย่างเดียวและ array_is_list คาดว่าจะถูกนำมาใช้ใน Laravel 10 .

2. รองรับ PHP 8.2

PHP 8.2 เปิดตัวเมื่อวันที่ 8 ธันวาคม 2022 เพียงสองเดือนก่อนวันวางจำหน่าย Laravel 10 ถึงกระนั้นก็ไม่ควรหยุดคุณจากการใช้คุณสมบัติ PHP 8.2 เนื่องจากไม่ต้องทำอะไรเพิ่มเติม Laravel 10 จะพร้อมสำหรับ PHP 8.2

อันที่จริงแล้ว ระบบนิเวศของ Laravel ทั้งหมด รวมถึง Forge, Vapor และ Envoyer รองรับ PHP 8.2 และคุณสามารถใช้ PHP 8.2 กับ Laravel 9 ได้ด้วย เจ๋งแค่ไหน!

3. การอัพเกรดชุดเริ่มต้น Laravel

Laravel Breeze และ Jetstream พร้อมใช้ Laravel 10 ทันทีที่เปิดตัว นอกจากนี้ พวกเขายังได้รับการอัปเกรดเป็น Inertiajs 1 แล้วอีกด้วย ด้วยความประหลาดใจที่ JetStream รองรับโหมดมืดอย่างสมบูรณ์

4. อัปเกรดเวอร์ชัน Predis

Predis เป็นไคลเอนต์ Redis ที่แข็งแกร่งสำหรับ PHP ซึ่งอาจช่วยให้คุณได้รับประโยชน์สูงสุดจากการแคชเพื่อมอบประสบการณ์ผู้ใช้ที่ยอดเยี่ยม ก่อนหน้านี้ Laravel รองรับทั้งเวอร์ชัน 1 และ 2 แต่ตั้งแต่ Laravel 10 เฟรมเวิร์กไม่รองรับ Predis 1 อีกต่อไป

แม้ว่าเอกสาร Laravel จะกล่าวถึง Predis เป็นแพ็คเกจสำหรับการโต้ตอบกับ Redis แต่คุณสามารถใช้ส่วนขยาย PHP อย่างเป็นทางการได้เช่นกัน ส่วนขยายนี้มี API สำหรับการสื่อสารกับเซิร์ฟเวอร์ Redis

5. การประกาศประเภทพื้นเมือง

Laravel เคยใช้ DocBlocks ในโค้ด Skeleton เพื่อชี้แจงว่าโค้ดส่วนใดทำหน้าที่อะไร และพารามิเตอร์หรือการตอบสนองประเภทใดที่ควรคาดหวัง อย่างไรก็ตาม ด้วยการประกาศประเภทเนทีฟใน Laravel 10 สิ่งนี้จะเปลี่ยนไป

วิธีที่ดีที่สุดในการอธิบายการเปลี่ยนแปลงนี้คือตัวอย่างง่ายๆ แทนที่จะเป็นฟังก์ชันที่มีลักษณะดังนี้:

 /** * Determine whether the user can create models. * * @param \{{ namespacedUserModel }} $user * @return \Illuminate\Auth\Access\Response|bool */ public function create({{ user }} $user) { // }

…มันจะมีลักษณะดังนี้:

 /** * Determine whether the user can create models. */ public function create({{ user }} $user): bool { // }

การเปลี่ยนแปลงนี้มีไว้เพื่อประโยชน์ของประสบการณ์ของนักพัฒนาเท่านั้น เนื่องจาก IDE จะรู้รูปร่างของพารามิเตอร์และการตอบสนองที่คาดหวัง มันจะให้ความชัดเจนของประเภทที่ดีขึ้นเมื่อไม่สามารถทำได้ผ่านประเภทดั้งเดิมของ PHP ดังนั้น มันจะช่วยให้โปรแกรมแก้ไขรหัสทำงานได้ดีขึ้นด้วยคุณสมบัติเติมข้อความอัตโนมัติ

6. กฎการตรวจสอบทั้งหมดสามารถเรียกใช้ได้โดยค่าเริ่มต้น

หากคุณต้องการสร้างกฎการตรวจสอบความถูกต้องที่เรียกใช้ได้ใน Laravel 9 คุณจะต้องเพิ่ม --invokable flag หลังคำสั่ง artisan สิ่งนี้ไม่จำเป็นอีกต่อไปเนื่องจากกฎ Laravel 10 ทั้งหมดสามารถเรียกใช้ได้ตามค่าเริ่มต้น ดังนั้น คุณอาจเรียกใช้คำสั่งต่อไปนี้เพื่อสร้างกฎที่เรียกใช้ได้ใหม่ใน Laravel 10:

 php artisan make:rule CustomRule

7. รองรับการแก้ไขคอลัมน์เนทีฟ

ในความพยายามที่จะขจัดความต้องการแพ็คเกจ doctrine/dbal เมื่อใช้ change() เพื่อแก้ไขคอลัมน์ ฟีเจอร์ใหม่กำลังจะมาใน Laravel 10 ฟีเจอร์นี้จะช่วยให้นักพัฒนาสามารถใช้เมธอด change() และแก้ไขคอลัมน์บน MySQL, PostgreSQL และ SQL Server โดยไม่ต้องใช้แพ็คเกจเสริม นี่เป็นการเปลี่ยนแปลงที่สำคัญและมีความเสี่ยงที่จะแตกหัก แต่เราเชื่อว่ามันคุ้มค่าเนื่องจากจะไม่มีความจำเป็นสำหรับแพ็คเกจเพิ่มเติม

เพื่อให้เข้าใจคุณลักษณะใหม่ได้ดียิ่งขึ้น โปรดดูตัวอย่างด้านล่าง:

 $table->integer('user_balance')->unsigned()->default(0)->comment('balance'); // `user_balance` is an integer, unsigned, defaults to '0', and column comment is 'balance'

ตอนนี้ เราสมมติว่าเรามีคอลัมน์สำหรับ user_balance และเราต้องการเปลี่ยนประเภท เริ่มจาก Laravel 10 เราสามารถทำได้ดังนี้:

 $table->bigInteger('user_balance')->change(); // This will change `user_balance` to bigInteger instead of just integer

โค้ดด้านบนจะเปลี่ยนประเภทของคอลัมน์ได้สำเร็จ แต่จะทิ้งแอตทริบิวต์ UNSIGNED , DEFAULT และ COMMENT ด้วย ดังนั้น สิ่งสำคัญคืออย่าลืมเพิ่มแอตทริบิวต์ทั้งหมดเมื่อคุณเปลี่ยนประเภทของคอลัมน์:

 $table->bigInteger('user_balance')->unsigned()->default(0)->comment('balance')->change();

ในกรณีที่คุณมีการเชื่อมต่อฐานข้อมูลหลายรายการและติดตั้ง doctrine/dbal แล้ว ขอแนะนำให้เรียก Schema::useNativeSchemaOperationsIfPossible() ภายในเมธอดการ boot ใน App\Providers\AppServiceProvider เพื่อให้สามารถใช้การดำเนินการสคีมาดั้งเดิมและใช้ การดำเนินการดั้งเดิมก่อนที่จะใช้แพ็คเกจ (ตัวอย่างเช่น SQLite ยังไม่รองรับสิ่งนี้):

 use IlluminateSupportFacadesSchema; class AppServiceProvider extends ServiceProvider { public function boot() { Schema::useNativeSchemaOperationsIfPossible(); } }

8. ประเภทคอลัมน์ Native Retrival

คุณสมบัติเด่นอีกอย่างของ Laravel 10 คือความสามารถในการใช้เมธอด Schema::getColumnType โดยไม่ต้องพึ่ง doctrine/dbal package ขณะนี้เราใช้ Schema::getColumnType กับ doctrine/dbal เพื่อรับประเภทคอลัมน์ doctrine/dbal จับคู่คอลัมน์เนทีฟทุกประเภทกับประเภท doctrine/dbal ที่เทียบเท่า และไม่รองรับคอลัมน์หลายประเภทที่ Laravel ใช้ข้ามฐานข้อมูลต่างๆ

ในทางกลับกัน ใน Laravel 10 เมธอด Schema::getColumnType ใหม่จะส่งคืนประเภทคอลัมน์จริงแทนที่จะเป็น doctrine/dbal เทียบเท่า นอกจากนี้ยังช่วยให้คุณสามารถเขียนการทดสอบการรวมสำหรับคุณลักษณะการแก้ไขคอลัมน์เนทีฟใหม่ คุณสามารถใช้คุณสมบัตินี้เพื่อรับชื่อประเภทข้อมูลหรือคำจำกัดความประเภททั้งหมดของคอลัมน์ที่ระบุ:

 Schema::getColumnType('products', 'price'); // decimal

9. อัลกอริทึมแฮชที่เร็วขึ้น

xxHash เป็นอัลกอริทึมแฮชที่รวดเร็วอย่างไม่น่าเชื่อ นำเสนอเอาต์พุตแบบสุ่มและการกระจายที่ยอดเยี่ยม รวมถึงความเป็นเอกลักษณ์ในการลดการชนกัน เนื่องจาก PHP 8.1 ให้การสนับสนุน xxh128 และ Laravel 10 ทำงานบน PHP 8.1 การมีอัลกอริทึมแฮชที่เชื่อถือได้ภายใน Laravel 10 จึงเหมาะอย่างยิ่ง

เป็นมูลค่าการกล่าวขวัญว่า Taylor เน้นในระหว่างการทบทวนการเปลี่ยนแปลงนี้ว่าแพ็คเกจของบุคคลที่สามบางแพ็คเกจอาจใช้ชื่อไฟล์ในรูปแบบที่แน่นอนเหมือนกับแฮช SHA-1 ซึ่งเป็นอัลกอริทึมที่ Laravel ใช้ในการแฮช ดังนั้น หากคุณวางแผนที่จะอัปเกรดเป็น Laravel 10 คุณควรตรวจสอบสิ่งนี้อีกครั้งในแพ็คเกจของบุคคลที่สามที่คุณใช้ในแอปของคุณ

10. whereExists() รองรับเมธอดสำหรับ Eloquent Builder

ปัจจุบัน การใช้ whereExists() จำเป็นต้องกำหนดค่าการสืบค้นที่ซ้อนกันโดยใช้การปิด โชคดีที่ Laravel 10 ช่วยให้คุณสามารถรวม Eloquent Builder เป็นแบบสอบถามซ้อนได้แล้ว ช่วยให้สามารถใช้เมธอดตัวสร้างแบบกำหนดเอง ขอบเขตแบบจำลอง และอื่นๆ

ตัวอย่างเช่น ปกติเราจะทำเช่นนี้หากเราต้องการใช้ whereExists() :

 Order::whereExists(function ($query) { $query->from('products')->whereColumn('products.order_id', 'orders.id'); });

ด้วย Laravel 10 เราสามารถทำได้แทน:

 Order::whereExists( Product::whereColumn('products.order_id', 'orders.id') );

11. การเพิ่มประสิทธิภาพการโหลดอย่างกระตือรือร้น

หนึ่งในคุณสมบัติใหม่ที่น่าสนใจของ Laravel 10 คือการเพิ่มประสิทธิภาพการโหลดเมื่อไม่มีคีย์ให้โหลด การเปลี่ยนแปลงนี้เป็นการแก้ไขมากกว่าคุณลักษณะเนื่องจากเป็นการแก้ไขปัญหาปัจจุบันซึ่งความสัมพันธ์ในการโหลดที่กระตือรือร้นทำให้ไม่สามารถดำเนินการค้นหาจำนวนมากที่เป็นไปไม่ได้

ขณะนี้เมื่อความกระตือรือร้นในการโหลดความสัมพันธ์ที่ไม่มีคีย์ใดๆ ให้โหลด Laravel จะยังคงดำเนินการค้นหาที่คล้ายกับอันนี้ โดย select \* from `table_name` where 0 = 1 อย่างไรก็ตาม การอัปเดต Laravel 10 ใหม่จะตรวจสอบเพื่อดูว่ามีคีย์ใดๆ ที่ใช้งานได้ในตอนแรกหรือไม่ และหากไม่มี ให้จัดเตรียมคอลเล็กชันที่ว่างเปล่า ซึ่งช่วยลดความจำเป็นในการสืบค้นฐานข้อมูลที่ไม่จำเป็น

วิธีการและแพ็คเกจที่เลิกใช้แล้วใน Laravel 10

Laravel 10 บอกลา PHP 8.0

Laravel framework จะเลิกรองรับ PHP 8.0 ใน Laravel 10 ดังนั้นหากคุณวางแผนที่จะอัปเกรดแอปเป็น Laravel 10 คุณต้องอัปเดตเวอร์ชัน PHP เป็น PHP 8.1 หรือ PHP 8.2 ก่อน

การกำจัดวิธีการที่เลิกใช้แล้ว

เราจะเห็นว่าทีมหลักของ Laravel กำลังลบเมธอดที่เลิกใช้แล้วใน Laravel 9 ออกจากสาขา Laravel 10 เราคาดการณ์ว่าทีมจะอัปเดตคู่มือการอัปเกรดเอกสารเพื่อรวมวิธีการและแพ็คเกจที่เลิกใช้แล้วทั้งหมดทันทีที่ Laravel 10 เปิดตัว

หากคุณกำลังจะย้ายโปรเจ็กต์ปัจจุบันไปยัง Laravel 10 โค้ดใดๆ ที่ใช้วิธีการที่เลิกใช้แล้วควรเขียนใหม่ด้วยวิธีการใหม่เพื่อให้ได้ผลลัพธ์เดียวกัน

นี่คือรายการของการเลิกใช้งานและการลบทั้งหมดที่เราพบในขณะที่เปรียบเทียบ Laravel 9 กับสาขาหลัก:

  • วิธีการ Route::home (เลิกใช้แล้วใน Laravel 9)
  • ฟังก์ชันและเมธอดที่เลิกใช้แล้วรอบ dispatchNow นี่คือการสนับสนุนให้นักพัฒนาใช้ dispatchSync ซึ่งเป็นวิธีเดียวที่รองรับในการจัดส่งทันที
  • getBaseQuery เนื่องจากมี toBase เทียบเท่า
  • คลาส MaintenanceModeException ที่ไม่ได้ใช้อีกต่อไป
  • คุณลักษณะ MocksApplicationServices
  • เมธอด Mail::failures ของเมลปลอม
  • คุณสมบัติ $dates เลิกใช้แล้ว ขอแนะนำให้ใช้ $casts แทน
  • วิธีการ assertTimesSent()
  • ยกเลิกการรองรับ Predis 1 และ doctrine/dbal 2
  • การเลิกใช้ที่เกี่ยวข้องทั้งหมดใน doctrine/dbal ตั้งแต่ Laravel เลิกรองรับเวอร์ชัน 2

วิธีการติดตั้ง Laravel 10

Laravel 10 พร้อมให้คุณทดลองขับและทดสอบคุณสมบัติของมันแล้ว แฟล็ก –dev ในตัวติดตั้ง Laravel จะติดตั้งสาขาหลักจากที่เก็บ laravel/laravel สิ่งที่คุณต้องทำคือเรียกใช้คำสั่งนี้ในเทอร์มินัลของคุณ:

 laravel new example-kinsta-app --dev

หรือถ้าคุณต้องการใช้นักแต่งเพลง:

 composer create-project --prefer-dist laravel/laravel example-kinsta-app dev-master

เพื่อให้เข้าใจคำสั่ง Composer ได้ดียิ่งขึ้น นี่คือคำอธิบายโดยย่อ:

  • laravel/laravel : แพ็คเกจสำหรับการติดตั้ง Laravel
  • example-kinsta-app : ไดเรกทอรีใหม่สำหรับโครงการใหม่ของคุณ (สามารถเปลี่ยนแปลงได้)
  • dev-master : เวอร์ชันถัดไปของ Laravel (ในกรณีนี้คือ Laravel 10)

หลังจากติดตั้ง Laravel 10 คุณสามารถยืนยันเวอร์ชันได้โดยไปที่ไดเร็กทอรีใหม่ example-kinsta-app และรันคำสั่ง artisan:

 $ php artisan --version Laravel Framework 10.x-dev

วิธีอัปเกรดโครงการเป็น Laravel 10

คุณอยากอัพเกรดเป็น Laravel 10 หรือไม่? ทีมหลักของ Laravel ทำงานอย่างหนักในการจัดทำเอกสารเพื่อจัดทำคู่มือการอัปเกรดที่ราบรื่นและตรงไปตรงมา ในขณะที่ครอบคลุมทุกการเปลี่ยนแปลงที่อาจจะเกิดขึ้น อย่าลังเลที่จะตรวจสอบคู่มือการอัปเกรด Laravel 10 เนื่องจากข้อมูลบางอย่างเกี่ยวกับกระบวนการอัปเกรดมีอยู่ในขณะนี้

คุณควรจับตาดู Laravel Shift เมื่อปล่อย Laravel 10 มันนำเสนอแนวทางที่ง่ายและอัตโนมัติในการอัปเกรดเวอร์ชัน Laravel ของคุณ

นอกเหนือจากเอกสาร Laravel และ Laravel Shift แล้ว พวกเราที่ Kinsta จะเผยแพร่คู่มือการอัปเกรดที่ครอบคลุมพร้อมตัวอย่างการใช้งานจริง ดังนั้นอย่าลืมบุ๊กมาร์กหน้านี้และย้อนกลับไปเมื่อ Laravel 10 เปิดตัว

วิธีปรับใช้ Laravel 10 โครงการ

การปรับใช้ Laravel 10 ไม่ควรแตกต่างจากการปรับใช้โครงการ Laravel 9 นี่คือสิ่งที่เราคาดว่าข้อกำหนดของเซิร์ฟเวอร์อาจเป็น:

  • PHP>= 8.1
  • ส่วนขยาย BCMath PHP
  • Ctype PHP ส่วนขยาย
  • ส่วนขยาย cURL PHP
  • ส่วนขยาย DOM PHP
  • ส่วนขยาย Fileinfo PHP
  • ส่วนขยาย JSON PHP
  • ส่วนขยาย Mbstring PHP
  • ส่วนขยาย OpenSSL PHP
  • ส่วนขยาย PCRE PHP
  • ส่วนขยาย PDO PHP
  • นามสกุล Tokenizer PHP
  • ส่วนขยาย XML PHP

คุณสามารถปรับใช้และโฮสต์โครงการ Laravel 10 ของคุณบน Kinsta ได้ในเวลาไม่กี่นาที เนื่องจาก Laravel เป็นหนึ่งในรายการเฟรมเวิร์กที่รองรับสำหรับแอปที่โฮสต์

การปรับใช้ Laravel 10 บน Kinsta: คำแนะนำทีละขั้นตอน

มีประโยชน์หลายประการในการโฮสต์และปรับใช้แอปพลิเคชันของคุณบน Kinsta รวมถึงไม่ต้องกังวลกับการกำหนดค่าการปรับใช้

Kinsta มีเครื่องมือที่เป็นมิตรต่อผู้ใช้แต่ทรงพลังสำหรับการปรับใช้แอปพลิเคชัน การเชื่อมต่อกับฐานข้อมูล และการตรวจสอบประสิทธิภาพการทำงานแบบสด เครื่องมือนี้เรียกว่า MyKinsta และในส่วนนี้ เราจะแนะนำคุณเกี่ยวกับขั้นตอนในการปรับใช้แอปพลิเคชัน Laravel 10 โดยใช้เครื่องมือนี้

1. แอปพลิเคชัน Laravel 10

หน้าแรกของแอปพลิเคชัน Laravel 10
หน้าแรกของแอปพลิเคชัน Laravel 10 ที่ปรับใช้บน Kinsta

สมมติว่าคุณมีแอปพลิเคชัน Laravel 10 ในเครื่อง เราจำเป็นต้องตรวจสอบให้แน่ใจว่ามีที่เก็บ GitHub พร้อมใช้งาน เราจะใช้พื้นที่เก็บข้อมูลนี้เพื่อปรับใช้แอปพลิเคชันในภายหลัง

คุณสามารถรวมไฟล์ . htaccess ไว้ในไดเร็กทอรีรากของแอปพลิเคชันของคุณซึ่งมีข้อมูลด้านล่าง:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>

สำหรับ Laravel การดำเนินการนี้จะเปลี่ยนเส้นทางคำขอทั้งหมดไปที่ public/index.php อย่างไรก็ตาม หากจำเป็น คุณสามารถอัปเดตคำสั่งนี้ในขณะที่เพิ่มแอปพลิเคชันของคุณ ( ตั้งค่าขั้นตอนกระบวนการของคุณ ) หรือหลังการปรับใช้ในหน้า กระบวนการ ของแอปพลิเคชัน คุณสามารถใช้ได้:

  • heroku-php-apache2 /public
  • php artisan serve --host 0.0.0.0 --port 8080

2. เข้าสู่ระบบ MyKinsta

หน้าเข้าสู่ระบบ MyKinsta
ภาพหน้าจอสำหรับหน้าเข้าสู่ระบบ MyKinsta

ไปที่หน้าเข้าสู่ระบบ MyKinsta แล้วป้อนที่อยู่อีเมลและรหัสผ่านของคุณ หากคุณยังไม่มีบัญชี คุณสามารถลงทะเบียนบัญชีใหม่และรับส่วนลด $20 สำหรับเดือนแรกของการสมัครแผนราคาใดก็ได้

3. การอนุญาต Kinsta บน GitHub

เมื่อคุณเข้าสู่ระบบ คุณจะสังเกตเห็นว่าแดชบอร์ดมี 3 ตัวเลือกในการสร้างเว็บไซต์ WordPress สร้างแอปพลิเคชัน หรือสร้างฐานข้อมูล เราจะกดปุ่ม Connect GitHub เพื่อรวมเข้ากับ GitHub

แดชบอร์ด MyKinsta
ภาพหน้าจอสำหรับแดชบอร์ด MyKinsta

จากนั้นคลิกที่ปุ่มดำเนินการ ต่อด้วย GitHub หากคุณยังไม่ได้เข้าสู่ระบบ GitHub คุณจะเห็นตัวเลือกในการเข้าสู่ระบบ จากนั้นคุณสามารถอนุญาตแอปพลิเคชัน Kinsta GitHub เพื่อเข้าถึงบัญชี GitHub ของคุณโดยเลือก อนุญาต Kinsta

สุดท้าย GitHub จะเปลี่ยนเส้นทางเบราว์เซอร์ของคุณไปที่ MyKinsta เพื่อดำเนินการตั้งค่าแอปพลิเคชันต่อไป

การเชื่อมต่อ MyKinsta กับ GitHub
ภาพหน้าจอสำหรับเชื่อมต่อ MyKinsta กับ GitHub

หลังจากที่คุณเชื่อมต่อกับ GitHub แล้ว คุณจะเห็นป๊อปอัป Add Application /modal ซึ่งมีเมนูแบบเลื่อนลงสำหรับเลือกที่เก็บ GitHub คลิกฟิลด์ที่ เก็บ GitHub และเลือก แก้ไขสิทธิ์ GitHub ในดร็อปดาวน์

การเพิ่มแอปพลิเคชันไปยัง MyKinsta
ภาพหน้าจอสำหรับการเพิ่มแอปพลิเคชันใน MyKinsta

การดำเนินการนี้จะเปิดแท็บใหม่ในเบราว์เซอร์ของคุณไปยังหน้าเว็บ GitHub ซึ่งคุณสามารถเลือกข้อมูลที่ Kinsta จะสามารถเข้าถึงได้ แทนที่จะเปิดใช้งานการเข้าถึงที่เก็บข้อมูลทั้งหมด ให้พิจารณาเลือกเฉพาะที่ที่คุณต้องการให้ Kinsta ใช้ คลิก เลือกที่เก็บ เท่านั้น และเลือกที่เก็บที่คุณต้องการปรับใช้

การติดตั้ง MyKinsta บน GitHub
ภาพหน้าจอสำหรับการติดตั้ง MyKinsta บน GitHub

จากนั้นคลิก ติดตั้ง และคุณพร้อมแล้ว!

เมื่อคุณกลับไปที่ MyKinsta และคลิกฟิลด์ที่ เก็บ GitHub ที่เก็บที่ได้รับอนุญาตควรจะมองเห็นได้ นอกจากนี้ คุณอาจทำเครื่องหมายที่ช่องทำเครื่องหมาย Automatic deployment on commit เพื่อเปิดใช้งานคุณลักษณะของ MyKinsta เพื่อปรับใช้แอปพลิเคชันของคุณโดยอัตโนมัติทันทีที่คุณทำการเปลี่ยนแปลงใด ๆ กับที่เก็บ GitHub

การเลือกสาขาที่เก็บสำหรับ MyKinsta
ภาพหน้าจอสำหรับการเลือกสาขาพื้นที่เก็บข้อมูลสำหรับ MyKinsta

4. เพิ่มรายละเอียดพื้นฐานของแอปพลิเคชัน

ตอนนี้คุณสามารถตั้งชื่อแอปพลิเคชันที่จะใช้ในแดชบอร์ดเท่านั้น และเลือกจากตำแหน่งศูนย์ข้อมูล 25 แห่ง ทำให้คุณสามารถวางแอปพลิเคชันของคุณในตำแหน่งทางภูมิศาสตร์ที่ใกล้กับผู้ใช้ของคุณมากที่สุด หากคุณต้องการความช่วยเหลือในการพิจารณาว่าศูนย์ข้อมูลใดเหมาะสำหรับแอปพลิเคชันของคุณ โปรดดูคู่มือของเราเพื่อเลือกตำแหน่งที่ตั้งศูนย์ข้อมูลที่เหมาะสม

การเพิ่มรายละเอียดพื้นฐานของแอปพลิเคชัน
ภาพหน้าจอสำหรับเพิ่มรายละเอียดพื้นฐานของแอปพลิเคชัน

5. เพิ่มตัวแปรสภาพแวดล้อม

ส่วนต่อไปนี้ใช้สำหรับเพิ่มตัวแปรสภาพแวดล้อม และตัวแปรที่สำคัญที่สุดคือ APP_KEY

หากคุณยังไม่มีคีย์ในไฟล์ .env คุณสามารถสร้างคีย์ได้โดยใช้โปรแกรมสร้างคีย์ Laravel ออนไลน์ จากนั้นใส่ APP_KEY ในช่อง คีย์ 1 และใส่รหัสแอปที่สร้างขึ้นในช่อง ค่า 1

สุดท้าย เลือก พร้อมใช้งานระหว่างรันไทม์ และ พร้อมใช้งานระหว่างกระบวนการสร้าง

การเพิ่มตัวแปร env ให้กับแอปพลิเคชัน MyKinsta
ภาพหน้าจอสำหรับการเพิ่มตัวแปร env ให้กับแอปพลิเคชัน MyKinsta

5. กำหนดค่าสภาพแวดล้อมการสร้าง

สิ่งมหัศจรรย์ที่นี่คือคุณไม่ต้องกำหนดค่าอะไรเลย! คุณสามารถดำเนินการต่อโดยคลิกที่ปุ่ม ดำเนิน การต่อ และ voila! คุณได้ทำการกำหนดค่าสภาพแวดล้อมที่สร้างขึ้นเรียบร้อยแล้ว อย่างไรก็ตาม หากคุณต้องการปรับปรุงทรัพยากรการสร้างเพื่อให้แน่ใจว่าการสร้างเร็วขึ้น คุณอาจเลือกตัวเลือกที่ต้องการจากฟิลด์ ทรัพยากรการสร้าง

ช่อง Build path เป็นตัวเลือก — คุณสามารถเว้นว่างไว้และ MyKinsta จะใช้โฟลเดอร์รูท

สภาพแวดล้อมการสร้างแอปพลิเคชัน MyKinsta
การกำหนดค่าสภาพแวดล้อมบิลด์ของแอปพลิเคชัน

6. ตั้งค่ากระบวนการและวิธีการชำระเงิน

สำหรับส่วน ทรัพยากร ให้กรอกข้อมูลต่อไปนี้ในแต่ละช่อง:

  • ชื่อกระบวนการ: ชื่อที่แสดงในรายการกระบวนการของแอปพลิเคชันของคุณ
  • ประเภทกระบวนการ: เลือกอย่างระมัดระวัง เนื่องจากไม่สามารถเปลี่ยนแปลงได้เมื่อตั้งค่าแล้ว อย่างไรก็ตาม คุณสามารถเพิ่มและเปลี่ยนแปลงกระบวนการเพิ่มเติม เช่น งานเบื้องหลัง ในหน้า กระบวนการ ของแอปพลิเคชันของคุณหลังจากการปรับใช้
  • คำสั่ง Start: คำสั่ง “Start” สำหรับกระบวนการของคุณ (ไม่จำเป็น)
  • ขนาดพ็อด: ความจุพ็อดที่คุณคาดว่าจะต้องใช้สำหรับกระบวนการของคุณ
  • จำนวนอินส แตนซ์: จำนวนอินสแตนซ์สำหรับกระบวนการของคุณ (สูงสุด 50)

โปรดทราบว่าคุณสามารถคลิกดำเนินการ ต่อ โดยไม่ต้องกรอกช่อง คำสั่ง Start เนื่องจาก Kinsta จะตรวจหาคำสั่งที่จำเป็นโดยอัตโนมัติในระหว่างการปรับใช้ครั้งแรก

ขั้นตอนการตั้งค่าแอปพลิเคชัน MyKinsta
ภาพหน้าจอสำหรับตั้งค่าขั้นตอนการสมัคร

สำหรับขั้นตอนสุดท้าย ให้ตรวจสอบค่าใช้จ่ายการใช้งานรายเดือนที่คำนวณสำหรับแอปของคุณ จากนั้นยืนยันวิธีการชำระเงินของคุณ เมื่อเสร็จแล้ว ให้คลิกปุ่ม ยืนยันวิธีการชำระเงิน

การยืนยันรายละเอียดการชำระเงินสำหรับ MyKinsta
ภาพหน้าจอสำหรับยืนยันรายละเอียดการชำระเงิน

เสร็จแล้ว! Kinsta จะทำงานทั้งหมดในพื้นหลังเพื่อให้บริการแอปพลิเคชันของคุณ

กำลังโหลดกระบวนการปรับใช้ของแอปพลิเคชัน
ภาพหน้าจอสำหรับการโหลดกระบวนการปรับใช้ของแอปพลิเคชัน

จากนั้น คุณจะสามารถเข้าถึงรายละเอียดขั้นตอนการปรับใช้ทั้งหมด ตลอดจน URL ของแอปที่ใช้งานอยู่ชั่วคราว ซึ่งคุณสามารถแทนที่ด้วยโดเมนของคุณเองได้ในภายหลัง

ปรับใช้สำเร็จสำหรับแอปพลิเคชัน
การปรับใช้แอปพลิเคชัน Laravel10 บน MyKinsta สำเร็จ

แอปพลิเคชัน Laravel 10 ของคุณใช้งานได้บน Kinsta แล้ว แต่ถ้าคุณต้องการเปลี่ยนแปลงการผลิตล่ะ ถ้าเราต้องการเปลี่ยนแอตทริบิวต์ href ของแท็กสมอจะเป็นอย่างไร เนื่องจากเราได้เปิดใช้งานฟีเจอร์ Automatic Deployment on Commit แล้ว MyKinsta จะตรวจจับการเปลี่ยนแปลงใดๆ ที่เราทำกับสาขาที่ปรับใช้และอัปเดตแอปสดโดยอัตโนมัติตามนั้น

7. เชื่อมต่อ Laravel 10 กับฐานข้อมูล MySQL

ตอนนี้เราได้ปรับใช้แอปพลิเคชัน Laravel 10 แล้ว เราสามารถสร้างฐานข้อมูลและเชื่อมโยงกับแอปพลิเคชันของเราได้อย่างง่ายดาย สิ่งที่คุณต้องทำคือคลิก แอปพลิเคชัน จากเมนูการนำทางทางด้านซ้าย จากนั้น คลิกเพิ่มบริการ และเลือก ฐานข้อมูล

การเพิ่มฐานข้อมูลใหม่ใน MyKinsta
ภาพหน้าจอสำหรับเพิ่มฐานข้อมูลใหม่ใน MyKinsta

หลังจากกรอกทุกช่องแล้ว ให้คลิก สร้างฐานข้อมูล สิ่งนี้จะสร้างฐานข้อมูลใหม่ที่พร้อมสำหรับการเชื่อมต่อภายในและภายนอก ในสถานการณ์ของเรา เราต้องการการเชื่อมต่อภายในกับโปรเจ็กต์ Laravel 10 ที่เราปรับใช้

เพื่อให้บรรลุเป้าหมายนั้น สิ่งที่คุณต้องทำคือคลิก เพิ่มแอปพลิเคชัน ในส่วน การเชื่อมต่อภายใน และเลือกแอปพลิเคชันของคุณ คุณสามารถทำเครื่องหมายในช่องทำเครื่องหมาย เพิ่มตัวแปรสภาพแวดล้อมในแอปพลิเคชัน และ .env จะเติมตัวแปร .env ทั้งหมดที่แอปพลิเคชันของคุณต้องการ

กำลังเชื่อมต่อฐานข้อมูลกับแอป Laravel 10
ภาพหน้าจอการเชื่อมต่อฐานข้อมูลกับแอปพลิเคชัน Laravel 10

เพียงเท่านี้ แอปพลิเคชัน Laravel 10 ของคุณจะถูกปรับใช้และเชื่อมต่อกับฐานข้อมูล

วิธีมีส่วนร่วมใน Laravel 10

แม้ว่า Laravel จะได้รับการดูแลโดยทีมหลัก แต่ก็มีการพัฒนาอย่างต่อเนื่องโดยอาสาสมัครกว่า 3,000 คน

คุณต้องการเป็นหนึ่งในผู้มีส่วนร่วมและช่วยกำหนดอนาคตของ Laravel หรือไม่? หากคุณตอบว่าใช่ คุณสามารถช่วยนักพัฒนาทั่วโลกได้โดยการเพิ่มคุณสมบัติใหม่ แก้ไขจุดบกพร่อง หรือแม้กระทั่งเขียนส่วนที่สับสนของเอกสารประกอบใหม่

ในการมีส่วนร่วมกับ Laravel 10 นี่คือสิ่งที่คุณต้องทำ:

  1. ไปที่ที่เก็บ GitHub ของ Laravel และตรวจสอบคำขอดึงที่ติดแท็กด้วย [10.x] ในชื่อเรื่อง สิ่งนี้จะช่วยให้คุณเห็นภาพที่ชัดเจนของคำขอดึงทั้งหมดสำหรับ Laravel 10 หากหนึ่งใน PR กล่าวถึงการสนับสนุนที่คุณตั้งใจจะทำ ให้ดูว่าคุณสามารถปรับปรุงได้หรือไม่
  2. หากการบริจาคตามแผนของคุณยังไม่ได้รับการตอบรับจากผู้อื่น คุณอาจสร้าง PR ด้วยตนเอง
  3. ไม่ใช่ทุกสิ่งที่ควรค่าแก่การเพิ่มลงในโค้ดเบสเฟรมเวิร์ก ดังนั้น พยายามใช้เฉพาะการปรับปรุงที่จะง่ายต่อการบำรุงรักษาในอนาคต และจะช่วยชุมชน Laravel ส่วนใหญ่
  4. ตรวจสอบให้แน่ใจว่าได้ปฏิบัติตามแนวทางการสนับสนุนของ Laravel เพื่อโอกาสที่ดีขึ้นในการรวมการเปลี่ยนแปลงของคุณเข้ากับเฟรมเวิร์ก

อีกเหตุผลหนึ่งที่คุณรัก Laravel 10 ก็คือมันช่วยให้คุณได้เงินจากการมีส่วนร่วมของคุณด้วยการล่าแมลง! เราจะดูสิ่งต่อไป

การแข่งขัน Laravel 10 Bug Hunt

การแข่งขันล่าแมลง Laravel 10
การแข่งขันล่าแมลง Laravel 10

Laravel 10 ได้ประกาศการแข่งขันที่ยอดเยี่ยมซึ่งผู้มีส่วนร่วมสุ่มมีโอกาสชนะ $1,000

นี่จะเป็นการแข่งขันครั้งแรกในประวัติศาสตร์ของ Laravel ออกแบบมาเพื่อกระตุ้นให้ชุมชนค้นหาและแก้ไขข้อบกพร่องที่ซ่อนอยู่ใน Laravel 10

กฎนั้นตรงไปตรงมา:

  • เฉพาะ PR ที่ส่งไปยังสาขา 10.x ของที่เก็บ laravel/framework เท่านั้นที่มีสิทธิ์
  • จะพิจารณาเฉพาะการแก้ไขข้อบกพร่อง "ของแท้" เท่านั้น คุณลักษณะใหม่ การปรับโครงสร้างใหม่ และการแก้ไขข้อผิดพลาดจะไม่ได้รับการพิจารณา
  • ทุกการแก้ไขข้อผิดพลาดต้องได้รับการสนับสนุนจากการทดสอบ
  • การแก้ไขข้อบกพร่องที่ได้รับการยอมรับจะมีป้ายกำกับบน GitHub และจะมีการประกาศผู้ชนะแบบสุ่มเมื่อสิ้นสุดการแข่งขัน

การแข่งขันจะสิ้นสุดเมื่อ Laravel 10 เวอร์ชันเสถียรเปิดตัว คำขอดึงใดๆ ที่ยังคงรอดำเนินการตามเวลานั้นหรือส่งหลังจากการเปิดตัว Laravel 10 จะไม่มีสิทธิ์

สรุป

นั่นไม่ใช่สำหรับบทความนี้! จะมีการเปลี่ยนแปลงเพิ่มเติมจนถึงวันวางจำหน่าย แต่ในขณะนี้ Laravel 10 ดูเหมือนจะมีแนวโน้มที่ดีอย่างมาก และเรารู้สึกตื่นเต้นที่จะได้นำเสนอของขวัญทั้งหมดที่นำมาสู่โลกของ PHP

ในระหว่างนี้ หากคุณกำลังมองหาวิธีเพิ่มเติมในการปรับปรุงประสิทธิภาพของแอป Laravel ของคุณ คุณอาจพิจารณาเปลี่ยนไปใช้ผู้ให้บริการโฮสติ้งระดับพรีเมียม โซลูชันการโฮสต์แอปพลิเคชันของ Kinsta เป็นหนึ่งในโซลูชันที่เร็วที่สุด ปลอดภัยที่สุด และใช้งานง่ายที่สุดในอุตสาหกรรม และได้รับการออกแบบมาโดยเฉพาะโดยคำนึงถึงนักพัฒนาเป็นหลัก โดยเสนอการปรับปรุงประสิทธิภาพการผลิตและการสนับสนุนโดยผู้เชี่ยวชาญตลอด 24 ชั่วโมงทุกวันจากนักพัฒนาที่ช่ำชองของเราเอง