Hãy theo dõi mục tiêu của chúng tôi. Bây giờ chúng tôi đã nâng cấp lên Symfony 5. 4, ngay sau khi chúng tôi loại bỏ tất cả những thứ không dùng nữa, chúng tôi có thể nâng cấp lên Symfony 6 một cách an toàn. Nhưng Symfony 6 yêu cầu PHP 8 và tôi đã xây dựng dự án này trong PHP 7. Vì vậy, bước tiếp theo là cập nhật mã của chúng tôi để tương thích với PHP 8. Trong thực tế, điều đó có nghĩa là cập nhật các phần mã của chúng tôi để sử dụng một số tính năng mới thú vị của PHP 8. Woo. Và đây là một điểm khác mà Hiệu trưởng có thể giúp chúng tôi Show Bắt đầu bằng cách mở dòng 1 - 12trả về hàm tĩnh (ContainerConfigurator $containerConfigurator). khoảng trống {. dòng 14 - 22$containerConfigurator->import(LevelSetList. LÊN_TO_PHP_80);. dòng 24 - 29}; Và. đó là tất cả những gì chúng ta cần Tại thiết bị đầu cuối của bạn, tôi đã cam kết tất cả các thay đổi của mình, ngoại trừ thay đổi chúng tôi vừa thực hiện. Vì vậy, bây giờ chúng ta có thể chạy
Mát mẻ. Hãy xem qua một số thay đổi này. Nếu bạn muốn đi sâu hơn, hãy tìm kiếm một getrector. bài đăng trên blog của org, hướng dẫn bạn cách thực hiện những gì chúng tôi vừa thực hiện. mà còn cung cấp cho bạn thêm thông tin về những gì Hiệu trưởng đã làm và tại sao Ví dụ: một trong những thay đổi mà nó thực hiện là thay thế các câu lệnh Thay đổi quan trọng nhất, tình cờ lại là thay đổi phổ biến nhất, được gọi là "Thuộc tính được quảng cáo". Đây là một trong những tính năng yêu thích của tôi trong PHP 8 và bạn có thể xem nó ngay tại đây. Trong PHP 8, bạn có thể thêm từ khóa dòng 1 - 8class MarkdownExtension mở rộng AbstractExtension{public function __construct(private MarkdownHelper $markdownHelper){}. dòng 14 - 28} Phần lớn các thay đổi trong tệp này chính xác là như vậy. đây là một ví dụ khác trong dòng 1 - Trình trợ giúp Markdown lớp 8{. dòng 11 - 14phân tích hàm công khai (chuỗi $source). chuỗi{. dòng 17 - 24return $this->cache->get('markdown_'. md5($source), fn() => $this->markdownParser->transformMarkdown($source));}} Bạn cũng có thể xem ở dưới đây một ví dụ về tái cấu trúc các câu lệnh dòng 1 - lớp 11 Câu hỏi Người bình chọn mở rộng Người bình chọn{. dòng 14 - 24hàm được bảo vệ voteOnAttribute(string $attribute, $subject, TokenInterface $token). bool{. dòng 27 - 40 kết quả trả về ($attribute) {'EDIT' => $user === $subject->getOwner(),default => false,};}} Tất cả điều này là tùy chọn, nhưng thật tuyệt khi mã của chúng tôi đã được cập nhật để sử dụng một số tính năng mới. Nếu tôi cuộn xuống thêm một chút nữa, bạn sẽ thấy thêm những thứ này Ồ, và bên trong các thực thể của chúng ta, lưu ý rằng, trong một số trường hợp, nó đã thêm các loại thuộc tính. Đối với dòng 1 - 15 lớp Người dùng triển khai Giao diện người dùng{. dòng 18 - 29mảng riêng $roles = [];. dòng 34 - 226} Trong các trường hợp khác, chẳng hạn như dòng 1 - 15 lớp Người dùng triển khai Giao diện người dùng{. dòng 18 - 34 private string $password;. dòng 40 - 226} Mặc dù, đây là một chút nghi vấn. Mở dòng 1 - 15 lớp Người dùng triển khai Giao diện người dùng{. dòng 18 - 34 private ?string $password = null;. dòng 40 - 226} Một trong những thay đổi lớn nhất mà tôi đã thực hiện trong mã của mình trong khoảng một năm qua kể từ PHP 7. 3 đã được phát hành, đã thêm các loại thuộc tính như thế này, cả trong các lớp thực thể và cả các lớp dịch vụ của tôi. Nếu điều này hơi khó hiểu, đừng lo lắng. Chúng ta sẽ nói nhiều hơn về các loại thuộc tính bên trong thực thể trong vài phút nữa. Bạn có thể thấy rằng Hiệu trưởng đã thêm một số, nhưng rất nhiều tài sản của chúng tôi vẫn còn thiếu chúng Được rồi, mã của chúng ta bây giờ đã sẵn sàng cho PHP 8. vâng. Vì vậy, hãy nâng cấp các phụ thuộc của chúng tôi cho PHP 8. Trong {. dòng 2 - 5"yêu cầu". {"php". "^8. 0. 2",. dòng 8 - 45},. dòng 47 - 109} Nhân tiện, Symfony 6. 1 yêu cầu PHP 8. 1. Vì vậy, nếu bạn sẽ sớm nâng cấp lên phiên bản đó, bạn có thể chuyển thẳng lên 8. 1 Có một thứ khác tôi có ở đây gần cuối. Hãy xem nào. chúng ta đi đây. Vào ngày {. dòng 2 - 56"config". {. dòng 58 - 61"nền tảng". {"php". "số 8. 0. 2"},. dòng 65 - 68},. dòng 70 - 109} Ngọt. Và bây giờ, vì chúng tôi đang sử dụng PHP 8 trong dự án của mình, nên rất có thể một số phụ thuộc sẽ đủ điều kiện để cập nhật. Chạy Và. vâng. có một số. Có vẻ như tất cả Một điều khác trong một lần nữa. Đẹp Được rồi, đội. Dự án của chúng tôi hiện đang sử dụng PHP 8. Để ăn mừng, hãy tái cấu trúc từ việc sử dụng chú thích thành thuộc tính gốc của PHP 8. OOOoo. Tôi yêu sự thay đổi này. một phần vì Hiệu trưởng làm cho nó cực kỳ dễ dàng Symfony có hoạt động với PHP 8 không?PHP đang bước vào một kỷ nguyên vàng mới với việc phát hành PHP 8 và Symfony sẽ hoàn toàn tương thích kể từ ngày đầu tiên .
Sự khác biệt giữa Symfony 4 và 5 là gì?Nhanh hơn và gọn gàng hơn
. phiên bản x. Nâng cấp ngay bây giờ để làm cho các ứng dụng của bạn bay.
Làm cách nào để kiểm tra các yêu cầu của Symfony?Kiểm tra Yêu cầu đối với Máy chủ Web
. php trong thư mục web/của dự án của bạn. Mở tệp đó bằng trình duyệt của bạn để kiểm tra các yêu cầu . Khi bạn đã khắc phục tất cả các sự cố được báo cáo, hãy xóa web/config.
Symfony có dựa trên PHP không?Symfony là khung ứng dụng web PHP mã nguồn mở và miễn phí và một bộ thư viện thành phần PHP có thể tái sử dụng. |