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


23

আমি বেশ কয়েকটি রিলিজ স্ক্রিপ্টে ম্যাগ বুটস্ট্র্যাপ করে রিলিজ কনফিগারেশনগুলি স্বয়ংক্রিয় করছি। স্ক্রিপ্টগুলির শেষে, আমাকে ম্যাজেন্টোর ক্যাশে ফ্লাশ করা দরকার।

কোনও Mageক্লাস বা পদ্ধতি ব্যবহার করে ক্যাশে ফ্লাশ করার কোনও উপায় আছে ?


1
এটি ব্যবহার করে দেখুন: Mage :: অ্যাপ () -> ক্লিনচ্যাশ () বা ম্যাজ :: অ্যাপ () -> getCacheInstance () -> ফ্লাশ ();
স্টিফান গ্রেগরি

উত্তর:


25

প্রোগ্রামের মাধ্যমে ক্যাশে ফ্লাশ করতে দয়া করে নীচের কোডটি চেষ্টা করুন

Mage::app()->cleanCache()

অথবা

Mage::app()->getCacheInstance()->flush(); 

40

আপনি যদি সত্যিই চাইতেন তবে কেবল এক বা একাধিক ক্যাশে ধুয়ে ফেলতে পারেন। অ্যাডমিন বিভাগটি এটি কীভাবে এটি করে। অধীনেMage_Adminhtml_CacheController::massRefreshAction

আপনি দেখতে পাচ্ছেন যে এটি সমস্ত পরামিতিগুলির মধ্য দিয়ে যায় typesএবং নিম্নলিখিতগুলিতে কল করে

$tags = Mage::app()->getCacheInstance()->cleanType($type);
Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
$updatedTypes++;

সম্ভাব্য প্রকারগুলি নিম্নরূপ:

  1. কনফিগ
  2. বিন্যাস
  3. block_html
  4. অনুবাদ
  5. সংগ্রহগুলি
  6. eav
  7. config_api
  8. config_api2
  9. পুরো পাতা

এবং এগুলি কল করে ফেরত দেওয়া যেতে পারে Mage::app()->getCacheInstance()->getTypes()


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

6

সমস্ত ক্যাশে সাফ করার জন্য একটি দ্রুত বাহ্যিক স্ক্রিপ্ট:

<?php

require_once './app/Mage.php';
umask(0);
Mage::app('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

try {
    $allTypes = Mage::app()->useCache();
    foreach($allTypes as $type => $value) {
        Mage::app()->getCacheInstance()->cleanType($type);
        Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
        echo "{$type} </br>";
    }
    echo 'done';
} catch (Exception $e) {
    echo $e->getMessage();
}

3

আমাদের আমরা n98-magerun ব্যবহার করতে পারি । বিশেষত যেহেতু মোতায়েনের স্ক্রিপ্টগুলি কার্যকর করার সময় আপনার কখনই ক্যাশে ফ্লাশ করা উচিত নয়। এছাড়াও তাকান sys:setup:incrementalMagento সেটআপ স্ক্রিপ্ট আরো নিয়ন্ত্রিত সঞ্চালনের জন্য subcommand।


আপনি কি আপনার বিবৃতিতে কিছু অতিরিক্ত অন্তর্দৃষ্টি প্রদান করতে পারেন "বিশেষত যেহেতু আপনাকে মোতায়েনের স্ক্রিপ্টগুলি কার্যকর করার সময় ক্যাশেটি কখনই ফ্লাশ করা উচিত নয়"?
STW

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

1

যদি আপনাকে সত্যিকার অর্থে সমস্ত ক্যাশে স্টোরেজ পরিষ্কার করতে হয় তবে নীচের কোডটি ব্যবহার করুন,

Mage::app()->getCacheInstance()->flush();

এখানে ফ্লাশ ফাংশনটি ডিফল্ট ম্যাজেন্টো ক্যাশে কার্যকারিতা বলে।

/programming/15028159/magento-flush-cache-storage

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