Trao đổi về dự án

Phương phápMises à jour Symfony

Cập nhật Symfony

PartITech đã phát triển và duy trì các ứng dụng Symfony từ năm 2012. Bản nâng cấp không chỉ là thay đổi ràng buộc của Composer: nó phải duy trì hành trình kinh doanh, dữ liệu, tích hợp, hiệu suất và khả năng tiếp tục…

Di chuyển có kiểm soát Kiểm thử và tương thích Bảo trì dài hạn

Bảo trì Symfony từ năm 2012

Phát triển ứng dụng của bạn mà không làm suy yếu hoạt động kinh doanh của ứng dụng

PartITech đã phát triển và duy trì các ứng dụng Symfony từ năm 2012. Bản nâng cấp không chỉ là thay đổi ràng buộc của Composer: nó phải duy trì hành trình kinh doanh, dữ liệu, tích hợp, hiệu suất và khả năng tiếp tục phân phối của các nhóm.

Chúng tôi làm việc trên các ứng dụng mà chúng tôi đã xây dựng giống như trên các nền tảng hiện có. Mục tiêu của chúng tôi là đưa từng dự án trở lại quỹ đạo có thể bảo trì được, với phiên bản Symfony, PHP và các phần phụ thuộc vẫn được hưởng lợi từ các bản vá bảo mật.

Kể từ năm 2012
Phát triển và bảo trì Symfony
Mã, phần phụ thuộc, cơ sở hạ tầng
Việc di chuyển được coi là tổng thể
Kiểm tra trước khi chuyển đổi
Các thay đổi đã được xác minh bên ngoài quá trình sản xuất

Bảo mật, hiệu suất, tính liên tục

Tại sao phải cập nhật Symfony?

Khung, các thành phần PHP, Symfony và thư viện Composer tạo thành cùng một cơ sở. Tính bảo mật của nó phụ thuộc vào việc duy trì toàn bộ chuỗi kỹ thuật này.

Khắc phục lỗ hổng

Các nhánh được duy trì sẽ nhận được các bản sửa lỗi bảo mật khung. Sự phụ thuộc trực tiếp và bắc cầu cần được giám sát chặt chẽ như nhau.

Duy trì sự ổn định

Các bản phát hành đã vá giải quyết các điểm bất thường và giảm hành vi không thể đoán trước trong quá trình xử lý kinh doanh, API và các tác vụ không đồng bộ.

Cải thiện hiệu suất

Việc phát triển khung, PHP và các thành phần của nó có thể cải thiện thời gian phản hồi, mức tiêu thụ bộ nhớ và hiệu suất của nhân viên.

Luôn tương thích

Symfony phát triển với PHP, Doctrine, Twig, PHPUnit và hệ sinh thái Composer. Một phiên bản cũ sẽ chặn việc nâng cấp toàn bộ môi trường.

Giới hạn nợ kỹ thuật

Việc xử lý các khoản ngừng sử dụng thường xuyên sẽ tránh tích lũy một số lỗi lớn, các gói bị bỏ rơi và việc viết lại khó ước tính.

Kiểm soát ngân sách

Việc di chuyển thường xuyên và có đo lường sẽ dễ dự đoán hơn so với việc hiện đại hóa khẩn cấp được thực hiện khi khung hoặc PHP không còn được hỗ trợ.

Lịch 2026

Bạn thích phiên bản Symfony nào hơn?

Symfony 8.1 là phiên bản ổn định hiện tại. Đối với các ứng dụng yêu cầu thời gian hỗ trợ dài, Symfony 7.4 là phiên bản LTS tham khảo.

Phiên bản ổn định hiện tại

Symfony 8.1

Được phát hành vào tháng 5 năm 2026, Symfony 8.1 yêu cầu PHP 8.4 trở lên và được hỗ trợ cho đến tháng 1 năm 2027. Nó phù hợp cho các nhóm theo kịp các bản phát hành tiêu chuẩn.

Tham khảo lịch Symfony 8.1
  • Các ứng dụng sử dụng bộ chứa dịch vụ mà không phụ thuộc vào chu kỳ HTTP.
  • Các lệnh trên bảng điều khiển có thể được nhóm theo các phương thức với mã ít lặp lại hơn.
  • Ánh xạ đầy đủ hơn các yêu cầu và tệp tới các đối tượng đã nhập.
  • Cải tiến Messenger cho các đợt, mức độ ưu tiên, tiếp tục và đặt lại.
  • Phát triển tính năng chèn phụ thuộc, JSON và bản dịch.

Symfony 8.1

Phiên bản ổn định

PHP tối thiểu 8.4. Hỗ trợ đến tháng 1 năm 2027: việc áp dụng nó yêu cầu tuân theo chu kỳ phiên bản tiêu chuẩn.

Symfony 7.4 LTS

Tính ổn định lâu dài

