ম্যাজেন্টো 2 তে ম্যাজেন্টো সংস্করণটি কীভাবে পাবেন? (সমান ম্যারেজ :: getVersion ())


উত্তর:


20

ম্যাজেন্টো সংস্করণ 2.0.7 অবধি ধ্রুবকটিতে সংস্করণ নম্বর বজায় ছিল AppInterface::VERSION

ম্যাজেন্টো ২.১ প্রকাশের সাথে ধ্রুবকটি সরানো হয়েছিল।

২.০..7 অবধি যদি আপনি অ্যাডমিনটিচটিএমএল ফুটার ফাইলটি পরীক্ষা করেন তবে যেখানে সংস্করণটি প্রদর্শিত হচ্ছে

অ্যাডমিন প্যানেল পাদলেখ

এটি \Magento\Framework\AppInterface::VERSIONধ্রুবক রেফারেন্স ছিল ।

তবে ম্যাজেন্টো ২.১ প্রকাশের পরে পাদলেখ ফাইলটি এখন সেইগুলি ব্যবহার করে \Magento\Backend\Block\Page\Footer::getMagentoVersion()যার পরিবর্তে ডাকে \Magento\Framework\App\ProductMetadata::getVersion()

আগে ProductMetadata::getVersion()ধ্রুবকের মান ফেরত দিতে ব্যবহৃত হত \Magento\Framework\AppInterface::VERSION, তবে এখন এটি composer.jsonপাশাপাশি পার্স composer.lockকরে উপযুক্ত ম্যাজেন্টো সংস্করণও দেয়

সুতরাং আপনি যে সংস্করণটি 2.0.x বা 2.1.x এর যে কোনও সংস্করণেই নেই \Magento\Framework\App\ProductMetadata::getVersion(), আপনি যদি পদ্ধতিটি ব্যবহার করেন তবে আপনি সর্বদা যথাযথ ম্যাজেন্টো সংস্করণ পাবেন।

উপসংহার:

ম্যাজেন্টো 1:

Mage::getVersion() //will return the magento version

ম্যাজেন্টো 2:

//Updated to use object manager
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
$version = $productMetadata->getVersion(); //will return the magento version

composer.json"^ 2.1" এর মতো কোনও সংস্করণের সীমাবদ্ধতা থাকতে পারে যা সঠিক সংস্করণটি নির্দেশ করে না, তাই ম্যাজেন্টো composer.lockবর্তমানে কী ইনস্টল করা আছে তা দেখার জন্য ফাইলটি (এছাড়াও) পরীক্ষা করছে ।
7ochem

@ 7 ওহম তথ্যের জন্য ধন্যবাদ, উত্তরটিও আপডেট করেছেন :)
অতীশ গোস্বামী

21

আপনি এটি 2.0.x সংস্করণে ব্যবহার করতে পারেন:

echo \Magento\Framework\AppInterface::VERSION;

সংস্করণ ২.১ এর জন্য:

ওয়ে 1, ডিআই ব্যবহার করে:

public function __construct(
        \Magento\Framework\App\ProductMetadataInterface $productMetadata
) {
    $this->productMetadata = $productMetadata;
}

public function getMagentoVersion()
{
    return $this->productMetadata->getVersion();
}

ওয়ে 2, অবজেক্টম্যানেজারটি সরাসরি ব্যবহার করে:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();

এ জাতীয় বাস্তবায়ন আপনি অ্যাপ / কোড / ম্যাজেন্টো / ব্যাকএন্ড / ভিউ / অ্যাডমিনটিচটিএমএল / টেমপ্লেটগুলি / পৃষ্ঠা /
পাদলেখ.এফটিএমটিএলে পেতে পারেন

1
দ্রষ্টব্য: এটি Magento 2.1+ এর জন্য কোনও দীর্ঘ কাজ করে না (অন্যান্য উত্তর দেখুন!)
ম্যানুয়েল এম

অন্য উত্তর আসলে কাজ? আমার ক্ষেত্রে ত্রুটি রিপোর্টের মাধ্যমে। আমার নতুন উত্তর দেখুন।
সোহেল রানা


10

উল্লেখ করা সমাধানগুলি Magento 2.1 থেকে শুরু করে প্রযোজ্য নয় ( \Magento\Framework\AppInterface::VERSIONধ্রুবক সরানো হয়েছিল)

সংস্করণটি পাওয়ার নতুন উপায় হ'ল পণ্য মেটাডেটা ইনস্ট্যান্স থেকে এটি পুনরুদ্ধার করা (কম্পোজার জাজসন থেকে সংস্করণটি পড়ুন):

$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();

(কনট্রাক্টর হিসাবে প্রোডাক্ট মেটাটাটা ইনজেকশন করা ভাল \Magento\Framework\App\ProductMetadataInterface)


10

অন্যান্য উত্তরের উপরে, আপনি আপনার ম্যাজেন্টো 2 ওয়েবসাইটে অ্যাক্সেস করে প্রধান সংস্করণটি (উদাহরণস্বরূপ 2.1) পেতে পারেন /magento_version


এই বিষয়টি চিহ্নিত করার জন্য ধন্যবাদ. আমার কাছে সুরক্ষা ফাঁসের মতো মনে হচ্ছে: হ্যাকারদের পক্ষে দুর্বল Magento 2 সাইটগুলি সন্ধানের এটি দুর্দান্ত উপায়! অবশ্যই, আপনি কেবল এইভাবে প্রধান এবং গৌণ সংস্করণটি পেতে সক্ষম হবেন বলে মনে হয় তবে এটি এখনও খারাপ ধারণা বলে মনে হয়।
toon81

দুর্দান্ত "দ্রুত এবং নোংরা" কৌশল, ধন্যবাদ!
মাওয়েজম

