মঙ্গোডিবি ওডিএম কে ম্যাজেন্টোতে সংযুক্ত করা হচ্ছে


15

আমি মঙ্গো ডক্ট্রিন ওডিএমকে ম্যাজেন্টোর সাথে সংযুক্ত করার চেষ্টা করছি। আমি সফলভাবে জেন্ডটি মোংডব্বের সাথে সংযুক্ত করেছি। এবং আমি উভয় সংযোগ করতে জানি না। আমি ম্যাজেন্টোর "লিবিব" ফোল্ডারে মংডবকে ওডম রেখেছি এবং আমি লাইজটি ম্যাজেন্টোর সাথে সংযুক্ত করার ইস্যুটি করছি। আমি লাইব্রেরির বেস শ্রেণিকে "অন্তর্ভুক্ত" করার চেষ্টা করছি। তবে লাইব্রেরিতে অনেকগুলি নেমস্পেস রয়েছে। আমি মনে করি না ম্যাজেন্টো নেমস্পেসকে সমর্থন করে। সুতরাং এটির ত্রুটি দেখানো। । সাহায্য অত্যন্ত প্রশংসা করা হয়। আগাম ধন্যবাদ.

উত্তর:


4

আমি মনে করি এটি খুব ভাল প্রশ্ন, যা ম্যাজেন্টো কীভাবে ক্লাস লোড করে তার সাথে যুক্ত connected

ম্যাজেন্টো ফাইলগুলি পরিবর্তন না করে এটি ঠিক করার কোনও ভাল উপায় নেই।

সুতরাং মূল সমস্যাটি lib / Varien / Autoload.php এ

public function autoload($class)
{
    if ($this->_collectClasses) {
        $this->_arrLoadedClasses[self::$_scope][] = $class;
    }
    if ($this->_isIncludePathDefined) {
        $classFile =  COMPILER_INCLUDE_PATH . DIRECTORY_SEPARATOR . $class;
    } else {
        $classFile = str_replace(' ', DIRECTORY_SEPARATOR, ucwords(str_replace('_', ' ', $class)));
    }
    $classFile.= '.php';
    return include $classFile;
}

Varien_Autoload::autoload- এই পদ্ধতিটি কেবল "পিয়ার নামকরণের সম্মেলনগুলি" অনুসরণ করে এমন ক্লাসগুলি লোড করতে পারে - Mage_Core_Model_Config

তবে যদি নেমস্পেস ব্যবহার $classকরা থাকে তবে এতে থাকবে Mage\\Core\\Model\\Config

সুতরাং আমরা আরও একটি চেক যোগ করতে পারি এবং নেমস্পেসের সমস্যাটি ঠিক করতে পারি

public function autoload($class)
{
    if ($this->_collectClasses) {
        $this->_arrLoadedClasses[self::$_scope][] = $class;
    }
    if ($this->_isIncludePathDefined) {
        $classFile =  COMPILER_INCLUDE_PATH . DIRECTORY_SEPARATOR . $class;
    } else if (strpos($class, "\\") !== false) {
        $classFile = str_replace("\\", DIRECTORY_SEPARATOR, $class);
    } else {
        $classFile = str_replace(' ', DIRECTORY_SEPARATOR, ucwords(str_replace('_', ' ', $class)));
    }
    $classFile.= '.php';
    return include $classFile;
}

এখন আপনি লাইব্রেরি ব্যবহার করতে পারেন যা নেমস্পেস ব্যবহার করে।

এছাড়াও আপনি এখানে ম্যাজেন্টোতে নেমস্পেস ব্যবহার করার জন্য কোড পরিবর্তন তালিকা পাবেন।


ওলেকসি, আমি এটি চেষ্টা করেছিলাম। এটা কাজ করছে না. আমি সোজা এই বলছি। আমি আপনাকে বিভ্রান্ত করতে চাই না আপনি মতবাদ ওডিএম এর সাহায্যে মঙ্গোর সাথে ম্যাজেন্টো সংযুক্ত করতে পারেন। আপনার যদি কোনও ধারণা থাকে তবে দয়া করে আমার সাথে ভাগ করুন ..
সুন্দর

3

এই পদ্ধতির চেষ্টা করে দেখুন, আমি একক ম্যাজেন্টো সেটআপে দুটি পৃথক ডাটাবেস ব্যবহার করতে সক্ষম হয়েছি।

তার জন্য আপনাকে কনফিগারেশন তৈরি করতে হবে, নীচের পদক্ষেপগুলি অনুসরণ করুন।

ভিতরে app/etc/modules

<?xml version="1.0"?>
<config>
    <modules>
        <Deph_Externaldb>
            <active>true</active>
            <codePool>local</codePool>
        </Deph_Externaldb>
    </modules>
</config>

ইন app/code/localএবং নীচে ডাটাবেস বিশদ আপডেট করতে ভুলবেন না

<?xml version="1.0"?>
<config>
    <modules>
        <Deph_Externaldb>
            <version>0.1.0</version>
        </Deph_Externaldb>
    </modules>
    <global>
        <resources>
            <externaldb_write>
                <connection>
                    <use>externaldb_database</use>
                </connection>
            </externaldb_write>
            <externaldb_read>
                <connection>
                    <use>externaldb_database</use>
                </connection>
            </externaldb_read>
            <externaldb_setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </externaldb_setup>
            <externaldb_database>
                <connection>
                    <host><![CDATA[localhost]]></host>
                    <username><![CDATA[db_username]]></username>
                    <password><![CDATA[db_password]]></password>
                    <dbname><![CDATA[db_name]]></dbname>
                    <model>mysql4</model>
                    <type>pdo_mysql</type>
                    <active>1</active>
                </connection>
            </externaldb_database>
        </resources>
    </global>
</config>

আপনার কনফিগার প্রস্তুত, আপনি ডিবি অ্যাক্সেস করতে নীচের সংযোগ স্ট্রিং ব্যবহার কল

<?php

    $resource   = Mage::getSingleton('core/resource');
    $conn       = $resource->getConnection('externaldb_read');
    $results    = $conn->query('SELECT * FROM tblName');

    print_r($results)

আপনি কি জানেন যে এটি কোনও মংডোব কনফিগারেশনের সাহায্যে ব্যবহার করা সম্ভব? যেমন: <ডকুমেন্ট_ডিবি << সংযোগ_ স্ট্রিং> <! ছেলডিটিএডিএ পেইলমঙ্গডব http://localhostferences7017/dod>> </dnname><! CDডিএডিএডিএডিএলডিবিএল </ dbname> </
docament_d
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.