דלגו לתוכן

תחילת העבודה עם XMF

2.5.x ✅ 4.0.x ✅

מדריך זה מכסה את המושגים הבסיסיים של מסגרת המודול XOOPS (XMF) וכיצד להתחיל להשתמש בה במודולים שלך.

  • מותקן XOOPS 2.5.8 ואילך
  • PHP 7.2 ואילך
  • הבנה בסיסית של PHP תכנות מונחה עצמים

XMF משתמש במרחבי השמות של PHP כדי לארגן את המחלקות שלה ולהימנע מהתנגשויות שמות. כל מחלקות XMF נמצאות במרחב השמות Xmf.

ללא מרחבי שמות, כל מחלקות PHP חולקות מרחב גלובלי. זה יכול לגרום לעימותים:

<?php
// This would conflict with PHP's built-in ArrayObject
class ArrayObject {
public function doStuff() {
// ...
}
}
// Fatal error: Cannot redeclare class ArrayObject

מרחבי שמות יוצרים הקשרי שמות מבודדים:

<?php
namespace MyNamespace;
class ArrayObject {
public function doStuff() {
// ...
}
}
// No conflict - this is \MyNamespace\ArrayObject

אתה יכול להתייחס לשיעורי 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();

אחת הנוחות הגדולות ביותר של XMF היא טעינת מחלקה אוטומטית. לעולם אינך צריך לכלול ידנית קבצי מחלקה XMF.

הדרך הישנה דרשה טעינה מפורשת:

XoopsLoad('xoopsrequest');
$cleanInput = XoopsRequest::getString('input', '');

עם 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.

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');
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 module
if ($helper->isCurrentModule()) {
// We are in this module
}
// Check admin rights
if ($helper->isUserAdmin()) {
// User has admin access
}
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 מספק כלי איתור באגים מועילים:

// 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();

פלט ניפוי הבאגים ניתן לקיפול ומציג אובייקטים ומערכים בפורמט קל לקריאה.

בעת בניית מודולים מבוססי 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

נקודת כניסה טיפוסית למודול:

mymodule/index.php
<?php
use 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 header
require_once XOOPS_ROOT_PATH . '/header.php';
// Your module logic here
switch ($op) {
case 'view':
// Handle view
break;
case 'list':
default:
// Handle list
break;
}
// Include XOOPS footer
require_once XOOPS_ROOT_PATH . '/footer.php';

עכשיו שאתה מבין את היסודות, חקור:

  • XMF-בקשה - תיעוד מפורט לטיפול בבקשות
  • XMF-Module-Helper - הפניה מלאה למסייע המודול
  • ../Recipes/Permission-Helper - ניהול הרשאות משתמש
  • ../Recipes/Module-Admin-Pages - בניית ממשקי ניהול
  • ../XMF-Framework - סקירת מסגרת
  • ../Reference/JWT - JSON תמיכה באסימוני אינטרנט
  • ../Reference/Database - כלי עזר למסד נתונים

#xmf #תחילת העבודה #מרחבי שם #טעינה אוטומטית #יסודות