คำถามติดแท็ก code-generation

2
Magento2 สร้างส่วนขยายเฉพาะจากโรงงานและ ExtensionAttributeInterface ได้อย่างไร
ฉันต้องการห่อหัวของฉันไปรอบ ๆ โดยใช้คุณลักษณะส่วนขยายตัวอย่างเช่นสำหรับรายการราคา ไม่มีปัญหาในการเพิ่มแอตทริบิวต์ที่กำหนดเองให้กับเอนทิตี้ดังกล่าวโดยใช้คลาสการตั้งค่าเช่นเดียวกับใน Magento 1 นี่ไม่ใช่สิ่งที่คำถามนี้เกี่ยวกับ ในขณะที่เวทย์มนตร์ครอบงำฉันเมื่อฉันต้องการที่จะเปิดเผยคุณลักษณะดังกล่าวที่ถูกเพิ่มโดยส่วนขยายผ่านเอนทิตี API เป็นแอตทริบิวต์ส่วนขยาย ปรับปรุง : ฉันรู้วิธีการสร้างโรงงานปกติ คำถามนี้เกี่ยวกับโรงงานพิเศษที่สร้างอินสแตนซ์ของการใช้งานที่สร้างขึ้นสำหรับอินเตอร์เฟสส่วนขยายที่สร้างขึ้น นี่คือขั้นตอนที่ฉันต้องทำเพื่อให้มันใช้ได้ ฉันกำลังเพิ่มสิ่งเหล่านี้ดังนั้นผู้ที่พยายามตอบคำถามไม่จำเป็นต้องลงรายละเอียดเหล่านั้น คำถามของฉันคือวิธีการหรือทำไมมันทำงาน ขั้นตอนในการเปิดเผยแอตทริบิวต์ส่วนขยายผ่านเอนทิตี API: สร้างetc/extension_attributes.xmlที่เพิ่มคุณสมบัติให้กับส่วนติดต่อนิติบุคคล สร้างปลั๊กอินเพื่อเพิ่มค่าคุณลักษณะให้กับExtensionAttributesอินสแตนซ์เอนทิตี ในการทำจุดที่สองExtensionAttributesจำเป็นต้องใช้อินสแตนซ์เอนทิตี ด้วยเหตุนี้ปลั๊กอินจึงขึ้นอยู่กับโรงงานซึ่งตัวจัดการวัตถุส่งผ่าน DI สำหรับตัวอย่างรายการที่Magento\Quote\Api\Data\CartItemExtensionFactoryจะต้องมีการใช้ ฉันเดาว่าประเภทของโรงงานนี้จะต้องเป็นตัวกระตุ้นให้เกิดเวทย์มนตร์ วีโอไอพีจะสร้างส่วนต่อประสานการจับคู่\Magento\Quote\Api\Data\CartItemExtensionInterfaceกับ setters และ getters สำหรับคุณลักษณะส่วนขยายทั้งหมด อย่างไรก็ตามดูเหมือนจะไม่สร้างการใช้งานที่เป็นรูปธรรมสำหรับอินเทอร์เฟซนั้น ที่ให้เช่า PHPS รูปแบบไม่เห็น วีโอไอพีรวบรวมข้อมูลที่จำเป็นในการสร้างชั้นเรียนได้อย่างไร? วิธีการอินเตอร์เฟสที่สร้างขึ้นสามารถถูกเรียกบนอินสแตนซ์ที่เป็นรูปธรรมได้อย่างไร มันเป็นคลาสที่เพิ่งถูกสร้างขึ้นในหน่วยความจำเท่านั้น? ฉันมีความสุขที่ได้ผล แต่ก็ไม่เป็นที่น่าพอใจ ความสามารถของ Magentos ในการใช้คุณสมบัติที่สร้างขึ้นโดยอัตโนมัติโดยส่วนขยายเป็นปัจจัยสำคัญประการหนึ่งต่อความสำเร็จ ในฐานะนักพัฒนาโมดูลฉันเชื่อว่าฉันต้องเข้าใจกระบวนการทั้งหมดอย่างถี่ถ้วน ฉันควรจะมีเวลาหรือเปล่าที่ฉันจะขุดมันด้วยตัวเอง แต่ฉันอยากได้ถ้าฉันจะได้รับคำอธิบาย UPDATE 2 : เอาเวลาน้อยในการอ่านและ\Magento\Framework\Api\Code\Generator\ExtensionAttributesInterfaceGenerator …

