Tại sao các nhà phát triển Magento không sử dụng Zend Framework 2 cho Magento 2?


21

Magento sẽ tiếp tục sử dụng Zend Framework gốc (phiên bản 1) cho Magento 2 (nguồn: Magento 2 và Zend Framework 2 )

Xem như cách Magento 2 sẽ không tương thích ngược với Magento 1, tại sao chúng không nâng cấp lên Zend Framework 2?

Tôi hy vọng cho một câu trả lời kỹ thuật có thẩm quyền.


câu hỏi này tương tự 99% với magento.stackexchange.com/questions/33259/ . nhưng không thể đặt nó thành bản sao vì người hỏi trước không chấp nhận câu trả lời @Marius. Tuy nhiên tôi rất muốn biết câu trả lời của nó. Chúng ta hãy chờ câu trả lời chính thức cho câu hỏi "TẠI SAO" :-)
Rajeev K Tomy

4
Chỉ có một dev cốt lõi có thể trả lời chính xác điều này. Hãy triệu tập @AntonKril.
Marius

@Marius: có câu hỏi này là một nghi ngờ cơ bản sẽ xuất hiện trong đầu chúng ta bất cứ khi nào chúng ta bắt đầu học magento 2 (đặc biệt là những người đã quen thuộc với magento 1. *). Điều này không nên được giữ bí mật. Thay vào đó nên được tiết lộ. Chúng ta hãy hy vọng một quan chức sẽ đưa ra câu trả lời cho câu hỏi này
Rajeev K Tomy

Câu trả lời:


32

Chỉ cần lặp lại các phần quan trọng ở trên, các ứng dụng Magento 2 nên sử dụng API Magento 2 chính thức, không phải Zend trực tiếp. Do đó, các nhà phát triển không nên quan tâm đến việc chúng tôi xây dựng dựa trên điều gì.

Để tìm hiểu tâm trí, Magento 2 sử dụng các bit trong số các khung khác nhau. Chúng tôi sử dụng quyền truy cập cơ sở dữ liệu từ Zend 1. Chúng tôi đã điều tra việc chuyển sang Doctrine, nhưng quá nhiều cho việc phát hành Magento 2.0.0. Tuy nhiên, chúng tôi có thể thực hiện việc đó trong 2.1, 2.2, 3.0 hoặc ... (chưa có cam kết nào). Khi chúng tôi nhận được nó, chúng tôi cũng có thể thay đổi quyết định có nên sử dụng ZF1, ZF2, Học thuyết vv dựa trên thông tin mới có sẵn hay không. Magento 2 cũng có thể có tệp YML trong đó (có nghĩa là chúng tôi sử dụng một phần của Symfony). Một phần của trình cài đặt đã sử dụng một số ZF2 (chúng ta có nên phát triển ứng dụng mới trên ZF1 không?), Nhưng điều này có thể thay đổi. Chúng tôi cũng đã thấy một phần nhỏ của Angular có thể trông thú vị cho MV * trong JavaScript.

Nhưng ngay khi bạn đang tìm kiếm những gì thuộc khuôn khổ Magento, có lẽ bạn đang làm sai. Mã ứng dụng của bạn không nên quan tâm. Bạn nên sử dụng API "chính thức" được cung cấp bởi khung Magento để chúng tôi có thể thay đổi nội bộ mà không ảnh hưởng đến các trang web hoặc tiện ích mở rộng của khách hàng hiện tại. Theo "chính thức", chúng tôi sẽ ghi lại API nào là API "được hỗ trợ" (chưa được thực hiện tốt) - để nâng cấp đáng tin cậy hơn, chúng tôi sẽ giữ các API này ổn định nhất có thể, nhưng thay đổi mã cơ bản cơ sở để cải thiện hiệu suất, vv

Lưu ý: Tôi không thường xuyên tìm kiếm trong khu vực này - 2 câu hỏi của Magento được theo dõi trên trình theo dõi vấn đề GitHub. Chúng tôi đang cố gắng để giữ tất cả chúng ở đó hiện tại.


1
Có phải sau đó sử dụng các lớp Zend trong mã của chúng tôi là sai? Tôi nhận thấy rằng Magento gọi một số hàm tĩnh Zend trong các tệp mẫu tức là <?php echo \Zend_Json::encode($block->getCheckoutConfig()); ?>.
Zvonimir Burić

1
Có, @ ZvonimirBurić, bạn nên sử dụng \Magento\Framework\Json\DecoderInterfacethay thế. Hoặc json_encode/ json_decodetrực tiếp.
nevvermind

