Phiên bản php nào được yêu cầu cho laravel 9?
Bài viết này hướng dẫn nhanh các bước cần thiết để nâng cấp từ PHP7. x đến 8. 1 và Laravel v8 đến v9 Show
Vì Laravel 9 hiện yêu cầu PHP 8, tôi nghĩ đây sẽ là một tài liệu tham khảo hữu ích để giải quyết tác vụ Tiếp cận Không cần phải nói, nhưng trước tiên hãy đảm bảo bạn chạy qua quy trình này trên môi trường thử nghiệm để đảm bảo quá trình nâng cấp sản xuất diễn ra suôn sẻ sau khi chắc chắn rằng mọi thứ đều hoạt động PHP sẽ cần được nâng cấp trước Laravel, vì chúng ta sẽ gặp phải các vấn đề phụ thuộc vào Trình soạn thảo nếu cố gắng thực hiện điều này theo cách khác Nâng cấp PHPThực hiện theo các bước sau để nhận PHP 8. 1 lên và chạy trong môi trường của bạn Các bước nâng cấp1. Hãy bắt đầu bằng cách đảm bảo rằng chúng tôi đã thêm kho lưu trữ PPA, để chúng tôi có thể cài đặt PHP 8. 1. Chạy hai lệnh này
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình 2. Bây giờ chúng tôi cập nhật các gói của chúng tôi
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình 3. Bây giờ chúng ta có thể cài đặt PHP8. 1 cùng với các thư viện cần thiết cho Laravel
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
4. Tiếp theo, chúng tôi sẽ cần cập nhật đường dẫn FPM trong máy chủ Nginx của chúng tôi
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Trong ví dụ này, chúng tôi đang nâng cấp từ 7. 4, vì vậy chúng tôi sẽ thay đổi điều này
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình để này
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình 5. Cuối cùng, chúng tôi lưu tệp và khởi động lại Nginx và FPM
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Nâng cấp LaravelPhần này có thể khá phức tạp nếu bạn sử dụng nhiều thư viện. Lời khuyên của tôi ở đây là kiểm tra trạng thái của các phụ thuộc mà bạn sử dụng (tôi. e. trong Packagist hoặc GitHub) và đảm bảo chúng tuân thủ Laravel 9 Một lưu ý khác là rất hay gặp lỗi phụ thuộc khi chạy nâng cấp, vì nhiều thư viện yêu cầu nâng cấp phiên bản để hỗ trợ Laravel 9 Nếu điều này xảy ra, hãy chạy 1 để có đầu ra dài dòng và kiểm tra xem những gì được yêu cầu. Thông thường, tất cả thông tin đều có ở đó và việc khắc phục sự cố thường là cập nhật tham chiếu phiên bản trong 2 lên phiên bản mới nhấtchỉnh sửa nhà soạn nhạcTheo tài liệu, bạn cần thực hiện một số cập nhật 2 bắt buộcChi tiết tại đây. https. // ấu trùng. com/docs/9. x/nâng cấp#cập nhật phụ thuộc Và như đã đề cập ở trên, hãy kiểm tra từng phần phụ thuộc trong 2 của bạn để đảm bảo khả năng tương thích với Laravel 9Thực hiện theo Hướng dẫn nâng cấpPhần này tự mở rộng - chạy qua toàn bộ hướng dẫn nâng cấp để xem có bất kỳ cơ sở mã nào của bạn bị ảnh hưởng không Chi tiết tại đây. https. // ấu trùng. com/docs/9. x/nâng cấp Hầu hết mọi người đều thấy quá trình di chuyển v8 - v9 khá đơn giản, với những thay đổi vi phạm tối thiểu. Trên thực tế, quá trình này chỉ mất 15-20 phút đối với các codebase không phức tạp Chạy bản cập nhậtĐể bắt đầu cập nhật, hãy chạy 1. Nếu bạn gặp vấn đề về khả năng tương thích trong khi thử cập nhật, hãy kiểm tra các phần phụ thuộc của bạn và thực hiện các cập nhật phù hợp trong 2 Laravel v9 là phiên bản chính tiếp theo của Laravel và được phát hành vào ngày 8 tháng 2 năm 2022. Trong bài đăng này, chúng tôi muốn phác thảo tất cả các tính năng và thay đổi mới trong phiên bản này Thay đổi ngày phát hành Laravel 9Laravel v9 đã được lên kế hoạch phát hành vào khoảng tháng 9 năm nay, nhưng Nhóm Laravel đã quyết định đẩy bản phát hành này trở lại tháng 2 năm 2022
Điều này cũng sẽ đẩy lùi các bản phát hành chính trong tương lai và đây là lịch trình sắp tới
PHP 8 phiên bản tối thiểu trong Laravel 9Vì Laravel 9 sẽ yêu cầu Symfony 6. 0 và nó có yêu cầu tối thiểu là PHP 8, có nghĩa là Laravel 9 sẽ có cùng hạn chế này Thiết kế mới cho các tuyến đường. danh sáchLệnh 1 đã được đưa vào Laravel từ lâu và một vấn đề đôi khi phát sinh là nếu bạn có một định tuyến lớn và phức tạp được xác định, nó có thể trở nên lộn xộn khi cố gắng xem chúng trong bảng điều khiển. Nhờ yêu cầu kéo từ Nuno Maduro, điều này đang được thay đổiTùy chọn phạm vi thử nghiệm mớiTùy chọn 2 mới sẽ hiển thị phạm vi kiểm tra trực tiếp trên thiết bị đầu cuối. Nó cũng bao gồm một tùy chọn 3 mà bạn có thể sử dụng để chỉ ra ngưỡng thực thi tối thiểu cho phạm vi kiểm traAnonymous Stub MigrationĐầu năm nay, Laravel 8. 37 đã ra mắt với một tính năng mới gọi là Di chuyển ẩn danh giúp ngăn xung đột tên lớp di chuyển 1Khi Laravel 9 khởi chạy, đây sẽ là mặc định khi bạn chạy 4Giao diện Trình tạo Truy vấn MớiNhờ Chris Morrell, Laravel 9 sẽ có Giao diện Trình tạo truy vấn mới và bạn có thể xem PR được hợp nhất này để biết tất cả các chi tiết
6Tính năng này bổ sung giao diện 8 mới và đặc điểm 9 triển khai giao diện thay cho triển khai 90 hiện cóCác hàm chuỗi PHP 8Vì PHP 8 sẽ là mức tối thiểu, Tom Schlick đã gửi PR để chuyển sang sử dụng các hàm 91, 92 và 93 bên trong lớp 94Từ SwiftMailer đến Symfony MailerHỗ trợ Symfony Mailer được đóng góp bởi Dries Vints, James Brooks và Julius Kiekbusch Các bản phát hành trước của Laravel đã sử dụng thư viện Swift Mailer để gửi email đi. Tuy nhiên, thư viện đó không còn được duy trì và đã được thành công bởi Symfony Mailer Vui lòng xem lại hướng dẫn nâng cấp để tìm hiểu thêm về cách đảm bảo ứng dụng của bạn tương thích với Symfony Mailer hệ thống ruồi 3. xhệ thống ruồi 3. hỗ trợ x được đóng góp bởi Dries Vints ấu trùng 9. x nâng cấp phụ thuộc Flysystem ngược dòng của chúng tôi lên Flysystem 3. x. Flysystem hỗ trợ tất cả các tương tác hệ thống tệp được cung cấp bởi mặt tiền 95Cải tiến Eloquent Accessors / MutatorsTrình truy cập / trình biến đổi Eloquent được cải thiện được đóng góp bởi Taylor Otwell ấu trùng 9. x cung cấp một cách mới để xác định bộ truy cập và bộ biến đổi Eloquent. Trong các bản phát hành trước của Laravel, cách duy nhất để xác định bộ truy cập và bộ biến đổi là xác định các phương thức có tiền tố trên mô hình của bạn như vậy ________số 8Tuy nhiên, trong Laravel 9. x, bạn có thể xác định một trình truy cập và trình biến đổi bằng một phương thức duy nhất, không có tiền tố bằng cách gợi ý kiểu một kiểu trả về là 96 9Ngoài ra, cách tiếp cận mới này để xác định bộ truy cập sẽ lưu trữ các giá trị đối tượng được trả về bởi thuộc tính, giống như các lớp truyền tùy chỉnh 8Ràng buộc định tuyến ẩn với EnumsCác ràng buộc Enum ngầm được đóng góp bởi Nuno Maduro PHP8. 1 giới thiệu hỗ trợ cho Enums. ấu trùng 9. x giới thiệu khả năng gõ gợi ý Enum trên định nghĩa tuyến đường của bạn và Laravel sẽ chỉ gọi tuyến đường nếu đoạn tuyến đường đó là một giá trị Enum hợp lệ trong URI. Nếu không, phản hồi HTTP 404 sẽ tự động được trả về. Ví dụ: đưa ra Enum sau 9Bạn có thể xác định tuyến đường sẽ chỉ được gọi nếu đoạn tuyến đường 97 là 98 hoặc 99. Nếu không, phản hồi HTTP 404 sẽ được trả về 3Nhóm tuyến điều khiểnCải tiến nhóm tuyến đường được đóng góp bởi Luke Downing Bây giờ bạn có thể sử dụng phương pháp 80 để xác định bộ điều khiển chung cho tất cả các tuyến trong nhóm. Sau đó, khi xác định các tuyến đường, bạn chỉ cần cung cấp phương thức điều khiển mà chúng gọi 5Truyền thuộc tính Enum Eloquent
Đúc Enum được đóng góp bởi Mohamed Said Eloquent hiện cho phép bạn truyền các giá trị thuộc tính của mình sang PHP enums. Để thực hiện điều này, bạn có thể chỉ định thuộc tính và enum mà bạn muốn truyền trong mảng thuộc tính 81 của mô hình 7Sau khi bạn đã xác định kiểu truyền trên mô hình của mình, thuộc tính được chỉ định sẽ tự động được truyền tới và từ một enum khi bạn tương tác với thuộc tính 8ràng buộc phạm vi cưỡng bứcCác ràng buộc phạm vi cưỡng bức được đóng góp bởi Claudio Dekker Trong các bản phát hành trước của Laravel, bạn có thể muốn xác định phạm vi của Eloquent model thứ hai trong định nghĩa route sao cho nó phải là con của Eloquent model trước đó. Ví dụ: hãy xem xét định nghĩa tuyến đường này truy xuất một bài đăng trên blog bằng sên cho một người dùng cụ thể 60Khi sử dụng liên kết ẩn có khóa tùy chỉnh làm tham số định tuyến lồng nhau, Laravel sẽ tự động xác định phạm vi truy vấn để truy xuất mô hình lồng nhau bởi cha của nó bằng cách sử dụng các quy ước để đoán tên mối quan hệ trên cha. Tuy nhiên, hành vi này trước đây chỉ được hỗ trợ bởi Laravel khi khóa tùy chỉnh được sử dụng cho liên kết tuyến đường con Tuy nhiên, trong Laravel 9. x, bây giờ bạn có thể hướng dẫn Laravel xác định phạm vi liên kết "con" ngay cả khi khóa tùy chỉnh không được cung cấp. Để làm như vậy, bạn có thể gọi phương thức 82 khi xác định tuyến đường của mình 61Hoặc, bạn có thể hướng dẫn toàn bộ nhóm định nghĩa tuyến đường sử dụng các liên kết có phạm vi 62Laravel Breeze API & Tiếp theo. jsGiàn giáo API Laravel Breeze và Tiếp theo. js được đóng góp bởi Taylor Otwell và Miguel Piedrafita Bộ khởi động Laravel Breeze đã nhận được chế độ giàn giáo "API" và Next miễn phí. triển khai giao diện người dùng js. Giàn giáo bộ công cụ khởi động này có thể được sử dụng để khởi động các ứng dụng Laravel của bạn đang phục vụ như một phụ trợ, API được xác thực của Laravel Sanctum cho giao diện người dùng JavaScript Công cụ cơ sở dữ liệu trinh sát của LaravelCông cụ cơ sở dữ liệu Laravel Scout được đóng góp bởi Taylor Otwell và Dries Vints Nếu ứng dụng của bạn tương tác với các cơ sở dữ liệu có kích thước vừa và nhỏ hoặc có khối lượng công việc nhẹ, giờ đây bạn có thể sử dụng công cụ "cơ sở dữ liệu" của Scout thay vì một dịch vụ tìm kiếm chuyên dụng như Algolia hoặc MeiliSerach. Công cụ cơ sở dữ liệu sẽ sử dụng mệnh đề "where like" và chỉ mục toàn văn khi lọc kết quả từ cơ sở dữ liệu hiện tại của bạn để xác định kết quả tìm kiếm phù hợp cho truy vấn của bạn Chỉ mục toàn văn / Mệnh đề ở đâuChỉ mục toàn văn và mệnh đề "ở đâu" được đóng góp bởi Taylor Otwell và Dries Vints Khi sử dụng MySQL hoặc PostgreSQL, phương thức 83 hiện có thể được thêm vào định nghĩa cột để tạo chỉ mục toàn văn 63Ngoài ra, các phương thức 84 và 85 có thể được sử dụng để thêm mệnh đề "where" toàn văn vào truy vấn cho các cột có chỉ mục toàn văn. Các phương thức này sẽ được Laravel chuyển đổi thành SQL thích hợp cho hệ thống cơ sở dữ liệu bên dưới. Ví dụ: một mệnh đề 86 sẽ được tạo cho các ứng dụng sử dụng MySQL 64Kết xuất các mẫu lưỡi dao nội tuyếnĐôi khi, bạn có thể cần chuyển đổi chuỗi mẫu Blade thô thành HTML hợp lệ. Bạn có thể thực hiện việc này bằng cách sử dụng phương pháp 87 được cung cấp bởi mặt tiền 88. Phương thức 87 chấp nhận chuỗi mẫu Blade và một mảng dữ liệu tùy chọn để cung cấp cho mẫu 65Máy chủ Soketi EchoMáy chủ Soketi Echo được phát triển bởi Alex Renoki Mặc dù không dành riêng cho Laravel 9. x, Laravel gần đây đã hỗ trợ tài liệu về Soketi, một máy chủ Web Socket tương thích với Laravel Echo được viết cho Node. js. Soketi cung cấp giải pháp thay thế mã nguồn mở tuyệt vời cho Pusher và Ably cho những ứng dụng thích quản lý máy chủ Web Socket của riêng họ Bootstrap 5 Lượt xem phân trangLaravel hiện bao gồm các chế độ xem phân trang được xây dựng bằng Bootstrap 5. Để sử dụng các chế độ xem này thay cho các chế độ xem Tailwind mặc định, bạn có thể gọi phương thức 90 của trình phân trang trong phương thức 91 của lớp 92 của bạn 66Cải thiện trang ngoại lệ đánh lửaIgnition, trang gỡ lỗi ngoại lệ nguồn mở do Spatie tạo, đã được thiết kế lại từ đầu. Ignition mới, được cải tiến với Laravel 9. x và bao gồm các chủ đề sáng/tối, chức năng "mở trong trình chỉnh sửa" có thể tùy chỉnh, v.v. Người trợ giúp mớiấu trùng 9. x giới thiệu hai hàm trợ giúp mới, tiện lợi mà bạn có thể sử dụng trong ứng dụng của riêng mình
sudo apt install php8.1 php8.1-fpm php8.1-cli php8.1-curl php8.1-zip php8.1-mysql php8.1-mbstring php8.1-xml php8.1-bcmath
|