Magento 개발자가 Magento 2에 Zend Framework 2를 사용하지 않는 이유는 무엇입니까?


21

Magento는 계속해서 Magento 2 용 원본 Zend Framework (버전 1)를 계속 사용합니다 (출처 : Magento 2 및 Zend Framework 2 )

어쨌든 Magento 2가 Magento 1과 이전 버전과 호환되지 않는 이유를 보면 왜 Zend Framework 2로 업그레이드하지 않습니까?

저는 권위 있고 기술적 인 답변을 원합니다.


이 질문은 magento.stackexchange.com/questions/33259/… 와 99 % 유사합니다 . 이전 질문자가 @Marius 답변을 수락하지 않았기 때문에 중복으로 설정할 수 없습니다. 그러나 나는 그 대답을 알고 싶어합니다. "WHY"에 대한 공식 답변을 기다립니다 :-)
Rajeev K Tomy

4
핵심 개발자 만이 정확하게 대답 할 수 있습니다. @AntonKril을 소환합시다.
Marius

@Marius : 그렇습니다.이 질문은 우리가 magento 2를 배우기 시작할 때마다 (특히 magento 1. *에 익숙한 사람에게) 떠오르는 기본적인 의심입니다. 이것은 비밀로 유지해서는 안됩니다. 오히려 공개되어야한다. 담당자가이 질문에 대한 답변을 해주기를 바랍니다
Rajeev K Tomy

답변:


32

위의 중요한 부분을 반복하기 위해 Magento 2 응용 프로그램은 Zend가 아닌 공식 Magento 2 API를 사용해야합니다. 따라서 개발자는 우리가 구축 한 것을 신경 쓰지 않아야합니다.

마음을 사로 잡기 위해 Magento 2는 다른 프레임 워크에서 비트를 사용합니다. 우리는 Zend 1에서 데이터베이스 액세스를 사용합니다. Doctrine으로의 이동을 조사했지만 Magento 2.0.0 릴리스에서는 너무 많은 작업이었습니다. 그러나 2.1, 2.2, 3.0 또는 ... (아직 약속하지 않음)로 할 수 있습니다. 우리가 그것을 얻을 때, 우리는 또한 사용 가능한 새로운 정보에 따라 ZF1, ZF2, Doctrine 등을 사용할 지에 대한 생각을 바꿀 수 있습니다. Magento 2에도 YML 파일이있을 수 있습니다 (Symfony의 일부를 사용함). 설치 프로그램의 일부가 ZF2의 일부를 사용했지만 (ZF1에서 새 앱을 개발해야합니까?) 변경 될 수 있습니다. 또한 JavaScript에서 MV *가 흥미로워 보이는 Angular의 작은 부분도 보았습니다.

그러나 Magento 프레임 워크의 내용을 확인하자마자 잘못된 일을하고있을 것입니다. 응용 프로그램 코드는 신경 쓰지 않아야합니다. 기존 고객 사이트 나 확장에 영향을주지 않고 내부를 변경할 수 있도록 Magento 프레임 워크에서 제공하는 "공식"API를 사용해야합니다. "공식"을 통해 우리는 어떤 API가 "지원"API인지 (아직 잘 수행되지 않음) 문서화 할 것입니다-업그레이드의 안정성을 높이기 위해 이러한 API를 가능한 한 안정적으로 유지하지만 기본 코드를 변경합니다. 성능 향상 등

참고 : 나는이 영역을 자주 보지 않습니다 .Magento 2 질문은 GitHub 이슈 트래커에서 관찰됩니다. 우리는 현재 모든 것을 유지하려고 노력하고 있습니다.


1
그러면 코드에서 Zend 클래스를 사용하는 것이 잘못 되었습니까? Magento가 템플릿 파일에서 일부 Zend 정적 함수를 호출하는 것으로 나타났습니다 <?php echo \Zend_Json::encode($block->getCheckoutConfig()); ?>.
Zvonimir Burić

1
예, @ ZvonimirBurić \Magento\Framework\Json\DecoderInterface대신 대신 사용해야 합니다. 또는 json_encode/ json_decode직접.
nevvermind