PHP tối thiểu 8.2. Sửa lỗi đến tháng 11 năm 2028 và sửa lỗi bảo mật đến tháng 11 năm 2029.

Symfony 6.4 LTS

Vẫn được duy trì

PHP tối thiểu 8.1. Sửa lỗi đến tháng 11 năm 2026 và sửa lỗi bảo mật đến tháng 11 năm 2027.

Symfony 5.4 LTS

Chỉ bảo mật

Chi nhánh vẫn đang nhận các bản vá bảo mật cho đến tháng 2 năm 2029, nhưng không sửa thêm lỗi nào nữa. Cơ sở PHP cũ của nó yêu cầu nghiên cứu môi trường hoàn chỉnh.

Symfony 8.0, 7.0–7.3, 6.0–6.3

Phiên bản không được duy trì

Các nhánh tiêu chuẩn này đã hết hỗ trợ. Họ phải tham gia vào một chi nhánh hiện đang được duy trì.

Symfony 5.3 trở về trước

Cần hiện đại hóa

Khung, PHP và nhiều phần phụ thuộc nhìn chung đã lỗi thời. Di chuyển trở thành một dự án hiện đại hóa có cấu trúc.

Phiên bản tiêu chuẩn hay LTS?

Phiên bản tiêu chuẩn cho phép truy cập sớm hơn vào các tính năng mới nhưng yêu cầu nâng cấp khoảng sáu tháng một lần. LTS cung cấp thời gian bảo trì dài hơn. Sự lựa chọn đúng đắn phụ thuộc vào tốc độ phân phối, những hạn chế trong kinh doanh và khả năng duy trì ứng dụng thường xuyên của nhóm.

Ngoài số phiên bản

Những phiên bản gần đây thay đổi để bảo trì

Việc nâng cấp phiên bản cũng là cơ hội để đơn giản hóa mã, cải thiện khả năng quan sát của nó và đưa các hoạt động phát triển trở lại cấp độ khung.

PHP hiện đại và cách gõ

Các phiên bản gần đây của Symfony tận dụng các thuộc tính, loại và hiệu suất của các phiên bản PHP hiện đại.

Tiêm phần phụ thuộc

Tự động nối dây, thuộc tính và cấu hình rõ ràng hơn giúp giảm mã lặp lại và giúp dịch vụ dễ kiểm tra hơn.

Messenger và thời gian xử lý lâu

Hàng đợi tin nhắn, khởi động lại, mức độ ưu tiên và công nhân phải được kiểm soát trong quá trình di chuyển để duy trì độ tin cậy xử lý.

API và dữ liệu đã nhập

Ánh xạ yêu cầu, Trình tuần tự hóa và xác thực cho phép các giao diện rõ ràng hơn, miễn là hành vi lịch sử được điều chỉnh.

Bảng điều khiển và tự động hóa

Các lệnh trở nên biểu cảm hơn và tạo điều kiện thuận lợi cho hoạt động, di chuyển dữ liệu và các hoạt động định kỳ.

Kiểm soát khấu hao

Cơ chế ngừng sử dụng cung cấp lộ trình dần dần giữa các phiên bản chính khi các cảnh báo được giải quyết trước khi chuyển đổi.

Khung và thời gian chạy

Khả năng tương thích kỹ thuật là chưa đủ

Mục tiêu phải có phiên bản duy trì của Symfony và PHP

Symfony 8.1 yêu cầu tối thiểu PHP 8.4, tối thiểu Symfony 7.4 PHP 8.2 và tối thiểu Symfony 6.4 PHP 8.1. Tuy nhiên, một phiên bản PHP được framework chấp nhận có thể đã hết vòng đời.

Do đó, chúng tôi kiểm soát riêng lịch trình của Symfony và PHP, cũng như khả năng tương thích của cơ sở dữ liệu, máy chủ web, tiện ích mở rộng PHP, trình chạy, bộ đệm và công cụ triển khai.

  • Phiên bản PHP chính thức và hỗ trợ
  • Tiện ích mở rộng PHP thực sự có sẵn
  • Tính tương thích của học thuyết và cơ sở dữ liệu
  • Workers, Messenger, cron và các quy trình dài
  • Máy chủ web, bộ nhớ đệm và khả năng quan sát
  • CI/CD và hình ảnh triển khai

Lịch thay đổi thường xuyên. Tham khảo ý kiến lịch Symfony chính thứcPhiên bản PHP được hỗ trợ chính thức trước khi đặt mục tiêu.

Chiến lược dựa trên những gì đã tồn tại

Theo phiên bản hiện tại của bạn thì phải làm gì?

Khoảng cách với một nhánh được duy trì càng lớn thì càng cần phải phân chia dự án và đảm bảo từng bước trung gian.

8.1

Bạn đang dùng Symfony 8.1

Ứng dụng của bạn đang sử dụng phiên bản ổn định hiện tại. Các bản vá phải được áp dụng và phiên bản tiêu chuẩn tiếp theo được lên kế hoạch trước tháng 1 năm 2027.