14
Magento 2 Allowed Memory หมดข้อผิดพลาดเมื่อรวบรวมรหัส
ฉันมีข้อผิดพลาดเมื่อฉันเพิ่มโมดูล .. โปรดเรียกใช้คำสั่งรวบรวมวีโอไอพีอีกครั้ง ดังนั้นฉันจึงรันคำสั่งด้านล่าง แต่ยังแสดงข้อผิดพลาดที่ด้านล่างเมื่อรันคำสั่งจากรูต php magento setup: di: compile Compilation was started. %message% 0/7 [>---------------------------] 0% 1 sec 37.0 MiB%message% 0/7 [> ---------------------------] 0% 1 sec 37.0 MiBProxies code generation... 0/7 [ >---------------------------] 0% 1 sec 37.0 MiB Proxies code generation... 1/7 [====>-----------------------] 14% 47 secs 43.5 MiB Repositories …

3
เกิดข้อผิดพลาดหลังจากอัพเกรดวีโอไอพี
หลังจากยิงคำสั่งนี้ใน CLI php bin/magento setup:upgrade ฉันพบข้อผิดพลาดด้านล่าง -: Fatal error: Uncaught exception 'Magento\Framework\Exception\LocalizedException' with message 'Can't create directory /var/www/html/magento/magento2.0/var/generation/Magento/Framework/App/ResourceConnection/.' in /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator.php:103 Stack trace: #0 /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/Autoloader.php(35): Magento\Framework\Code\Generator->generateClass('Magento\\Framewo...') #1 [internal function]: Magento\Framework\Code\Generator\Autoloader->load('Magento\\Framewo...') #2 [internal function]: spl_autoload_call('Magento\\Framewo...') #3 /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Reader/ClassReader.php(19): ReflectionClass->__construct('Magento\\Framewo...') #4 /var/www/html/magento/magento2.0/vendor/magento/framework/ObjectManager/Definition/Runtime.php(44): Magento\Framework\Code\Reader\ClassReader->getConstructor('Magento\\Framewo...') #5 /var/www/html/magento/magento2.0/vendor/magento/framework/ObjectMana in /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator.php on line 103`

2
ข้อดีของรูปแบบโรงงาน Magento2 เหนือ Magento 1
Magento 2 กำลังใช้คลาสของโรงงานเพื่อไม่ให้ฉีดยา ตัวอย่างเช่นระดับผลิตภัณฑ์: ProductFactory ตัวอย่างเช่นชั้นลูกค้า:CustomerFactory ฉันไม่เข้าใจรูปแบบของโรงงานที่นี่คืออะไร เพราะสำหรับแต่ละคลาสที่เกี่ยวข้องกับ 1 คลาสจากโรงงาน ฉันคิดว่ามันเป็นสิ่งที่ซ้ำกัน ทำไมเราจึงไม่ควรสร้างโรงงานนามธรรมCustomerFactory, ProductFactoryetc? และตัวอย่างเช่น: เราสามารถส่งผ่านAbstractFactoryสำหรับประเภทการตรวจสอบแทนProductFactoryในการProductRepositoryสร้างคลาส ดังนั้นเราจึงสามารถหลีกเลี่ยงข้อต่อแน่นระหว่างProductRepositoryและProductFactory บทคัดย่อระดับโรงงาน: namespace Magento\Framework\ObjectManager\Code\Generator; /** * Abstract Factory class */ abstract class AbstractFactory { /** * Object Manager instance * * @var \Magento\Framework\ObjectManagerInterface */ protected $_objectManager = null; /** * Instance name to create * …

2
สตริง“ # @ +” &“ # @ -” หมายถึงอะไรในความคิดเห็น?
ฉันเห็นสตริง "# @ +" & "# @ -" มากมายในความคิดเห็นของคลาส Magento 2 บางคลาส \Magento\Customer\Api\Data\AttributeMetadataInterface interface AttributeMetadataInterface extends \Magento\Framework\Api\MetadataObjectInterface { /**#@+ * Constants used as keys of data array */ const ATTRIBUTE_CODE = 'attribute_code'; ... const IS_SEARCHABLE_IN_GRID = 'is_searchable_in_grid'; /**#@-*/ ... } จุดประสงค์ของเครื่องหมายเหล่านี้คืออะไร?

