目錄結構
project/
├── admin/
│ ├── Lib/
│ │ └── Action/
│ │ ├── IndexAction.class.php // 預設模組
│ │ └── UserAction.class.php // 自建模組
│ └── admin.php // 入口檔
建立 UserAction 模組
<?php
// admin/Lib/Action/UserAction.class.php
class UserAction extends Action {
// 預設動作:index
public function index() {
echo '你來到了 User 模組';
}
// 動作命名:駝峰式 listName
public function listName() {
echo '你的名字是 ' . $_GET['name'];
}
}
URL 存取對應
| URL | 模組 | 動作 | 輸出 |
/admin.php?m=user | User | index | 你來到了 User 模組 |
/admin.php?m=user&a=index | User | index | 你來到了 User 模組 |
/admin.php?m=user&a=listname | User | listName | 你的名字是 |
/admin.php?m=user&a=listname&name=123 | User | listName | 你的名字是 123 |
核心規則
- 檔案名 = 類別名:
UserAction.class.php → class UserAction。
- 繼承
Action 基類:獲得模板輸出、自動驗證等功能。
- 預設動作為
index:URL 無 a 參數時自動呼叫。
- 動作方法命名:首字母小寫、後續單字首字母大寫(
listName、addUser),URL 參數 a 不區分大小寫。
- 模組參數
m:對應 Lib/Action/{M}Action.class.php。
進階:取得參數的最佳方式
public function listName() {
// 使用框架內建 _get() 方法,支援預設值、過濾
$name = $this->_get('name', 'htmlspecialchars', 'Guest');
echo "你的名字是 {$name}";
}