Làm cách nào để cập nhật phiên bản Symfony trong một dự án?

Với việc phát hành Symfony Framework 4. 1 rất nhiều cập nhật thú vị có sẵn. Dưới đây là tổng quan về cách cập nhật Symfony 4 của bạn. 0 dự án cho Symfony 4. 1. Nếu bạn cần nâng cấp từ phiên bản chính khác với phiên bản 4, vui lòng tham khảo hướng dẫn này

Nâng cấp từ Symfony 2. 6 lên phiên bản mới nhất sẽ là một nhiệm vụ hơi tẻ nhạt. Đã lâu rồi kể từ Symfony 2. 6 đã được giới thiệu, vì vậy sẽ có rất nhiều thay đổi trong phiên bản mới nhất

Chúng tôi sẽ đề cập đến những thay đổi lớn trong blog này. Thay vì nâng cấp trực tiếp lên phiên bản Symfony LTS, đầu tiên chúng ta sẽ nâng cấp lên Symfony 2. 8 rồi 3. 4, sau đó là Bản giao hưởng 4. 4

Tất nhiên, việc này sẽ mất một lúc, nhưng đây là cách tốt nhất để chuyển sang phiên bản mới nhất. Mặc dù Symfony cố gắng hết sức để tránh phá vỡ khả năng tương thích ngược, nhưng có một số điều cần phải thay đổi. Vì vậy, không cần thêm thời gian, hãy bắt đầu

Nâng cấp lên Symfony 2. 8

Chuyển đến nhà soạn nhạc. json và sửa đổi,

“require”: {

“symfony/symfony”: “2.8.*”

}

Mở terminal của bạn và chạy lệnh,

composer update symfony/symfony --with-dependencies

Điều này cũng sẽ cập nhật các phụ thuộc của bạn

Bạn có thể kiểm tra phiên bản Symfony bằng app/console –version

Bây giờ hãy xem liệu dự án của chúng ta có còn hoạt động không. Chà, vì không có nhiều thay đổi ngoại trừ một thay đổi lớn, tôi. e, trường ChoiceType

  • Quy ước tùy chọn “lựa chọn” đã được thay đổi từ giá trị => nhãn thành nhãn => giá trị

Đối với những thay đổi nhỏ khác, bạn có thể tham khảo https. //github. com/knpuniversity/blog/blob/master/upgrading-symfony-2. 7. md, nó bao gồm gần như tất cả các thay đổi

Nếu mọi thứ đều ổn, đã đến lúc chuyển sang Symfony 3, nhưng trước đó, chúng ta nên loại bỏ những lời phản đối trong mã

Nâng cấp lên Symfony 3

Khấu hao

  • Tên loại không được dùng nữa và bây giờ bạn nên sử dụng Tên lớp đủ điều kiện trong biểu mẫu Symfony.
    Trước đây.
    $form = $this->createFormBuilder[]
    
        ->add['name', 'text']
    
        ->add['age', 'integer']
    
        ->getForm[];

    Bây giờ, bạn nên thay đổi nó thành

    use Symfony\Component\Form\Extension\Core\Type\IntegerType;
    
    use Symfony\Component\Form\Extension\Core\Type\TextType;
    
    $form = $this->createFormBuilder[]
    
        ->add['name', TextType::class]
    
        ->add['age', IntegerType::class]
    
        ->getForm[];

    Thông tin thêm về Tên loại có thể được tìm thấy trong hướng dẫn nâng cấp. https. //github. com/symfony/symfony/blob/2. 8/NÂNG CẤP-2. 8. md

  • Một thay đổi khác là FormTypeInterface. getName[] được thay thế bằng FormTypeInterface. getBlockPrefix[]
  • Chuyển thể hiện loại vào Biểu mẫu. thêm [], FormBuilder. add[] và FormFactory. các phương thức tạo*[] không được dùng nữa và sẽ không được hỗ trợ nữa trong Symfony 3. 0. Thay vào đó, hãy chuyển tên lớp đủ điều kiện của loại.
    Trước đây.
    $form = $this->createForm[new MyType[]];

    Sau

    $form = $this->createForm[MyType::class];

    Thực hiện các thay đổi khác trong mã theo hướng dẫn nâng cấp trước khi chuyển sang Symfony 3 vì tất cả các lỗi không dùng nữa đều bị xóa trong phiên bản này. Vì vậy, nó thực sự quan trọng

