ম্যাজেন্টো ক্যাশেও আলাদা নয়। বেসিকগুলি দিয়ে শুরু করে, ক্যাশে বিকল্পগুলিতে নেভিগেট করে দেখা যাবে
সিস্টেম-> ক্যাশে পরিচালনা
ব্যাকএন্ডে। আপনি ক্যাচিংয়ের বিভিন্ন ক্ষেত্রগুলি দেখতে পাচ্ছেন যা সক্ষম / অক্ষম করা যেতে পারে, যেমন কোনও কনফিগারেশন, লেআউট.এক্সএমএল, ব্লক, পূর্ণ পৃষ্ঠা এবং এপিআই ফাইল। স্পষ্টতই আদর্শ হ'ল সাইটটি লাইভ হওয়ার পরে এই সমস্তগুলি সক্ষম করা।
ক্যাশে এখান থেকে সাফ, বা ফ্লাশ করা যায়। লেবেলযুক্ত বোতামটি টিপলে যে “Flush Magento Cache”
কোনও ক্যাশে ফাইল ফ্লাশ হবে যা ম্যাজেন্টো ব্যবহার করে এমন ডিফল্ট ট্যাগগুলির একটি নির্দিষ্ট সেটের সাথে মেলে। এটি ক্যাশে সাফ করার "নিরাপদ" উপায়, কারণ এটি একেবারে সবকিছু পরিষ্কার করে না। আপনি যদি কোনও মাধ্যমিক ক্যাশে ধরণের ব্যবহার করছেন তবে ক্লিক “Flush Cache Storage”
করলে নিশ্চিত হবে যে আপনি ক্যাশে সাফ করেছেন, কারণ এটি সমস্ত কিছু পরিষ্কার করে। অন্যান্য দুটি বোতাম আপনি অ্যাডমিন পৃষ্ঠায় দেখবেন জাভাস্ক্রিপ্ট এবং CSS এবং ক্যাটালগ চিত্রগুলি সাফ করবে will
ক্যাশে সাফ করার একটি বিকল্প এবং কিছুটা কম নিরাপদ উপায় হল নেভিগেট করে
websiteroot প্রথমেই / var / ক্যাশে
এবং ম্যানুয়ালি সমস্ত ফাইল মুছে ফেলা হচ্ছে। একই জন্য যায়
websiteroot প্রথমেই / var / full_page__cache
আপনার যদি পুরো পৃষ্ঠা ক্যাশে সক্ষম করা থাকে।
এন্টারপ্রাইজ সংস্করণে উপলভ্য পূর্ণ পৃষ্ঠার ক্যাশেটি আপনার সাইটের গতি 10 গুণ বাড়িয়ে দিয়েছে, তবে আপনি যদি কোনও গতিশীল বিষয়বস্তু ক্যাশে হবার বিষয়টি লক্ষ্য করেন তবে এটি সম্পর্কে কিছুটা জানা গুরুত্বপূর্ণ। একটি আকর্ষণীয় ফাইলটি দেখুন
websiteroot / অ্যাপ্লিকেশন / কোড / কোর / এন্টারপ্রাইজ / PageCache জন্য / etc / cache.xml
এখানে আপনি এফপিসি, ব্লকের নাম, ধারকের নাম এবং সেশন আজীবন কী কী ক্যাশে করছেন তা দেখতে পাবেন can আপনি যদি ক্যাচ থেকে এই ব্লকগুলির কোনওটিকে সম্পাদনা বা সরিয়ে ফেলার একেবারে প্রয়োজনীয় মনে করেন তবে আপনি পেজক্যাচ মডিউলটির উপর নির্ভরশীল একটি মডিউল তৈরি করে এবং সেখানে কোনও পরিবর্তন রেখে do
স্থানধারক ট্যাগ FPC কে বলে যে সেই ব্লকটি গতিশীল হিসাবে বিবেচিত হয়। যখন কোনও পৃষ্ঠা লোড করা হয়, যদি ব্লকটি এখনও ক্যাশে না থাকে তবে স্থানধারক ট্যাগগুলিতে এই আইডি মানটি ক্যাশে অনুসন্ধান করা হয়, এবং যদি এটি উপস্থিত না থাকে, তবে ব্লকটি কল করা এবং উত্পন্ন করা হয়, এবং আইডি যুক্ত করা হয় ক্যাশে
ম্যাজেন্টোর সংকলন বৈশিষ্ট্যটি এর নীচে পাওয়া যাবে
সিস্টেম> সরঞ্জাম> সংকলন
আপনি যদি একটি নতুন ইনস্টল চালিয়ে যাচ্ছেন তবে আপনি সম্ভবত একটি সিস্টেম বার্তা পাবেন যা উভয় includes and includes/src/
ডিরেক্টরিই লিখনযোগ্য হতে হবে। এটি সম্পন্ন হয়ে গেলে আমরা 'সংকলন রান করুন' বোতামটি টিপতে পারি এবং আপনি মূলত সম্পন্ন হয়ে যান, ম্যাজেন্টো কোরটি সংকলনটি ব্যবহার করছে।
যখন ম্যাজেন্টো এটির উত্স কোডটি কম্পাইল করে, ফ্রেমওয়ার্কটি কয়েকটি কাজ করে। পারেন অ্যাডমিন মাধ্যমে আলোড়ন সৃষ্টি বা হচ্ছে shell, see shell/compiler.php
, কম্পাইল সমস্ত একটি একক বর্গ দ্বারা সম্পন্ন হয়: Mage_Compiler_Model_Process
। এই শ্রেণীর মধ্যে আপনি নীচের স্নিপেটটি পাবেন যা আসলে পুরো প্রক্রিয়াটির একটি পাখি-চোখের দৃশ্য।
/**
* Run compilation process
*
* @return Mage_Compiler_Model_Process
*/
public function run()
{
$this->_collectFiles();
$this->_compileFiles();
$this->registerIncludePath();
return $this;
}
$this->_collectFiles();
কল দিয়ে লাথি মেরে , ম্যাজেন্টো উভয় থেকে সমস্ত পিএইচপি ফাইলগুলি অনুলিপি করে
অ্যাপ্লিকেশন / কোড
এবং lib ডিরেক্টরিতে ডিরেক্টরি
/ / Src অন্তর্ভুক্ত
ডিরেক্টরি। যেমন আপনি নীচের স্নিপেটে দেখতে পাচ্ছেন: এই প্রক্রিয়া চলাকালীন ম্যাজেন্টো পুনরাবৃত্তভাবে সমস্ত ফাইল এবং ডিরেক্টরিতে পুনরাবৃত্তি করে। এই পাথগুলি শেষ পর্যন্ত ফাইলের নাম হিসাবে ব্যবহৃত হয়। যখন পুনরাবৃত্তি প্রক্রিয়া কোনও ফাইলকে হিট করে এটি পিএইচপি এক্সটেনশনের জন্য যাচাই করে এবং খুঁজে পাওয়া গেলে ফাইলটি সংকলক ডিরেক্টরিতে অনুলিপি করা হয়। অন্যান্য ফাইলের ধরণগুলি ছোঁয়াচে রাখা হয়েছে।
উদাহরণ হিসাবে: ক্লাসে Mage_GGG.re_Model_Category শ্রেণীর পথ ছিল
অ্যাপ্লিকেশন / কোড / কোর / পুরোনো যাদুকর / ক্যাটালগ / মডেল / Category.php
তবে, সংকলন সক্ষম করে এখন পরিণত হয়েছে
/ Src / Mage_Catalog_Model_Category.php অন্তর্ভুক্ত
/**
* Copy files from all include directories to one.
* Lib files and controllers files will be copied as is
*
* @return Mage_Compiler_Model_Process
*/
protected function _collectFiles()
{
$paths = $this->_getIncludePaths();
$paths = array_reverse($paths);
$destDir= $this->_includeDir;
$libDir = Mage::getBaseDir('lib');
$this->_mkdir($destDir);
foreach ($paths as $path) {
$this->_controllerFolders = array();
$this->_copy($path, $destDir); // this one will run recursively through all directories
$this->_copyControllers($path);
if ($path == $libDir) {
$this->_copyAll($libDir, $destDir);
}
}
$destDir.= DS.'Data';
$this->_mkdir($destDir);
$this->_copyZendLocaleData($destDir);
return $this;
}
নিয়ামকরা অন্য একটি চিকিত্সা পেয়ে যাচ্ছেন। সমস্ত নিয়ামক ডিরেক্টরিতে অনুলিপি করা হয়
অন্তর্ভুক্ত / src /
তবে এটি কোনও ডিরেক্টরিতে সঞ্চিত থাকে যার নাম সম্পর্কিত এটি সম্পর্কিত নামটি মনে করুন: ম্যাজ, এন্টারপ্রাইজ বা আপনার নিজস্ব প্রদত্ত নেমস্পেস।
এই নেমস্পেস ডিরেক্টরিগুলির মধ্যে নিয়ন্ত্রকগুলি মডিউল প্রতি সঞ্চিত থাকে এবং নিয়ামক ডিরেক্টরি কাঠামোটি অচ্ছুত রাখা হয়। ফাইলের নাম একই হয় এটি ঠিক একটি অনুলিপি। এই সমস্ত যুক্তি নিম্নলিখিত পদ্ধতিতে পাওয়া যাবে$this->_copyControllers($path);
এই দ্বিতীয় স্তরের সংকলনটি অ্যাডমিন থেকে সমস্ত স্কোপ এবং তাদের নিজ নিজ শ্রেণীর তালিকা সংগ্রহ করে। এই সমস্ত স্কোপগুলি সম্পর্কিত শ্রেণীর ফাইলগুলির বিষয়বস্তু আনার মাধ্যমে প্রক্রিয়াজাত করা হচ্ছে এবং তাদের দেওয়া স্কোপ অনুসারে একটি একক ফাইলে লিখুন।
/**
* Compile classes code to files
*
* @return Mage_Compiler_Model_Process
*/
protected function _compileFiles()
{
$classesInfo = $this->getCompileClassList();
foreach ($classesInfo as $code => $classes) {
$classesSorce = $this->_getClassesSourceCode($classes, $code);
file_put_contents($this->_includeDir.DS.Varien_Autoload::SCOPE_FILE_PREFIX.$code.'.php', $classesSorce);
}
return $this;
}
ডিফল্টরূপে ম্যাজেন্টো চারটি আলাদা স্কোপ ফাইল তৈরি করে:
__default.php, __catolog.php, __checkout.php এবং __cms.php
এই স্কোপ ফাইলগুলি তৈরির প্রক্রিয়া চলাকালীন ম্যাজেন্টো স্কোপ তালিকায় প্রদত্ত শ্রেণীর দ্বারা ব্যবহৃত সমস্ত শ্রেণীর বিস্তৃত এবং ইন্টারফেসগুলি স্বয়ংক্রিয়ভাবে পার্স করে।
সমস্ত ফাইল জায়গায় এবং সংকলিত সহ, Magento ব্যবহারের জন্য সংকলন বৈশিষ্ট্য সক্ষম করতে প্রস্তুত।
কমপ্লেক্স সম্পর্কিত কনফিগারেশনটি শেষ হলেও সামঞ্জস্য নয়। এই ফাইলটি পাওয়া যেতে পারে includes/config.php
এবং নিম্নলিখিত দুটি ধ্রুবক ধারণ করে। সংকলন সক্ষম করার পরে COMPILER_INCLUDE_PATH সম্পর্কিত লাইনটি নিঃশর্ত এবং এইভাবে পদক্ষেপের জন্য প্রস্তুত।
> #define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src');
> #define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat');
কনফিগারেশন ফাইল সামঞ্জস্য করার জন্য দায়বদ্ধ কোডটি এর নিবন্ধের তালিকাভুক্ত পদ্ধতিতে পাওয়া যাবে Mage_Compiler_Model_Process class
।
বুটস্ট্র্যাপের সময় সংকলন কনফিগারেশন ফাইলটি এর মধ্যে অন্তর্ভুক্ত করা হয় index.php file (around line 44)
। এটি পুরো ফ্রেমওয়ার্ক জুড়ে অন্তর্ভুক্ত_পথ স্থির করে তোলে। সংগ্রহ_পথ এমন একটি জিনিস যা আপনি কেবল নিজের সংকলিত ফাইলগুলির ব্যবহার সম্পর্কে আরও পরিসংখ্যান সম্পর্কিত তথ্য ম্যানুয়ালি সক্ষম করতে পারবেন। এটি লাইভে সক্ষম করা উচিত নয়।
/**
* Compilation includes configuration file
*/
$compilerConfig = 'includes/config.php';
if (file_exists($compilerConfig)) {
include $compilerConfig;
}
এই স্থান থেকে ম্যাজেন্টো নীচের বিবৃতিটি সহ সংকলন মোড সক্ষম কিনা তা পরীক্ষা করবে। কোডবাসের মধ্য দিয়ে যাচ্ছেন ('গ্রেপ' ব্যবহার করে) আপনি লক্ষ্য করবেন যে এই যুক্তিটির বেশিরভাগ lib/Varien/Autoload.php
ফাইলটিতে পাওয়া যাবে ।
if (defined('COMPILER_COLLECT_PATH')) {
// do stuff
}
সন্ধান করার জন্য অন্য জায়গাটি হ'ল Mage_Core_Controller_Varien_Action
। এই শ্রেণিতে আপনি preDispatch()
পদ্ধতিটি পাবেন, যা পদ্ধতিটি প্রেরণের আগে প্রতিটি নিয়ামক অ্যাকশন পদ্ধতির জন্য ট্রিগার করা হয়। উত্সের এই অংশে ম্যাজেন্টোর অটোলোডার শ্রেণি ভারিয়ান_আউটোয়াদকে একটি নির্দিষ্ট সংকলন স্কোপ ফাইল লোড করার জন্য বলা হচ্ছে।
Mage::dispatchEvent('controller_action_predispatch', array('controller_action'=>$this));
Mage::dispatchEvent(
'controller_action_predispatch_'.$this->getRequest()->getRouteName(),
array('controller_action'=>$this)
);
Varien_Autoload::registerScope($this->getRequest()->getRouteName()); // right here
Mage::dispatchEvent(
'controller_action_predispatch_'.$this->getFullActionName(),
array('controller_action'=>$this)
);
সংকলন মোডে চলার সময় ম্যাজেন্টোতে কেবল একটি অন্তর্ভুক্ত পথ, includes/src/
ডিরেক্টরি থাকে, সুতরাং প্রতিটি ফাইল সরাসরি প্রথম চেষ্টাতেই পাওয়া যায়। ম্যাজেন্টো যে পরিমাণ যথেষ্ট পরিমাণে ফাইল রয়েছে তাতে এটি বেশ কিছুটা সময় সাশ্রয় করে। নীচে স্নিপেট থেকে নেওয়া হয়
অ্যাপ্লিকেশন / Mage.php
if (defined('COMPILER_INCLUDE_PATH')) {
$appPath = COMPILER_INCLUDE_PATH;
set_include_path($appPath . PS . Mage::registry('original_include_path'));
include_once "Mage_Core_functions.php";
include_once "Varien_Autoload.php";
} else {
/**
* Set include path
*/
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'local';
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'community';
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'core';
$paths[] = BP . DS . 'lib';
$appPath = implode(PS, $paths);
set_include_path($appPath . PS . Mage::registry('original_include_path'));
include_once "Mage/Core/functions.php";
include_once "Varien/Autoload.php";
}
যখন পিএইচপি কোনও ফাইল অন্তর্ভুক্ত করে তখন সামগ্রীটি অপকোডে সংকলিত হয়। এটি এমন একটি প্রক্রিয়া যা প্রতিবার কোনও ফাইল অন্তর্ভুক্ত করার সময় করা দরকার। আপনার দোকানের কর্মক্ষমতা আরও উন্নত করতে আপনি আপনার সার্ভারে এপিসি ইনস্টল করতে পারেন। এপিসি ফাইলগুলির অপকড সংস্করণগুলিকে ক্যাশে করে, পরবর্তীগুলি অনুরোধের জন্য এগুলিকে উপলব্ধ করে। সুতরাং পরবর্তী অনুরোধের ভিত্তিতে: ফাইলটি আবার একই প্রক্রিয়াটির মধ্য দিয়ে যেতে না পারার পরিবর্তে এবং আপনার কার্য সম্পাদন না করে এপিসি ক্যাশে থেকে পড়া হবে।