ড্রুপাল_স্ট্যাটিক () একটি ফানিউশন ভেরিয়েবল ব্যবহার করে, এর অর্থ কী?


21
function drupal_set_page_content($content = NULL) {
     $content_block = &drupal_static(__FUNCTION__, NULL);
     $main_content_display = &drupal_static('system_main_content_added', FALSE);

 if (!empty($content)) {
   $content_block = (is_array($content) ? $content : array('main' => array('#markup' => $content)));
 }
 else {
   $main_content_display = TRUE;
   return $content_block;
  }
}

এই স্নিপেটটি কমন.ইনস্ট থেকে আটকানো হয়েছে। আমরা একটি মধ্যে পাস __FUNCTION__করতে drupal_static()কিন্তু আমি কি এই পরিবর্তনশীল উপায়ে জানি না। এটি কি বাহ্যিক ক্রিয়াকলাপের জন্য নিজেই ক্যাশে বোঝায়? এটা কিভাবে কাজ করে? ফাংশনটি ফিরে আসার আগে কোনও ডেটা পরিচালনা করা দেখতে পাচ্ছি না $content_block

উত্তর:


34

__FUNCTION__পিএইচপি -র তথাকথিত ম্যাজিক কনস্ট্যান্টগুলির মধ্যে একটি।

এটি সবই ফাংশনটির নামের সাথে একটি স্ট্রিং ফিরে আসে যা ধ্রুবকটি অন্তর্ভুক্ত থাকে।

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

function my_strangely_named_function() {
  print __FUNCTION__;
}

উপরেরগুলি 'my_strangely_name_function' মুদ্রণ করবে।

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

আপনার কোডের একটি সংক্ষিপ্ত সংস্করণ ব্যবহার করতে:

function drupal_set_page_content($content = NULL) {
  $content_block = &drupal_static(__FUNCTION__, NULL);
}

ড্রুপাল জীবনচক্রের অন্য কোনও ক্রিয়াকলাপ কল করতে পারে:

drupal_static_reset('drupal_set_page_content');

এবং এটি সেই নির্দিষ্ট ক্রিয়াকলাপের জন্য ক্যাশে সাফ করবে, যাতে পরের বার যখন এটিকে ডেটা বলা হয় তখন নতুন থেকে তৈরি করা হয়।

এটি কেবল স্ট্যাটিক ক্যাশে প্যাটার্নের প্রাথমিক ব্যবহার, আপনি নিজের জন্য ডকুমেন্টেশন পৃষ্ঠায়drupal_static() আরও তথ্য এবং উদাহরণ খুঁজে পেতে পারেন ।


আপনার উত্তরের জন্য ধন্যবাদ, আমি এখন বুঝতে পারি যে এই ফাংশনটির অর্থ কী, তবে আরও আরও এই, কন্টেন্ট_ব্লক ভেরিয়েবলটি প্রথম কোথায় তৈরি হয়েছিল, কারণ আমি এই কোডটিতে সন্ধান করতে পারি এটি হ'ল ক্যাশে থেকে ডেটা পুনরুদ্ধার করা, তবে ক্যাশেটি কোথায় তৈরি করা হয়েছে? প্রথম স্থান, আপনাকে ধন্যবাদ!
দ্রুপাল ক্যা

1
আপনি কি সাধারণভাবে পিএইচপি-তে স্থির পরিবর্তনশীলগুলির সাথে পরিচিত?
ক্লাইভ

1
প্রথম মন্তব্যে, এবং দ্বিতীয়টিকে if
বাড়িয়ে

1
@ জিমাজাম্মা যা বলেছে, ততই সত্য যে drupal_staticএটি ব্যবহার করে এমন সিস্টেমে সমস্ত ক্রিয়াকলাপের জন্য ক্যাশেগুলির একটি রেজিস্ট্রি ধরে রাখে।
ক্লাইভ

1
এটি আমার পিএইচপি অজ্ঞতার একটি প্রদর্শন হতে পারে, তবে - যাইহোক: কেন তারা স্বীকৃতিতে বলে: drupal_staticবরং &drupal_static?
আর্তুর

3

গভীরতার তথ্য আপনি http://blogs.sourceallies.com/2012/02/static-caching-in-drupal/ এ পাবেন । এটি থেকে একটি উদ্ধৃতি এখানে:

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

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