유효성 검사기는 어떻습니까? 것 같다가 Zend_Validation의 젠토에 해당되지 않습니다
안토니오 Pedicini

10

그 질문은 여러 번 요청되었습니다. 그것은 모두 투자 수익으로 귀결됩니다. ZF1을 배포판에 라이브러리로 포함하고 있기 때문에 마이그레이션에 큰 노력을 기울이고 그 가치는 그다지 높지 않으며 Magento는 문제에 대한 패치를 포함 하여이 라이브러리를 책임집니다.


2
답변 Piotr에 감사드립니다. ZF1이 여전히 Zend에서 지원되는지 알고 있습니까? "유효하지 않은 구식 인"FAQ (여기 : framework.zend.com/about/faq )는 "현재 유지 관리 및 보안 업데이트를 포함하여 2014 년 초까지 Zend Framework 1을 완벽하게 지원할 계획"이라고 설명했습니다.

3
@Marius : magento 2는 향후 2,3 십 년간 통치 할 것입니다. 이 경우 Tom이 말했듯이 ZF1의 지원이 만료되면 Magento 2의 미래에 대해 어떻게 생각하십니까? 누가 알아 !
Rajeev K Tomy

5
PHP를 처리 한 결과, Magento는 릴리스와 관련하여 매우 보수적 인 정책을 가지고 있다고 생각합니다. 보안 업데이트를 받고있는 가장 안정적인 PHP 릴리스가 필요합니다. PHP가 최종 수명을 발표 할 때까지 5.3이 필요했습니다. 추측해야한다면 ZF에 대한 접근 방식이 동일하다고 생각할 수 있습니다. 여전히 지원되는 가장 오래되고 가장 안정적인 버전을 사용하는 것입니다. programmer_rkt 의견에 따르면, Zagent 1이 2.x 릴리스에서도 수명이 다하거나 Zend 및 ZF1 커뮤니티없이 ZF1 자체를 유지할 때 Magento가 ZF2로 전환됩니다.

3
이것이 정답입니다. :-)
benmarks

2
나는 우리가 재고 할 것을 모른다. 나는 우리가 그렇지 않다는 것을 모른다. ZF2에 있지 않은 효과가 강력하여 사물에 영향을 줄 수 있지만 그럴 것입니다. 나는 제품 팀의 일원이 아니라는 점을 명심하십시오 .
benmarks

2

같은 이유로 그들은 Magento 1 대신 jQuery를 Prototype.js를 사용했습니다.

ZF1이 ZF2보다 두 배 빠릅니다. 여기를 확인하십시오

문제는 올해 ZF1이 더 이상 (내가 아는 한) 지원되지 않는다는 것입니다. 나는 개인적으로 ZF2와 함께 갈 것입니다. 나는 그들이 곧 그것을 최적화 할 것이라고 확신합니다.


1
magento 1이 출시되고 prototype.js가 잘 알려진 자바 스크립트 도구 일 때 jquery가 아기라는 것을 읽었습니다. 마 젠토와 같은 큰 물고기의 경우 jquery와 같은 확립되지 않은 도구 (그 당시)에 의존하는 것이 기본적으로 제공됩니다.
Rajeev K Tomy

답변 해주셔서 감사합니다. 좀 더 자세히 설명해 주시겠습니까?

1
ZF1이 ZF2보다 두 배 빠릅니다. 여기를 확인하십시오 : developerknowhow.com/zf1-vs-zf2 문제는 올해부터 ZF1이 더 이상 지원되지 않는다는 것입니다. 나는 개인적으로 ZF2와 함께 갈 것입니다. 나는 그들이 곧 그것을 최적화 할 것이라고 확신합니다.
Razvan

Magento가 실행 속도로 인해 Zend Framework를 선택했는지 확실하지 않습니다. 빠르다고 정확히 알려진 것은 아닙니다.

나는 약간의 연구를 한 결과 최신 버전의 ZF1이 8 일 전에 출시 된 것을 발견했습니다. framework.zend.com/downloads/archives 여전히 많은 지원을 받고있는 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.