আমি কীভাবে কনফিগারেশন মান সেট করতে পারি ম্যাজেন্টো 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.