khoai mỡ

  • Sử dụng dấu hai chấm trong giá trị ánh xạ không được trích dẫn dẫn đến ParseException
  • Bắt đầu một chuỗi không được trích dẫn bằng @, `,. hoặc > dẫn đến ParseException

Tham khảo hướng dẫn nâng cấp này để biết thêm chi tiết. https. //github. com/symfony/symfony/blob/3. 0/NÂNG CẤP-3. 0. md

Di chuyển đến cấu trúc thư mục Symfony 3

Thư mục Var

  • Thư mục var hiện chứa các tệp nhật ký và bộ đệm thay vì thư mục ứng dụng
  • Tạo thư mục trong thư mục gốc và di chuyển các tệp trong đó
    • mkdir var
    • Ứng dụng mv/bộ đệm var/
    • Ứng dụng mv/nhật ký var/
  • Để cập nhật dự án và các thay đổi sẽ diễn ra, hãy thực hiện các thay đổi sau trong app/Appkernel. php
    public function getRootDir[]    {        return __DIR__;    }
    
    public function getCacheDir[]
    
        {
    
            return dirname[__DIR__].'/var/cache/'.$this->environment;
    
        }
    
    public function getLogDir[]
    
        {
    
            return dirname[__DIR__].'/var/logs';
    
        }
  • Bây giờ, chúng ta cần cập nhật đường dẫn trong trình soạn thảo. json nữa
    Trong trình soạn nhạc. json, bên dưới thuộc tính bổ sung thêm các dòng sau
    • “symfony-var-dir”. "var",
    • “symfony-bin-dir”. "thùng rác"
  • Di chuyển bảng điều khiển vào thùng
    • Ứng dụng Mv/thùng bảng điều khiển/bảng điều khiển
    • Mở nó và thay thế require_once __DIR__. ’/bootstrap. php. bộ đệm'; . ’/. /ứng dụng/tự động tải. php’;

Bây giờ cho bước tiến lớn tiếp theo

Thực hiện các thay đổi trong nhà soạn nhạc. tập tin json,

“require”: {

“symfony/symfony”: “3.4.*”

}

Chúng tôi đang chuyển sang phiên bản 3. 4 vì đây là phiên bản hỗ trợ dài hạn và được khuyến nghị

Trong khi chạy lệnh “cập nhật nhà soạn nhạc”, có thể xảy ra một số lỗi khi nâng cấp lên phiên bản này do các yếu tố phụ thuộc

Nó có thể là một ý tưởng tốt để điều hướng đến https. // người đóng gói. org/ và tìm các phiên bản tiêu chuẩn của các gói và thực hiện các thay đổi trong trình soạn thảo. json tương ứng

Ví dụ. Bạn có thể gặp lỗi “sensio/distribution-bundle yêu cầu Symfony/ process ở phiên bản 2. 2”, Vì vậy, tất cả những gì bạn cần làm là cài đặt Symfony/ process bundle trước và sau đó chạy lại “ Composer require sensio/distribution-bundle ”, lần này nó sẽ hoạt động bình thường

Bạn cũng sẽ cần phải xử lý mọi lỗi như thế này đối với các gói khác, lúc đầu có thể hơi khó chịu nhưng sau khi xử lý xong bạn sẽ cảm thấy nhẹ nhõm

  • Cuối cùng chạy, composer update symfony/symfony –with-dependencies
  • Ngoài ra, hãy cân nhắc nâng cấp phiên bản PHP vì hầu hết các gói không hỗ trợ các phiên bản bên dưới PHP 7. 0

Nâng cấp lên Symfony 4

Sự khác biệt duy nhất giữa Symfony 3. 4 và Symfony 4 khác với cấu trúc thư mục là tất cả các lỗi không dùng nữa đều bị xóa trong Symfony 4

Dưới đây là sơ lược về sự khác biệt giữa cấu trúc thư mục của Symfony 3 và Symfony 4

Thông tin thêm có thể được tìm thấy trong hướng dẫn nâng cấp ở đây. https. //github. com/symfony/symfony/blob/4. 0/NÂNG CẤP-4. 0. md

Bạn có thể chọn chuyển sang cấu trúc thư mục mới hoặc bạn có thể ở lại với cấu trúc hiện tại

Mặc dù một lợi thế của việc nâng cấp lên cấu trúc thư mục Symfony 4 là bạn sẽ có thể sử dụng các tính năng của Symfony flex. Chúng tôi sẽ không đi sâu vào chi tiết về Symfony flex trong phần này vì mối quan tâm chính của chúng tôi là nâng cấp dự án Symfony của chúng tôi lên phiên bản Hỗ trợ dài hạn mới nhất, tôi. e, Symphony 4. 4

Khấu hao

  • hạt nhân. loadClassCache[] không được dùng nữa kể từ phiên bản 3. 3. Chuyển đến trang web/ứng dụng. php, bạn sẽ thấy thông báo không dùng nữa ở đó. Xóa dòng $kernel->loadClassCache[]
  • Thành phần ClassLoader đã bị xóa. Sử dụng Composer để thay thế

Thực hiện các thay đổi trong Composer của bạn. json để nâng cấp lên phiên bản Symfony 4 LTS

________số 8

Tất nhiên, bạn sẽ cần thực hiện các thay đổi trong mã và có thể phải xóa hoặc thay thế các gói của bên thứ ba để ứng dụng của bạn hoạt động

Bạn sẽ ổn trong một thời gian vì phiên bản này có hỗ trợ bảo mật cho đến tháng 11 năm 2023, nhưng kể từ khi Symfony 5 được phát hành, hãy nói về một số tính năng mới của nó

Symphony 5. 0 tính năng

  • Chuỗi, để quản lý chuỗi hướng đối tượng với hệ thống đơn vị trừu tượng
  • Trình thông báo, để gửi thông báo qua một hoặc nhiều kênh [email, SMS, …]

Như đã nêu trước đó, việc nâng cấp Symfony lên phiên bản LTS mới nhất sẽ mất một chút thời gian nhưng mặt khác, bạn sẽ học được nhiều điều mới hữu ích

Cách nâng cấp Symfony 4. 4 đến 5?

Nâng cấp lên Symfony 5. 0 .
Thay đổi nhà soạn nhạc. json cho Symfony 5. 0
Cập nhật gói Symfony trong Composer
nhà soạn nhạc. Nhiều Gói Cần Cập Nhật
Đang cập nhật --with-dependencies
Cập nhật phiên bản PHP của chúng tôi
Khác với Symfony. [Hầu hết] Chỉ nâng cấp nhỏ an toàn

Làm cách nào để kiểm tra phiên bản Symfony của tôi?

Nếu bạn có quyền truy cập hệ thống tệp vào dự án . const VERSION = '5. 0. 4'; đó là số phiên bản Symfony .

Làm cách nào để nâng cấp lên Symfony 6?

Nâng cấp phiên bản chính [e. g. 5. 4. .
1] Làm cho mã của bạn không còn dùng nữa. Ngừng sử dụng trong PHPUnit
2] Cập nhật lên Phiên bản chính mới thông qua Composer. lỗi phụ thuộc. Nâng cấp các gói khác
3] Cập nhật Công thức
4] Cập nhật Mã của bạn để hoạt động với Phiên bản mới
Nâng cấp lên Symfony 6. Thêm các loại trả lại gốc

Phiên bản mới nhất của Symfony là gì?

Đây là phiên bản ổn định hiện tại. .
Đòi hỏi. PHP8. 1. 0 hoặc cao hơn
Bản vá lỗi mới nhất. 6. 2. 1
Ra mắt vào. tháng 11 năm 2022
kết thúc hỗ trợ. tháng 7 năm 2023

Chủ Đề