উইন্ডো সিস্টেমে Magento 2 এ প্রোগ্রামিয়ালি ক্যাশে রিফ্রেশ করুন


12

আমি এমন কোড খুঁজছি যা স্ক্রিপ্টের মাধ্যমে ম্যাজেন্টো 2 ক্যাশে রিফ্রেশ বা ফ্লাশ করতে পারে।

ম্যাজেন্টো 1.x এ এটি এত সহজ ছিল।

আমি WAMP সার্ভারে (উইন্ডো) Magento2 চালাচ্ছি।

উত্তর:


2

@ অস্বীকার করুন, সিএমডি ব্যবহার করে বলুন আপনি ক্যাশে সাফ করতে পারেন। কিন্তু পিএইচপি কমান্ড লাইনে আপনার সমস্যা

উইন্ডোতে পিএইচপি ক্লায়েন্টকে কমান্ড হিসাবে চালানোর জন্য আপনাকে পিএইচপিকে পরিবেশ উপলব্ধ হিসাবে সেট করতে হবে পিএইচপি-র জন্য এনভিভ ভেরিয়েবল কীভাবে সেট করবেন?

এরপরে আপনি সেন্টিমিডির মতো ম্যাজেন্টো 2 ক্লাইম কমান্ডের কোনওটি চালাতে পারেন

php bin/magento cache:clean
php bin/magento cache:flush
           Or
php bin/magento c:c
php bin/magento c:f

আপনার প্রকল্পের অবস্থানটি সেন্টিমিডি থেকে যাওয়ার সময়


ম্যাজেন্টো ১ এর জন্য পদক্ষেপগুলি কি একই তা
zus us

23

নীচের কোডটি প্রোগ্রামিয়ালি ক্যাশে ফ্লাশ করে। এটা আমার জন্য ভাল কাজ করেছিল.

কেস 1: ম্যাজেন্টোর বাইরে

use Magento\Framework\App\Bootstrap;
include('../app/bootstrap.php');
$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();


try{
    $_cacheTypeList = $objectManager->create('Magento\Framework\App\Cache\TypeListInterface');
    $_cacheFrontendPool = $objectManager->create('Magento\Framework\App\Cache\Frontend\Pool');
    $types = array('config','layout','block_html','collections','reflection','db_ddl','eav','config_integration','config_integration_api','full_page','translate','config_webservice');
    foreach ($types as $type) {
        $_cacheTypeList->cleanType($type);
    }
    foreach ($_cacheFrontendPool as $cacheFrontend) {
        $cacheFrontend->getBackend()->clean();
    }
}catch(Exception $e){
    echo $msg = 'Error : '.$e->getMessage();die();
}

কেস 2: ম্যাজেন্টোর ভিতরে

public function __construct(
    Context $context,
    \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
    \Magento\Framework\App\Cache\Frontend\Pool $cacheFrontendPool
) {
    parent::__construct($context);
    $this->_cacheTypeList = $cacheTypeList;
    $this->_cacheFrontendPool = $cacheFrontendPool;
}


$types = array('config','layout','block_html','collections','reflection','db_ddl','eav','config_integration','config_integration_api','full_page','translate','config_webservice');
foreach ($types as $type) {
    $this->_cacheTypeList->cleanType($type);
}
foreach ($this->_cacheFrontendPool as $cacheFrontend) {
    $cacheFrontend->getBackend()->clean();
}

যদি কেবল কোনও নির্দিষ্ট পণ্যের স্ট্যান্ডওভারফ্লো.com
গেডিমিনাস

16

ধরণের হার্ডকোডিং একটি খারাপ ধারণা। পরিবর্তে আপনি cache:flushএবং cache:cleanকমান্ড দ্বারা ব্যবহৃত একই পদ্ধতি ব্যবহার করতে পারেন । নীচের উদাহরণে যেমন করা হয়েছে তেমন ক্যাশে ম্যানেজার শ্রেণিও আপনার জন্য সমস্ত ক্যাশে প্রকার টানতে পারে।

public function __construct(
    \Magento\Framework\App\Cache\Manager $cacheManager
) {
    $this->cacheManager = $cacheManager;
}

private function whereYouNeedToCleanCache()
{
    $this->cacheManager->flush($this->cacheManager->getAvailableTypes());

    // or this
    $this->cacheManager->clean($this->cacheManager->getAvailableTypes());
}

2

অস্বীকার করার উত্তরে যোগ করতে আপনি কিছুটা পিএইচপি স্ক্রিপ্ট লিখতে এবং এটি আপনার ম্যাজেন্টো মূল ফোল্ডারে রেখে দিতে পারেন:

<?php
    $command = 'php bin/magento cache:clean && php bin/magento cache:flush';
    echo '<pre>' . shell_exec($command) . '</pre>';
?>

এটি আপনাকে এর ফলাফল দেয়:

Cleaned cache types:
config
layout
block_html
collections
reflection
db_ddl
eav
config_integration
config_integration_api
full_page
translate
config_webservice
Flushed cache types:
config
layout
block_html
collections
reflection
db_ddl
eav
config_integration
config_integration_api
full_page
translate
config_webservice

