it-swarm.asia

أين أعلن متغير عام؟

أحتاج إلى تحديد متغير عالمي. أين يجب أن أحدده؟

  1. لن أستخدم المتغير العام في ملفات القالب
  2. لا ينبغي لي استخدام settings.php
  3. سأستخدم المتغير العام فقط في جميع ملفات الوحدة النمطية المخصصة
4
Fero

أنا شخصياً سأكتب إما وحدة نمطية تلخص الحاجة إلى متغير عالمي ، أو على الأقل لديها وظيفة getter لاسترجاعها. شيء مثل

function foo_get_the_service ()
{
  static $service;

  if (! isset($service)) {
    $service = foo_init_the_service();
  }

  return $service;
}

تقوم العديد من وظائف Drupal API بشيء مماثل (على سبيل المثال menu_get_active_trail () و menu_set_active_trail () ) ؛

وبعد ذلك يفضل أن يكون للوحدة النمطية الخاصة بك وظائف مساعدة لذلك لا تحتاج للوصول إلى العالمية مباشرة. إذا كان هناك شيء ما يحتاج فعلًا إلى العالمية ، فعندئذٍ ستستخدم الجالب.

إذا كانت عالميتك هي مثال لفئة مناسبة PHP ، فيمكنك أن تنظر في استخدام سينجلتون حقيقي .

8
mpdonadio

أعتقد أن ما تبحث عنه هو الاستفادة من متغيرات دروبال باستخدام variable_set () لإنشائها و variable_get () لاستعادتها للاستخدام في وحداتك.

لاستخدام variable_set () ، أدخل اسم المتغير وقيمته: variable_set(name, value).

لاستخدام variable_get () ، ما عليك سوى تقديم اسم المتغير والقيمة الافتراضية (لاستخدامه إذا لم يتم تعيينه بعد): variable_get(name, default_value).

3
drmonkeyninja