11
ไม่มีคำสั่งที่กำหนดในเนมสเปซ“ ตั้งค่า”: วีโอไอพี 2
ฉันติดตั้งlatest version of Megento 2แล้วทุกอย่างทำงานได้ดีส่วนหน้าส่วนหลังและฟังก์ชันการทำงาน ฉันมีหนึ่งปัญหากับ bin/magento setup:upgradeคำสั่งเมื่อฉันเรียกใช้คำสั่งนี้ใน terminal ฉันได้รับข้อยกเว้นด้านล่าง [InvalidArgumentException] ไม่มีคำสั่งที่กำหนดในเนมสเปซ "ตั้งค่า" ภาพหน้าจอ: มีสิ่งใดบ้างที่ฉันพลาดระหว่างการติดตั้งหรือฉันต้องติดตั้งแพคเกจบางอย่างเพื่อให้ทำงานได้หรือไม่

1
เทมเพลต phtml ถูกสร้างขึ้นเมื่อใดและอย่างไรใน view_preprocess
ฉันเห็นไฟล์ phtml จำนวนมากที่สร้างขึ้นvar/view_preprocessed/htmlจากโมดูลหลักและจากโมดูลที่กำหนดเอง ดูเหมือนว่าเทมเพลตเหล่านี้จะถูกใช้ทั้งหมดพร้อมกับช่องว่างที่ถูกปล้น Alan Kent เขียนในฉันจะอัปเดตไฟล์ php ของ Magento 2 ใน Grunt ได้อย่างไร? : คุณไม่ได้ "ปรับใช้" ไฟล์ PHTML มีการอ้างอิงโดยบล็อกในไฟล์เลย์เอาต์และประมวลผลทางฝั่งเซิร์ฟเวอร์ ดังนั้น "เสี้ยงฮึดฮัด" ไม่เกี่ยวข้องที่นี่และการปรับใช้เนื้อหาแบบคงที่ในทำนองเดียวกันไม่เกี่ยวข้อง และเมื่อวิเคราะห์การปรับใช้เนื้อหาแบบคงที่และเวิร์กโฟลว์เสี้ยงฮึดฮัดแสดงความไม่พบสิ่งที่เกี่ยวข้องกับแม่แบบดังนั้นฉันคิดว่านี่ยังคงเป็นจริง แต่ไฟล์เหล่านี้จะถูกสร้างขึ้นเมื่อใด มีอะไรเกิดขึ้นจริงที่นั่นและทำไม?

4
เกิดข้อผิดพลาดหลังจากลบแคชทั้งหมดใน Magento 2
เมื่อลบแคชทั้งหมดเป็น rm -rf var/cache/* var/page_cache/* var/view_preprocessed/* var/generation/* ฉันพบข้อผิดพลาดด้านล่าง Warning: ltrim() expects parameter 1 to be string, object given in vendor\magento\framework\Code\Generator\EntityAbstract.php on line 152 Notice: Uninitialized string offset: 0 in vendor\magento\framework\Autoload\ClassLoaderWrapper.php on line 81 Notice: Uninitialized string offset: 0 in vendor\composer\ClassLoader.php on line 317 Notice: Uninitialized string offset: 0 in vendor\composer\ClassLoader.php …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.