«dependency-injection» 태그된 질문

Magento 2 종속성 주입에 관한 질문을 나타냅니다.

3
type과 virtualType의 차이점은 무엇입니까
여기에는 di.xmlMagento2와 함께 제공되는 노드 type와 노드가 virtualType있습니다. 내 질문은 이것이 무엇이며 virtualType어떤 경우에 대신 사용해야 type합니까? 어떤 곳에서는 심볼릭 링크 또는 다시 쓰기처럼 보입니다. <virtualType name="Magento\Core\Model\Session\Storage" type="Magento\Framework\Session\Storage"> 하나의 전체 경로가 다른 경로로 바뀌지 만 다른 곳에서는 더 짧은 별칭을 정의하는 방법으로 사용됩니다. <virtualType name="lessFileSourceBase" type="Magento\Framework\View\File\Collector\Base">

3
Magento 2에서 팩토리 생성을 트리거하는 원인
Magento 2에는 미리 생성되거나 즉시 생성되는 많은 클래스 파일이 포함되어 있습니다. 그들은에 살고 var/generated 이러한 생성 된 파일에는 팩토리 클래스가 포함됩니다. 에서 문서 , 그것은 프로그래머가 인스턴스화 "비 주사"객체 팩토리 클래스를 사용하는 나의 이해이다. "주입 불가능"오브젝트는 일반적으로 인스턴스화하기 위해 사용자 입력이 필요하기 때문에 종속성 주입을 통해 추가 할 수없는 오브젝트입니다 …

5
Magento 2에서 헬퍼 인스턴스화
Magento 2의 최신 빌드가 Mage수업에서 사라졌습니다 . 이것은 우리가 Mage::helper방법을 잃어버린 것을 의미합니다 . Magento 2에서 헬퍼를 인스턴스화하기위한 대체 기술 (헬퍼 팩토리?)이 있습니까? 또는 새로운 Object Manager 클래스를 사용하고 get(vs. create) 를 사용하여 도우미를 싱글 톤 / 캐시 된 객체로 인스턴스화해야합니다.