6

যদি কেউ এটি নিজেই খুঁজে পেতে হয়। বেস ম্যাগেন্টো মডিউল সংস্করণটি এই সুরকার ফাইলে অবস্থিত:

vendor/magento/magento2-base/composer.json

উপরে উল্লিখিত হিসাবে কোডের নীচে কাজ করার জন্য:

$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();

\Magento\Framework\App\ProductMetadataএখন ComposerJsonFinderইনস্ট্যান্টেশন সময় পাস করার উদাহরণ প্রয়োজন ।

একটি উদাহরণ আমি পেয়েছি dev/tests/integration/testsuite/Magento/Framework/Composer/ComposerInformationTest.php:

$directories = [
    DirectoryList::CONFIG => [DirectoryList::PATH => __DIR__ . '/_files/'],
    DirectoryList::ROOT => [DirectoryList::PATH => __DIR__ . '/_files/' . $composerDir],
    DirectoryList::COMPOSER_HOME => [DirectoryList::PATH => __DIR__ . '/_files/' . $composerDir],
];

$this->directoryList = $this->objectManager->create(
    'Magento\Framework\App\Filesystem\DirectoryList',
    ['root' => __DIR__ . '/_files/' . $composerDir, 'config' => $directories]
);

$this->composerJsonFinder = new ComposerJsonFinder($this->directoryList);

উপরের কোডটি খালি তথ্যগত উদ্দেশ্যে purposes এটি কাজ করতে আপনাকে আরও খনন করতে হবে।


6

ম্যাজেন্টো সংস্করণটি পেতে আপনি নীচে কমান্ড চালাতে পারেন:

php bin/magento --version

দেখে মনে হচ্ছে এটি কমিউনিটি বনাম ম্যাজেন্টোর এন্টারপ্রাইজ সংস্করণগুলিকে আলাদা করে না
maoizm

4

ব্যবহারকারীদের মতো ইউনিক্সের জন্য

এর জন্য কোনও পিএইচপি কোড লেখার দরকার নেই। কারণ ম্যাজেন্টো 2 সুরকারকে ব্যবহার করে এটি এটিকে আরও সহজ করে তোলে। আপনি এই দুটি উপায়ে করতে পারেন:

কম্পোজার.জসনটি পরীক্ষা করে দেখুন এবং সংস্করণ নামক একটি কী সন্ধান করুন। আপনি যদি আমার মতো হন তবে যিনি টার্মিনালটি ব্যবহার করতে পছন্দ করেন আপনি প্রকল্পের মূলের মতো কিছু করতে পারেন।

composer licenses | grep Version:

এটি এম 2 এর সংস্করণটি ফেরত দেয় যদি আপনি তার সম্প্রদায় বা কোনও এন্টারপ্রাইজ সংস্করণটি পরীক্ষা করতে চান তবে কেবল নিম্নলিখিতটি করুন:

composer licenses | grep Name:

1

সহজভাবে magento2 রুটে composer.json ফাইলটি পরীক্ষা করে দেখুন, আপনি এই জাতীয় পাঠ্য পেয়ে যাবেন

"version": "2.1.2",

composer.json"^ 2.1" এর মতো সংস্করণের সীমাবদ্ধতা থাকতে পারে যা সঠিক সংস্করণটি নির্দেশ করে না। composer.lockসঠিক সংস্করণটি বর্তমানে ইনস্টল করা আছে তা দেখতে আপনার ফাইলটি পরীক্ষা করা উচিত ।
7ochem


1

ম্যাজেন্টো সংস্করণ চেক করার কয়েকটি উপায় এখানে রয়েছে

পদ্ধতি # 1: পিএইচপি কোড চেকিং ব্যবহার করুন

ম্যাজেন্টো 1 সংস্করণ পরীক্ষা করুন
Mage::getVersion() //will return the magento version
ম্যাজেন্টো 2 সংস্করণ পরীক্ষা করুন

আপনি এটি 2.0.x সংস্করণে ব্যবহার করতে পারেন:

echo \Magento\Framework\AppInterface::VERSION;

সংস্করণ ২.১ এর জন্য:

প্রথম উপায়, ডিআই ব্যবহার করে:

public function __construct( \Magento\Framework\App\ProductMetadataInterface $productMetadata ) { 
    $this->productMetadata = $productMetadata; 
} 
public function getMagentoVersion() { 
    return $this->productMetadata->getVersion(); 
}

দ্বিতীয় উপায়, অবজেক্টম্যানেজার সরাসরি ব্যবহার করে:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface'); 
echo $productMetadata->getVersion();

পদ্ধতি # 2: কমান্ড লাইনের মাধ্যমে ম্যাজেন্টো সংস্করণ পরীক্ষা করুন

ম্যাজেন্টো 2 সংস্করণ পেতে আপনি নীচের কমান্ডটি চালনা করতে পারেন:

php bin/magento --version

আসলে, যেহেতু ম্যাজেন্টো 2 এর রচয়িতাটি ব্যবহার করেছে যাতে এর জন্য আপনাকে কোনও পিএইচপি কোড লেখার প্রয়োজন হয় না। পরিবর্তে, Magento 2 সংস্করণ খুঁজে পেতে দুটি বিকল্প রয়েছে:

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

composer licenses | grep Version:

ম্যাজেন্টো 2 সংস্করণের আবহাওয়াটি এটি সম্প্রদায় বা এন্টারপ্রাইজ সংস্করণ যাচাই করার অন্য উপায়, দয়া করে নীচে লিখুন

composer licenses | grep Name:

Https://www.mageplaza.com/check-magento-version/ চেক করতে ওয়েব পরিষেবা ব্যবহার করুন


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