תחילת העבודה עם XMF
2.5.x ✅ 4.0.x ✅
מדריך זה מכסה את המושגים הבסיסיים של מסגרת המודול XOOPS (XMF) וכיצד להתחיל להשתמש בה במודולים שלך.
דרישות מוקדמות
Section titled “דרישות מוקדמות”- מותקן XOOPS 2.5.8 ואילך
- PHP 7.2 ואילך
- הבנה בסיסית של PHP תכנות מונחה עצמים
הבנת מרחבי שמות
Section titled “הבנת מרחבי שמות”XMF משתמש במרחבי השמות של PHP כדי לארגן את המחלקות שלה ולהימנע מהתנגשויות שמות. כל מחלקות XMF נמצאות במרחב השמות Xmf.
בעיית חלל גלובלית
Section titled “בעיית חלל גלובלית”ללא מרחבי שמות, כל מחלקות PHP חולקות מרחב גלובלי. זה יכול לגרום לעימותים:
<?php// This would conflict with PHP's built-in ArrayObjectclass ArrayObject { public function doStuff() { // ... }}// Fatal error: Cannot redeclare class ArrayObjectפתרון מרחבי שמות
Section titled “פתרון מרחבי שמות”מרחבי שמות יוצרים הקשרי שמות מבודדים:
<?phpnamespace MyNamespace;
class ArrayObject { public function doStuff() { // ... }}// No conflict - this is \MyNamespace\ArrayObjectשימוש במרחבי שמות של XMF
Section titled “שימוש במרחבי שמות של XMF”אתה יכול להתייחס לשיעורי XMF בכמה דרכים:
נתיב מרחב השמות המלא:
$helper = \Xmf\Module\Helper::getHelper('mymodule');עם הצהרת שימוש:
use Xmf\Module\Helper;
$helper = Helper::getHelper('mymodule');ייבוא מרובה:
use Xmf\Request;use Xmf\Module\Helper;use Xmf\Module\Helper\Permission;
$input = Request::getString('input', '');$helper = Helper::getHelper('mymodule');$perm = new Permission();טעינה אוטומטית
Section titled “טעינה אוטומטית”אחת הנוחות הגדולות ביותר של XMF היא טעינת מחלקה אוטומטית. לעולם אינך צריך לכלול ידנית קבצי מחלקה XMF.
טעינה XOOPS מסורתית
Section titled “טעינה XOOPS מסורתית”הדרך הישנה דרשה טעינה מפורשת:
XoopsLoad('xoopsrequest');$cleanInput = XoopsRequest::getString('input', '');XMF טעינה אוטומטית
Section titled “XMF טעינה אוטומטית”עם XMF, מחלקות נטענות אוטומטית עם הפניה:
$input = Xmf\Request::getString('input', '');או עם הצהרת שימוש:
use Xmf\Request;
$input = Request::getString('input', '');$id = Request::getInt('id', 0);$op = Request::getCmd('op', 'display');הטעינה האוטומטית עוקבת אחר תקן PSR-4 וגם מנהלת תלות שעליהן מסתמך XMF.
דוגמאות לשימוש בסיסי
Section titled “דוגמאות לשימוש בסיסי”קלט בקשת קריאה
Section titled “קלט בקשת קריאה”use Xmf\Request;
// Get integer value with default of 0$id = Request::getInt('id', 0);
// Get string value with default empty string$title = Request::getString('title', '');
// Get command (alphanumeric, lowercase)$op = Request::getCmd('op', 'list');
// Get email with validation$email = Request::getEmail('email', '');
// Get from specific hash (POST, GET, etc.)$formData = Request::getString('data', '', 'POST');שימוש ב-Module Helper
Section titled “שימוש ב-Module Helper”use Xmf\Module\Helper;
// Get helper for your module$helper = Helper::getHelper('mymodule');
// Read module configuration$itemsPerPage = $helper->getConfig('items_per_page', 10);$enableFeature = $helper->getConfig('enable_feature', false);
// Access the module object$module = $helper->getModule();$version = $module->getVar('version');
// Get a handler$itemHandler = $helper->getHandler('items');
// Load language file$helper->loadLanguage('admin');
// Check if current moduleif ($helper->isCurrentModule()) { // We are in this module}
// Check admin rightsif ($helper->isUserAdmin()) { // User has admin access}עוזרי נתיב ו-URL
Section titled “עוזרי נתיב ו-URL”use Xmf\Module\Helper;
$helper = Helper::getHelper('mymodule');
// Get module URL$moduleUrl = $helper->url('images/logo.png');// Returns: https://example.com/modules/mymodule/images/logo.png
// Get module path$modulePath = $helper->path('templates/view.tpl');// Returns: /var/www/html/modules/mymodule/templates/view.tpl
// Upload paths$uploadUrl = $helper->uploadUrl('files/document.pdf');$uploadPath = $helper->uploadPath('files/document.pdf');איתור באגים עם XMF
Section titled “איתור באגים עם XMF”XMF מספק כלי איתור באגים מועילים:
// Dump a variable with nice formatting\Xmf\Debug::dump($myVariable);
// Dump multiple variables\Xmf\Debug::dump($var1, $var2, $var3);
// Dump POST data\Xmf\Debug::dump($_POST);
// Show a backtrace\Xmf\Debug::backtrace();פלט ניפוי הבאגים ניתן לקיפול ומציג אובייקטים ומערכים בפורמט קל לקריאה.
המלצה על מבנה הפרויקט
Section titled “המלצה על מבנה הפרויקט”בעת בניית מודולים מבוססי XMF, ארגן את הקוד שלך:
mymodule/ admin/ index.php menu.php class/ Helper.php # Optional custom helper ItemHandler.php # Your handlers include/ common.php language/ english/ main.php admin.php modinfo.php templates/ mymodule_index.tpl index.php xoops_version.phpתבנית כלול נפוצה
Section titled “תבנית כלול נפוצה”נקודת כניסה טיפוסית למודול:
<?phpuse Xmf\Request;use Xmf\Module\Helper;
require_once dirname(dirname(__DIR__)) . '/mainfile.php';
$helper = Helper::getHelper(basename(__DIR__));
// Get operation from request$op = Request::getCmd('op', 'list');$id = Request::getInt('id', 0);
// Include XOOPS headerrequire_once XOOPS_ROOT_PATH . '/header.php';
// Your module logic hereswitch ($op) { case 'view': // Handle view break; case 'list': default: // Handle list break;}
// Include XOOPS footerrequire_once XOOPS_ROOT_PATH . '/footer.php';השלבים הבאים
Section titled “השלבים הבאים”עכשיו שאתה מבין את היסודות, חקור:
- XMF-בקשה - תיעוד מפורט לטיפול בבקשות
- XMF-Module-Helper - הפניה מלאה למסייע המודול
- ../Recipes/Permission-Helper - ניהול הרשאות משתמש
- ../Recipes/Module-Admin-Pages - בניית ממשקי ניהול
ראה גם
Section titled “ראה גם”- ../XMF-Framework - סקירת מסגרת
- ../Reference/JWT - JSON תמיכה באסימוני אינטרנט
- ../Reference/Database - כלי עזר למסד נתונים
#xmf #תחילת העבודה #מרחבי שם #טעינה אוטומטית #יסודות