कॉम्पोनेंट रेजिस्टर का उपयोग कैसे करें :: Magento 2 में पुस्तकालय


15

हमारे पास Magento 2 में 4 प्रकार के घटक हैं, जैसा कि मैं उनमें से तीन का उपयोग कर रहा हूं, लेकिन मेरा सवाल यह है कि const LIBRARY = 'library';घटक का उपयोग कैसे किया जाए ।

जैसा कि नाम से पता चलता है, यह तीसरे पक्ष के पुस्तकालयों को शामिल करने के लिए कुछ है, लेकिन कोई भी मुझे इस बात पर एक उदाहरण दे सकता है कि पुस्तकालय को कैसे शामिल किया जाए और वैश्विक अनुप्रयोग स्तर में उपयोग करें।

/**#@+
* Different types of components
*/
const MODULE = 'module';
const LIBRARY = 'library';
const THEME = 'theme';
const LANGUAGE = 'language';

मुझे const LIBRARY = 'library';आधिकारिक मैगनेटो 2 प्रलेखन के बारे में कोई जानकारी नहीं मिली है अपने घटक को पंजीकृत करें

जवाबों:


2

मुझे यकीन नहीं है कि यह आधिकारिक दस्तावेज पर क्यों नहीं दर्ज किया गया है, लेकिन यहां बताया गया है कि इसे कैसे समझा जाना चाहिए:

तो यह आपके रजिस्टर मॉड्यूल के तरीके के समान है, आपको बस lib/internal/Your/Library/registration.phpनिम्नलिखित सामग्री के साथ बनाने की आवश्यकता है:

<?php

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::LIBRARY,
    'your/library',
    __DIR__
);

इसके अलावा, आप पा सकते हैं कि सही स्थान यहां ठीक से प्रलेखित है: http://devdocs.magento.com/guides/v2.0/ RGBecture / archi_perspectives / compenders / modules / mod_conventions.html

इन पुस्तकालयों का उपयोग / लोड करने के लिए आप उसी तरह का पालन करते हैं जैसे यह Magento\Frameworkपुस्तकालय के साथ किया जाता है । तो का उपयोग कर:

use Your\Library\Custom\Class;

आप फ़ोल्डर के registration.phpनीचे कोर पा सकते हैंlib/internal/Magento/Framework


धन्यवाद @ राफेल, कृपया मुझे एक उदाहरण दे सकते हैं कि कैसे इन पुस्तकालयों का उपयोग / लोड करने के लिए "LIBRARY = 'पुस्तकालय" को तृतीय-पक्ष / कस्टम कार्यान्वयन में जोड़ा जाए।
कृष्ण इज्जादा

वास्तविक समय में इसका उपयोग कैसे करें, इस पर बुनियादी उदाहरण के लिए तत्पर हैं।
कृष्ण इज्जादा

@ Krishati95Dev मेरा अद्यतन उत्तर देखें
राफेल एट डिजिटल पियानोवाद

1

आप कोर फ़ाइल का उपयोग कर सकते हैं, जहाँ इसका उपयोग किया गया है। इसका उदाहरण यह है कि यह आपकी मदद कर सकता है, आपको वह नाम देना होगा जिसे आप शामिल करना चाहते हैं: -

ComponentRegistrar :: रजिस्टर (ComponentRegistrar :: LIBRARY, '', DIR );

उदाहरण :

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::LIBRARY,
    'magento/test',
    __DIR__ );

0

मुझे काम करने के लिए /magento//a/163418/36759 जवाब मिल सकता है , लेकिन लाइब्रेरी में कक्षाओं के अंदर नाम स्थान की घोषणा के बाद ही, इसलिए इसे ध्यान में रखें।


0

Magento 2.2 से वर्णित आधा-दस्तावेज़ पुस्तकालय दृष्टिकोण अब काम नहीं करता है। Magento डेवलपर्स को निम्न के अनुसार संगीतकार का उपयोग करके पुस्तकालयों को जोड़ने के लिए प्रोत्साहित करता है:

https://github.com/magento/magento2/issues/10985

अपने स्वयं के ऑटोलैडर को जोड़ने के लिए कौन से काम होंगे: lib/internal/Your/Library/registration.php

<?php
namespace Your\Library;

spl_autoload_register(function ($class) {
  $prefix   = __NAMESPACE__ . '\\';
  $base_dir = __DIR__.'/';
  $len = strlen($prefix);

  if (strncmp($prefix, $class, $len) !== 0) {
    return;
  }
  $relative_class = substr($class, $len);
  $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
  if (file_exists($file)) {
    require $file;
  }
});

यह काम करता है app/etc/NonComposerComponentRegistration.phpजिसके कारण अभी भी निम्नलिखित निर्देशिकाएं शामिल हैं:

$pathList[] = dirname(dirname(__DIR__)) . '/lib/internal/*/*/registration.php';
$pathList[] = dirname(dirname(__DIR__)) . '/lib/internal/*/*/*/registration.php';
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.