উত্তর:
@ অস্বীকার করুন, সিএমডি ব্যবহার করে বলুন আপনি ক্যাশে সাফ করতে পারেন। কিন্তু পিএইচপি কমান্ড লাইনে আপনার সমস্যা
উইন্ডোতে পিএইচপি ক্লায়েন্টকে কমান্ড হিসাবে চালানোর জন্য আপনাকে পিএইচপিকে পরিবেশ উপলব্ধ হিসাবে সেট করতে হবে পিএইচপি-র জন্য এনভিভ ভেরিয়েবল কীভাবে সেট করবেন?
এরপরে আপনি সেন্টিমিডির মতো ম্যাজেন্টো 2 ক্লাইম কমান্ডের কোনওটি চালাতে পারেন
php bin/magento cache:clean
php bin/magento cache:flush
Or
php bin/magento c:c
php bin/magento c:f
আপনার প্রকল্পের অবস্থানটি সেন্টিমিডি থেকে যাওয়ার সময়
নীচের কোডটি প্রোগ্রামিয়ালি ক্যাশে ফ্লাশ করে। এটা আমার জন্য ভাল কাজ করেছিল.
কেস 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();
}
ধরণের হার্ডকোডিং একটি খারাপ ধারণা। পরিবর্তে আপনি 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());
}
অস্বীকার করার উত্তরে যোগ করতে আপনি কিছুটা পিএইচপি স্ক্রিপ্ট লিখতে এবং এটি আপনার ম্যাজেন্টো মূল ফোল্ডারে রেখে দিতে পারেন:
<?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/
আপনি নিম্নলিখিত কমান্ডগুলি ব্যবহার করে সমস্ত ক্যাশে ফ্লাশ বা রিফ্রেশ করতে পারেন
php bin/magento cache:clean
php bin/magento cache:flush
আমি আশা করি এটা তোমাকে সাহায্য করবে।
CLI
খোলা ম্যাজেন্টো রুটে তারপরে php bin/magento cache:clean
সমস্ত কমান্ড সন্নিবেশ করার জন্য ক্যাশে সাফ করার জন্য প্রবেশ করুন। আরও তথ্যের জন্য এই লিঙ্কটি ক্লিক করুন
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();
}
আমি আশা করি এটি আপনার পক্ষে কার্যকর হবে। :)
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();
}
}
?>
এটি আমার জন্য কাজ করেছে
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$cacheManager = $objectManager->create('Magento\Framework\App\Cache\Manager');
$cacheManager->flush($cacheManager->getAvailableTypes());