5.7 KiB
Báo cáo sử dụng folder app/Http/Controllers/admin
Ngày kiểm tra: 2026-06-01
Phạm vi quét: toàn bộ portal/ (routes, controllers, services, repositories, jobs, configs, seeders, …).
Kết luận nhanh
Folder
app/Http/Controllers/admingần như là legacy/không còn được dùng. Toàn bộ chức năng admin đã được migrate sang REST API namespace mớiApp\Http\Controllers\Api\Admin\*(xem comment trongroutes/web.phpdòng 12, 18).Chỉ duy nhất 1 file trong folder
admin/còn được tham chiếu bởi code ngoài folder:
app/Http/Controllers/admin/VCenterManagerController.php— được import & dùng tạiroutes/api.php:3cho nhóm routevcenter-manager/vm/*(powerOn, powerOff, restart, snapshot, suspend, getPoweredOffVms).
Các file còn lại trong admin/ không được import bởi bất kỳ file PHP nào ngoài chính folder admin/ (không bởi routes/api.php, không bởi routes/client.php, không bởi service/repository/job/config/seeder/web.php).
Lưu ý phương pháp: kiểm tra bằng cách quét toàn bộ chuỗi FQN
App\Http\Controllers\admin\…trên toàn dự án. Một số controller có tên trùng (ví dụCustomerController,OrderController,PostController,SettingController,AddonController,InvoiceController,PaymentController,DomainController,ProductController,ProductCategoryController) trùng tên với các controller mới trongApp\Http\Controllers\Api\Admin\*hoặcApp\Http\Controllers\Api\Client\*— các route file chỉ import bản mới, KHÔNG import bản trongadmin/.
1) File ĐANG được dùng (1 file)
| File | Nơi dùng | Mục đích |
|---|---|---|
admin/VCenterManagerController.php |
routes/api.php (line 3 import, group vcenter-manager trong Route::prefix('administrator')) |
Power operations cho VM (power-on/off, restart, snapshot, suspend, lấy danh sách VM tắt nguồn) |
Ghi chú nội bộ: VCenterManagerController này cũng được tham chiếu bởi một số file khác trong cùng admin/ (ví dụ package/Datacenter.php, package/Host.php, …) — đây là tham chiếu nội bộ trong folder legacy.
2) File KHÔNG được dùng (toàn bộ phần còn lại)
Không file nào dưới đây được import/sử dụng bởi code ngoài folder admin/:
2.1. Top-level admin/ (24 file)
AddonController.phpCouponController.phpCustomerController.phpDomainController.phpGroupController.phpInvoiceController.phpLoginController.phpMailController.phpMainController.phpMediaController.phpMenuController.phpModuleDNSController.phpModuleHostingController.phpModuleIPPoolController.phpModulevCenterController.phpOrderController.phpPaymentController.phpPostController.phpRolesController.phpSettingController.phpSupportController.phpTaskController.phpTemplateController.phpUserController.php
2.2. admin/package/ (9 file)
Datacenter.phpDatastore.phpFolder.phpGroup.phpHost.phpIPMapping.phpNetwork.phpOsVersion.phpSyncController.php
Cảnh báo cùng tên: các tên
Datacenter,Datastore,Folder,Host,Network,Group,OsVersionxuất hiện rất nhiều trong dự án (Models, Repositories, Jobs, Views, configs nhưadmin-sidebar.php). Tuy nhiên các tham chiếu đó trỏ tớiApp\Models\*/App\Repositories\*/App\View\Components\Module\*, KHÔNG phải các controller trongadmin/package/. Đã xác nhận bằng cách grep FQNApp\Http\Controllers\admin\package\…— không có file nào ngoài folder này import chúng.
2.3. admin/product/ (2 file)
ProductCategoryController.php(đã thay thế bởiApi/Admin/Product/ProductCategoryController.phpvàApi/Service/ProductCategoryController.php)ProductController.php(đã thay thế bởiApi/Admin/Product/ProductController.php)
2.4. admin/vm/ (1 file)
VirtualMachineController.php
3) Đối chiếu nhanh với 2 file route chính
routes/client.php
Không import bất kỳ class nào từ namespace App\Http\Controllers\admin\*. Toàn bộ controller đến từ App\Http\Controllers\Api\Client\*, App\Http\Controllers\Api\Service\*, App\Http\Controllers\Api\Setting\*, App\Http\Controllers\Api\Transaction\*, App\Http\Controllers\Api\NotificationController.
routes/api.php
Chỉ có 1 dòng import từ admin/:
use App\Http\Controllers\admin\VCenterManagerController; // dòng 3
Dùng trong group:
Route::prefix('vcenter-manager')
->controller(VCenterManagerController::class)
->group(function () {
Route::post('vm/power-on', 'powerOn');
Route::post('vm/power-off', 'powerOff');
Route::post('vm/restart', 'restart');
Route::post('vm/snapshot', 'snapshot');
Route::post('vm/suspend', 'suspend');
Route::get ('vms/powered-off', 'getPoweredOffVms');
});
4) Đề xuất
- Có thể xoá an toàn toàn bộ folder
app/Http/Controllers/admin/trừVCenterManagerController.php. - Hoặc tốt hơn: di chuyển
VCenterManagerControllersang namespace mớiApp\Http\Controllers\Api\Admin\VCenter\cho đồng nhất, rồi xoá toàn bộ folderadmin/. - Trước khi xoá nên:
- Chạy
composer dump-autoloadvà test toàn bộ test suite. - Kiểm tra thêm cache, queue config, scheduled commands, custom artisan command có hardcode tên class không (đã grep — không thấy).
- Kiểm tra Blade views (folder
admin/views nếu còn) có gọi route name cũ không.
- Chạy