vortexpanel/policy-permission-sync
Composer 安装命令:
composer require vortexpanel/policy-permission-sync
包简介
Sync Laravel Policies to Spatie permissions using dot-style naming.
README 文档
README
Sync Laravel Policies into Spatie permissions using deterministic names (configurable):
posts.view_anyposts.viewposts.createposts.updateposts.delete
This is a tiny, UI-agnostic package intended to be reused by admin panels (VortexPanel, Filament, Nova, ...).
Requirements
- PHP 8.1+
- Laravel 10+
spatie/laravel-permission
Installation
composer require vortexpanel/policy-permission-sync
Publish config:
php artisan vendor:publish --tag=policy-permission-sync-config
Configuration
Edit config/policy-permission-sync.php.
The most reliable setup is to explicitly scan your policies directory:
'policy_paths' => [ app_path('Policies'), ],
Customize permission naming
By default, permissions are created using a dot-style pattern:
'naming' => [ 'prefix' => '', 'pattern' => '{resource}.{ability}', ],
You can change it to any pattern containing {resource} and {ability}:
// posts:view_any 'pattern' => '{resource}:{ability}', // view_any:posts 'pattern' => '{ability}:{resource}', // admin.posts.view_any 'prefix' => 'admin.', 'pattern' => '{resource}.{ability}',
Notes:
- If you use
--prune, the package scopes pruning by extracting{resource}back from permission names using this same pattern. If your pattern doesn't include{resource}, pruning can't be scoped.
If your policies live in a custom directory/namespace, set the mapping:
'policy_paths' => [ app_path('Domain/Blog/Policies'), ], 'policy_path_namespace_map' => [ app_path('Domain/Blog/Policies') => 'App\\Domain\\Blog\\Policies', ],
Usage
Preview changes (no DB writes):
php artisan permissions:sync-policies --dry-run
Apply changes:
php artisan permissions:sync-policies
Prune stale permissions (opt-in):
php artisan permissions:sync-policies --prune
Target specific guards:
php artisan permissions:sync-policies --guards=web,api
Filter resources:
php artisan permissions:sync-policies --only=posts,users php artisan permissions:sync-policies --except=audits
Show per-permission actions:
php artisan permissions:sync-policies --details
# or use artisan verbosity:
php artisan permissions:sync-policies -v
Development & Tests (inside this package repo)
If you see PDOException: could not find driver, your PHP CLI is missing the SQLite extension.
Ubuntu/WSL:
sudo apt-get update
sudo apt-get install -y php-sqlite3
php -m | grep -i sqlite
Then:
composer install
composer test
composer analyse
Testing in a real Laravel app (manual)
-
Install
spatie/laravel-permissionand run its migrations. -
Create a policy, e.g.
app/Policies/PostPolicy.phpwith methods likeviewAny,view,create,update,delete. -
Ensure your config scans the right directory:
'policy_paths' => [app_path('Policies')],
- Run:
php artisan permissions:sync-policies
Then check the permissions table.
License
MIT
vortexpanel/policy-permission-sync 适用场景与选型建议
vortexpanel/policy-permission-sync 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 42 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 vortexpanel/policy-permission-sync 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 vortexpanel/policy-permission-sync 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 42
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 28
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-19