2012-05-22 19 views
9

Tôi đã có một trang web khổng lồ đã được viết (theo cách rất xấu) trong symfony 1.4 bây giờ, tôi đã được yêu cầu thực hiện một số thay đổi đáng kể cho luồng điều hướng, thêm một số tính năng và như vậy .. xem xét nỗ lực, tôi đã tự hỏi nếu nó sẽ là tốt hơn để đưa ra quyết định cấp tiến để cổng toàn bộ trang web để symfony 2.0, nhưng tôi không chắc chắn như thế nào cứng mà nó có thể được.Chuyển một trang web từ Symfony 1.4 sang 2.0

Có ai từng làm điều này trước đây không?

Bạn có bất kỳ đề xuất nào để thực hiện các mẫu để theo dõi hoặc hướng dẫn hoặc tài liệu hay bất kỳ thứ gì không?

Trả lời

8

Bạn có thể bao bọc dự án cũ của mình trong một dự án sf2 hoàn toàn mới bằng cách sử dụng this bundle. Bằng cách này, bạn sẽ có thể di chuyển dự án của bạn một mảnh tại một thời điểm, và các chức năng mới có thể được phát triển với sf2 ngay sau khi bạn nhận được wrapper để làm việc. Bạn có thể quan tâm this post about migrating

+0

có vẻ tốt, tôi cũng cần phải chuyển từ chương trình khuyến mãi mới sang doctrine2 thân thiện với con người, vì vậy điều này thực sự có thể đến tiện dụng :) – holographix

4

Đây là cách tôi sẽ đi về nó:

Bạn cần phải học hỏi và nghiên cứu một số những điều đầu tiên:

  • nguyên tắc cơ bản HTTP
  • không gian tên PHP, được sử dụng nhiều
  • Symfony2 tài liệu
  • Tài liệu Symfony2
  • Tài liệu Symfony2
  • tài liệu PHPUnit

Sau đó, khi bạn nhận được hang của Symfony2, bạn cần phải tìm ra những gì để tái sử dụng từ dự án cũ của bạn:

Models, logic kinh doanh? Bạn đã sử dụng Doctrine trong symfony chưa? Nếu có, hãy xem cách chuyển các thực thể của bạn sang Doctrine2 và tìm hiểu về sự khác biệt. Nếu bạn sử dụng Propel, tôi sẽ xem xét việc chuyển sang Doctrine2 và không sử dụng PropelBundle, ít nhất cho đến khi bạn quen với Symfony2. Bạn có thể tìm thấy tài liệu và mẫu mã tốt hơn ở đó cho Doctrine2.

Bạn cũng cần phải chuyển đổi các lớp người trợ giúp cũ của mình sang các dịch vụ của Symfony2.

Chế độ xem? Symfony2 sử dụng Twig làm công cụ tạo khuôn mẫu, nhưng bạn có thể sử dụng PHP thuần túy.

Bộ điều khiển? Điều này sẽ cảm thấy hơi giống với symfony. Dòng chảy của Symfony2 khớp với luồng HTTP, nghĩa là bạn nhận được một đối tượng Request và phải trả về một đối tượng Response.

Nó thực sự phụ thuộc vào cấu trúc của dự án cũ của chúng tôi. Symfony2 là một con thú hoàn toàn khác với 1.0-1.4. Tôi có lẽ sẽ không gọi nó là một cổng, nhưng viết lại - tuy nhiên, nếu dự án cũ của bạn được cấu trúc tốt, bạn có thể có thể tái sử dụng khá một chút.

Nếu không thực sự thấy mã của bạn, bạn không thể đưa ra câu trả lời hay về mức độ khó. Nó rất dễ làm, nhưng không có lộ trình dễ dàng. Symfony2 là, IMHO, con đường của tương lai cho các dự án PHP và cuối cùng bạn sẽ nhận được một dự án dễ dàng hơn nhiều để duy trì và hỗ trợ.

+0

yeah, đó là điều tương tự tôi đang nghĩ .. Tôi đồng ý rằng điều này sẽ được viết lại chứ không phải là cổng vì dự án hiện tại (trong symfony 1.4) là một đống bụi bẩn/spaghetti mã và lập trình noob. nó đã được thực hiện bởi ppl người không biết những gì họ đã làm. chỉ nghĩ rằng nó đã cho tôi hơn 2 tuần chỉ để tìm ra những hậu quả bệnh tật đằng sau mã cấu trúc xấu xí .. một cơn ác mộng thực sự. và bây giờ tôi đã đặt tay vào nó một lần nữa Tôi thực sự thực sự bị cám dỗ để làm cho nó viết lại trong symfony 2.0 – holographix

+1

Tôi muốn nói đi, bạn sẽ tiết kiệm thời gian sau đó, xin vui lòng có một dự án thực sự là một động lực tốt để học cái gì đó mới mẻ. – cvaldemar

+0

vâng, bạn đang soooooo đúng :) bây giờ chúng ta sẽ thấy. nếu ngân sách cho phép chúng tôi .. Tôi chắc chắn sẽ gắn bó với 2.0 (với niềm vui gr8) – holographix