FuelPHP 開發者工具套件,提供路徑跳轉、路由執行、Model 表名查詢、SQL 複製等功能,大幅提升日常開發效率。
功能一覽
| # |
功能 |
適用位置 |
| 1. |
路徑跳轉連結 — View::forge / Asset::css/js/img / Config::load / Lang::load 一鍵跳轉到對應檔案 |
所有 PHP 檔案 |
| 2. |
Controller ↔ routes.php 雙向跳轉 — routes.php 跳 Controller 方法行;Controller 方法名反向跳回 routes.php |
routes.php ↔ Controller |
| 3. |
Route Runner — 路由上方顯示 ▶ Run 按鈕,填入參數後自動開瀏覽器 |
routes.php |
| 4. |
Model 表名 Hover — hover Model_X 顯示真實資料庫表名 |
所有 PHP 檔案 |
| 5. |
複製 Function SQL — 一鍵複製整個方法的 SQL,自動展開表名、常數值並格式化 |
model/ 目錄 |
詳細介紹
⭐功能①:路徑跳轉連結
在 PHP 檔案裡,對以下方法的字串路徑按 Cmd+Click(Mac)或 Ctrl+Click(Windows/Linux)可直接跳轉到對應檔案。只有檔案實際存在才會顯示底線連結。
| 方法 |
跳轉目標 |
View::forge('admin/dashboard') |
fuel/app/views/admin/dashboard.php |
Asset::css('common/layout.css') |
public/assets/css/common/layout.css |
Asset::js('common/app.js') |
public/assets/js/common/app.js |
Asset::img('logo.png') |
public/assets/img/logo.png |
Config::load('pagination') |
fuel/app/config/pagination.php |
Lang::load('messages') |
fuel/app/lang/messages.php |
// Cmd+Click "admin/dashboard" → 開啟 fuel/app/views/admin/dashboard.php
$this->template->content = View::forge('admin/dashboard', $data);
// Cmd+Click "common/layout.css" → 開啟對應 CSS 檔案
Asset::css('common/layout.css');
⭐功能②:Controller ↔ routes.php 雙向跳轉
routes.php → Controller
在 routes.php 裡,對 => 'controller/action' 的值按 Cmd+Click,直接跳轉到對應的 Controller 檔案並定位到 action 方法行。
// Cmd+Click "api/product/ajax/update"
// → 開啟 fuel/app/classes/controller/api/product/ajax.php
// → 定位到 post_update() 方法
'product/update' => 'api/product/ajax/update',
解析規則:
- 先嘗試整段作為檔案路徑(
admin/item/index/index → admin/item/index.php + action_index())
- 不存在則取最後一段作為 action 名稱(
api/product/ajax/update → api/product/ajax.php + post_update())
- 找不到對應檔案時不顯示連結
Controller → routes.php(反向跳轉)
在 Controller 檔案裡,action_xxx、post_xxx、get_xxx 等方法名稱上會顯示底線連結。按 Cmd+Click 直接跳回 routes.php 對應的路由行。
// Cmd+Click "action_index" → 跳到 routes.php 裡定義此路由的行
public function action_index()
{
// ...
}
// Cmd+Click "post_update" → 跳到 routes.php 裡對應的行
public function post_update()
{
// ...
}
找不到對應路由時不顯示底線,不會誤導。
⭐功能③:Route Runner
在 routes.php 裡,每行路由上方顯示 ▶ Run 按鈕,點擊後自動組合 URL 並開啟外部瀏覽器。
// ▶ Run ← 點擊這個按鈕
'(:category_id)/item/(:item_id)' => 'front/item/index',
動作流程:
- 自動偵測路由裡的參數(
:category_id、:item_id、(?P<name>...) 格式)
- 逐一彈出輸入框詢問參數值
- 直接按 Enter 則使用
.env 的預設值(或參數名稱本身作為 fallback)
- 組合成完整 URL → 開啟外部瀏覽器
.env 設定(放在專案根目錄):
FUELPHP_DOMAIN=https://your-dev-domain.local
FUELPHP_CATEGORY_ID=1
FUELPHP_ITEM_ID=100
FUELPHP_PAGE=1
也支援 PHP 變數串接路由($category.$type.$page => 'front/list/...'),會自動解析前面的變數定義找出參數名稱。
⭐功能④:Model 表名 Hover
在任何 PHP 檔案裡,hover(滑鼠移到上方)Model_X 類名,顯示該 Model 對應的實際資料庫表名。
// hover 在 Model_Product_Category 上 → 顯示 "表名: product_categories"
$sql .= 'FROM ' . Model_Product_Category::table() . ' pc';
表名解析優先順序:
CONST TABLE_NAME = 'xxx'
protected static $_table_name = 'xxx'
- FuelPHP
Inflector::tableize() 自動推算(Model_Item → items、Model_Product_Category → product_categories)
⭐功能⑤:複製 Function SQL
在 model/ 目錄下的 PHP 檔案,含有 DB::query 的 public static function 上方顯示 📋 Copy SQL 按鈕。
// 📋 Copy SQL ← 點擊這個按鈕
public static function get_item_detail($item_id, $type)
{
$query = 'SELECT i.id, i.name, c.name AS category_name';
$query .= 'FROM ' . self::table() . ' AS i ';
$query .= 'LEFT JOIN ' . Model_Category::table() . ' c ON i.category_id = c.id ';
$query .= 'WHERE i.id = :item_id ';
$query .= 'AND i.display_flg = ' . FLG_ON;
}
複製結果範例:
-- Model_Item
-- get_item_detail
SELECT i.id, i.name, c.name AS category_name
FROM items AS i
LEFT JOIN categories c ON i.category_id = c.id
WHERE i.id = :item_id
AND i.display_flg = 1
自動處理內容:
self::table() / Model_X::table() → 替換成真實表名
FLG_ON / FLG_OFF 等常數 → 從 fuel/app/config/const.php 讀取真實值
- SQL 關鍵字自動換行縮排(
SELECT、FROM、LEFT JOIN、WHERE、AND 等)
- 條件式 SQL(
if 區塊內的拼接)標記 -- [conditional]
- 開頭加上 Model 類名和 function 名稱作為來源註解
直接貼進 DBeaver 即可執行,:param 佔位符自行替換即可。
設定
在 .vscode/settings.json 或 VSCode 設定裡可自訂路徑:
| 設定 |
預設值 |
說明 |
fuelpHPTools.domain |
"" |
Route Runner 的網域(留空則從 .env 的 FUELPHP_DOMAIN 讀取) |
fuelpHPTools.viewsPath |
fuel/app/views |
Views 目錄路徑(相對於 workspace 根目錄) |
fuelpHPTools.assetsPath |
public/assets |
Assets 目錄路徑(相對於 workspace 根目錄) |
網域優先順序: VSCode 設定 → .env 的 FUELPHP_DOMAIN → http://localhost
安裝
VSCode Marketplace
在 VSCode 擴充套件搜尋 FuelPHP Tools 安裝。
從 .vsix 安裝(Antigravity IDE / Open VSX)
- 下載
fuelphp-tools-x.x.x.vsix
Cmd+Shift+P → Install from VSIX
- 選擇下載的
.vsix 檔案
- Reload Window
授權
MIT
如果這個套件對你有幫助,歡迎到 GitHub 給顆 ⭐ 支持一下!
👉 https://github.com/AdaaWu/fuelphp-tools