cosmicvelocity / lumen-helpers
提高了Lumen和Laravel之间的互操作性。
Requires
- php: >=5.5.9
- laravel/lumen-framework: >=5.1
Requires (Dev)
- mockery/mockery: ~0.9.0
- phpunit/phpunit: ~5.7
This package is not auto-updated.
Last update: 2024-09-26 16:41:11 UTC
README
提高了Lumen和Laravel之间的互操作性。
自从Lumen从5.2开始专注于提供无状态的API以来,会话等功能已经被移除。然而,虽然处理速度较慢,Lumen也适合用于常规的Web应用开发。
幸运的是,Lumen可以整合Laravel的组件,并重新引入已移除的功能。此库提供了在使用Lumen时缺失的功能。
此外,它支持Lumen 5.1下开发的应用程序的升级,如果你打算将来迁移到Laravel,它可以用于提高实现兼容性。
安装
如果使用composer,可以通过添加以下描述来引入。
{ "require": { "cosmicvelocity/lumen-helpers": ">=1.0" } }
在使用与会话相关的辅助函数时,需要设置Lumen以便可以使用会话。
要启用Lumen 5.4的会话,请按以下示例在bootstrap.php中设置Application。
// Add required alias. $app->alias('cookie', \Illuminate\Cookie\CookieJar::class); $app->alias('cookie', \Illuminate\Contracts\Cookie\Factory::class); $app->alias('cookie', \Illuminate\Contracts\Cookie\QueueingFactory::class); $app->alias('session', \Illuminate\Session\SessionManager::class); $app->alias('session.store', \Illuminate\Session\Store::class); $app->alias('session.store', \Illuminate\Contracts\Session\Session::class); // Read the configuration file. // You need to prepare a configuration file similar to Laravel in config/session.php. $app->configure('session'); $app->withFacades(true, [ \Illuminate\Support\Facades\Config::class => 'Config' ]); // Set cookie, Session service provider. $app->register(\Illuminate\Cookie\CookieServiceProvider::class); $app->register(\Illuminate\Session\SessionServiceProvider::class); // Set middleware. $app->middleware([ \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, ]);
如何使用
当前提供的辅助函数如下。
我将执行与Laravel同名辅助函数相同的操作。
- abort_if
- abort_unless
- action
- app_path
- asset
- auth
- back
- bcrypt
- cache
- cookie
- csrf_field
- csrf_token
- logger
- method_field
- mix
- old
- policy
- public_path
- report
- session
- validator
此外,我们提供以下自己的辅助函数。
-
app_with: 一个与makeWith调用兼容的app()辅助函数。从5.4版本开始,你不能再向make传递$parameters,而是使用makeWith进行准备,通过使用app_with,可以通过传递Lumen的请求参数来执行make操作。
-
redirect_with_session: 由于Lumen 5.2及以后的版本中的重定向辅助函数不接管会话,我们提供了redirect_with_session以继承会话。然而,它必须预先构建,例如SessionServiceProvider,并且Lumen中必须启用会话。
return redirect_with_session(route('index')) ->withErrors($errors) ->withInput();
使用redirect_with_session时,你可以期望得到withErrors、withInput等。如果你想要用redirect_with_session替换redirect,可以在bootstrap/app.php中进行如下替换。
// Define redirect first. function redirect($to = null, $status = 302, $headers = [], $secure = null) { return redirect_with_session($to, $status, $headers, $secure); } require_once __DIR__ . '/../vendor/autoload.php';