تنظیمات

وب ساز میتواند تنظیمات را به دوشیوه بخواند و با یک روش بنویسد .

فایل 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);
    }
}