Theo tôi, tất cả công việc được đề xuất bởi gilden là không cần thiết và quá thận trọng. Tất nhiên bạn có thể tự cập nhật tệp deps
của mình với bất kỳ thứ gì bạn muốn. Tôi hiện đang chạy Doctrine \ Common (2.2.1), Doctrine \ DBAL (2.2.1) và Doctrine (2.2.1) trên Symfony 2.0.11 mà không có vấn đề gì.
Nó không phải là các thư viện mà bạn cần phải lo lắng về (thường), nó là bó rằng sử dụng các thư viện đòi hỏi phiên bản cụ thể (s). Ví dụ, Symfony2 không phụ thuộc trực tiếp vào bất kỳ phiên bản nào của Doctrine - nhưng DoctrineBundle thực hiện.
Trước khi nâng cấp gói/thư viện, bạn nên kiểm tra các phụ thuộc bắt buộc của họ trên Packagist.org. Tìm kiếm gói bạn muốn nâng cấp và xem những phụ thuộc bắt buộc mà họ xác định. Lưu ý: Điều này sẽ không được yêu cầu trên Symfony 2.1 vì nó sẽ sử dụng Composer để quản lý thư viện của nhà cung cấp.
Mặc dù, bạn sẽ không bao giờ biết có điều gì đó phù hợp với cài đặt của bạn hay không trừ khi bạn thử. Tất nhiên, đừng làm bất cứ điều gì ngu ngốc - nhưng không có lý do gì để sợ phá vỡ mọi thứ bằng cách cập nhật thư viện của nhà cung cấp. Lưu trữ mã của bạn trong Git và bạn có thể dễ dàng hoàn nguyên các thay đổi của mình.Xem: How to create and store a Symfony2 project in Git
Ngoài ra, khi xác định version=#.#.#
trong deps
- ngay cả khi bạn không có một tập tin deps.lock
ở tất cả, bạn sẽ luôn luôn nhận được cùng một cam kết băm bởi vì bạn đang xác định thẻ Git trên kho.
Một số gói, thay vì cung cấp số phiên bản, sẽ cung cấp các nhánh khác nhau để quản lý khả năng tương thích với nhiều phiên bản Symfony. Vì vậy, bạn có thể thấy một cái gì đó như version=origin/2.0
có nghĩa là các nhà cung cấp kịch bản sẽ kiểm tra các cam kết mới nhất trên chi nhánh có tên 2.0
của kho. Người duy trì sẽ cố gắng giữ cho nhánh đó luôn tương thích với Symfony 2.0.x.
Giải thích tốt, +1. Btw, khi nào Symfony 2.1 sẽ có sẵn? – gremo