2
마 젠토 2 : $ data array constructor 매개 변수는 무엇입니까?
나는 대부분의 모델 및 블록이 나타났습니다 그래서, 거기에 이 array $data = []생성자의 마지막 매개 변수로 주어진를 . 예를 들어 \Magento\Catalog\Block\Product\ListProduct public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Data\Helper\PostHelper $postDataHelper, \Magento\Catalog\Model\Layer\Resolver $layerResolver, CategoryRepositoryInterface $categoryRepository, \Magento\Framework\Url\Helper\Data $urlHelper, array $data = [] ) { $this->_catalogLayer = $layerResolver->get(); $this->_postDataHelper = $postDataHelper; $this->categoryRepository = $categoryRepository; $this->urlHelper …

2
마 젠토 2 DI 모범 사례
내가 Magento 2 확장을 만들고 있다고 가정 해 봅시다 ... 음 ... 중요하지는 않습니다. 그것이 매우 멋진 일을한다고 가정 해 봅시다. 그러나 다른 개발자가 표준을 확장 할 수 있도록 적절한 표준을 사용하여 빌드했는지 확인하고 싶습니다. 언제 인터페이스와 함께 DI를 사용해야합니까? 여기서 명확하게하는 것이 핵심 예입니다. 클래스 Magento\Core\Helper\Data에는 다음과 같은 생성자가 …

4
마 젠토 2 : 프록시 클래스 란 무엇인가?
그래서 저는 이론적으로 Magento 2의 프록시 클래스가 무엇인지 알고 있습니다 . 훌륭한 Alan Storm 기사를 읽었 으며 이러한 클래스가 어떻게 생성되는지 완전히 이해 했습니다 . 그러나 나는 영어가 모국어가 아니기 때문에 또는 Alan의 설명이 매우 추상적 인 비 핵심 클래스를 사용하고 있는지 여부를 알지 못하지만 작동 방식과 사용 시기를 이해하는 …

3
Magento 2의 추상 클래스에 새로운 메소드 추가
이 스레드가 말했듯이 Magento 1의 Magento 2 에서 추상 클래스를 재정의하십시오 . 나는 완전히 새로운 수업을 만들 수 있습니다. Magento 2에서는 플러그인을 사용해야하지만 플러그인을 사용하면 기존 메소드 만 수정할 수 있습니다. 새로운 방법을 추가하려면 어떻게해야합니까? 예: 이 클래스 vendor/magento/module-ui/Component/AbstractComponent.php에는 구성 $components요소 배열이 있습니다. 해당 배열의 요소를 설정 해제 / 삭제하는 …

1
Magento 2의 DI 및 블록 확장
\ Magento \ Framework \ View \ Element \ Template 이 아닌 블록을 확장하려고 할 때마다 오류가 발생 하는 블록으로 Magento 2 종속성 주입을 파악하는 데 어려움을 겪고있는 것 같습니다 . Magento \ Theme \ Block \ Html \ Header \ Logo 의 매우 기본적인 블록 클래스를 확장하는 블록을 만들고 …

2
마 젠토 2 : 문장과 직접적인 클래스 경로를 사용합니까?
나는 요점을 놓칠 수도 있지만 때로는 왜 특정 클래스에 대해 "사용"문구가 있고 때로는 그렇지 않은지 궁금합니다. 예 : app\code\Magento\Email\Model\Template.php파일 상단에 있습니다. namespace Magento\Email\Model; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\StoreManagerInterface; 그런 다음이 __construct방법에는 다음과 같은 매개 변수가 있습니다. public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\View\DesignInterface $design, \Magento\Framework\Registry $registry, \Magento\Store\Model\App\Emulation $appEmulation, StoreManagerInterface $storeManager, \Magento\Framework\View\Asset\Repository $assetRepo, …

3
Magento 2에서 가상 유형 클래스를 대체하는 방법
Magento 2에서 VirtualType 블록을 재정의하는 방법 다음 가상 유형 블록을 자체 블록으로 재정의하고 싶습니다. <virtualType name="Magento\CatalogSearch\Block\SearchResult\ListProduct" type="Magento\Catalog\Block\Product\ListProduct"> <arguments> <argument name="catalogLayer" xsi:type="object">Magento\Catalog\Model\Layer\Search</argument> </arguments> </virtualType> 그래서 나는 이런 식으로 내 맞춤 모듈에서 그것을 재정의하려고했습니다 di.xml. <preference for="Magento\Catalog\Block\Product\ListProduct" type="My\Vendor\Block\Product\ListProductSearch" /> 그러나 작동하지 않습니다. 그렇다면 Magento 2에서 가상 유형 클래스를 재정의하는 올바른 방법은 무엇입니까?

5
Magento 2에 ProductRepositoryInterface를 삽입 할 수없는 이유는 무엇입니까?
제품 리포지토리를 주입하려는 컨트롤러 작업이 있습니다. namespace Nosto\Tagging\Controller\Export; use Magento\Catalog\Api\ProductRepositoryInterface; use Magento\Store\Model\StoreManagerInterface; use Magento\Backend\App\Action; use Magento\Framework\App\Action\Context; class Test extends Action { private $_productRepository; public function __construct( Context $context, StoreManagerInterface $storeManager, ProductRepositoryInterface $productRepository ) { parent::__construct($context); $this->_storeManager = $storeManager; $this->_productRepository = $productRepository; } 생성자 인수를 넣은 순서에 관계없이 Magento의 의존성 주입은 …

3
Magento 2 CRUD / 추상 모델에 의존성 주입
Magento 2 CRUD 모델에 의존성을 주입 할 수 있습니까? 즉, Magento 2에는 기본 추상 모델 클래스가 Magento\Framework\Model\AbstractModel있습니다. 간단한 Create, Read, Update, Delete 모델 객체를 만들려면이 클래스를 자신의 클래스로 확장하십시오. class Foo extends Magento\Framework\Model\AbstractModel { } 모델의 __construct방법에 의존성을 주입 할 수 있습니까? 시도하면 다음과 같은 오류가 발생합니다. 치명적인 오류 : …

2
왜 일부 클래스는 생성자와 di.xml에서 주입을 정의합니까?
일부 클래스에서 종속성 주입이 di.xml구체적인 클래스의 생성자에서 한 번 두 번 선언되는 이유를 이해하지 못합니다 . 에서 예를 들어 Magento\Backend\Model\Url, 자사는 di.xmlDI를위한 유형의 집합이 정의 : <type name="Magento\Backend\Model\Url"> <arguments> <argument name="scopeResolver" xsi:type="object"> Magento\Backend\Model\Url\ScopeResolver</argument> <argument name="authSession" xsi:type="object"> Magento\Backend\Model\Auth\Session\Proxy</argument> <argument name="formKey" xsi:type="object"> Magento\Framework\Data\Form\FormKey\Proxy</argument> <argument name="scopeType" xsi:type="const"> Magento\Store\Model\ScopeInterface::SCOPE_STORE </argument> <argument name="backendHelper" xsi:type="object"> Magento\Backend\Helper\Data\Proxy</argument> …

2
Magento 2에서 현재 주문 배송에 추적 번호를 어떻게 추가합니까?
Magento 1.x의 샘플 코드를 찾았습니다. 그러나 Magento 2 에서이 작업을 수행하는 방법을 모르겠습니다. 누구든지 의존성 주입 (DI)을 사용하여 이것을 구현하는 방법을 설명 할 수 있습니까 ? 감사. $trackingDetail = array( 'carrier_code' => 'ups', 'title' => 'United Parcel Service', 'number' => 'TORD23254WERZXd3', // Replace with your tracking number ); $track = …

1
마 젠토 2 : 가상 유형 명명 규칙
날짜 : 2015 년 6 월 1 일 (마 젠토 2의 변화하는 특성을 제공함) Magento 2에서는 모듈의 구성 파일 에서 "가상 유형" 을 구성 할 수 있습니다di.xml . 이 가상 유형을 사용하면 특정 주입 된 종속성의 인수를 변경할 수 있습니다. 핵심 Magento 2 코드에는 가상 유형에 대한 두 가지 명명 …

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