تنظیمات
وب ساز میتواند تنظیمات را به دوشیوه بخواند و با یک روش بنویسد .
فایل config.php
اگر به فایل config.php
در مسیر packages/base/libraries/config
سر بزنید، یک آرایه PHP را خواهید دید که حاوی تعدادی جفت کلید-مقدار می باشد . اگر برنامه نویس در این فایل مقادیری اضافه کند، بعدا میتواند با استفاده از روش زیر به آن دسترسی داشته باشد و در هنگام اجرای برنامه از آن استفاده کند .
جدول Options
اگر برنامه توانایی استفاده از پایگاه داده را داشته باشد، برنامه نویس میتواند تنظیمات را در حین نصب یا اجرای برنامه و با استفاده از کلاس options
بخواند و بنویسد .
تنظیماتی که مقدار autoload
آن برابر ۱ باشد، در هنگام فعال شدن فریم ورک از پایگاه داده به صورت دست جمعی و خودکار لود خواهد شد و سایر تنظیمات در هنگام نیاز برنامه نویس از پایگاه داده فراخوانی خواهد شد .
امکان ذخیره آرایه و یا اشیاء در فیلد value
نیز وجود دارد و فرم ورک به صورت خودکار در هنگام ذخیره یا خواندن، مقادی ر آن ها را مدیریت میکند .
خواندن تنظیمات
تابع get
از کلاس options
برای خواندن تنظیمات استفاده میشود . در پارامتر $name
، این تابع نام تنظیم مورد نظر شما را تحویل میگیرد و ابتدا در میان مقادیر موجود در فایل config.php
و سپس اگر (امکان اتصال به پایگاه داده موجود بود) در جدول options
به دنبال آن می گردد .
همینطور اگر پارامتر $reload
را برابر true وارد نمایید، این تابع ختای در صورتی که این تنظیم را قبلا از پایگاه داده دریافت کرده باشد، دوباره در پایگاه داده به دنبال مقدار آن خواهد گشت .
مثال
<?php
namespace packages\packagename\controllers;
use packages\base\{controller, options}
class Main extends controller {
public function getDefaultLang() {
return options::get("packages.package.lang.default");
}
}
ذخیره تنظیمات
با استفاده از تابع set
از کلاس options
میتوانید یک تنظیم را به صورت موقتی ذخیره نمایید و هنگامی که پردازش تمام شد، آن تنظیم نیز حذف و یا به مقدار اولیه خود، تنظیم خواهد شد .
اگر قصد ذخیره دائمی یک تنظیم را دارید، میبایست از تابع save
از کلاس options
استفاده نمایید . این تابع همچون تابع set
مقدار نام انحصاری تنظیم را در پارامتر اول و مقدار آن را (که میتواند عدد، رشته، مقدار منطقی و آرایه باشد) در پارامتر دوم دریافت می کند .
همچنین میتوانید یکی از دو مقدار true
و یا false
را برای پارامتر autoload
را در پارامتر سوم ارسال کنید، تا مشخص کنید این تنظیم به صورت گروهی و خودکار لود شود و یا اینکه به وقت نیاز به آن رجوع شود .
مثال
<?php
namespace packages\packagename\controllers;
use packages\base\{controller, options}
class Main extends controller {
public function changeLang($lang) {
options::set("packages.package.lang.default", $lang);
}
}