我有一个功能可以识别给定令牌(字符串)的访问。如果给定了有效令牌,则应使用有效条目填充会话(使用SessionInterface
)。我已经设置了我的VerifyToken
中间件,并希望使用类似 Guard 的方法来进行令牌验证和会话存储。
我的问题,这种类型的功能是否被认为是 Laravel 的门面?如果是这样的话; 存储这些文件的合适位置是什么(例如app\Facades
,还有一个app\Facades\Contracts
存储接口)?
我有一个功能可以识别给定令牌(字符串)的访问。如果给定了有效令牌,则应使用有效条目填充会话(使用SessionInterface
)。我已经设置了我的VerifyToken
中间件,并希望使用类似 Guard 的方法来进行令牌验证和会话存储。
我的问题,这种类型的功能是否被认为是 Laravel 的门面?如果是这样的话; 存储这些文件的合适位置是什么(例如app\Facades
,还有一个app\Facades\Contracts
存储接口)?
Laravel 中的 Facade 只是一种从服务容器解析绑定的方法。
所以,对我来说,门面本身并不被视为“应用程序功能”,而是作为访问存储在服务容器中的服务(提供功能)的一种方式
话虽如此,如果您想使用类似 Guard 的方法构建服务,我认为像往常一样,目录结构取决于您:Laravel 在这种情况下非常灵活
一旦你建立了你的服务类,如果你认为它有用,你可以实现一个或多个 Facades 来访问一些服务。
就我个人而言,我不是 Facade 的忠实粉丝,我认为最好尽可能使用依赖注入(通过方法或构造函数参数):这将在需要的地方注入你的服务,但同时保持你的代码依赖更清晰,如它们从方法的签名中立即可见