コンテンツにスキップ

XMFフレームワーク

2.5.x ✅ 4.0.x ✅

XOOPS Module Framework (XMF) は、XOOPS モジュール開発を簡素化および標準化するために設計された強力なライブラリです。XMF は、名前空間、オートロード、および定型的なコードを削減し、保守性を向上させるヘルパークラスの包括的なセットを含む最新のPHP実践をサポートします。

XMFは以下を提供するクラスおよびユーティリティの集合です:

  • 最新のPHPサポート - PSR-4オートローディング完全対応の名前空間
  • リクエスト処理 - 安全な入力検証とサニタイゼーション
  • モジュールヘルパー - モジュール設定とオブジェクトへの簡潔なアクセス
  • 権限システム - 使いやすい権限管理
  • データベースユーティリティ - スキーママイグレーションとテーブル管理ツール
  • JWTサポート - 安全な認証用のJSON Web Token実装
  • メタデータ生成 - SEOとコンテンツ抽出ユーティリティ
  • 管理インターフェース - 標準化されたモジュール管理ページ
graph TB
subgraph XMF["XMFフレームワーク"]
direction TB
subgraph Core["コアコンポーネント"]
Request["🔒 Request<br/>入力処理"]
Module["📦 Module Helper<br/>設定とハンドラ"]
Perm["🔑 Permission<br/>アクセス制御"]
end
subgraph Utils["ユーティリティ"]
DB["🗄️ Database<br/>スキーマツール"]
JWT["🎫 JWT<br/>トークン認証"]
Meta["📊 Metagen<br/>SEOユーティリティ"]
end
subgraph Admin["管理ツール"]
AdminUI["🎨 Admin UI<br/>標準化ページ"]
Icons["🖼️ Icons<br/>Font Awesome"]
end
end
subgraph Module["あなたのモジュール"]
Controller["コントローラ"]
Handler["ハンドラ"]
Template["テンプレート"]
end
Controller --> Request
Controller --> Module
Controller --> Perm
Handler --> DB
Template --> AdminUI
style XMF fill:#e3f2fd,stroke:#1976d2
style Core fill:#e8f5e9,stroke:#388e3c
style Utils fill:#fff3e0,stroke:#f57c00
style Admin fill:#fce4ec,stroke:#c2185b

すべてのXMFクラスはXmf名前空間に存在します。クラスは参照されたときに自動的にロードされます - 手動で含める必要はありません。

use Xmf\Request;
use Xmf\Module\Helper;
// クラスはよ使用時に自動的にロード
$input = Request::getString('input', '');
$helper = Helper::getHelper('mymodule');

Requestクラス は、組み込みのサニタイゼーション付きHTTPリクエストデータへの型安全なアクセスを提供します:

flowchart LR
subgraph Input["生入力"]
GET["$_GET"]
POST["$_POST"]
REQUEST["$_REQUEST"]
end
subgraph XMF["Xmf\\Request"]
Validate["型検証"]
Sanitize["サニタイゼーション"]
Default["デフォルト値"]
end
subgraph Output["安全な出力"]
Int["getInt()"]
Str["getString()"]
Email["getEmail()"]
Bool["getBool()"]
end
GET --> XMF
POST --> XMF
REQUEST --> XMF
XMF --> Int
XMF --> Str
XMF --> Email
XMF --> Bool
style Input fill:#ffcdd2,stroke:#c62828
style XMF fill:#fff3e0,stroke:#f57c00
style Output fill:#c8e6c9,stroke:#2e7d32
use Xmf\Request;
$id = Request::getInt('id', 0);
$name = Request::getString('name', '');
$email = Request::getEmail('email', '');

モジュールヘルパー はモジュール関連機能への便利なアクセスを提供します:

$helper = \Xmf\Module\Helper::getHelper('mymodule');
// モジュール設定にアクセス
$configValue = $helper->getConfig('setting_name', 'default');
// モジュールオブジェクトを取得
$module = $helper->getModule();
// ハンドラにアクセス
$handler = $helper->getHandler('items');

権限ヘルパー はXOOPS権限処理を簡素化します:

$permHelper = new \Xmf\Module\Helper\Permission();
// ユーザー権限を確認
if ($permHelper->checkPermission('view', $itemId)) {
// ユーザーは権限を持っている
}
  • JWT - JSON Web Token実装
  • Database - データベースユーティリティとスキーマ管理
  • Metagen - メタデータとSEOユーティリティ
  • XOOPS 2.5.8以降
  • PHP 7.2以降 (PHP 8.x推奨)

XMFはXOOPS 2.5.8以降のバージョンに含まれています。以前のバージョンまたは手動インストールの場合:

  1. XOOPS リポジトリからXMFパッケージをダウンロード
  2. XOOPS /class/xmf/ ディレクトリに抽出
  3. オートローダーがクラスロードを自動的に処理

一般的なXMF使用パターンを示す完全な例を以下に示します:

<?php
use Xmf\Request;
use Xmf\Module\Helper;
use Xmf\Module\Helper\Permission;
// モジュールヘルパーを取得
$helper = Helper::getHelper('mymodule');
// 設定値を読み込む
$itemsPerPage = $helper->getConfig('items_per_page', 10);
// リクエスト入力を処理
$op = Request::getCmd('op', 'list');
$id = Request::getInt('id', 0);
// 権限を確認
$permHelper = new Permission();
if (!$permHelper->checkPermission('view', $id)) {
redirect_header('index.php', 3, 'アクセスが拒否されました');
}
// 操作に基づいて処理
switch ($op) {
case 'view':
$handler = $helper->getHandler('items');
$item = $handler->get($id);
// ... アイテムを表示
break;
case 'list':
default:
// ... アイテムをリスト表示
break;
}

#xmf #xoops #framework #php #module-development