İçeriğe geç

XMF'ye Başlarken

2.5.x ✅ 4.0.x ✅

Bu kılavuz, XOOPS module Çerçevesi’nin (XMF) temel kavramlarını ve bunu modüllerinizde nasıl kullanmaya başlayacağınızı kapsar.

  • XOOPS 2.5.8 veya üzeri yüklü
  • PHP 7.2 veya üstü
  • PHP nesne yönelimli programlamanın temel anlayışı

XMF, sınıflarını düzenlemek ve adlandırma çakışmalarını önlemek için PHP ad alanlarını kullanır. Tüm XMF sınıfları Xmf ad alanındadır.

Ad alanları olmadan tüm PHP sınıfları global bir alanı paylaşır. Bu, çatışmalara neden olabilir:

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

Ad alanları yalıtılmış adlandırma bağlamları oluşturur:

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

XMF sınıflarına çeşitli şekillerde başvurabilirsiniz:

Tam ad alanı yolu:

$helper = \Xmf\Module\Helper::getHelper('mymodule');

Kullanım ifadesiyle:

use Xmf\Module\Helper;
$helper = Helper::getHelper('mymodule');

Birden fazla içe aktarma:

use Xmf\Request;
use Xmf\Module\Helper;
use Xmf\Module\Helper\Permission;
$input = Request::getString('input', '');
$helper = Helper::getHelper('mymodule');
$perm = new Permission();

XMF’nin en büyük kolaylıklarından biri otomatik sınıf yüklemesidir. XMF sınıf dosyalarını manuel olarak eklemenize asla gerek yoktur.

Eski yöntem açık yükleme gerektiriyordu:

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

XMF ile sınıflar referans alındığında otomatik olarak yüklenir:

$input = Xmf\Request::getString('input', '');

Veya bir use ifadesiyle:

use Xmf\Request;
$input = Request::getString('input', '');
$id = Request::getInt('id', 0);
$op = Request::getCmd('op', 'display');

Otomatik yükleyici, PSR-4 standardını izler ve aynı zamanda XMF’ün dayandığı bağımlılıkları da yönetir.

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 yararlı hata ayıklama araçları sağlar:

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

Hata ayıklama çıktısı daraltılabilir ve nesneleri ve dizileri okunması kolay bir biçimde görüntüler.

XMF tabanlı modules oluştururken kodunuzu düzenleyin:

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

Tipik bir module giriş noktası:

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';

Artık temelleri anladığınıza göre şunları keşfedin:

  • XMF-Talep - Ayrıntılı talep işleme belgeleri
  • XMF-Module-Helper - Tam module yardımcı referansı
  • ../Recipes/Permission-Helper - user izinlerini yönetme
  • ../Recipes/Module-Admin-Pages - Yönetici arayüzleri oluşturma
  • ../XMF-Framework - Çerçeveye genel bakış
  • ../Reference/JWT - JSON Web Token desteği
  • ../Reference/Database - database yardımcı programları

#xmf #başlarken #ad alanları #otomatik yükleme #temel bilgiler