ম্যাজেন্টো 2: একটি বাহ্যিক নন ম্যাজেন্টো ডিবিতে সংযুক্ত করুন


9

কখনও কখনও আমাকে বিভিন্ন ডাটাবেস, মাইএসকিএল / ওরাকল ইত্যাদির সাথে সংযোগ স্থাপন করতে হবে ম্যাজেন্টো 2 এ এটি করার সর্বোত্তম অনুশীলন কোনটি?

উত্তর:


4

এটি সরকারীভাবে সমর্থিত নয়। আমরা আরও উন্নত মডুলারাইজেশনের দিকে এগিয়ে যাচ্ছি, কলিরা পরিষেবা চুক্তির মাধ্যমে আগত এপিআইকে সীমাবদ্ধ করতে পুনরায় প্রয়োগ করতে হবে (ডিফল্ট প্রয়োগটি di.xML ফাইল ব্যবহার করে প্রতিস্থাপন করা যেতে পারে), তবে এটি ম্যাজেন্টো ২.০.০ এ কোনও সাধারণ কাজ হবে না will । আমরা সেই পথে এগিয়ে চলেছি, তবে কোনও ইটিএ কখন এটি করা "সহজ" হবে না।

উদাহরণস্বরূপ, আপনি ডাটাবেস কল বা মডিউল কলগুলি বিরত রাখতে প্লাগইনগুলি ব্যবহার করতে পারেন; আপনি ডিফল্ট প্রয়োগগুলি প্রতিস্থাপন করতে di.xML ব্যবহার করতে পারেন; ইত্যাদি তাই করার উপায় আছে। (লোকেরা কখনও কখনও এম 1 এ এটি করে))


2

এটি "সেরা অনুশীলন" নাও হতে পারে তবে ম্যাজেন্টো 1 এ আমাকে কিছু তথ্য পেতে একবার এসকিউএল সার্ভারের সাথে সংযোগ করতে হয়েছিল। আমি কেবল সংযোগটি তৈরি করেছি এবং এটি কোনও সিস্টেমে এটির যে কোনও জায়গা থেকে পুনরুদ্ধার করতে সক্ষম হবার জন্য রেখেছি।

আপনি দেখতে পাচ্ছেন না কেন আপনি ম্যাজেন্টো 2 তে একই কাজ করতে পারেন নি (বা কমপক্ষে এটি চেষ্টা করে দেখুন)


2

এইভাবে আমি এটি করতে পরিচালিত। এটি সঠিক উপায় কিনা তা জানেন না তবে এটি কাজ করে (কেবল মাইএসকিএল):

অ্যাপ্লিকেশন / ইত্যাদি / env.php

...
  'db' => 
  array (
    'table_prefix' => '',
    'connection' => 
    array (
      'default' => 
      array (
        'host' => 'localhost',
        'dbname' => 'xxxx',
        'username' => 'yyyy',
        'password' => 'zzzz',
        'active' => '1',
      ),
      'myconnection' => 
      array (
        'host' => 'localhost',
        'dbname' => 'somedbname',
        'username' => 'xxxx',
        'password' => 'yyyy',
        'active' => '1',
      ),
    ),
  ),
  'resource' => 
  array (
    'default_setup' => 
    array (
      'connection' => 'default',
    ),
      'myconnection' =>
    array (
      'connection' => 'myconnection',
    ),
  ),
...

অ্যাপ্লিকেশন / কোড / বিক্রেতা / মডিউল / মডেল / Test.php

<?php
namespace Vendor\Module\Model;

use \Magento\Framework\Model\AbstractModel;

class Page extends AbstractModel
{
    const UID = 'uid'; 

    /**
     * Prefix of model events names
     *
     * @var string
     */
    protected $_eventPrefix = 'test'; // parent value is 'core_abstract'

    /**
     * Name of the event object
     *
     * @var string
     */
    protected $_eventObject = 'test'; // parent value is 'object'

    /**
     * Name of object id field
     *
     * @var string
     */
    protected $_idFieldName = self::UID; // parent value is 'id'

    /**
     * Initialize resource model
     *
     * @return void
     */
    protected function _construct()
    {
        $this->_init('Vendor\Module\Model\ResourceModel\Page');
    }

}

অ্যাপ্লিকেশন / কোড / বিক্রেতা / মডিউল / মডেল / ResourceModel / Test.php

<?php
namespace Vendor\Module\Model\ResourceModel;

use \Magento\Framework\Model\ResourceModel\Db\AbstractDb;

class Test extends AbstractDb
{

    protected $connectionName = 'myconnection';


    /**
     * Initialize resource model
     *
     * @return void
     */
    protected function _construct()
    {
        // Table Name and Primary Key column
        $this->_init('testtable', 'uid');
    }

}

অ্যাপ্লিকেশন / কোড / বিক্রেতা / মডিউল / মডেল / ResourceModel / পরীক্ষা / Collection.php

<?php
namespace Vendor\Module\Model\ResourceModel\Test;

use \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;

class Collection extends AbstractCollection
{

    protected $_idFieldName = \Vendor\Module\Model\Test::UID;

    /**
     * Define resource model
     *
     * @return void
     */
    protected function _construct()
    {
        $this->_init('Vendor\Module\Model\Test', 'Vendor\Module\Model\ResourceModel\Test');
    }

}

আশা করি এটি কাউকে সাহায্য করবে।

মিশেল

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