تنظیمات
وب ساز میتواند تنظیمات را به دوشیوه بخواند و با یک روش بنویسد .
فایل 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);
}
}