দয়া করে নিশ্চিত হন যে আপনি প্রকৃতপক্ষে কমান্ড লাইন থেকে পিএইচপি ছাড়িয়ে নিতে পারবেন, অন্যথায় এটি অকেজো হবে। উইন্ডোগুলির জন্য আপনাকে নিশ্চিত করতে হবে যে আপনি পিএইচএইচএইচএইচটিএমএল এনভায়রনমেন্ট ভেরিয়েবলগুলিতে php.exe যুক্ত করেছেন। দয়া করে দেখুন http://willj.co/2012/10/run-wamp-php-windows-7-command-line/


এটি কিছুই দেখাচ্ছে না
অরুণেন্দ্র

1
উইন্ডোগুলির জন্য আপনাকে নিশ্চিত করতে হবে যে আপনি পিএইচএইচএইচএইচটিএমএল এনভায়রনমেন্ট ভেরিয়েবলগুলিতে php.exe যুক্ত করেছেন। দয়া করে উইলজ্যাব.কম.২০১২
২০১

আপনি যদি পিএইচপি-র জন্য শেল_এক্সেক () ব্যবহার করতে সক্ষম হন তবে আপনার ইনস্টলটি সুরক্ষিত নয়। এই ফাংশনটি একটি লাইভ পরিবেশে অক্ষম করা উচিত।
হতাশ

2

আপনি নিম্নলিখিত কমান্ডগুলি ব্যবহার করে সমস্ত ক্যাশে ফ্লাশ বা রিফ্রেশ করতে পারেন

php bin/magento cache:clean   
php bin/magento cache:flush

আমি আশা করি এটা তোমাকে সাহায্য করবে।


উইন্ডোতে এটি কিভাবে করবেন?
অরুণেন্দ্র

@ অরুনেন্দ্র, CLIখোলা ম্যাজেন্টো রুটে তারপরে php bin/magento cache:cleanসমস্ত কমান্ড সন্নিবেশ করার জন্য ক্যাশে সাফ করার জন্য প্রবেশ করুন। আরও তথ্যের জন্য এই লিঙ্কটি ক্লিক করুন
বোজহাইয়া

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

1

1. নির্ধারক সংজ্ঞায়িত - পাস

Magento \ ফ্রেমওয়ার্ক \ অ্যাপ \ ক্যাশে \ TypeListInterface

এবং

Magento \ ফ্রেমওয়ার্ক \ অ্যাপ \ ক্যাশে \ ফ্রন্টএন্ড \ পুল

নীচে সংজ্ঞায়িত হিসাবে আপনার ফাইলের নির্মাতাকে:

public function __construct(
    Context $context,
    \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
    \Magento\Framework\App\Cache\Frontend\Pool $cacheFrontendPool
) {
    parent::__construct($context);
    $this->_cacheTypeList = $cacheTypeList;
    $this->_cacheFrontendPool = $cacheFrontendPool;
}

২. এখন আপনি যে পদ্ধতিতে সাফ / ফ্লাশ ক্যাশে চান সে পদ্ধতিতে নিম্নলিখিত কোড যুক্ত করুন: -

$types = array('config','layout','block_html','collections','reflection','db_ddl','eav','config_integration','config_integration_api','full_page','translate','config_webservice');
foreach ($types as $type) {
    $this->_cacheTypeList->cleanType($type);
}
foreach ($this->_cacheFrontendPool as $cacheFrontend) {
    $cacheFrontend->getBackend()->clean();
}

আমি আশা করি এটি আপনার পক্ষে কার্যকর হবে। :)


0

cacheflush.php নামে একটি ফাইল তৈরি করুন এবং আপনার ম্যাজেন্টো মূল ফোল্ডারটি https এর ফোল্ডারের পাবলিক_এইচটিএমএল এর মতো আপলোড করুন। তাহলে thyite.com/cacheflush.php এটি পুরোপুরি কার্যকর হবে। আপনার হোস্টিংয়ে যদি আপনার কোনও সি এল আই মোড না থাকে তবে সমস্যা নেই ... কেবল এই কোডটি ব্যবহার করুন ..এটি আপনার সময় হ্রাস করবে।

<?php

        use Magento\Framework\App\Bootstrap;

        require __DIR__ . '/app/bootstrap.php';

        $bootstrap = Bootstrap::create(BP, $_SERVER);

        $obj = $bootstrap->getObjectManager();

        $state = $obj->get('Magento\Framework\App\State');
        $state->setAreaCode('frontend');
        $k[0]='bin/magento';
        $k[1]='cache:flush'; // write your proper command like setup:upgrade,cache:enable etc...
        $_SERVER['argv']=$k;
        try {
            $handler = new \Magento\Framework\App\ErrorHandler();
            set_error_handler([$handler, 'handler']);
            $application = new Magento\Framework\Console\Cli('Magento CLI');
            $application->run();
        } catch (\Exception $e) {
            while ($e) {
                echo $e->getMessage();
                echo $e->getTraceAsString();
                echo "\n\n";
                $e = $e->getPrevious();
            }
        }
    ?>

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