Còn người xác nhận thì sao? dường như không có Magento tương đương với Zend_Validation
Antonio Peesini

10

Câu hỏi đã được hỏi nhiều lần. Tất cả sôi sục để hoàn vốn đầu tư. Đó là một nỗ lực lớn để di chuyển, giá trị không cao và Magento, bởi vì nó bao gồm ZF1 như một thư viện trong bản phân phối, chỉ chịu trách nhiệm cho thư viện này, bao gồm các bản vá cho các vấn đề, v.v.


2
Cảm ơn câu trả lời Piotr. Bạn có biết nếu ZF1 vẫn được Zend hỗ trợ không? Tôi đã tìm thấy Câu hỏi thường gặp (có thể đã lỗi thời) (tại đây: framework.zend.com/about/faq ) nói rằng: "Chúng tôi hiện có kế hoạch hỗ trợ đầy đủ Zend Framework 1 cho đến ít nhất là đầu năm 2014, bao gồm các bản cập nhật bảo trì và bảo mật."

3
@Marius: magento 2 sẽ cai trị trong 2,3 thập kỷ tới (hy vọng). Trong trường hợp đó, như Tom đã nói, nếu hết hạn hỗ trợ của ZF1, thì bạn sẽ nghĩ gì về tương lai của Magento 2. Giữ một cơ sở lỗi thời là đủ tốt? ai biết !
Rajeev K Tomy

5
Dựa trên việc họ xử lý PHP, tôi đoán Magento có chính sách cực kỳ bảo thủ với các bản phát hành của họ. Họ yêu cầu bản phát hành ổn định lâu đời nhất của PHP vẫn đang nhận được các bản cập nhật bảo mật. Họ yêu cầu 5.3 cho đến khi PHP cuối cùng đã tuyên bố kết thúc cuộc đời. Nếu tôi phải đoán, tôi có thể nghĩ rằng cách tiếp cận của họ với ZF là như nhau: sử dụng phiên bản cũ nhất và ổn định nhất vẫn có hỗ trợ. Câu hỏi đối với tôi, như nhận xét của lập trình viên, sẽ là Magento chuyển sang ZF2 khi ZF 1 đạt đến giai đoạn cuối ngay cả trong bản phát hành 2.x hoặc họ sẽ tự duy trì ZF1 với cộng đồng Zend và ZF1.

3
Đây là câu trả lời chính xác. :-)
đánh dấu

2
Tôi không biết rằng chúng tôi sẽ xem xét lại, tôi không biết rằng chúng tôi sẽ không. Nếu hiệu ứng không có trên ZF2 mạnh có thể ảnh hưởng đến mọi thứ, nhưng tôi nghi ngờ đó sẽ là trường hợp. Hãy nhớ rằng tôi không phải là một phần của nhóm sản phẩm , vì vậy đây chỉ là ý kiến ​​của tôi.
đánh dấu

2

Vì lý do tương tự, họ đã sử dụng Prototype.js thay vì jQuery cho Magento 1.

Có vẻ như ZF1 nhanh hơn khoảng hai lần so với ZF2. Kiểm tra tại đây

Vấn đề là ZF1 không được hỗ trợ nữa (theo như tôi biết) tính đến năm nay. Cá nhân tôi sẽ đi với ZF2. Tôi chắc chắn họ sẽ tối ưu hóa nó một thời gian sớm.


1
Tôi đã đọc rằng jquery là một em bé khi magento 1 được phát hành và mẫu.j.j là công cụ javascript được thiết lập tốt ngoài kia. Đối với một con cá lớn như magento, việc dựa vào một công cụ chưa được thiết lập như jquery (vào thời điểm đó) là không thể
Rajeev K Tomy

Cảm ơn câu trả lời. Bạn có thể vui lòng giải thích một chút?

1
Chà, có vẻ như ZF1 nhanh hơn gấp đôi so với ZF2. Kiểm tra tại đây: developerknhow.com/zf1-vs-zf2 Vấn đề là ZF1 không được hỗ trợ nữa (theo như tôi biết) tính đến năm nay. Cá nhân tôi sẽ đi với ZF2. Tôi chắc chắn họ sẽ tối ưu hóa nó một thời gian sớm.
Razvan

Tôi không chắc liệu Magento có chọn Zend Framework hay không do tốc độ thực thi của nó. Nó không chính xác được biết là nhanh.

Tôi đã thực hiện một số nghiên cứu và thấy rằng phiên bản mới nhất của ZF1 đã được phát hành 8 ngày trước. framework.zend.com/doads/archives Có vẻ như nó vẫn được hỗ trợ rất nhiều.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.