alexgodbehere/laravelfeatures

该包已被废弃,不再维护。作者建议使用 https://github.com/spatie/laravel-permission 包代替。

用于管理SaaS Laravel应用程序免费和高级功能的包。

v3.0.0 2020-05-06 13:03 UTC

This package is auto-updated.

Last update: 2021-06-28 19:22:40 UTC


README

此包现已弃用

Laravel Features 是一个用于Laravel 5.7+的包,允许您轻松管理和切换应用程序功能。其主要目的是提供一个门面来检查功能是否可由免费或高级用户访问,但它也支持启用和禁用功能。

安装

通过Composer安装

composer require alexgodbehere/laravelfeatures

然后,在您的用户模型中添加一个 isPremium 布尔值。这将确定用户是否可以使用高级功能。

功能管理

添加功能

要将功能添加到您的应用程序中,请使用以下命令。 功能默认为免费。 可以使用 -P--premium 标志将功能创建为高级功能。

php artisan feature:add <name> --premium

默认情况下,功能是激活的,可以直接使用。如果您想防止功能在使用之前被明确启用,请使用 -D--dev 标志。

php artisan feature:add <name> --dev

如果您打算以编程方式初始化数据库,您可以提供描述作为第二个参数以防止出现描述提示。

php artisan feature:add <name> <description>

删除功能

要从您的应用程序中删除功能,请使用以下命令。

php artisan feature:remove <name>

启用功能

如果功能是使用 --dev 标志创建的,则可以使用以下方式启用:

php artisan feature:enable <name>

类似地,可以使用以下方式禁用功能:

php artisan feature:disable <name>

将功能设置为高级

可以使用 freepremium 命令在免费和高级之间切换功能。

php artisan feature:free <name>
php artisan feature:premium <name>

列出所有功能

要查看应用程序中的所有功能,请使用 list 命令。

php artisan feature:list
php artisan feature:list --premium
php artisan feature:list --free

用法

要检查当前认证用户是否能够使用功能,只需使用 Feature::can() 门面。

if (Feature::can('FeatureName') {
    // Code here
}

注意:该 can() 函数接受一个可选的第二个参数 isPremium,以强制检查通过。这仅用于测试,并已在生产环境中禁用。

或者,可以使用 Feature::cannot() 门面检查用户是否无法使用功能。

if (Feature::cannot('FeatureName') {
    // Code here
}

变更日志

有关最近更改的更多信息,请参阅变更日志

测试

vendor/bin/phpunit

贡献

请参阅 contributing.md 以获取详细信息及待办事项清单。

安全

如果您发现任何与安全相关的问题,请通过电子邮件 alex.godbehere@gmail.com 而不是使用问题跟踪器来报告。

致谢

  • [Alex Godbehere][link-author]
  • [所有贡献者][link-contributors]

许可证

GPL-3.0。请参阅 许可证文件 获取更多信息。