jrl05k / laravel-under-construction
Laravel 中间件,用于显示施工信息
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-29 03:00:00 UTC
README
Laravel 中间件,用于显示施工信息,可选登录功能
描述
非常简单。中间件将重定向到施工页面。这在您希望将仍在“施工中”的版本推送到生产服务器时非常有用。然后您可以使用中间件向访客显示施工页面。
如果您想允许某些访客查看网站,可以在 .env 文件中启用登录选项。
为了简化开发,您还可以在请求 IP 为本地主机时禁用施工重定向。同样,在生产服务器上,当请求来自特定的 IP 地址时,您也可以禁用施工信息。
您可以通过更改 .env 中的值在任何时候启用/禁用对所有人的施工信息。
但是,当您准备好上线且不再需要施工信息时,应从内核中移除中间件。
安装
composer require jrl05k/laravel-under-construction
提供者
将 UnderConstruction\UnderConstructionProvider::class 添加到 config/app.php 提供者。 (仅适用于 <5.5.x)
'providers' => [ ... ... /* * Other Service Providers... */ UnderConstruction\UnderConstructionProvider::class, ... ...
中间件
这是一个简单的中间件,将重定向到“施工中”页面。
但是,它可以启用登录以绕过施工页面。
将 \UnderConstruction\RedirectIfUnderConstructionMiddleware::class 添加到 Kernel.php 中间件组的 web。
protected $middlewareGroups = [ 'web' => [ ... \UnderConstruction\RedirectIfUnderConstructionMiddleware::class ...
.env
您需要将以下内容添加到您的 .env 并相应设置:
- UNDER_CONSTRUCTION= {true/false}
- UNDER_CONSTRUCTION_ON_LOCALHOST= {true/false}
- UNDER_CONSTRUCTION_ALLOWED_IP_ADDRESSES= {8.8.8.8,8.8.4.4} (也可以是空白、null 或 false 以禁用)
- UNDER_CONSTRUCTION_LOGIN_ALLOWED= {true/false}
- UNDER_CONSTRUCTION_LOGIN_KEY= {123457890}
.env 设置
- 如果 .env 中的 UNDER_CONSTRUCTION 设置为 true,则中间件将重定向所有路由到施工页面。
- 要禁用本地主机上的施工,请设置 UNDER_CONSTRUCTION_ON_LOCALHOST 为 false。
- 在远程服务器上,如果您想从您的 IP 地址访问网站,或允许其他人访问,请将 IP 地址以逗号分隔添加到 .env 中的 UNDER_CONSTRUCTION_ALLOWED_IP_ADDRESSES。
- 如果您想允许某人访问,但没有他们的 IP 地址,或 IP 地址是共享的,您可以在 .env 中启用登录页面,设置为 UNDER_CONSTRUCTION_LOGIN_ALLOWED=true。
- 如果您正在使用登录页面,请在 .env 中设置密钥 UNDER_CONSTRUCTION_LOGIN_KEY。
仅应用于特定路由
如果您想将施工重定向应用于特定路由,则应将中间件放入 $middlewareGroups 'web' 组中,而不是将其放入 $routeMiddleware 数组中。然后,将路由组放在您要保护的路线周围。
示例
In Kernel.php
$routeMiddleware => [ ... 'under-construction' => \UnderConstruction\RedirectIfUnderConstructionMiddleware::class, ...
In routes/web.php
Route::get('/', function () { return view('welcome'); }); Route::group(['middleware'=>'under-construction'], function() { // the routes you want protected... Route::get('/some-page', ... Route::get('/another-page', ... ... });
自定义视图
如果您想使用自定义的施工页面,可以通过将视图文件放置在路径中覆盖视图
resources/views/vendor/underconstruction/under_construction.blade.php
同样,要覆盖登录,请创建路径中的视图
resources/views/vendor/underconstruction/under_construction_login.blade.php
禁用
要暂时关闭正在建设的消息,可以将.env文件中的UNDER_CONSTRUCTION变量设置为false。
但如果不再需要在实时生产站点中使用它,应从Kernel.php中移除UnderConstruction\RedirectIfUnderConstructionMiddleware::class中间件。仅仅通过.env设置禁用而保留在中间件中会带来性能损耗;因此,最好将其完全从Kernel.php的中间件中移除。