Mục tiêu: duy trì nhịp độ đều đặn.

7.4

Bạn đang dùng Symfony 7.4 LTS

Bạn có nhánh tham chiếu để bảo trì lâu dài. Các bản phát hành bản vá, phần phụ thuộc và cảnh báo bảo mật vẫn được theo dõi.

Mục tiêu: Duy trì và xử lý khấu hao.

6.4

Bạn đang dùng Symfony 6.4 LTS

Nhánh vẫn được duy trì nhưng việc sửa lỗi sẽ dừng vào tháng 11 năm 2026. Việc chuẩn bị Symfony 7.4 cho phép bạn tránh việc di chuyển bắt buộc.

Mục tiêu: Lên lịch cho LTS tiếp theo.

5.4

Bạn đang dùng Symfony 5.4 LTS

Các bản sửa lỗi bảo mật vẫn tồn tại nhưng các phiên bản PHP lịch sử và phần phụ thuộc của dự án có thể không còn được duy trì.

Mục tiêu: kiểm tra toàn bộ cơ sở và hiện đại hóa.

≤ 5.3

Bạn đang sử dụng phiên bản cũ hơn

Các gói bị bỏ rơi, ngắt Composer, phiên bản PHP lỗi thời và các thay đổi về kiến trúc có thể yêu cầu nhiều cấp độ và viết lại có mục tiêu.

Mục tiêu: xây dựng quỹ đạo theo từng giai đoạn.

Một quá trình di chuyển có thể kiểm chứng được

Các bước cơ bản khi nâng cấp phiên bản Symfony

Việc di chuyển đáng tin cậy giúp hiển thị các phần phụ thuộc, điểm không dùng nữa, quyết định, kiểm tra và điều kiện khôi phục.

  1. Kiểm toán hiện tại

    Phiên bản Symfony và PHP, bundle, mã nghiệp vụ, các phần phụ thuộc của Composer, cơ sở dữ liệu, giao diện, trình chạy và cơ sở hạ tầng.

  2. Cơ sở thử nghiệm

    Xác định các đường dẫn quan trọng và hợp nhất các thử nghiệm cần thiết để phát hiện sự hồi quy trong quá trình di chuyển.

  3. Định nghĩa mục tiêu

    Lựa chọn giữa phiên bản tiêu chuẩn và LTS, thời gian chạy PHP, môi trường máy chủ và các cấp độ trung cấp tương thích.

  4. Đi lên cấp thứ cuối cùng

    Đã cập nhật nhánh hiện tại để có tất cả cảnh báo không dùng nữa trước khi có thay đổi lớn.

  5. Xử lý khấu hao

    Việc điều chỉnh mã, cấu hình và cách sử dụng cụ thể đã bị loại bỏ trong phiên bản mục tiêu.

  6. Đang cập nhật các phần phụ thuộc

    Composer, gói, Doctrine, Twig, công cụ chất lượng, thư viện giao diện người dùng và thay thế các gói bị bỏ rơi.

  7. Kiểm thử và nghiệm thu

    Hành trình kinh doanh, API, quyền, biểu mẫu, lệnh, tin nhắn, nhiệm vụ đã lên lịch, hiệu suất, bảo mật và giao diện bên ngoài.

  8. Triển khai và giám sát

    Sao lưu, lặp lại chuyển đổi dự phòng, khôi phục, kiểm tra sau sản xuất, nhật ký, số liệu và theo dõi sự bất thường.

Bằng chứng, không chỉ là một phiên bản

Quá trình di chuyển sẽ tạo ra kết quả gì

  • Danh sách các gói, phần phụ thuộc và sự phát triển cụ thể
  • Báo cáo tương thích và sổ đăng ký quyết định
  • Các tệp Composer có thể tái tạo và các phần phụ thuộc được cập nhật
  • Kế hoạch xử lý khấu hao và không tương thích
  • Kế hoạch thử nghiệm và báo cáo nghiệm thu
  • Quy trình sao lưu và khôi phục có thể khôi phục
  • Kế hoạch sản xuất và kiểm soát sau triển khai
  • Tài liệu vận hành và lịch trình bảo trì

Trải nghiệm PartITech

Từ di chuyển thường xuyên đến hiện đại hóa phức tạp

Kể từ năm 2012, chúng tôi đã cập nhật hàng chục ứng dụng Symfony, đặc biệt là cho Hyundai, CAUE d'Île-de-France và CFC. Chúng tôi cũng có thể nâng cấp máy chủ khi chúng tôi được giao việc thuê ngoài.

Chúng tôi cũng sử dụng các ứng dụng mà chúng tôi chưa phát triển. Trải nghiệm này cho phép chúng tôi can thiệp vào cả hai phiên bản gần đây và quá trình hiện đại hóa dần dần nền tảng cũ.

Chuẩn bị cập nhật Symfony của bạn