Laravel HeyMan 项目教程
1. 项目的目录结构及介绍
Laravel HeyMan 项目的目录结构遵循标准的 Laravel 项目结构,并包含一些特定的文件和目录用于实现其功能。以下是项目的主要目录和文件介绍:
laravel-heyman/
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ └── Middleware/
│ └── Providers/
│ └── AuthServiceProvider.php
├── config/
│ └── heyman.php
├── database/
│ ├── factories/
│ ├── migrations/
│ └── seeds/
├── resources/
│ ├── lang/
│ └── views/
├── routes/
│ ├── api.php
│ ├── channels.php
│ ├── console.php
│ └── web.php
├── tests/
├── composer.json
├── artisan
└── README.md
app/
: 包含应用程序的核心代码,包括控制器、中间件和服务提供者。config/
: 包含项目的配置文件,包括heyman.php
配置文件。database/
: 包含数据库迁移、工厂和种子文件。resources/
: 包含语言文件和视图文件。routes/
: 包含应用程序的路由定义。tests/
: 包含测试文件。composer.json
: 项目的依赖管理文件。artisan
: Laravel 的命令行工具。README.md
: 项目的介绍文档。
2. 项目的启动文件介绍
Laravel HeyMan 项目的启动文件主要包括 app/Providers/AuthServiceProvider.php
和 config/heyman.php
。
app/Providers/AuthServiceProvider.php
这个文件是 Laravel 的服务提供者,用于注册和启动 HeyMan 的功能。在这个文件中,你可以定义 HeyMan 的规则和条件。
namespace App\Providers;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Imanghafoori\HeyMan\Facades\HeyMan;
class AuthServiceProvider extends ServiceProvider
{
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
];
public function boot()
{
$this->registerPolicies();
// HeyMan 规则定义
HeyMan::whenYouVisitUrl('/admin')->youShouldBeGuest()->otherwise()->weDenyAccess();
}
}
config/heyman.php
这个文件是 HeyMan 的配置文件,用于配置 HeyMan 的行为和选项。
return [
'default_reaction' => 'abort',
'reactions' => [
'abort' => function ($statusCode = 403) {
abort($statusCode);
},
'redirect' => function ($url) {
redirect($url);
},
],
];
3. 项目的配置文件介绍
config/heyman.php
这个文件是 HeyMan 的主要配置文件,包含了一些默认的反应和自定义的反应。
return [
'default_reaction' => 'abort',
'reactions' => [
'abort' => function ($statusCode = 403) {
abort($statusCode);
},
'redirect' => function ($url) {
redirect($url);
},
],
];
default_reaction
: 默认的反应,当没有指定特定的反应时使用。reactions
: 自定义的反应,可以定义不同的反应函数。
通过这些配置,你可以灵活地定义 HeyMan 的行为,以适应不同的应用场景。