🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# :-: 编写Facade ## 编写 Facade 刚才在 编写 Model 章节已经说了,包是希望使用者可以尽量不使用 Model 的,所以这里编写 Facade,来提供统一的接口。Facade编写很简单。 ### Permission Facade ```php namespace think\permissions\facade; use think\Facade; /** * @method static \think\permissions\model\Permissions store(array $permission) store * @method static \think\permissions\model\Permissions getPermissionBy($permission_id) get by id * @method static \think\permissions\model\Permissions deleteBy($permission_id) delete by id * @method static \think\permissions\model\Permissions updateBy($permission_id) update by id * @method static \think\permissions\model\Permissions getPermissionByModuleAnd($module, $controller, $action) */ class Permissions extends Facade { public static function getFacadeClass() { // 这里使用了配置文件对应的 Model class,所以使用者如果需要扩展并且想要使用包内 model方法的话 // 只需要继承之后,再将配置文件对应的 model class 修改后,就可以继续以门面的方式访问了,这样可 // 保证统一 return config('permissions.model.permission'); } ``` ### Role Facade ```php namespace think\permissions\facade; use think\Facade; /** * @method static \think\permissions\model\Roles store(array $role) store * @method static \think\permissions\model\Roles getRoleBy($role_id) get by id * @method static \think\permissions\model\Roles deleteBy($role_id) delete by id * @method static \think\permissions\model\Roles updateBy($role_id) update by id * @method static \think\permissions\model\Roles getPermissions($role_id, $full) get Permissions Of Role * @method static \think\permissions\model\Roles attachPermissions($role_id) attach permissions to Role * @method static \think\permissions\model\Roles detachPermissions($role_id) detach permissions of Role */ class Roles extends Facade { public static function getFacadeClass() { return config('permissions.model.role'); } } ```