আমি কীভাবে কনফিগারেশন মান সেট করতে পারি ম্যাজেন্টো 2 তে?


12

পূর্বে (ম্যাজেন্টো 1 তে, এটি) আমরা সেটআপ নামে একটি মডিউল তৈরি করেছি যা সাইটের জন্য সেটিং রয়েছে। আপগ্রেড স্ক্রিপ্টগুলি এমন কিছু দেখায়:

$installer = $this;
$installer->startSetup();
$installer->setConfigData("fastsimpleimport/general/partial_indexing", 1);
$installer->setConfigData("fastsimpleimport/product/disable_preprocess_images", 1);
$installer->setConfigData('general/country/default', 'GB');
$installer->setConfigData('general/locale/firstday', 1); 
$installer->setConfigData('general/locale/timezone', 'Europe/London');
$installer->setConfigData('general/store_information/merchant_country', 'GB');
$installer->setConfigData('design/header/welcome', 'Enter your value');
$installer->setConfigData('design/head/title_suffix', 'Enter your value');
$installer->setConfigData('currency/options/base', 'GBP');
$installer->setConfigData('currency/options/default', 'GBP');
// ...

এম 2 তে উপরেরটি কীভাবে করব তা আমি বুঝতে পারি না।

অন্য কথায়: আমি কীভাবে এম 2 তে কনফিগার ডেটা সেট করতে যাব?


2
আপনার ডিবিতে এগুলি দরকার কেন? আপনি কি কেবল এটি config.xmlফাইলটিতে যুক্ত করতে পারবেন না ?
মারিয়াস

জিনিসগুলি ঠিক এভাবেই করা হয়। এটি মডিউল এক্সটেনশানগুলিতে (কমপক্ষে এম 1 এ) হ্যান্ডলিংয়ের সাধারণ সেটিংস বলে মনে হচ্ছে। এছাড়াও এগুলিকে সংস্করণ ভিত্তিতে পরিচালনা করা দরকার যাতে আমাদের মডিউলটি আপগ্রেড করা হলে তারা স্থানান্তরিত হতে পারে।
মার্টিন উইকম্যান

উত্তর:


15

এটি কাজ করে বলে মনে হচ্ছে:

class InstallData implements InstallDataInterface 
{
    public function __construct(
        LoggerInterface $loggerInterface,
        \Magento\Framework\App\Config\ConfigResource\ConfigInterface  $resourceConfig)
    {
        $this->logger = $loggerInterface;
        $this->resourceConfig = $resourceConfig;
    }        

    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $setup->startSetup();

        $this->resourceConfig->saveConfig(
            'a/b/c', 
            'value', 
            \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT, 
            \Magento\Store\Model\Store::DEFAULT_STORE_ID
        );

        $setup->endSetup();
    }   
}

1
আমি মনে করি ডিআই থেকে ইন্টারফেসটি কনস্ট্রাক্টরে $ রিসোর্স কনফিগ অবজেক্টের জন্য ব্যবহার করতেও এটি কাজ করতে পারে (এবং পরিষ্কার হতে পারে)। \Magento\Framework\App\Config\ConfigResource\ConfigInterface $resourceConfig
এটির

আরে মার্টিন, আপনি কি আরও কিছু মডিউল ভাগ করতে পারেন? আমি কোন নামের জায়গা ইত্যাদির জন্য লড়াই করছি?
ক্লেটসেব

আপনি কেন লগার যুক্ত করলেন? শুধু একটা অভ্যাস নাকি?
ওজজিআই

6

নিম্নলিখিত ইন্টারফেস ব্যবহার করা যেতে পারে \Magento\Framework\App\Config\Storage\WriterInterface, এটি 2 পদ্ধতি আছে:

  • save($path, $value, $scope = ScopeConfigInterface::SCOPE_TYPE_DEFAULT, $scopeId = 0)
  • delete($path, $scope = ScopeConfigInterface::SCOPE_TYPE_DEFAULT, $scopeId = 0)

এটি তুলনায় আরও উচ্চ-স্তরের \Magento\Config\Model\ResourceModel\Configএবং ক্লায়েন্ট কোড থেকে ব্যবহার করা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.