ম্যাজেন্টো রেজিস্ট্রি বোঝা


13

আমি সবসময়ই ভাবছিলাম, সমস্ত রেজিস্ট্রি ডেটা ম্যাগেন্টোতে কোথায় আছে?

আমি জানি যে এমনকি সিঙ্গলটন অবজেক্টগুলি রেজিস্ট্রিতে সঞ্চিত রয়েছে। এবং রেজিস্ট্রি ম্যাগ ক্লাসের কেবল একটি স্ট্যাটিক অ্যারে ভেরিয়েবল ।

আমার বিভ্রান্তি দূর করতে আমার এখানে কয়েকটি প্রশ্ন রয়েছে:

  1. বিভিন্ন ব্যবহারকারীর জন্য কি রেজিস্ট্রি আলাদা? মানে কি এটি প্রতি ব্যবহারকারী (প্রতি HTTP অনুরোধ) ভিত্তিতে তৈরি হয়েছে?

উদাহরণ স্বরূপ,

Mage::register('foo', 'Hello World'); //set a value for foo
Mage::registry('foo'); //will this return hello world for all HTTP users ?
  1. রেজিস্ট্রি ডেটা সেশনে সংরক্ষণ করা হয়? যদি না হয় তবে ম্যাগেন্তো কীভাবে চিহ্নিত করবেন যে কোনও ব্যবহারকারী রেজিস্ট্রি ডেটা চালু করেছেন?

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




ধন্যবাদ অমিত বেরা, আমি এই প্রশ্নটি পোস্ট করার আগে অ্যালানের সেই নিবন্ধটি এবং এসওএফ উত্তরটি পড়ছিলাম। আমি সেখান থেকে আমার উত্তর পেতে পারলাম না।
হাশিদ

উত্তর:


23

রেজিস্ট্রি মেমরিতে ডেটা সঞ্চয় করে যা সেই অনুরোধের সাথে সুনির্দিষ্ট (ব্যবহারকারীর বা অন্য কোনও কিছু নয়), এবং কেবলমাত্র সেই অনুরোধের সময়কালের জন্য স্থির থাকে। নীতিটি সত্যই খুব সহজ, Mageক্লাসটি প্রতিটি অনুরোধের জন্য সিঙ্গলটন অবজেক্ট হিসাবে তাত্ক্ষণিক হয় এবং তাত্ক্ষণিক Mage অবজেক্টটি স্মৃতিতে থেকে যায়, এবং অনুরোধটি সম্পূর্ণ না হওয়া এবং প্রতিক্রিয়া প্রেরণ না হওয়া পর্যন্ত সমস্ত ক্লাসে (এবং টেম্পলেটগুলি) অ্যাক্সেসযোগ্য।

যেহেতু বস্তুটি একটি সিঙ্গলটন, আপনি যখনই এটি অ্যাক্সেস করেন আপনি একই বস্তুটি পান। যা ঘটছে তা হ'ল আপনি এই বস্তুর সাথে মানগুলি সংরক্ষণ করছেন, সুতরাং যখন একটি শ্রেণি একটি মান সঞ্চয় করে এবং অন্যটি এটি অ্যাক্সেস করে তারা উভয় একই বস্তুতে কাজ করছে এবং দ্বিতীয় শ্রেণি প্রথম শ্রেণীর সেটটি পুনরুদ্ধার করতে সক্ষম হয়।


1
সুতরাং এটি কেবল একটি অনুরোধের জন্যই বেঁচে আছে? মানে যদি আমি ম্যাজেন্টোতে কোনও পৃষ্ঠা লোড করি তবে একটি অনুরোধ শেষ হয়েছে এবং রেজিস্ট্রি ডেটা ফ্লাশ করা আছে?
হাশিদ

4
হ্যাঁ মানগুলি আপনি সেট করেছেন Mage::register()কেবল সেই অনুরোধটির জন্যই। আপনি যদি ব্যবহারকারী নির্দিষ্ট ডেটা সঞ্চয় করতে চান তবে আপনার সেশনটি ব্যবহার করা উচিত, রেজিস্ট্রিটি কেবলমাত্র ক্লাসের মধ্যে ডেটা পোর্টেবল করার জন্য তৈরি করা হয়েছে।
জোনাথন হাসি

1
এটা বোধগম্য! একই একই ক্ষেত্রে প্রয়োগ করা হয়?
হাশিদ

1
হ্যাঁ ঠিক একই - আপনি শ্রেণীর getSingleton()পদ্ধতির দিকে নজর দিলে Mageএটি আসলে রেজিস্ট্রিতে ডেটা সংরক্ষণ করে।
জোনাথন হাসি

3

রেজিস্ট্রি মেমরিতে সঞ্চয় করা হয় এবং প্রতি HTTP অনুরোধ অনুযায়ী হয়, তাই আপনি বিভিন্ন অনুরোধ বা ব্যবহারকারীর মধ্যে ডেটা ভাগ করতে সক্ষম হন না।


তবে কীভাবে ম্যাগেন্টো এইচটিটিপি অনুরোধ এবং রেজিস্ট্রি মানচিত্র করবে?
হাশিদ

2

অ্যাপ্লিকেশনটির স্মৃতিতে ম্যাগেন্টো রেজিস্ট্রি সঞ্চিত ।

যখনই আপনার স্ক্রিপ্টটি চলমান হয়ে যায়, আপনি রেজিস্ট্রিতে যা কিছু রেখেছিলেন তা শেষ হয়ে যায়, সুতরাং এটি পরিষ্কার করার বিষয়ে চিন্তা করার দরকার নেই (যদি আপনি যে স্ক্রিপ্টটি চালাচ্ছেন তা রেজিস্ট্রিতে বড় আকারের জিনিসগুলি সংরক্ষণ করে এবং প্রচুর পরিমাণে লুপিং না করে) তথ্য)।

সেক্ষেত্রে আপনার এন্ট্রিগুলি সম্পন্ন করার সময় আপনাকে নিবন্ধভুক্ত করতে হবে।

রেজিস্ট্রি ম্যাগ ক্লাসের কেবল একটি স্থিতিশীল সম্পত্তি। বিশদ জন্য দেখুন

কিন্তু তবুও আমি সত্যিই একটি ভাল ব্যাখ্যা খুঁজে পাইনি

2) প্রতিটি ব্যবহারকারীর জন্য সার্ভারে অনুরোধ অনুযায়ী পৃথক রেজিস্ট্রি থাকবে।

আশা করি এটি আপনার মনে কিছুটা পরিষ্কার হয়ে যাবে


লিয়াকত ধন্যবাদ আমি পোস্টগুলি পড়ার আগে prattski.com/2014/09/23/using-the-magento-registry- museregister পড়েছি : পি তবে ম্যাগেন্টো কীভাবে চলক এবং ব্যবহারকারীর মানচিত্রটি তৈরি করবে?
হাশিদ

1
@ হাশিদ, আপনিও অ্যালানের ব্লগের সাথে আরও ধারণা পেতে পারেন। কোড অনুসরণে রেজিস্ট্রি প্রতিটি অনুরোধের সাথে কীভাবে কাজ করছে। alanstorm.com/magento_registry_singleton_tutorial
লিয়াকত

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