Laravel Online Users 项目教程
1. 项目的目录结构及介绍
laravel-online-users/
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ │ └── OnlineUserController.php
│ │ └── Middleware/
│ │ └── OnlineUserMiddleware.php
│ └── Models/
│ └── OnlineUser.php
├── config/
│ └── online_users.php
├── database/
│ ├── migrations/
│ │ └── 2023_01_01_000000_create_online_users_table.php
│ └── seeds/
│ └── OnlineUserSeeder.php
├── resources/
│ └── views/
│ └── online_users/
│ └── index.blade.php
├── routes/
│ └── web.php
├── tests/
│ └── Feature/
│ └── OnlineUserTest.php
└── composer.json
目录结构介绍
- app/: 包含应用程序的核心代码,如控制器、模型和中间件。
- Http/Controllers/: 存放控制器文件,如
OnlineUserController.php
。 - Http/Middleware/: 存放中间件文件,如
OnlineUserMiddleware.php
。 - Models/: 存放模型文件,如
OnlineUser.php
。
- Http/Controllers/: 存放控制器文件,如
- config/: 包含配置文件,如
online_users.php
。 - database/: 包含数据库迁移和种子文件。
- migrations/: 存放数据库迁移文件,如
2023_01_01_000000_create_online_users_table.php
。 - seeds/: 存放数据库种子文件,如
OnlineUserSeeder.php
。
- migrations/: 存放数据库迁移文件,如
- resources/: 包含视图文件。
- views/: 存放视图文件,如
index.blade.php
。
- views/: 存放视图文件,如
- routes/: 包含路由文件,如
web.php
。 - tests/: 包含测试文件。
- Feature/: 存放功能测试文件,如
OnlineUserTest.php
。
- Feature/: 存放功能测试文件,如
- composer.json: Composer 配置文件。
2. 项目的启动文件介绍
启动文件
- app/Http/Middleware/OnlineUserMiddleware.php: 中间件文件,用于检测用户是否在线。
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cache;
class OnlineUserMiddleware
{
public function handle($request, Closure $next)
{
if (Auth::check()) {
$expiresAt = now()->addMinutes(5);
Cache::put('user-is-online-' . Auth::user()->id, true, $expiresAt);
}
return $next($request);
}
}
使用方法
在 app/Http/Kernel.php
中注册中间件:
protected $middlewareGroups = [
'web' => [
// 其他中间件
\App\Http\Middleware\OnlineUserMiddleware::class,
],
];
3. 项目的配置文件介绍
配置文件
- config/online_users.php: 配置文件,用于设置在线用户的缓存时间等。
return [
'cache_time' => 5, // 缓存时间(分钟)
];
使用方法
在代码中引用配置文件:
use Illuminate\Support\Facades\Config;
$cacheTime = Config::get('online_users.cache_time');
通过以上步骤,您可以成功配置和使用 laravel-online-users
项目来显示和管理在线用户。