locky42/leopard-admin
最新稳定版本:1.0.3
Composer 安装命令:
composer require locky42/leopard-admin
包简介
A library for managing the administration panel of a web application.
README 文档
README
locky42/leopard-admin provides admin-domain models, mappings, and controllers on top of leopard-user.
Features
- Base admin models:
Leopard\Admin\Models\BaseAdminUserLeopard\Admin\Models\BaseAdminRoleLeopard\Admin\Models\BaseAdminPermission
- Contract-based model mapping for admin entities
- Doctrine bootstrap integration (
ResolveTargetEntity+ model path registration) - Admin controllers and templates for admin panel flows
Requirements
- PHP
^8.3 doctrine/orm ^3locky42/leopard-userlocky42/leopard-events
Contracts
Leopard\Admin\Contracts\Models\AdminUserInterfaceLeopard\Admin\Contracts\Models\AdminRoleInterfaceLeopard\Admin\Contracts\Models\AdminPermissionInterface
Doctrine Integration
Package bootstrap (packages/leopard-admin/bootstrap.php) does two things:
- Registers resolve-target mappings before EntityManager metadata resolution:
AdminUserInterface -> BaseAdminUserAdminRoleInterface -> BaseAdminRoleAdminPermissionInterface -> BaseAdminPermission
- Adds admin model paths to the current metadata driver via
addPaths([__DIR__ . '/src/Models']).
Quick Start
In application projects, map admin contracts to your app entities (or keep defaults).
use Leopard\Core\Factory\ContractFactory; use Leopard\Admin\Contracts\Models\AdminUserInterface; use Leopard\Admin\Contracts\Models\AdminRoleInterface; use Leopard\Admin\Contracts\Models\AdminPermissionInterface; use App\Models\Admin\AdminUser; use App\Models\Admin\AdminRole; use App\Models\Admin\AdminPermission; ContractFactory::register(AdminUserInterface::class, AdminUser::class); ContractFactory::register(AdminRoleInterface::class, AdminRole::class); ContractFactory::register(AdminPermissionInterface::class, AdminPermission::class);
ContractFactory::register(...) also synchronizes resolve-target mappings when leopard-doctrine is available.
Controllers
Main controller:
Leopard\Admin\Controllers\AdminController
The controller uses AuthenticationService + AuthorizationService and resolves concrete model classes through ResolveTargetEntityRegistry.
Routing Requirements
For admin module UI to work, your app must provide routes for these controllers:
\Leopard\Admin\Controllers\AdminController\Leopard\Admin\Controllers\AdminAssetsController
You can choose one of these integration strategies:
- Register routes directly to these package controllers.
- Create your own controllers that extend these classes and route to your subclasses.
- Implement equivalent controllers in your app with the required functionality.
If routes for admin pages/assets are missing, admin panel screens and static asset endpoints will not be reachable.
Testing
From repository root:
vendor/bin/phpunit --testsuite=leopard-admin
or
composer test:admin
License
MIT
统计信息
- 总下载量: 8
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-02