3

我有一个功能可以识别给定令牌(字符串)的访问。如果给定了有效令牌,则应使用有效条目填充会话(使用SessionInterface)。我已经设置了我的VerifyToken中间件,并希望使用类似 Guard 的方法来进行令牌验证和会话存储。

我的问题,这种类型的功能是否被认为是 Laravel 的门面?如果是这样的话; 存储这些文件的合适位置是什么(例如app\Facades,还有一个app\Facades\Contracts存储接口)?

4

1 回答 1

2

Laravel 中的 Facade 只是一种从服务容器解析绑定的方法。

所以,对我来说,门面本身并不被视为“应用程序功能”,而是作为访问存储在服务容器中的服务(提供功能)的一种方式

话虽如此,如果您想使用类似 Guard 的方法构建服务,我认为像往常一样,目录结构取决于您:Laravel 在这种情况下非常灵活

一旦你建立了你的服务类,如果你认为它有用,你可以实现一个或多个 Facades 来访问一些服务。

就我个人而言,我不是 Facade 的忠实粉丝,我认为最好尽可能使用依赖注入(通过方法或构造函数参数):这将在需要的地方注入你的服务,但同时保持你的代码依赖更清晰,如它们从方法的签名中立即可见

于 2015-12-16T15:14:35.367 回答