در زند فریم ورک ۲ دو نوع تنظیمات کلی داریم.

  1. تنظیمات System
  2. تنظیمات Application

نوع اول تنظیماتی هستند که در فایل config/application.config.php وجود دارند و به صورت داینامیک قابل تغییر نیستند. نوع دوم تنظیماتی هستند که برای هر ماژول به صورت جداگانه در نظر گرفته شده اند بعلاوه تنظیماتی که در بخش config/autoload وجود دارد. در بخش مربوط به Event Manager گفتیم که برای شناسایی رخ دادن یک رویداد از Listener استفاده می نماییم. در زند فریم ورک ۲ Listener هایی با نام ConfigListener وجود دارند که هنگام لود ماژول ها تنظیمات ماژول ها (به صورت پیش فرض در پوشه ای با نام config درون هر ماژول) را دریافت و با هم ادغام میکنند. وقتی که ادغام تنظیمات ماژول ها به پایان رسید تنظیماتی که در پوشه config/autoload نیز وجود دارند ادغام می شوند. سپس تمامی این تنظیمات در اختیار سرویس منیجر زند Service Manager قرار میگیرد و در همین زمان رویدادی با نام EVENT_MERGE_CONFIG اتفاق می افتد که برای ویراش تنظیمات به صورت داینامیک به کار می آید. به این معنی که شما میتوانید یک Listener ایجاد نمایید که به رویداد فوق گوش دهد و دقیقا بعد از اتمام ادغام تنظیمات مقادیر آن را گرفته و ویرایش کنید.

تنظیمات سیستمی هرگز توسط تنظیمات ماژول ها Override نمی شوند. اما در تنظیمات ماژول ها در صورتی که یک تنظیم دو بار در دو ماژول مختلف تکرار شده باشد, بر اساس اولویت فعال کردن ماژول تنظیم مربوطه در نظر گرفته خواهد شد. فعال کردن ماژول در تنظیمات سیستمی انجام می شود :

کد بالا به صورت پیش فرض در فایل config/application.config.php قرار دارد (به استثنای MyModule).

zf2-config-structure

در تصویر فوق ساختار دایرکتوری یک ماژول را در زند فریم ورک ۲ مشاهده می نمایید. تنظیمات مربوط به هر ماژول معمولا در پوشه ی config در فایلی با نام module.config.php قرار می گیرند.

تنظیماتی که در فایل تنظیم هر ماژول قرار میگیرد میتواند یک تنظیم جدید اختیاری باشد و یا اینکه شامل موارد زیر باشد :

zf2-config-mapping

 با تنظیمات هر بخش در مطالب بعدی آشنا خواهیم شد. فقط در نظر داشته باشید که در هر ماژول فایلی با نام Module.php وجود دارد که متد های موجود در آن بر روی تنظیمات نهایی ادغام شده تاثیر می گذارند. به عنوان مثال اگر تنظیمی را در فایل module.config.php یکی از ماژول ها با نام view_helpers قرار دهید و سپس در فایل Module.php همان ماژول از متدی به نام getViewHelperConfig استفاده نمایید. این دو با هم ادغام می شوند و در صورت لزوم Override می شوند. میتوان گفت هر دو یک کار را انجام می دهند. یکی از تفاوت هایی که بین این دو وجود دارد امکان کش کردن تنظیمات فایل module.config.php است در صورتی که متد های موجود در Module.php کش نمی شوند. بنابراین بهتر است تنظیمات پویای خود را در Module.php و تنظیمات ایستا و ثابت خود را در module.config قرار دهیم.
با توجه به تنظیمات خاصی که در application.config.php وجود دارد شما میتوانید فایل های موجود در config/autoload را بر اساس نیاز خود تغییر و یا اضافه نمایید. در حالت پیش فرض تنظیمات config/autoload/global.php و local.php هر دو استفاده می شوند. اما بر اساس تنظیمات git پیش فرض زند فریم ورک فایل های local.php در git نادیده گرفته می شوند. لذا می توانید کلمه عبور پایگاه(های) داده خود را در این فایل ذخیره نمایید.

محمد باقر رستمی

برنامه نویسی رو دوست دارم و از کارم و بیشتر از اون از یادگرفتن لذت می برم. دوست دارم از این طریق برای مردم دنیا مفید باشم. فارغ از رنگ، نژاد، ملیت و جنسیت.

Latest posts by محمد باقر رستمی (see all)

facebooktwittergoogle_pluslinkedin

دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

*