คำถามติดแท็ก di

4
Magento 2: Run `setup: di: compile` ** เท่านั้น ** เป็นโมดูลเฉพาะ?
เป็นไปได้หรือไม่ที่จะสร้างโค้ดล่วงหน้าสำหรับโมดูลใดโมดูลหนึ่งโดยเฉพาะ? IE - ฉันสามารถสร้างรหัสทั้งหมดในระบบด้วย php bin/magento setup:di:compile อย่างไรก็ตามอาจใช้เวลานาน ฉันต้องการสร้างไฟล์ล่วงหน้าเฉพาะสำหรับโมดูลเฉพาะ php bin/magento setup:di:compile Pulsestorm_Commercebug ปัญหาเฉพาะที่ฉันพยายามแก้ไขคือการแก้ไขปัญหานี้โดยที่บางปลั๊กอินไม่ได้รับการยอมรับในโหมดผู้พัฒนา / ค่าเริ่มต้น
33 php  magento2  di 

2
Magento 2: พารามิเตอร์ตัวสร้าง $ data array คืออะไร?
ดังนั้นผมสังเกตเห็นว่าในรูปแบบมากที่สุดและบล็อกมีนี้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 = $urlHelper; parent::__construct( $context, $data ); } ฉันยังรู้ว่าเมื่อต้องรับมือกับการกำหนดลักษณะคุณยังต้องเก็บพารามิเตอร์นั้นไว้ท้ายรายการพารามิเตอร์คอนสตรัคเตอร์ของคุณเมื่อคุณเพิ่มพารามิเตอร์มากกว่าคอนสตรัคเตอร์ดั้งเดิม ดังนั้นฉันมีคำถามหลายข้อเกี่ยวกับอาร์เรย์นี้ : มันคืออะไร ? วิธีใช้งาน ทำไมเราต้องเก็บไว้ที่ท้ายรายการพารามิเตอร์คอนสตรัคเตอร์เมื่อประกาศการตั้งค่าสำหรับบล็อกที่เพิ่มพารามิเตอร์เพิ่มเติม

2
อะไรคือค่า `xsi: type` ที่อนุญาตทั้งหมดใน xml's จาก Magento2
ใน Magento 2 (เกือบ) อาร์กิวเมนต์ทั้งหมดที่แสดงรายการในไฟล์ xml มีแอตทริบิวต์xsi:typeที่พิจารณาว่าค่าของอาร์กิวเมนต์นั้นถูกตีความ ตัวอย่างเช่นในdi.xmlไฟล์ของโมดูลเบื้องหลังมีสิ่งนี้: <argument name="scopeType" xsi:type="const">Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT</argument> นี่หมายความว่าค่าของการโต้แย้งscopeTypeคือมูลค่าของค่าคงที่Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT หรืออันนี้ <argument name="template" xsi:type="string">Magento_Theme::root.phtml</argument> ที่นี้หมายถึงว่าค่าของอาร์กิวเมนต์เป็นสตริง templateMagento_Theme::root.phtml ค่าที่เป็นไปได้ทั้งหมดของxsi:typeคุณลักษณะนี้คืออะไร?
20 magento2  xml  di 

4
Magento 2: คำอธิบายการใช้งานจริงของคลาส proxy คืออะไร?
ดังนั้นฉันจึงรู้ทางทฤษฎีว่าคลาสพร็อกซีใน Magento 2 คืออะไรฉันได้อ่านบทความ Alan Storm ที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้และฉันเข้าใจว่าการเรียนเหล่านั้นเกิดขึ้นได้อย่างไร อย่างไรก็ตามและฉันไม่รู้ว่าเป็นเพราะฉันไม่ใช่เจ้าของภาษาอังกฤษหรือคำอธิบายของอลันกำลังใช้ชั้นเรียนที่ไม่ใช่แกนหลักซึ่งเป็นนามธรรมมาก แต่ฉันมีเวลายากที่จะเข้าใจว่ามันใช้งานได้อย่างไรและพิเศษเมื่อใช้ ระหว่างการพัฒนา ลองทำตัวอย่างจากแกนในapp/code/Magento/GoogleAdwords/etc/di.xml: <?xml version="1.0"?> <!-- /** * Copyright © 2016 Magento. All rights reserved. * See COPYING.txt for license details. */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\GoogleAdwords\Observer\SetConversionValueObserver"> <arguments> <argument name="collection" xsi:type="object">Magento\Sales\Model\ResourceModel\Order\Collection\Proxy</argument> </arguments> </type> </config> ผมอยากจะรู้ว่า: เหตุใดจึงใช้คลาสพร็อกซีในกรณีพิเศษนั้น โดยทั่วไปเมื่อใดควรใช้คลาสพร็อกซี

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, \Magento\Framework\Filesystem $filesystem, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Email\Model\Template\Config $emailConfig, \Magento\Email\Model\TemplateFactory $templateFactory, \Magento\Framework\Filter\FilterManager $filterManager, \Magento\Framework\UrlInterface $urlModel, \Magento\Email\Model\Template\FilterFactory $filterFactory, array $data = [] ) ดังนั้นเราจะเห็นได้อย่างชัดเจนว่าเมื่อเราเรียกuse Magento\Store\Model\StoreManagerInterface;ที่ด้านบนของชั้นเรียนเราสามารถทำได้StoreManagerInterface $storeManagerในพารามิเตอร์ตัวสร้าง …


2
ทำไมบางคลาสถึงกำหนด injections ในทั้งนวกรรมิกและ di.xml
ฉันไม่เข้าใจว่าทำไมในบางคลาสการประกาศการพึ่งพาของพวกเขาจึงถูกประกาศสองครั้ง - หนึ่งครั้งในdi.xmlและในคอนสตรัคเตอร์ของคลาสคอนกรีต ตัวอย่างเช่นในMagento\Backend\Model\Url, มันdi.xmlมีชุดประเภทนี้สำหรับการกำหนด DI: <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> </arguments> </type> แต่ในเวลาเดียวกันในคลาสที่เป็นรูปธรรมคลาสเหล่านั้นที่กำหนดใน di.xml ที่จำเป็นสำหรับการฉีดจะถูกประกาศอีกครั้งใน Constructor: <?php public function __construct( \Magento\Framework\App\Route\ConfigInterface $routeConfig, \Magento\Framework\App\RequestInterface $request, \Magento\Framework\Url\SecurityInfoInterface $urlSecurityInfo, \Magento\Framework\Url\ScopeResolverInterface $scopeResolver, \Magento\Framework\Session\Generic $session, …

1
วิธีเปิด / ปิดการใช้งาน <preference> แบบไดนามิกใน di.xml
ขณะนี้ฉันมีสิ่งต่อไปนี้&lt;preference/&gt;ในไฟล์ di.xml ของฉัน: &lt;preference for="Magento\Contact\Controller\Index\Post" type="RadTest\TestModule\Controller\Contact\Post" /&gt; ฉันมีตัวเลือกเปิด / ปิดการใช้งานการกำหนดค่าสำหรับโมดูลของฉันในแผงการดูแลระบบ ฉันต้องการ&lt;preference&gt;ให้เปิดใช้งานเมื่อตั้งค่าตัวเลือกการกำหนดค่าแบบกำหนดเองเป็นเปิดใช้งานเท่านั้น ฉันจะเปิดใช้งานและปิดใช้งานการ&lt;preference/&gt;แทนที่แบบไดนามิกตามการกำหนดค่าของโมดูลที่ตั้งไว้ได้อย่างไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.