سيتم اشتقاق جميع تطبيقاتك من هذه الفئة أو ستستخدم فئات هي أشقاء فئة التطبيق هذه.
يوفر هذا الفصل:
مع مرور الوقت سوف ينمو التطبيق الخاص بك وسوف يزيد عدد الطرق. لذلك قمنا بتوفير طريقة مريحة لتخزين جميع الطرق في ملف التكوين المستقل. لذلك ليس من الضروري تهيئة جميع الطرق في مُنشئ كائن التطبيق (أو أي فئة مشتقة).
دعنا نكتشف كيف يمكنك استخدامه.
بادئ ذي بدء ، قم بإنشاء ملف config ./conf/routes.php في دليل المشاريع الخاصة بك. يجب أن تبدو هكذا:
$ callbackProvider = new SomeCallbackClass ();
return
[
[
' route ' => ' /news/ ' , // your route
' callback ' => ' displayNewsLine ' // this must be the method name of your
// Application derived class
] ,
[
' route ' => ' /news/[i:news_id]/ ' , // your route
' callback ' => ' displayExactNews ' , // this must be the method name of your
' method ' => ' POST ' // Application derived class
] ,
[
' route ' => ' /some-route/ ' ,
' method ' => ' GET ' ,
' callback ' => [ // here we specify callback as pair [object, method]
callbackProvider ,
' someMethod '
]
]
];لاحظ أنه لم يتم تعيين حقل "الطريقة" ، فسيتم تخلفه.
يمكنك أيضًا تحديد ملف التكوين الخاص بك.
ثم فقط اتصل على تطبيق :: loadRoutesFromConfig ()
$ app -> loadRoutesFromConfig ( ' ./conf/my-config.php ' );يوفر هذه الفئة روتين تطبيق بسيط مع عرض أكثر تعقيدًا ومعالجة خطأ.
في طرق فئة التطبيق قد تُرجع الأوتار فقط. لكن فئة الشائعة تتيح لك إرجاع صفائف السلسلة التي سيتم وضعها في العناصر النائبة للقالب.
مثال بسيط:
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
}
function actionSimplePage ()
{
return [
' title ' => ' Route title ' ,
' main ' => ' Route main '
];
}
}هنا يقوم معالج الطريق بإنشاء جزأين من الصفحة / الصفحة البسيطة / - "العنوان" و "Main". سيتم إدراج هذين الجزءين في {title} و {Main} على التوالي.
مثال أكثر تعقيدًا:
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
}
function actionSimplePage ()
{
return [
' title ' => ' Route title ' ,
' main ' => new View ( ' Generated main content ' )
];
}
}هنا نمرر مثيل عرض الفصل (أو أي فئة مستمدة من العرض) إلى مركب صفحة التطبيق. سيتم استدعاء طريقة عرض :: عرض طريقة يجب إرجاع محتوى HTML المترجمة.
يمكنك أيضًا الحفاظ على طرق AL في التكوينات. يمكنك استخدام تكوينات JSON:
[
{
"route" : "/route1/" ,
"callback" : "route1" ,
"method" : "GET"
} ,
{
"route" : "/route2/" ,
"callback" : "route2" ,
"method" : [ "GET" , "POST" ]
}
]يجب تخزين هذه البيانات في "./conf/" dir من مشروعك. أو تحميل التكوينات بشكل صريح كما هو موضح أدناه (باستخدام Method LoadRoutesFromConfig).
ونحن بحاجة أيضا هذه الطرق في فئة التطبيق.
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
// loading config on custom path
$ this -> loadRoutesFromConfig ( ' ./my-routes.json ' );
}
function route1 ()
{
return [
// here result
];
}
function route2 ()
{
return [
// here result
];
}
}لاحظ أنه يمكنك تحميل تكوينات متعددة باستخدام مكالمة واحدة من Method LoadRoutesFromConfigs
function __construct ( $ template )
{
parent :: __construct ( $ template );
$ this -> loadRoutesFromConfigs ([ ' ./conf/my/routes.json ' , ' ./conf/my-routes.php ' ]);
}أو نفس الشيء:
function __construct ( $ template )
{
parent :: __construct ( $ template );
$ this -> loadRoutesFromDirectory ( ' ./conf ' );
} يمكنك إنشاء ملف مع قائمة الرسائل التي سيتم استبدالها في action-message متغير القالب
يجب تخزين هذا الملف في الدليل %your-application-class-directory%/res/action-messages.json
ثم إذا كان الفصل سيجد معلمة $_GET['action-message'] ، فسيتم استبدال action-message .
يمكنك ببساطة إخراج محتوى ملف *.tpl كعرض شائع. يمكن أن يكون مفيدًا إذا كنت بحاجة إلى تقديم صفحات ثابتة أو أجزاء صفحة ثابتة. سيتيح لك تجنب إنشاء فئة منفصلة وطرق عرض منفصلة لهذه الأغراض.
الأمر بسيط للغاية:
// here $template is an instance of the MezonHtmlTemplateHtmlTemplate class
// and 'block-name' is a block name in this class
$ view = new Mezon Application ViewStatic ( $ template , ' block-name ' );لمزيد من التفاصيل حول قوالب Mezon انظر
TBA