Magento 2 - Dlaczego Magento \ Checkout \ Model \ Cart jest przestarzały?

32

Od Magento 2.1 Cart ma @deprecatedtag. Niemniej jednak sam Magento nadal używa go do przechowywania produktów podczas zakupów. Czy wycofanie jest zamierzone, a jeśli tak, to czego powinniśmy użyć zamiast tego?

Patrick van Bergen
źródło
Witamy w Magento.SE! Świetne pytanie! Możesz pomyśleć o poprawieniu tytułu, aby nie wymagał subiektywnej odpowiedzi. Na przykład „Czy nadal powinienem używać?” jest prawdopodobnie lepsze niż „dlaczego to było przestarzałe”
philwinkle
Dziękuję za odpowiedź, philwinkle! Jednak @deprecated już sugeruje, że nie należy go już używać. Chciałem tylko wiedzieć, co to jest zastąpione, a ponieważ Magento nadal aktywnie z niego korzysta, mam niewielkie podejrzenie, że klasa została przez pomyłkę przestarzała. :)
Patrick van Bergen,
Poza członkiem podstawowego zespołu odpowiedź nie może być udzielona kanonicznie . Myślę jednak, że w obecnej formie jest to całkowicie uzasadnione pytanie.
philwinkle
dla przypomnienia. wycofanie usunięto w github.com/magento/magento2/pull/11070
M.Elwan

Odpowiedzi:

24

Domyślam się, że zespół Magento planuje wdrożyć umowy serwisowe dla tej klasy.

Jednak od wersji 2.1, jeśli app/code/Magento/Checkout/Apizaznaczysz folder, nie ma jeszcze klasy (która) realizuje taką umowę serwisową.

Zakładam, że stanie się to w pewnym momencie, a zespół Magento oznaczył ten model jako przestarzały w przyszłości. Jednak, jak powiedziałem i jak powiedziałeś, jest nadal używany w oprogramowaniu, więc możesz nadal go używać.

Myślę, że ten @deprecatedtag jest podobną flagą jak dla load()metody zMagento\Framework\Model\AbstractMode

To samo dotyczy <action>tagu XML, który jest przestarzały, ale nadal jest jedyną opcją w niektórych przypadkach: http://goo.gl/laVP35 i jest nadal szeroko stosowany w 2.1: https://github.com/magento/magento2/search? l = xml i q = akcja & utf8 =% E2% 9C% 93

Raphael at Digital Pianism
źródło
17

Zatwierdzenie, które wycofało model koszyka, to c4e9a77403655646a18d4277de96429c86bd34fa z komunikatem

MAGETWO-51558: Oznacz model koszyka jako przestarzały

To niewiele mówi, zwłaszcza, że ​​jest to jedyne zatwierdzenie, które odwołuje się do wewnętrznego numeru biletu „MAGETWO-51558”

Ponieważ \Magento\Checkout\Apinadal nie zawiera żadnych nowych umów o świadczenie usług i \Magento\Quote\Api\CartItemRepositoryInterfacenie może zastąpić modelu koszyka, zgadzam się z pańskim podejrzeniem, że został on zbyt wcześnie wycofany.

Oczywiście ostatecznej odpowiedzi może udzielić tylko pracownik Magento.

Fabian Schmengler
źródło